Image detection with sub-features
Instead of/in addition to computing phash for an entire image, perform feature extraction (ex. a face, a car, etc) using manual boundary boxes or ML. Duplicate and similarity detection can then be executed with greater sensitivity to the actual content within the image, and possibly yield greater accuracy for heavily modified images.