Чем решить задачу поиска дубликатов из 1млрд изображений?

Изображение прогоняю через GoogleNet беру последний слой loss3/classifier
как дальше по этому искать?
варианты:
  1. использовать faiss или SPTAG ( сложно, ресурсоемко)
  2. бинаризировать вектора и искать ближайшие по хэммингу как делают ok.ru (вариант, но в чем искать то такому объему фото
  3. кластеризировать k-means (ну да похожие будут с похожими. но лучше уж faiss использовать)
  4. использовать перцептивный хэш ( совсем нулевая точность, если бы его для векторов можно было сделать)

Можно ли получать что то вроде Simhash? т.е. по набору признаков из нейросети получить одинаковый хеш для фото со схожестью 80% затем положить этот хеш в кассандру.
При поиске искать только по хешу, т.е. быстро получить все хото похожие на 80% на загруженное изображение.

изображения недвижимость.
  • Вопрос задан
  • 523 просмотра
Решения вопроса 1
@SemenDemon Автор вопроса
faiss опубликовал статью поиска по 1млрд изображений. там с кластеризацией и все довольно интересно.
Но оказалось проще всего использовать lsh хеширование и кассандру.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sgjurano
@sgjurano
Разработчик
1) я не читал конкретно про эту сеть, но задача "построить пространство, подходящее для поиска похожих объектов" и "распознать класс объектов" — это разные задачи, требующие разных процессов обучения;
2) задача поиска по датасету — отдельная задача, требующая предварительного обучения сети для получения эмбеддингов;
3) если искать нужно по статическому датасету, то HNSW — отличный вариант, но индекс будет строиться пару недель; если же датасет динамический, то лучше faiss пока ничего не придумали, насколько мне известно.

При использовании faiss у меня получились вот такие результаты: индекс варится 5 часов, занимает 67 гигов, вот оценка качества поиска на модельных данных (BigANN, SIFT), тип индекса IVF262k_HNSW32,PQ64:
R@1    R@10   R@100   time (ms/query)
nprobe=16,efSearch=128,ht=246           0.6546  0.8006  0.8006     4.231
nprobe=32,efSearch=128,ht=246           0.7107  0.8818  0.8818     7.783
nprobe=64,efSearch=128,ht=246           0.7435  0.9343  0.9346    14.691
nprobe=128,efSearch=128,ht=246          0.7653  0.9687  0.9692    28.326
nprobe=256,efSearch=128,ht=246          0.7726  0.9829  0.9834    55.375


Метрика показывает долю истинных top-1 векторов, попадающих в top-k ближайших при запросах к индексу, при разных параметрах поиска, всего 10k запросов.
Ответ написан
mvd19
@mvd19
(епископ Темерницкий)
Ну а упростить?
Так в тотал коммандер есть поиск дубликатов (по размеру сначала... и потом с одинаковым размером по содержимому)

ну есть еще вариант.. сразу считать контрольную сумму файла и далее просто в эксель внести и кнопка удалить дубликаты + в акцесс мастер запросов , запрос на различие таблицы полного списка и таблицы без дубликатов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы