主要内容

交通警告标志识别

这个示例演示了如何在彩色视频序列中识别交通警告标志,如“停止”、“禁止进入”和“屈服”。

看交通警告标志识别的例子

示例模型

下图为交通警示标志识别模型:

交通警告标志模板

该示例使用了两组模板——一组用于检测,另一组用于识别。

为了节省计算,检测模板是低分辨率的,本例中每个符号使用一个检测模板。此外,由于红色像素是交通警告标志的显著特征,本例在检测步骤中使用了这些像素。

对于识别步骤,精度是最高的优先级。因此,本例为每个符号使用了三个高分辨率模板。每个模板显示的标志方向略有不同。此外,由于白色像素是识别每个交通警告标志的关键,本例在识别步骤中使用了这些像素。

交通警示标志检测模板显示在“检测模板”窗口中。

“识别模板”窗口显示交通警示标志的识别模板。

模板是使用vipwarningsigns_templates生成的。M,并存储在vipwarningsigns_templates.mat中。

检测

该示例分析了YCbCr颜色空间中的每一帧视频。通过对Cr通道进行阈值化和形态学操作,该示例提取视频帧中包含红色像素斑点的部分。使用Blob Analysis块,该示例找到每个Blob的像素和边界框。然后,该示例将blob与每个警告标志检测模板进行比较。如果一个blob与任何交通警告标志检测模板相似,则它是一个潜在的交通警告标志。

跟踪和识别

本示例将当前视频帧中潜在交通警告标志的边框与前一帧中的边框进行比较。然后这个例子计算每个潜在的交通警告标志出现的次数。

如果在4个连续的视频帧中检测到一个潜在的标志,该示例将其与交通警告标志识别模板进行比较。如果在3个连续帧中,潜在的交通警示标志与一个交通警示标志识别模板足够相似,则本例将该潜在的交通警示标志视为实际的交通警示标志。

当示例识别了一个符号后,它将继续跟踪它。然而,为了节省计算,它不再继续识别它。

显示

在4个或更多视频帧中检测到潜在信号后,本示例使用Draw Shape块在其周围绘制一个黄色矩形。当标识被识别时,示例使用Insert Text块在视频流上写入标识的名称。该示例使用术语“Tag”来表示检测符号的顺序。

交通警示标志识别结果