Распознавание дорожных знаков (знак ограничения скорости) / Прикладные вопросы распознавания образов / Recog.ru - Распознавание образов для программистов


Распознавание дорожных знаков (знак ограничения скорости)

Распознавание дорожных знаков является достаточно сложной задачей, если рассматривать распознавание в целом. Однако при рассмотрении отдельных типов знаков значительно упрощается. Здесь будет описан алгоритм распознавания знаков ограничения скорости. Для тестов было использовано 2 изображения.

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


Как видим, области белого цвета достаточно хорошо выделились (для этого мы взяли диапазон белого цвета с запасом). После этого используем функцию выделения контуров (OpenCV – cvFindContours) и перебираем контуры-кандидаты, размеры которых примерно подходят для знака (cvBoundingRect). В обоих случаях мы выделили правильные кандидаты (были и ложные, но они были отброшены после распознавания цифр и здесь не приводятся).


Перед тем, как вызвать процедуру распознавания цифр необходимо заново провести бинаризацию кандидата дорожного знака уже не по цвету, а с помощью адаптивной бинаризации или критерия Отсу для изображения в градациях серого.
Функция распознавания символов включает в себя поиск контуров-кандидатов цифр, а далее можно использовать способ, описанный здесь http://recog.ru/blog/ocr/9.html.
Результат работы алгоритма показан здесь:
  • 0
  • 18 июня 2012, 14:46
  • vidikon

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.