Я хочу использовать Google Tensorflow для возврата похожих изображений на входное изображение.
Я установил Tensorflow из http://www.tensorflow.org (используя установку PIP - pip и python 2.7) на Ubuntu14.04 на CPU виртуальной машины.
Я загрузил обучаемую модель Inception-V3 (inception-2015-12-05.tgz) из http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz, которая обучается на ImageNet Large Visual Recognition Challenge с использованием данных с 2012 года, но я думаю, что в ней есть как нейронная сеть, так и классификатор внутри нее (поскольку задача была предсказана для категории). Я также загрузил файл classify_image.py, который классифицирует изображение в 1 из 1000 классов в модели.
Итак, у меня есть случайное изображение image.jpg, которое я запускаю для тестирования модели. когда я запускаю команду:
python /home/amit/classify_image.py --image_file=/home/amit/image.jpg
Я получаю следующий результат: (Классификация выполняется с использованием softmax)
I tensorflow/core/common_runtime/local_device.cc:40] Local device intra op parallelism threads: 3
I tensorflow/core/common_runtime/direct_session.cc:58] Direct session inter op parallelism threads: 3
trench coat (score = 0.62218)
overskirt (score = 0.18911)
cloak (score = 0.07508)
velvet (score = 0.02383)
hoopskirt, crinoline (score = 0.01286)
Теперь задача состоит в том, чтобы найти изображения, похожие на входное изображение (image.jpg), из базы данных из 60 000 изображений (формат jpg и храниться в папке в /home/amit/images ). Я считаю, что это можно сделать, удалив финальный слой классификации из модели begin-v3 и используя набор функций входного изображения, чтобы найти расстояние от косинуса от набора функций, все 60 000 изображений, и мы можем вернуть изображения с меньшим расстоянием (cos 0 = 1)
Пожалуйста, предложите мне путь для этой проблемы и как это сделать с помощью API Python.