This would make a nice add-on for Digikam, which already does perceptual image hashing.
I read that they used artisanal code(!) - did they write a new image hashing algo, or use an established one?