Служба поиска сходства векторов изображений (4) - на основе faiss

поисковый движок

Обзор

  • Чтобы попытаться «поискать изображения по изображениям» в аналогичных сценариях поиска изображений, система поиска изображений разработана на основе вычисления векторного индекса Файсса и модели извлечения признаков изображения 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

Операция Введение

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`,可选包括:numpyfaissesmilvus

Расширенное чтение

  • Оптимизация скорости поискаплан
  • Оптимизация индексной памятиплан
  • GPU выполняет выводплан

That's all!