Как организовать свою базу для поиска по фотографиям?
Привет!
Стала интересна тема face recognition & detection кто в теме, подскажите, как можно организовать свою базу данных для поиска?
Например у меня есть ссылки с фотографиями, а в ссылке хранится уникальный идентификатор. Как дальше быть, взять 100 ссылок и сохранить по фоточке на диск и потом "в лоб" сканировать? Или можно построить иерархию по признакам, сначала отсканировал фотку для поиска определил какие-то отправные точки и потом как по индексу начал искать только изображения с этими свойствами?
У кого есть опыт в подобных делах, может быть еще и литературу хорошую подкините :)
И кто вообще чем пользуется: openCV или библиотеками на python, nodejs, go?
Здесь две задачи:
1) кодирование картинки вектором — либо особые точки (SIFT и прочие), либо нейронка (Triplet loss);
2) поиск — зависит от размера базы, fullscan по миллиону занимает порядка 50 ms, если это много, то на помощь приходят hnsw, annoy, faiss и прочие.
Andrey Ka, на таких объёмах лучше взять faiss, у нас поиск по базе размером 150кк проходит за те же 50 ms, что fullscan по миллиону, точность тоже хорошая.
Если база не обновляется или хотя бы делает это редко, то ещё можно на hnsw посмотреть, но там надо будет несколько дней индекс строить.