计算机系统应用  2022, Vol. 31 Issue (12): 120-126   PDF    
基于图像处理的交通事故检测及责任判定
王艺博, 崔华     
长安大学 信息工程学院, 西安 710064
摘要:为了在发生轻微交通事故时, 快速使事故车辆驶离现场, 保证道路畅通, 提出了一种车辆碰撞检测及责任判定模型. 首先结合SSD目标检测算法(single shot multibox detector)和MobileNet轻量级深度网络模型, 对其进行改进以获取每一帧视频图像中运动目标的位置和大小信息, 实现对车辆识别与检测. 其次, 利用卡尔曼滤波器对连续图像帧之间的运动目标建立对应匹配关系, 预测目标的运动状态, 对目标的位置及运动趋势做出判断, 实现车辆轨迹跟踪. 随后通过车辆目标检测框的交并比判断是否发生碰撞. 最后针对直行道路中车辆的速度、方向信息结合道路安全条例及机动车事故快速方法对事故车辆进行责任判定. 结果分析表明, 该研究可实现直行道路场景下的追尾及变道引发的车辆碰撞检测及责任判定.
关键词: SSD模型    MobileNet网络    目标跟踪    车辆碰撞检测    责任判定    
Traffic Accident Detection and Liability Determination Based on Image Processing
WANG Yi-Bo, CUI Hua     
School of Information Engineering, Chang’an University, Xi’an 710064, China
Abstract: In order to quickly drive accident vehicles away from the scene and ensure a clear road during a minor traffic accident, this study proposes a vehicle collision detection and liability determination model. First, the study combines the SSD (single shot multibox detector) target detection algorithm and the MobileNet lightweight deep network model to make improvements and obtain the position and size information of the moving target in each frame of video images, so as to identify and detect the vehicle. Secondly, the study employs a Kalman filter to establish a corresponding matching relationship between moving targets in consecutive image frames, predict their motion states, and judge their positions and motion trend, in a bid to track the vehicle. Then, the study determines whether there is a collision by the intersection over union of the vehicle target detection frame. Finally, according to the speed and direction information of the vehicle on a straight road, the liability of the accident vehicle is determined under the road safety regulations and the fast method of motor vehicle accidents. The results show that the research can help to detect and determine the liability during vehicle collisions caused by rear-end collisions and lane changes on straight roads.
Key words: single shot multibox detector (SSD) model     MobileNet network     target tracking     vehicle collision detection     liability determination    

交通事故是当前驾车出行不可忽视的隐患之一. 交通事故处理不当会导致严重的交通拥堵, 严重增加了人们出行所消耗的时间, 交通治理面临着巨大挑战[1]. 而大多数交通事故只是轻微的碰撞, 不涉及人员伤亡, 仅对双方造成轻微的财产损失. 轻微事故大多发生在城市道路中, 处理这类事故往往需要快速理赔流程, 但是有些司机在事故发生后不按规定撤离现场, 事故双方在马路上理论, 造成车道后方车辆因事故车辆占道引发的拥堵, 给后方车辆造成了很大麻烦. 因此实现快速交通事故检测及责任判定是非常有必要的. 传统的交通事故识别是在全天候采集的视频数据中查找的, 庞大的数据量给人工读取视频信息带来了诸多不便[2]. 如果能够利用计算机视觉技术快速检测交通事故并对事故双方的责任进行划分, 使事故双方快速驶离现场, 有助于保持道路畅通, 防止发生二次事故.

