
Дедупликация фото без нейросетей. Часть 2: предобработка и поиск в PostgreSQL
В первой части я взял двадцать фотографий, изменил каждую двадцатью шестью способами и померил, что переживает перцептивный хеш. Пересказывать всё не буду, но пара выводов из первой статьи нам понадобится дальше. Брать надо pHash на 64 битах. У 16 битов бывают коллизии, 256 не дают ничего сверх 64, а у aHash слишком много ложных срабатываний. Водяные знаки хешу безразличны: хоть логотип в углу, хоть плитка из надписей по всему кадру, это 0-6 бит из 64. Зато его убивает любая правка геометрии: обрезали на 20% — не нашли ничего, добавили белую рамку — нашли половину, отзеркалили — снова ничего. При пороге 12 это recall 86% при precision 100%.Дальше расскажу про то, как довести 86% до 95% и уложить поиск в один SQL-запрос. Читать далее