Распознавание предупредительного знака трафика

В этом примере показано, как распознать, что предупредительные знаки трафика, такие как Остановка, Не Входят, и Урожай, в цветной видео последовательности.

См. пример Распознавания Предупредительного знака Трафика.

Модель в качестве примера

Следующий рисунок показывает модель Traffic Warning Sign Recognition:

Шаблоны предупредительного знака трафика

Пример использует два набора шаблонов - один для обнаружения и другого для распознавания.

Чтобы сохранить расчет, шаблоны обнаружения являются низким разрешением, и пример использует один шаблон обнаружения на знак. Кроме того, потому что красные пиксели являются отличительным признаком предупредительных знаков трафика, пример использует эти пиксели на шаге обнаружения.

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

Окно Detection Templates показывает шаблоны обнаружения предупредительного знака трафика.

Окно Recognition Templates показывает шаблоны распознавания предупредительного знака трафика.

Шаблоны были сгенерированы с помощью vipwarningsigns_templates.m и хранились в vipwarningsigns_templates.mat.

Обнаружение

Пример анализирует каждый видеокадр в цветовом пространстве YCbCr. Пороговой обработкой и выполнением морфологических операций на канале Cr, пример извлекает фрагменты видеокадра, которые содержат блобы красных пикселей. Используя блок Blob Analysis, пример находит пиксели и ограничительную рамку для каждого блоба. Пример затем сравнивает блоб с каждым шаблоном обнаружения предупредительного знака. Если блоб похож на какой-либо из шаблонов обнаружения предупредительного знака трафика, это - потенциальный предупредительный знак трафика.

Отслеживание и распознавание

Пример сравнивает ограничительные рамки потенциальных предупредительных знаков трафика в текущем видеокадре с теми в предыдущей системе координат. Затем пример считает количество внешних видов каждого потенциального предупредительного знака трафика.

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

Когда пример распознал знак, он продолжает отслеживать его. Однако, чтобы сохранить расчет, это больше не продолжает распознавать его.

Отображение

После того, как потенциальный знак был обнаружен в 4 или больше видеокадрах, пример использует блок Draw Shape, чтобы чертить желтый прямоугольник вокруг этого. Когда знак был распознан, пример использует блок Insert Text, чтобы написать имя знака на видеопотоке. Пример использует термин 'Тег', чтобы указать на порядок, в котором обнаруживается знак.

Результаты распознавания предупредительного знака трафика