目前, 交通事件检测技术例如模式识别、神经网络、支持向量机等[3-5]都在该领域取得了不同程度的成果. Kisa等人[6]通过对连续的图像序列进行相减操作, 提取出动态车辆之间的相对速度以及距离等信息, 最后通过计算碰撞时间, 对车辆碰撞事件进行检测. Isaloo等人[7]提出了基于车辆运动轨迹的交通事故检测模型, 通过对十字路口处车辆的正常运动轨迹和异常运动轨迹进行学习, 从而对交通事故进行检测. 拜佩等人[8]利用计算机视觉对视频中车辆的运动状态进行分析, 然后分析运动信息判断两个目标物体是否有重叠区域, 从而对车辆碰撞事件进行检测. 上述方法都在一定程度上实现了交通事故的检测, 但只是实现了交通事故检测, 不涉及后续的快速理赔环节, 无法细致到事故车辆责任判定. 并未解决事故车辆快速撤离现场, 无法达到交通拥堵治理的目的. 综上, 本文设计出了一种结合轻量级检测算法SSD和目标分类网络MobileNet的车辆检测模型. 通过车辆行为分析及场景检测方法证明了该模型在快速检测事故及责任判定的可行性.

1 需求分析及系统流程 1.1 需求分析

本文所研究的内容来源于项目《交通视频大数据的深度分析及其在拥堵治理中的综合应用》. 项目提出从道路口交通流量计算, 交通事故自动检测与判责, 违停车辆实时检测和公交车的上下车人数统计4个子系统进行视频数据分析, 输出交通状态参数到控制系统, 用于信号灯控制、事件报警或公交线路优化调控等, 达到综合治理拥堵的目的. 本文是对道路上发生的事故进行检测及责任判定, 使事故车辆快速驶离现场, 如果没有及时清理事故车辆造成交通堵塞, 每年会带来约300亿元的工人时间价值损失和燃料消耗损失[9]. 本文提出一种采用视频图像处理为核心方法, 针对视频监控获得的车辆信息做进一步的数据分析, 快速提取车辆在道路中的行为信息, 如速度运动方向等, 对交通事故进行检测并在后续进行责任判定. 为后续快速理赔流程提供建议, 快速处理事故, 预防交通拥堵, 降低二次事故带来的经济损失.

1.2 系统设计流程

车辆碰撞检测及责任判定系统流程如图1所示. 首先采用MobileNet轻量级网络结合SSD算法, 形成检测速度快、精度高的SSD-MobileNet模型, 实现车辆目标识别与检测. 随后借助卡尔曼滤波器的目标预测和特征匹配功能获取车辆的运动状态信息, 实现车辆跟踪, 并通过相机标定实现像素坐标到世界坐标的转换, 计算车辆在一定时间内位移得到车辆速度, 接着分析车辆发生碰撞产生的矩形框和矩形框交并比的关系, 对视频中是否发生交通事故做出判断. 最后对车辆发生事故的场景及在该场景中的行为进行分析, 根据《中华人民共和国道路安全法实施条例》及《机动车事故快速处理办法》对发生事故进行分类与责任判定.

图 1 碰撞检测识别及判责系统总流程

2 车辆目标检测算法 2.1 车辆目标检测

SSD目标检测模型是使用单阶段的目标检测方法的多框预测模型. 由于目标检测中图像中的目标有简单的有复杂的, SSD目标检测模型采用不同尺度的特征图产生不同尺度预测的方法, 有效地提高了检测精度[10].

MobileNet是一种轻量级网络, 具有体积小, 计算量少, 精度高的特点, 应用到目标分类及目标检测中可以大大减少计算量和模型参数. 因此使用MobileNet网络可以实现低延迟、高精度的检测效果[11].

在SSD网络框架上使用轻量级卷积神经网络MobileNet, 代替SSD框架的基础网络VGG16, 并将MobileNet网络中的全连接层和Softmax层去掉, 接着在Conv13后增加8个卷积层, 为提高网络训练的收敛速度, 防止过拟合现象, 在每个卷积层后添加BN层和ReLU层. 得到的SSD-MobileNet模型可以完成视频图像的特征提取工作[12]. 其结构模型如图2所示.

图 2 SSD-MobileNet网络结构模型

SSD-MobileNet网络模型利用Conv11、Conv13、Conv14_2、Conv15_2、Conv16_2、Conv17_2六个卷积层进行目标检测, 在进行特征提取的过程中采用特征金字塔获取这6个卷积层的特征信息, 进行多尺度多目标的目标检测. SSD-MobileNet模型将输入的图像大小归一化为300×300, 通过卷积和池化的操作, 进行目标的分类和候选框的回归.

