2015-01-29 9 views
4

я кодирование программного обеспечения (для моих исследований) для распознавания дорожных знаков с IP-Camera.For момента, я должен признать, дорожные знаки, как это: enter image description hereOpenCV распознавания дорожных знаков

В моем коде, Я делаю большое преобразование, чтобы изолировать свой дорожный знак с помощью маски.

Затем я сравниваю SURF (с измененным образцом документации OpenCV SURF) изображения сцены с несколькими изображениями различных дорожных знаков (30,50,70,90).

Я даю вам пример моей ссылки на объект: http://www.noelshack.com/2015-05-1422561271-object-exemple.jpg

Мои вопросы:

  • ли мой «способ сделать» это правильно? Является ли SURF действительно адаптированным здесь, потому что кажется, что он использует много ресурсов.

  • У меня есть ложные срабатывания (когда я сравниваю 30 в объекте с 50 в сцене, например), как его уменьшить?

+0

Просто интересно было ли вы найти хорошее решение? –

+0

Я использовал HAAR-подобные функции и BoW-модель, и у меня были довольно хорошие результаты :) https://github.com/Lemick/SAET –

ответ

4

Да, это задача, которую вы обычно ожидаете работать с методом SURF. Если два признака похожи, вы ожидаете, что их функции SURF будут в основном совпадать.

Однако, это не единственный метод, который может работать. Вы также можете попробовать использовать SIFT или FAST. Они могут уменьшить количество ваших ложных срабатываний. Вы также можете попытаться сыграть с параметрами соответствия параметров SURF, например, как вы сравниваете функции и пороговые значения для принятия соответствия. Например, в некоторых случаях знак 30 км может соответствовать как знакам 30 км, так и 50 км. Затем вам нужно будет найти другие критерии для их разделения, такие как количество согласованных функций или процент изображений в помеченном наборе, который соответствует знаку.

Если вы все еще получаете неудовлетворительные результаты, я бы предложил попробовать с каскадом метода классификации с функциями HOG для обнаружения чисел типа «3», «5», «7» и т. Д. Вам нужно будет тренироваться ваш классификатор с набором обрезанных номеров в ваших помеченных знаках и используйте каскад классификатора для обнаружения этих чисел в тестовых изображениях. Cascade of classifiers также реализован в OpenCV.

+0

Спасибо, что мне очень помогает, я тестирую FAST и много ускоритель, вы думаете, что я могу получить хороший результат, если рассчитать скорость «хорошего знака», если я сравню свой объектный образ 50 фактической сцены ведьмы? –

+0

Я тестирую FAST, но это не соответствует хорошим вещам ... http://image.noelshack.com/fichiers/2015/05/1422606142-testfast.jpg –

+0

Если большинство ваших результатов похожи на этот пример, Я ожидаю, что каскад классификатора будет работать лучше. Я имею в виду обрезку ключевой функции (например, «5») и попытаюсь обнаружить ее на тестовых изображениях с помощью функции detectMultiScale в каскаде классификаторов. –

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

  • Нет связанных вопросов^_^