OpenCV: Как определить / определить, есть ли у меня необходимый объект на фотографии или нет?

Как я могу определить / определить, есть ли у меня необходимый объект на фотографии или нет?

Мне не нужно распознавать класс объекта, но мне нужно знать, есть ли у меня точно такой же объект, как на картинке шаблона.

До сих пор я пытался использовать сопоставление с шаблоном, сопоставление гистограммы и SIFT-подобные методы, но ни один из этих методов не обладает требуемым уровнем точности.

Кто-нибудь может предложить точный метод?

UPD

Размер БД в выпуске - 5.000-10.000 уникальных объектов

Доступен обучающий набор данных - 50 предметов.

3 ответа

Если вас интересует только этот объект (или небольшое количество объектов), вы можете обучить классификатор - например, V&J (каскадный классификатор) или попробовать подход с пакетом слов.

Вы можете прочитать о каскадном классификаторе здесь: http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html

Теоретическое обоснование мешка слов: http://gilscvblog.wordpress.com/2013/08/23/bag-of-words-models-for-visual-categorization/

И реализация openCV мешка слов: http://docs.opencv.org/modules/features2d/doc/object_categorization.html

  1. Я думаю, что если вам нужна высокая точность, одного метода недостаточно. Вам придется использовать комбинацию методов. Как вы пробовали сопоставление с шаблоном, сопоставление гистограммы и SIFT-подобные методы по отдельности Но если вы попробуете разумную комбинацию из них, это может помочь.

  2. Помимо этого вы можете попробовать подход машинного обучения. Обычно говорят, что он более устойчив

  3. Классификаторы могут быть одним из решений также

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

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

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

Другие вопросы по тегам