2.2 coco数据集识别视频中的车辆

识别车辆目标时使用coco数据集, coco数据集是微软标注的一款数据集, 具有权威性, 是一个丰富的物体检测、分割和字母数据集[13]. 通过网络模型对coco数据集中的车辆进行训练, 对日常生活中监控视频中最常发生事故的车辆进行标注, 分类为轿车和卡车, 训练过程中采用图像数据归一化的方法来加速训练网络的收敛性, 可以通过归一化操作加快学习速度. 使用SSD-MobileNet模型对数据集中的轿车和卡车进行检测识别, 其中, 轿车的检测精确度为98.1%, 卡车的检测精确度为97.5%. 针对视频车辆的检测结果如图3.

图 3 车辆目标检测结果

3 基于卡尔曼滤波器的车辆跟踪

使用SSD-MobileNet模型可以检测到视频中车辆在每一帧中的位置和大小等信息, 要获得目标车辆更多的动态信息, 就需要对车辆进行目标跟踪. 在进行目标跟踪模块中, 采用基于卡尔曼滤波器设计了车辆目标跟踪模型[14].

首先创建卡尔曼滤波器运动模型, 在第一次滤波时, 对被跟踪车辆、目标检测框进行参数初始化操作. 后将检测到的运动目标初始特征值作为初始观测向量输入滤波器, 进行目标预测. 滤波器可以根据视频中相邻两帧图像间的时间间隔来确定过程矩阵中的时间参数, 并根据过程矩阵和状态向量带入卡尔曼滤波器预测过程的公式:

$ \hat X_k = F_k \times \hat X_{k - 1} + B_k \times {{\overset{\rightharpoonup} U}_{k}}$

其中, $ \hat X_{k - 1} $ 表示上一时刻的预测值, $ F_k $ $ B_k $ 分别表示状态转移矩阵和控制矩阵, $ {{\overset{\rightharpoonup} U}_{k}} $ 表示控制量. 计算当前运动目标的预测状态, 最后将计算出的数据代入公式:

$ P_k = F_k \times P_{k - 1} \times {F_k^T} + Q_k $

其中, $ P_{k - 1} $ 表示先验方差, $ Q_k $ 表示过程噪声协方差. 进行误差协方差进行预测. 在图像帧中建立各个运动目标的特征信息的匹配关系, 当相邻帧目标特征识别匹配成功后, 可以获得修正后的系统模型的状态向量, 并利用当前帧中运动目标的特征信息更新下一帧的匹配模型, 重复执行此操作即可保证目标跟踪持续进行, 进而实现对运动目标位置的判断和运动趋势的预测, 实现车辆目标跟踪. 车辆跟踪的结果如图4.

图 4 车辆跟踪结果

4 车辆碰撞检测算法 4.1 车辆速度检测

车辆速度检测是车辆很重要的信息, 通过速度检测可以得知车辆是否存在超速等行为. 对输入视频的车辆进行测速, 需要根据视频中车辆发生的位移, 通过摄像机标定建立图像像素坐标与空间对应点的世界坐标的映射关系, 求出车辆实际的位移.

通过矩形框横纵坐标 $ U_1, U_2, V_1, V_2 $ 进行加减运算得到矩形框中心点的坐标 $(G_U, G_V)$ , 即:

$ G_U = U_1 + (U_1 - U_2)/2 $
$ G_V = V_1 + (V_1 - V_2)/2 $

随后进行坐标变换, 从像素坐标到相机坐标进行内参变换:

$ P_{{\rm{camera}}}(3 \times 1) = T_{{\rm{camera}}}^{{{\rm{pixel}}^{ - 1}}}(3 \times 3) \times P_{{\rm{pixel}}}(3 \times 1) \times depth $

