Комментарии 23
Спасибо за статью, если правильно помню, все подобные хэши работают нормально до первого кропа (особенно если отрезать чуть сверху). Промежуточным решением тут могут быть ключевые точки, от старых SURF/SIFT до современных нейросетевых, но нишу уже заполняют API варианты "дай мне картинку, дам тебе fingerprint", которые уже end2end сетевые. Так как кроме "дубликатов" многие хотят уже и рекомендации "похожего".
На том же Пикабу их поиск дубликатов, кажется, работает на уровне попиксельного сравнения, почему они до сих пор не решат эту проблему - для меня загадка, хотя у них наверно совсем другие приоритеты. А вот в качестве положительного примера могу привести Pinterest, они на этом очень заморочены (включая научные исследования) и имхо часто выглядят сильно лучше Гугла или Яндекса. Но для просто топорного поиска pHash до сих есть и еще долгу будет работать
Можно подробнее об исследованиях Pinterest ?
я когда пару лет назад смотрел по теме, часто натыкался на научные работы их, вот для точки отсчета, например, https://arxiv.org/pdf/1908.01707.pdf, мб что-то уже и свежее есть
старожилы, на зубок помнящие мемасики, появившиеся во времена превед‑медведа и олбанского йазыгга.
Это не старожилы :)
(Старожилы помнят, какое отношение Винни Пух имеет к ИТ :)
И известную компанию САВА International!
Какая-то методика из конца нулевых. В современных реалиях это гораздо проще делать, через эмбединги "визуальных" нейросеток, и находя ближайшие из них(с косинусной или другой метрикой). Примерно так же как это сделано в распознавании лиц.
Требования на память и на производительность у нейросеток будут куда серьезнее, чем у методик конца нулевых.
Зависит от того как сделаете. Но это однозначно рабочий вариант, который будет значительно выигрывать в простоте и качестве. В поисковиках поиск по картинке уже давно на схожих принципах работает.
Я был бы признателен вам за ссылки с описанием начального уровня.
Зависит от начального уровня ) если совсем начальный стоит что-то почитать по кейвердам: "convolutional neural network/deep learning", "deep learning embedding" (по сути это те самые "хэши", только более универсальные и устойчивые к различным "трансформациям").
Дальше, вот здесь к примеру с кодом и доступно описан процесс(deep learning image deduplication/similarity search):
https://www.oreilly.com/library/view/practical-deep-learning/9781492034858/ch04.html
Речь, как мне кажется, была про то, что даже самая простая нейронка в разы (десятки, сотни раз) медленнее "метода конца нулевых" и требует больше ресурсов, image processing нейросетями всегда дорогой, увы. Тут скорее выбор между "быстро и тупо" или "качественно". Для личного бложика на VPS нейросети не затащишь, для каждой задачи свой инструмент, и простые хэши все еще актуальны (и долго будут)
Что такое простые хэши? Когда два фала побайтово одинаковы? Если речь про "визуальные хэши" из статьи, то я не уверен, что они сильно быстрее какой-то простой дистилированной нейронки типа Mobilenet.
Вы заблуждаетесь, самый простой вариант "визуального хэша" это 1) уменьшить картинку максимально грубо, сложные алгоритмы рейсайза не нужны 2) сделать простейшее преобразование (вроде вычесть среднее). Все.
Что такое mobilenet - это кроме исходного того же уменьшить картинку (а тут уже алгоритмы уменьшения важны) десятки дорогих сверток, разница в скорости между простейшим хэшом и Mobilenet десятки, если не сотни раз.
Таким образом можно найти только практически одинаковые картинки, так как приведенные вами "хэши", не инвариантны даже к небольшим сдвигам.
Извините, вы читали статью? В ней показано, что они не устойчивы даже к зеркалированию, я в первом комментарии акцентировал внимание на том, что они очень чувствительны к кропу (ака сдвиг). Но это не делает их а) бесполезными б) медленными. У них до сих пор есть свое применение (поиск похожих картинок с учетом изменений из статьи, типа поменять яркость), они до сих пор в сотни раз быстрее нейросетей. Для каждой задачи свой инструмент.
А размер хэшей у нейросеток получается такой же? В некоторых статьях хранят чуть ли не 128 чисел с плавающей запятой на картинку.
Требования на память и на производительность у нейросеток будут куда серьезнее
Ну вы прямо как в воду смотрели :)
Как найти похожие картинки