Обзор
- Чтобы попытаться «поискать изображения по изображениям» в аналогичных сценариях поиска изображений, система поиска изображений разработана на основе вычисления векторного индекса Файсса и модели извлечения признаков изображения VGG16.
- Адрес в открытом доступе:На GitHub.com/thhirty one есть...
Сцена поиска
- Процесс рассуждения: прочитайте изображение, и алгоритм сгенерирует вектор признаков.
- Хранение признаков: сохраните вектор признаков в ES
- Процесс поиска: онлайн-поиск векторов в реальном времени
- Конкретный процесс выглядит следующим образом:
О Файсс
-
faiss— это платформа, которая обеспечивает эффективный поиск сходства и кластеризацию для плотных векторов. Разработано Facebook AI Research. Имеет следующие характеристики.
- Предоставляет несколько методов поиска
- высокоскоростной
- Может существовать в памяти и на диске
- Реализация C++, обеспечивающая вызовы оболочки Python.
- Большинство алгоритмов поддерживают реализацию GPU.
Реализация поиска Faiss
- Предусмотрены два метода расстояний, евклидов и метод внутреннего произведения.Конкретные коды следующие:
import faiss # make faiss available
index = faiss.IndexFlatL2(d) # build the index
index.add(xb) # add vectors to the index
D, I = index.search(xq, k) # actual search
import faiss # make faiss available
index = faiss.IndexFlatIP(d) # build the index
index.add(xb) # add vectors to the index
D, I = index.search(xq, k) # actual search
Операция Введение
- Загрузите исходный код проекта:На GitHub.com/thhirty one есть...
- Операция 1: Создайте базовый индекс
python index.py
--train_data:自定义训练图片文件夹路径,默认为`<ROOT_DIR>/data/train`
--index_file:自定义索引文件存储路径,默认为`<ROOT_DIR>/index/train.h5`
- Операция 2: Используйте поиск по сходству
python retrieval.py --engine=faiss
--test_data:自定义测试图片详细地址,默认为`<ROOT_DIR>/data/test/001_accordion_image_0001.jpg`
--index_file:自定义索引文件存储路径,默认为`<ROOT_DIR>/index/train.h5`
--db_name:自定义ES或者Milvus索引库名,默认为`image_retrieval`
--engine:自定义检索引擎类型,默认为`numpy`,可选包括:numpy、faiss、es、milvus
Расширенное чтение
That's all!