其中, $ P_{{\rm{pixel}}} $ 表示像素坐标, $ P_{{\rm{camera}}} $ 表示相机坐标, $ T_{{\rm{camera}}}^{{{\rm{pixel}}^{ - 1}}} $ 表示像素坐标到相机坐标的偏移向量. 然后进行相机坐标到世界坐标变换, 使用外参变换:

$ P_{{\rm{world}}}(4 \times 1) = T_{{\rm{world}}}^{{{\rm{camera}}^{ - 1}}}(4 \times 4) \times P_{{\rm{camera}}}(4 \times 1) $

其中, $ P_{{\rm{world}}} $ 表示世界坐标, $ T_{{\rm{world}}}^{{{\rm{camera}}^{ - 1}}} $ 表示相机坐标到世界坐标的偏移向量. 坐标变换的过程矩阵为:

$ S\left( {\begin{array}{*{20}{c}} {G_U} \\ {G_V} \\ 1 \end{array}} \right) = \left( {\begin{array}{*{20}{c}} {f_x}&0&{c_y} \\ 0&{f_y}&{c_y} \\ 0&0&1 \end{array}} \right)\left( {\begin{array}{*{20}{c}} {r_{11}}&{r_{12}}&{r_{13}}&{t_1} \\ {r_{21}}&{r_{22}}&{r_{23}}&{t_2} \\ {r_{31}}&{r_{32}}&{r_{33}}&{t_3} \end{array}} \right)\left( {\begin{array}{*{20}{c}} X \\ Y \\ Z \\ 1 \end{array}} \right) $

右侧第1个矩阵为相机内参数矩阵, 第2个矩阵为相机外参数矩阵. 因为变换坐标后车辆在 $ Z $ 轴平面行驶, 因此只需要考虑 $ X $ 以及 $ Y $ 坐标即可. 坐标转换结果如图5所示, 输入的车辆中心坐标的图像坐标 $ (G_U, G_V) $ $ (572, 379) $ , 经过上述公式计算得到转换后的实际坐标 $ (x, y) $ $ (888, 446) $ .

图 5 坐标转换结果

计算车辆速度采用帧差法[15], 通过计算视频10帧 $ P_{10} $ 车辆前后矩形框中心坐标的实际变化值 $ S $ 作为位移, $ (X_1, Y_1) $ , $ (X_2, Y_2) $ 为10帧前后车辆的坐标, 将视频10帧除以视频的fps值得到这10帧所需的时间 $ T $ , 即:

$ S = \sqrt {{{(X_2 - X_1)}^2} + {{(Y_2 - Y_1)}^2}} $
$ T = P_{10}/{\textit{fps}} $
$ V = S/T $

图6所示, 视频 $\;{\textit{fps}} = 26.03$ , 则当前10帧所需要的时间:

$ T = 10/26.03 = 0.384 $

车辆1位移为3.72, 速度为:

$ V = 3.72/0.384 = 9.68 $

车辆2位移为7.04, 速度为:

$ V = 1.04/0.384 = 18.33 $
图 6 车辆速度检测结果

4.2 车辆碰撞检测

通过所述方法实现了对车辆目标检测以及跟踪, 得到了运动车辆的目标检测框、位置、轨迹及速度等信息. 后续进行车辆碰撞检测, 提出了一种基于车辆目标检测矩形框交并比的方法来检测车辆碰撞.

在发生车辆碰撞时, 会产生矩形框的交叠, 因而在发生碰撞时两辆车的交并比会增大, 通过观察分析发生碰撞时两矩形框的交叠部分, 当两辆车的矩形框交并比 $ IOU $ 小于0.05时, 可能是两辆车发生遮挡的情况, 实际没有发生碰撞. 当交并比大于0.4时, 会产生目标丢失的现象, 属于严重的交通事故, 不在本文所研究的范围中. 所以本文把矩形框交并比的阈值设置为 $ (0.05, 0.4) $ , 即满足:

$ 0.05 < IOU = S_{12}/(S_1 + S_2 - S_{12}) < 0.4 $

