Распознавание предупреждающих знаков трафика

В этом примере показано, как распознать предупреждающие знаки трафика, такие как Stop, Do Not Enter и выражение, в последовательности цветных видео.

Смотрите пример распознавания предупреждающих знаков трафика.

Пример модели

Следующий рисунок показывает модель распознавания предупреждающих знаков трафика:

Шаблоны предупреждающих знаков трафика

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

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

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

В окне Detection Templates показаны шаблоны обнаружения предупреждающих знаков трафика.

В окне «Шаблоны распознавания» показаны шаблоны распознавания предупреждающих знаков трафика.

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

Обнаружение

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

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

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

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

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

Отображение

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

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