Я занимаюсь исследованиями в области компьютерного зрения и работаю над проблемой, связанной с поиском визуально похожих изображений с изображением запроса. Например, найти футболки подобного цвета с похожими узорами (Striped/Checkered) или туфли одинакового цвета и формы и т. Д.Image Сходство - Глубокое обучение и созданные вручную функции
Я изучил особенности изображения вручную, такие как цветовые гистограммы, функции текстуры, функции формы (гистограмма ориентированных градиентов), SIFT и т. Д. Я также прочитал литературу о глубоких нейронных сетях (сверточных нейронных сетях), которые прошли обучение на огромных объемах данных и в настоящее время являются самыми современными в области классификации изображений.
Мне было интересно, могут ли те же функции (извлеченные из CNN) использовать для моего проекта - поиск мелкозернистых сходств между изображениями. Из того, что я понимаю, CNN узнали хорошие представительские функции, которые могут помочь классифицировать изображения - например, будь то красная рубашка или синяя рубашка или оранжевая рубашка, он может определить, что изображение - рубашка. Однако он не понимает, что оранжевая рубашка выглядит более похожей на красную рубашку, чем на синюю рубашку, и, следовательно, она не в состоянии зафиксировать эти сходства.
Пожалуйста, исправьте меня, если я ошибаюсь. Я хотел бы знать, есть ли какие-либо глубокие нейронные сети, которые захватывают эти сходства и, как оказалось, превосходят функции, созданные вручную. Заранее спасибо.
Я не совсем понимаю, если это то, что вы имеете в виду, но CNN обучаются в конце концов как классификаторы, а функции, которые они изучают, в основном являются побочным продуктом этого. Обычно вы не использовали CNN просто как экстрактор признаков (хотя это возможно). Но, может быть, я вас неправильно понял. – cfh
Да, CNN используются как классификаторы. Есть некоторые предварительно подготовленные модели, такие как Overfeat, Caffe, которые прошли обучение по набору данных imagenet с более чем миллионом изображений по 1000 категориям. Я прочитал, что функции, извлеченные из последних слоев этих сетей, могут использоваться для обучения пользовательских классификаторов (для вашего собственного набора данных), и они оказались выше возможностей ручной работы, когда дело доходит до классификации http: // arxiv. орг/ABS/1403,6382. Могут ли эти функции использоваться для вычисления подобия (по вопросу), или эти модели нужно обучать по-другому? – user3705926
Да, это, безусловно, стоит попробовать.Если у вас есть очень конкретные потребности, например, ваш пример отличия оранжевых/красных рубашек от синих рубашек и т. Д., То вполне возможно, что CNN просто не было необходимости изучать эти специфические особенности, и в этом случае вам нужно было бы лучше тренироваться функции для вашего случая использования. Но это трудно сказать, не пытаясь это сделать. – cfh