则认定两辆车发生了碰撞. $ S_{12} $ 为两矩形框的交集, $ S_1 + S_2 - S_{12} $ 为两矩形框的并集. 在追尾事故中检测到 $S_1$ 为23754, $S_2$ 为31860, $ S_{12} $ 为6400, 代入式中得到:

$ IOU = 6400/(23754 + 31800 - 6400) = 0.131 $

0.131在所设定的阈值范围内, 可以判断发生了碰撞. 同样的可以得到变道事故中辆车辆的 $ IOU $ 为0.068. 检测结果如图7所示.

图 7 车辆碰撞检测结果

4.3 车道线检测

通过对车道线进行识别检测, 可以将违规变道的车辆分辨出来方便后续责任判定. 首先对图像进行预处理, 将图片转换为灰度图, 当图像是灰度时, 这两种线的对比度非常高, 并且可以对图片进行降噪处理, 结合高斯模糊技术实现突出图像中的车道线条. 最后应用霍夫变换来识别图像中的点来找到车道线[16], 将用轴 $ (x, y) $ 表示的系统转换成轴为 $ (m, b) $ 的参数系统, 在该平面中更容易识别到经过同一点的直线, 在提取出线条后给线条上色, 如图8所示, 红色和黄色的点组成车道线.

图 8 车道线检测结果

5 车辆行为及事故责任分析 5.1 车辆行为分析

根据直行道路上发生的直行追尾及违规变道的行为进行分析. 在输入发生交通事故的视频后, 为了自动区分是直行追尾还是违规变道导致的事故, 首先针对违规变道引起的交通事故, 通过第4.3节中车道线检测, 当车辆发生左右方向的偏移时, 识别车辆中心坐标是否与车道线重合, 如果车道线不明显时比较事故两辆车行驶过程中的左右偏移量 $ dx $ , 通过上述研究可以得知车辆是否发生变道行为. 因此在输入视频后先进行变道车辆的检测, 如果没有违规变道事件再进行车辆速度比较. 首先计算:

$ loc_1 = loc_2 $

其中, $ loc_1 $ 为变道车辆坐标, $ loc_2 $ 为车道线与变道车辆交点坐标, 随后进行偏移计算:

$ dx_1 > dx_2 $

其中, $ dx_1 $ , $ dx_2 $ 分别为事故车辆的左右偏移, 满足上式即为车辆1负主要责任; 如果不满足前面两式, 考虑直行追尾事故, 进行两车速度比较, 后车速度只有大于前车才有可能发生追尾事故满足:

$ V_1 > V_2 $

表示车辆1速度大于车辆2, 承担主要责任, 否则车辆2承担主要责任.

5.2 事故责任分析

依照《中华人民共和国道路安全法实施条例》和《机动车事故快速处理办法》对直行道路上的追尾和违规变道引起的交通事故进行检测和责任判定. 供事故双方进行参考, 方便将事故车辆驶离现场, 为后续快速理赔流程提供依据. 在输入一段有交通事故发生的视频时, 分析碰撞前视频中车辆的行为, 图9为直行追尾和违规变道导致的事故的责任判定结果. 图9(a)没有涉及变道, 因此需要分析两辆车的速度. 通过车辆速度检测公式可以得知:

$ V_1=25.58 > 0.69=V_2 $
图 9 交通事故责任判定结果

因此车辆1违反《道路安全条例》第四十三条第(一)项“同车道行驶的机动车, 后车应当与前车保持足以采取紧急制动措施的安全距离”. 车辆1并未遵守条例导致发生事故, 因此该事件应为车辆1负主要责任.

图9(b)车辆1与车辆2发生碰撞前存在变道行为, 检测结果显示:

$ loc_1=loc_2=(831, 527) $

即车辆1与车道线有交点, 同时:

$ dx_1=3.35 > 0.50=dx_2 $

