Сказать трудно, я начинал разработку с базой в 3к картинок, коллизий тоже было около 10%. В общем случае, пространство картинок счетно и бесконечно, а 64 битный хэш конечен. Исходя из этого, с ростом базы количество коллизий будет расти. Но ведь в реальном мире мы имеем дело с изображениями людей, машин, котиков, а это накладывает определенные ограничения на пространство картинок. Ведь мы не будем смотреть на случайный набор пикселей. Так что говорить о зависимости кол-ва коллизий от кол-ва картинок я не берусь.
В целом, если такая проблема имеет место быть, выходов из этих ситуаций можно рассмотреть много, увеличение хэша, использование дополнительных алгоритмов, для уточнения результата (SURF например).
Объем базы был 6 тысяч популярных картинок собранных на просторах интернета. Процент коллизий составляет примерно 10%.
Гистограммы считаем заранее и храним. В реальном времени рассчитывается только расстояние Хэмминга и взаимная корреляция гистограмм.
Хеш вполне справляется с картинками, которые подрезали снизу. Я описывал в статье такие случаи.
Что касается более глобальных изменений, вроде демотиватора или фрагмента изображения, то ответ скорее нет чем да. Перцептивный хеш не позволяет сделать выводы о фрагментах данных. Т.е. мы не можем ответить на вопрос где именно данные различаются? Мы получаем ответ на вопрос насколько они похожи.
Для таких случаев больше подходит SURF.
В целом, если такая проблема имеет место быть, выходов из этих ситуаций можно рассмотреть много, увеличение хэша, использование дополнительных алгоритмов, для уточнения результата (SURF например).
Гистограммы считаем заранее и храним. В реальном времени рассчитывается только расстояние Хэмминга и взаимная корреляция гистограмм.
Можно попробовать поискать известные мемы вроде img-9gag-lol.9cache.com/photo/aOyv5WN_460s.jpg
Что касается более глобальных изменений, вроде демотиватора или фрагмента изображения, то ответ скорее нет чем да. Перцептивный хеш не позволяет сделать выводы о фрагментах данных. Т.е. мы не можем ответить на вопрос где именно данные различаются? Мы получаем ответ на вопрос насколько они похожи.
Для таких случаев больше подходит SURF.