Использован автоперевод

Демонстрация системы поиска изображений на основе ResNet50 и косинусоидального поиска по сходству

🎯 Цель: продемонстрировать логику работы поисковой системы изображений, использующей ResNet50 для выделения признаков и косинусное сходство для поиска похожих изображений.

Идея этого алгоритма поиска изображений заключается в вычислении сходства между данным изображением и всеми другими изображениями из основного набора данных для получения индексов k лучших кандидатов.

Чтобы оценить степень сходства между двумя изображениями, нам нужно преобразовать все изображения в объекты ~ набор числовых значений, называемых вложениями / векторами. Мы используем ResNet50 для извлечения объектов из изображений, коротко о ResNet50.

Сочетание вычислительной эффективности ResNet50, предварительной подготовки на крупномасштабном наборе данных (ImageNet) и универсальности делают его отличным выбором для извлечения признаков в широком спектре задач компьютерного зрения. Архитектура ResNet50 (автор: ВикиМедиа)

Косинусоидальное сходство используется для оценки степени сходства между двумя изображениями, поскольку оно эффективно измеряет выравнивание векторов их признаков, хорошо обрабатывает многомерные и разреженные данные и является эффективным с точки зрения вычислений. Формула косинусоидального сходства (источники: Википедия):  

Код функции поиска изображений:

def search_similar_images(запрос_image_index, image_features, image_files, k=5):
    query_feature = image_features[индекс_изображения].изменить форму(1, -1)
    сходства = косинусоидальное сходство(query_feature, image_features).сгладить()
    top_k_indices = сходства.argsort()[-k-1:-1][::-1] # ~ исключая само изображение из запроса
, возвращает top_k_indices

Ссылки:

1. https://www.tensorflow.org/api_docs/python/tf/keras/applications/resnet

2. https://en.wikipedia.org/wiki/Cosine_similarity

Записная книжка Kaggle: https://www.kaggle.com/code/armanzhalgasbayev/image-search-engine-demo-resnet-cossim

Комментарии 4

Авторизуйтесь чтобы оставить комментарий