Озвучу свои мысли (как разработчика), возможно будут у какого какая информация по этим моментам... Ну или опровержения.
Тоже не плохо.
1. checkSum.
Самый быстрый способ проверить уникальность. Но есть и побочки, любой "лишний" пиксель и уже картинка "уникальна". Что не есть хорошо. Ибо любая watermark делает картинку "уникальной" сразу.
2. По пиксельно. Вариант 1.
Берём картинку, берём контрольные точки (допустим 100 точек). Проверяем с другой картинкой (те же 100 точек). В зависимости "разницы" и будет % уникальности картинки. Тут watermark остаётся неудел, даже сможет повычить нам %.
3. Попиксельно. Вариант 2.
Такой же вариант только с условием что проверяются все пиксели. И снова имеем % соотношение уникальности (к пример даже если есть watermark будет то мы получим где то 70-80 % если картинка полностью уникальна, если не больше).
Но это всего лишь мои мысли (как бы я делал). Прошу, комментируйте - "в споре рождается истина".
PS: Варианты 2 и 3, картинки перед сравнением само собой приводятся в равные "условия", т.е. ширина, высота, цветовая схема (например проще проверять в режиме greyScale).