结合上述两式, 可以判断车辆1存在违规变道行为导致两车相撞, 依据《道路安全条例》第四十四条“在道路同方向划有2条以上机动车道的, 变更车道的机动车不得影响相关车道内行驶的机动车的正常行驶. ” 因此在该事件中判定为车辆1承担主要责任.

6 结论

本文设计的基于图像处理的车辆碰撞检测及责任判定系统, 采用的SSD算法结合MobileNet模型可以快速实现车辆检测, 通过车辆跟踪与碰撞检测算法实现了直行道路中车辆事故检测, 最后通过法律条例完成了对事故车辆的责任判定. 该系统可以快速完成直道上的事故检测及责任判定, 可以在30 s内完成责任判定, 由于交通事故视频难以获取, 本系统在对56起追尾和变道事件的责任判定中正确率达到了89.2%. 如表1所示, 从实验结果来看, 本系统对于车辆事故的责任判定有着较高的准确率同时又有着较快的响应速度, 对于轻微交通事故快速理赔及缓解交通拥堵有一定帮助.

表 1 直行追尾及违规变道事故检测及判责系统结果分析

参考文献
[1]
谭跃. 2016年全国机动车和驾驶人保持快速增长. 道路交通管理, 2017(2): 7.
[2]
徐子豪, 黄伟泉, 王胤. 基于深度学习的监控视频中多类别车辆检测. 计算机应用, 2019, 39(3): 700-705. DOI:10.11772/j.issn.1001-9081.2018071587
[3]
Cheu RL, Srinivasan D, Teh ET. Support vector machine models for freeway incident detection. Proceedings of the 2003 IEEE International Conference on Intelligent Transportation Systems. Shanghai: IEEE, 2003. 238–243.
[4]
Chen SY, Wang W. Decision tree learning for freeway automatic incident detection. Expert Systems with Applications, 2009, 36(2): 4101-4105.
[5]
Dia H, Rose G. Development and evaluation of neural network freeway incident detection models using field data. Transportation Research Part C: Emerging Technologies, 1997, 5(5): 313-331.
[6]
Kisa M, Botsali FM. A real-time computer vision system for vehicle tracking and collision detection. World Academy of Science, Engineering and Technology International Journal of Computer and Information Engineering, 2012, 6(8): 943-945.
[7]
Isaloo M, Azimifar Z. Anomaly detection on traffic videos based on trajectory simplification. Proceedings of the 8th Iranian Conference on Machine Vision and Image Processing. Zanjan: IEEE, 2013. 200–203.
[8]
拜佩, 李金屏. 一种基于视频的交通事故检测方法. 济南大学学报(自然科学版), 2012, 26(3): 282-286.
[9]
赵晓娟. 基于多源数据的快速路交通事件自动检测算法研究[硕士学位论文]. 北京: 北京工业大学, 2010, 1-4.
[10]
Liu W, Anguelov D, Erhan D, et al. SSD: Single shot MultiBox detector. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 21–37.
[11]
Howard AG, Zhu ML, Chen B, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv:1704.04861, 2017.
[12]
刘颜, 朱志宇, 张冰. 基于SSD-MobileNet模型的目标检测. 舰船电子工程, 2019, 39(10): 52-56. DOI:10.3969/j.issn.1672-9730.2019.10.012
[13]
Lin TY, Maire M, Belongie S, et al. Microsoft COCO: Common objects in context. Proceedings of the European Conference on Computer Vision. Zurich: Springer, 2014. 740–755.
[14]
王建东, 王亚飞, 张晶. 基于卡尔曼滤波器的运动目标跟踪算法. 数字通信, 2009, 36(6): 53-57. DOI:10.3969/j.issn.1005-3824.2009.06.014
[15]
刘青芳. 基于帧差法的运动目标检测方法研究. 数字通信世界, 2015(11): 54, 120. DOI:10.3969/j.issn.1672-7274.2015.11.044
[16]
唐佳林, 王镇波, 张鑫鑫. 基于霍夫变换的直线检测技术. 科技信息, 2011(14): 33, 35.