Я хочу использовать Tensorflow от Google для возврата похожих изображений на входное изображение.Tensorflow return аналогичные изображения
Я установил 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)
Пожалуйста, предложите мне путь вперед для этой проблемы и как это сделать, используя Python API.
У меня есть несколько решений в виду, но я хотел бы понять проблему больше. Я предполагаю, что вы пытаетесь найти все «траншеи» на 60 000 изображений. Если это так, вы можете просто запустить все 60 000 изображений с помощью Inception, извлечь изображения, где «пальто» появляется как верх 5 (добавьте пороговое значение, если хотите), и все готово. Ответит ли это на это? – jkschin
Спасибо за помощь. Но дело в том, что файл изображения image.jpg выше на самом деле является saree, и я не хочу ограничиваться только 1000 классами в модели. Кроме того, если я найду способ добавления новых классов, это будет очень широкий классификатор, а маркировка изображений будет утомительной задачей. Итак, я подумывал удалить слой классификации из обученной модели, а затем использовать вектор признаков для вычисления ближайших изображений. –
Справа. Итак, заявление о проблеме: «Учитывая 60 000 изображений, как я могу сгруппировать все сари вместе с помощью модифицированной версии Inception?». – jkschin