Обзор
- Когда вы слышите «поиск изображений по изображению», вы в первую очередь думаете о функции поиска изображений по изображению поисковых систем, таких как Baidu, Google и Ali? На самом деле, вы можете сами построить свою систему поиска изображений: самостоятельно создать библиотеку фотографий, самостоятельно выбрать картинку для поиска в библиотеке и получить несколько похожих на нее картинок.
- Чтобы попробовать аналогичную сцену поиска изображений, основанную на расчете расстояния внутреннего произведения и модели извлечения признаков изображения VGG16, разработана система поиска изображений. Текст разделен на пять частей: обзор системы, модель VGG, подготовка данных, развертывание системы и сводка.
сборка системы
- Адрес в открытом доступе:На GitHub.com/thhirty one есть...
- Установка базовой среды: Версия Python: 3.6.10
git clone https://github.com/thirtyonelee/image-retrieval.git && cd image-retrieval
pip install -r requirements.txt
- Создайте базовый индекс, сохраните индекс в: "
/index/train.h5" по умолчанию.
python index.py
- Испытайте поиск подобия, по умолчанию используйте механизм расчета внутреннего продукта Numpy, тестовое изображение по умолчанию: "
/data/test/001_accordion_image_0001.jpg"
python retrieval.py 或 python retrieval.py --engine=numpy --test_data=<ROOT_DIR>/data/test/001_accordion_image_0001.jpg
[{'name': b'001_accordion_image_0002.jpg', 'score': 0.902732}, {'name': b'001_accordion_image_0003.jpg', 'score': 0.872308}, {'name': b'002_anchor_image_0004.jpg', 'score': 0.865453}]
'name' 对应索引库 <ROOT_DIR>/data/train 图片名字
структура системы
- Система в основном состоит из двух частей: модели извлечения признаков изображения VGG и механизма векторного поиска. Модель VGG отвечает за преобразование изображения в вектор, а механизм векторного поиска отвечает за сохранение вектора и выполнение аналогичного векторного поиска. Конкретная структура показана на следующем рисунке:
модель ВГГ
- VGGNet был предложен совместно Visual Geometry Group (Группа визуальной геометрии) Оксфордского университета и исследователями из компании Google DeepMind и занял первое место в задаче локализации и второе место в задаче классификации в ILSVRC-2014. Его выдающийся вклад заключается в доказательстве того, что использование небольшой свертки (3 * 3) и увеличение глубины сети может эффективно улучшить эффект модели, а VGGNet обладает хорошей способностью к обобщению других наборов данных. Модель VGG превосходит GoogleNet в нескольких задачах обучения передаче, извлечении функций CNN из изображений, и модель VGG является предпочтительным алгоритмом. Поэтому VGG выбран в качестве модели глубокого обучения в этой схеме.
- VGGNet исследует взаимосвязь между глубиной CNN и их производительностью, многократно складывая 33 маленьких ядра свертки и 22 максимальных слоя объединения, VGGNet успешно строит 16-19-уровневую CNN. В этом решении используется модель VGG16, предоставляемая модулем приложений Keras ( keras.applications ).
- Официальный сайт ВГГ:Woohoo.robots.O type.AC.UK/~v GG/Горячий цвет, ах, горячий…
- ВГГ Гитхаб:GitHub.com/MA Крис АА/Он…
подготовка данных
- В этой демонстрации используетсяPASCAL VOCНабор изображений из 11530 изображений в 20 категориях.
- Размер набора данных 2G, адрес загрузки:host.robots.O.AC.UK/Pascal/VOC/…
Примечание. Вы можете использовать другие изображения для тестирования, эта система поддерживает форматы изображений .jpg и .png.
Суммировать
- Проект поддерживает различные движки расчета расстояний, такие как: Numpy, Faiss, ES, Milvus.
- Можно настроить другие функции расчета расстояния, такие как: евклидово расстояние (L2), расстояние Хэмминга, расстояние Жаккара, расстояние Танимото и т. д.
приложение
Ссылка 1:GitHub.com/Willard — с ах...
Ссылка 2:GitHub.com/Информация найти-загрузить…