[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]

Файл: изображение.png -(379 KB, 1315x845, изображение.png)
379 No.218038  

Привет, Чии. Как решаешь проблему поиска среди сохраненных картинок? У меня сложился определенный пайплайн - я сохраняю закладки в Твиттере, и раз в некоторое время синхронизирую их с помощью wfdownloader. Сейчас у меня около 17к картинок, сгруппированных по имени аккаунта автора в папки (это делает сам wfdownloader) Затем я с помощью Stable Diffusion WebUI и модели wd-swinv2-tagger-v3 создаю json-файл с тегами. На i3-1115g4 это занимает около 4 с на картинку и 12 часов на всю папку, json на выходе более 100 МБ. Deepseek написал html страницу для поиска по тегам, на которой можно сортировать картинки по вероятности тегов из поиска. Сейчас я думаю, как реализовать отсутствие повторов (одна и та же картинка может быть в других источниках - pinterest, борды). Для всех 17к картинок я создал еще один json с их перцептивными хэшами phash которые не изменяются при малых изменениях изображения. Теперь надо сделать веб-приложение, с такими функциями: сначала загружаем этот json с хэшами, затем фоткаем телефоном картинку с монитора, и с помощью нейронки выполняем ее обнаружение среди белого фона, коррекцию перспективы, и вычисляем её phash. Если такой хэш уже есть в базе, пишем об этом. (т.е. Google Lens на минималках). Проблема пока в том, что моделей конкретно для распознавания изображения с экрана я не нашел.

>> No.218039  

>>218038

>Если такой хэш уже есть в базе, пишем об этом.

Тут есть один очень важный нюанс. Если изображения даже минимально отличаются, то и PHASH у них будет отличаться, то есть простое сравнение коэффициентов пропустит большинство похожих картинок.

На самом деле PHASH ещё лучше, чем кажется на первый взгляд. С его помощью можно сравнивать степень сходства картинок и представлять то, насколько они отличаются, в виде одного числа, где большее число означает большее отличие!

Дабы не лишать тебя радости самостоятельного открытия скину только ссылку на научную статью на эту тему: https://www.naturalspublishing.com/files/published/54515x71g3omq1.pdf

Там уже есть готовый рецепт: его надо только найти и реализовать в нужном тебе языке.

Я не знаю, насколько этого достаточно, если сравнивать с изображениями, сфотографированными с экрана, но допускаю, что при должной предобработке и выборе кадра с минимальным количеством посторонних элементов это может работать вообще без всякого ИИ. В моей задаче (просто поиск практически полных дубликатов среди множества файлов изображений) результат был выше любых моих ожиданий.

>> No.218040  
Файл: изображение.png -(139 KB, 1100x905, изображение.png)
139

>>218039
то что phash не будет идеально совпадать у меня учтено. сравнение происходит по расстоянию Хэмминга.На пикрил, скрин с экрана с UI пинтереста не мешает распознаванию.

>> No.218041  

>>218040
Понятно. Тобой какой-то другой перцептивный хэш используется - в вышеуказанной статье предлагается хэш, генерирующий 7 чисел на канал; в варианте ImageMagick, который я использовал при решении своей задачи, он считает их в двух цветовых моделях (по умолчанию, во всяком случае) и даёт 42 числа с плавающей запятой для трёхканального (RGB) изображения. Для сравнения в статье предлагается использовать Евклидово расстояние. Не могу сказать, насколько эти хэши сопоставимы в плане эффективности отсева, но чисто интуитивно (по аналогии с криптографическими хэшами или хэш-функциями, используемыми при реализации хэш-таблиц) вероятность нахождения ложного сходства у хэша с большей длиной должна быть ниже. Одновременно, конечно, важно ещё и как долго эти хэши считаются.

>На пикрил, скрин с экрана с UI пинтереста не мешает распознаванию.

Насколько я помню, реализация PHASH в ImageMagick в сочетании с Евклидовым расстоянием достаточно близко (но не слишком - дальше, чем, скажем, для изображений, отличающихся только количеством пикселей) оценивала разницу между похожими картинками вроде этой, то есть между теми, которые имеют существенные отличия только в отдельных частях изображения.




[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]