神经网络守卫交通规则
驾驶员违反交通规则(SDA)会对组织造成运营,声誉和法律风险。
以前,对公务车的录像进行了分析,以识别违规情况。这是一个例行且耗时的过程,因为大量视频是手动处理的。决定自动执行此过程,并创建一个模型来检测流量违规,以形成面向风险的视频选择。
首先,我们决定要查找违反交通法规的行为,例如越过双实线和在红色交通信号灯处行驶。
对于图像分割和道路标记检测,使用了U-Net体系结构的卷积神经网络。这种体系结构是一系列卷积和池化层,它们先降低了图像的空间分辨率,然后又提高了分辨率,之前已将图像与数据组合在一起并通过了其他卷积层。
要训练模型,需要训练数据集。不幸的是,所有从开放访问中找到的数据集都包含不是来自俄罗斯的道路照片。在国外道路上对该模型进行训练的结果令人失望:该模型通常只是拒绝将我们的国内道路标记视为标记。因此,决定开始独立创建培训样本。从录像机的视频中截取了大约1500个屏幕截图,并使用Supervise.ly服务在路基上进行了标记(图1)。
在这样的数据集上训练的模型变得能够识别来自记录器的视频中的道路标记。神经网络在视频上找到实线,如果实线至少包含预定数量的像素(以便不考虑随机线,不连续的或非实线的像素),则将它们近似为一条直线,我们的汽车将不再能够穿过该直线。
图2显示了U-Net的工作原理:上图是挡风玻璃上的原始记录,下图是神经网络的示例,其中绿色区域是道路标记遮罩,细红线是线标记的近似值。
该模型在处理来自记录器的大多数视频时表现得非常出色,但应注意的是,在分析积雪的道路或在黑暗中拍摄的视频时会遇到困难-在某些情况下,标记根本不可见。
为了确定交通信号灯和汽车的存在,使用了预训练的神经网络Darknet + Yolo v3。该神经网络是YOLO架构的改进版本,代表“ You Only Look Once”。 YOLO v3的主要特征是它具有三个输出层,每个输出层旨在检测不同大小的对象。
与其他系统相比,该体系结构的主要特征是大多数系统将神经网络多次应用于图像的不同部分,而在YOLO中,神经网络一次又一次地应用于整个图像。网络将图像划分为一种网格,并预测边界框(平行六面体,边界找到的对象)以及每个区域存在这些所需对象的概率。
这种方法的优点是,在查看整个图像时,YOLO在检测和识别对象时会考虑图像的上下文。 YOLO还具有明显的性能优势:它比R-CNN快一千倍,比快速R-CNN快几百倍。
YOLO操作的示例如图3所示。图像分析是逐帧进行的,找到的所有红色交通信号灯均由神经网络正确检测。
训练两个完整的神经网络需要一台足够强大的计算机,尤其是在视频卡方面,因为使用GPU计算。我们使用了第八代Core i7处理器,nvidia gtx1080显卡和32GB RAM。这样的系统特性对于项目实施来说已经足够了。
根据使用模型检测交通违规的结果,可以说这是一个成功的项目。脚本的输入是一个来自自动录像机的视频,历时一个月,总时长为7小时11分钟,模型推断(处理传入视频)的时间为25分钟。在处理所有视频文件结束时,剪切了112个8秒的片段(总共15分钟),其中节省了将近7个小时,很容易发现违规情况。
您可以将问题发送到电子邮件地址。
All Articles