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


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




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



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


Перед тем, как вызвать процедуру распознавания цифр необходимо заново провести бинаризацию кандидата дорожного знака уже не по цвету, а с помощью адаптивной бинаризации или критерия Отсу для изображения в градациях серого.
Функция распознавания символов включает в себя поиск контуров-кандидатов цифр, а далее можно использовать способ, описанный ранее в блоге
Результат работы алгоритма показан здесь:

  • +1
  • avatar
  • Поделиться

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

0
Я сам часто езжу на авто, и некоторые знаки распознаю с трудом. Виной этому может быть плохая видимость из-за плохих погодных условий, или же потертость некоторых знаков. Бинаризация по белому цвету мне действительно помогла лучше распознавать дорожные знаки на расстоянии. Описанный вами метод работает.
0
Эта тема очень интересна и актуально. Ведь безопасность дорожного движения превыше всего. А система распознавания дорожных знаков до сих пор до конца не отработана. Идею бинаризации по цвету стоит развивать и дальше.
0
В будущем хотелось бы с ее помощью искоренить превышение скорости и тем самым повысить безопатсность движения.
0
Может ещё больше упростит задачу распознавания дорожных знаков ограничения скорости, то обстоятельство, что вторая цифра, это как правило ноль. Хотя я могу ошибаться, так как автомобиля не имею и нередко езжу в качестве пассажира, но знаки с ограничениями 35, 45 км/ч и пр. мне никогда не попадались.
0
Хорошая идея, по поводу ноля
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.