3

Я занимаюсь исследованиями в области компьютерного зрения и работаю над проблемой, связанной с поиском визуально похожих изображений с изображением запроса. Например, найти футболки подобного цвета с похожими узорами (Striped/Checkered) или туфли одинакового цвета и формы и т. Д.Image Сходство - Глубокое обучение и созданные вручную функции

Я изучил особенности изображения вручную, такие как цветовые гистограммы, функции текстуры, функции формы (гистограмма ориентированных градиентов), SIFT и т. Д. Я также прочитал литературу о глубоких нейронных сетях (сверточных нейронных сетях), которые прошли обучение на огромных объемах данных и в настоящее время являются самыми современными в области классификации изображений.

Мне было интересно, могут ли те же функции (извлеченные из CNN) использовать для моего проекта - поиск мелкозернистых сходств между изображениями. Из того, что я понимаю, CNN узнали хорошие представительские функции, которые могут помочь классифицировать изображения - например, будь то красная рубашка или синяя рубашка или оранжевая рубашка, он может определить, что изображение - рубашка. Однако он не понимает, что оранжевая рубашка выглядит более похожей на красную рубашку, чем на синюю рубашку, и, следовательно, она не в состоянии зафиксировать эти сходства.

Пожалуйста, исправьте меня, если я ошибаюсь. Я хотел бы знать, есть ли какие-либо глубокие нейронные сети, которые захватывают эти сходства и, как оказалось, превосходят функции, созданные вручную. Заранее спасибо.

+0

Я не совсем понимаю, если это то, что вы имеете в виду, но CNN обучаются в конце концов как классификаторы, а функции, которые они изучают, в основном являются побочным продуктом этого. Обычно вы не использовали CNN просто как экстрактор признаков (хотя это возможно). Но, может быть, я вас неправильно понял. – cfh

+0

Да, CNN используются как классификаторы. Есть некоторые предварительно подготовленные модели, такие как Overfeat, Caffe, которые прошли обучение по набору данных imagenet с более чем миллионом изображений по 1000 категориям. Я прочитал, что функции, извлеченные из последних слоев этих сетей, могут использоваться для обучения пользовательских классификаторов (для вашего собственного набора данных), и они оказались выше возможностей ручной работы, когда дело доходит до классификации http: // arxiv. орг/ABS/1403,6382. Могут ли эти функции использоваться для вычисления подобия (по вопросу), или эти модели нужно обучать по-другому? – user3705926

+0

Да, это, безусловно, стоит попробовать.Если у вас есть очень конкретные потребности, например, ваш пример отличия оранжевых/красных рубашек от синих рубашек и т. Д., То вполне возможно, что CNN просто не было необходимости изучать эти специфические особенности, и в этом случае вам нужно было бы лучше тренироваться функции для вашего случая использования. Но это трудно сказать, не пытаясь это сделать. – cfh

ответ

1

Для вашей задачи CNN определенно стоит попробовать!

Многие исследователи использовали сети, предварительно подготовленные для классификации изображений, и получили самые современные результаты по мелкозернистой классификации. Например, пытаясь классифицировать birds species или автомобили.

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

Функции CNN, извлеченные из первых слоев сети, должны быть больше связаны с цветом или другими графическими признаками, а не с более «семантическими».

В качестве альтернативы, существует некоторая работа по изучению непосредственно метрики подобия через CNN, например, here.

0

Немного устаревшее, но оно может быть полезным для других людей. Да, CNN можно использовать для сходства изображений, и я использовал это раньше. Как отметил Флавио, для простого запуска вы можете использовать предварительно подготовленный CNN по вашему выбору, такой как Alexnet, GoogleNet и т. Д., А затем использовать его как средство выделения. Вы можете сравнить функции на основе расстояния, аналогичные снимки будут иметь меньшее расстояние между их векторами признаков.

Смежные вопросы