基于SSD算法的列车人脸检测智能应用
2021-05-06刘文平薛宏佺付茂闯
刘文平 薛宏佺 付茂闯
1.中车南京浦镇车辆有限公司 江苏 南京 210031
2.四川锐明智通科技有限公司 四川 成都 610213
随着中国铁路的高速发展,铁路运输已经成为中国运输业不可或缺的一部分,在2019年全国铁路旅客运输量达到了36.6亿人次。铁路运输环境复杂,人员流动性大等问题对铁路管理部门提出了极大的挑战[1]。视频监控系统可从安全运营的角度缓解当前存在的问题。视频监控系统通常采用人工的方式来查看和处理视频信息,存在着工作效率低,人工成本高,实时性低等问题。因此需要考虑采用智能视频分析系统来对视频信息进行实时分析,实时预警,提升列车运营安全性。
人脸检测技术在近年来得到了深入的发展与广泛的应用,但传统的人脸检测方法难以满足各个场景下人脸检测的速度与精度。深度学习在特征提取上具有其特有的优势且结合了特征分类的功能,卷积神经网络是图像识别领域中深度学习的主要代表[2]。当前基于卷积神经网络的人脸检测算法主要包括Faster R-CNN算法,YOLO算法和SSD算法,其中SSD算法结合了YOLO算法的快速性和Faster R-CNN算法窗口预测的精准性[3]。因此本文主要采用SSD算法进行人脸检测,首先介绍了SSD算法的基本原理,然后基于SSD算法从司机状态识别和乘客信息识别两个方面来应用于列车视频监控系统。
1 视频分析技术
1.1 卷积神经网络
深度学习是采用多层次结构,通过整体的方式完成特征学习,特征抽象和模型学习等步骤。卷积神经网络是最常用的一种深度学习方法,主要由输入层,卷积层,激活层,池化层和输出层等按照一定顺序堆叠而成[4]。
输入层将图像像素点转换为计算机能识别的三维矩阵,作为神经网络后续处理的原始数据。
卷积层是特征信息提取的整个卷积神经网络的核心层。卷积层通过采用卷积核对图像局部区域提取特征,不同卷积层有不同的权值参数,在每层卷积中通过滑动窗口的方式依次将卷积核与和卷积核相同大小的局部图像作卷积,通过反向传播算法调整偏置卷积核参数,并将上一层结果作为下一层卷积的输入。
激活层用于进行非线性分析。卷积对每个像素点分配一定的权重系数,属于线性模型,仅适用于线性分析,当需要进行非线性分析时,需要引入非线性的激活函数。卷积神经网络常用的激活函数为ReLU函数,其是将响应大于0的结果保留,将相应小于0的结果设为0,公式为:
池化层主要有三个方面的作用,保持特征不变性,特征降维,减小过拟合现象。池化对特征数据进行降维处理,目前应用最广的有最大池化和均值池化,最大池化是保留卷积特征层中最大值,均值池化为保留卷积特征层中平均值。池化压缩了特征数据量,但是保留了不同区域间的特征关系,同时减小了数据信息达到防止过拟合的现象。
1.2 SSD算法
SSD算法是一种基于YOLO算法和Faster R-CNN算法提出的端到端的目标图像检测算法,优点是结合了YOLO算法的检测速度和Faster R-CNN算法的检测精度。SSD算法基础网络采用VGG-16网络,并在其基础上增加了4个卷积层,如图1所示[5]。SSD分别分析每一层卷积网络中的特征信息,通过非极大值抑制输出结果回归输出。
图1 SSD算法框架[5]
(1)默认框生成
SSD算法基于anchor理念采用默认框机制,通过生成大小和尺度不一样的默认框将图像中目标完全覆盖。默认框的尺度大小,高宽比,位置是需要注意设计的影响预测精度的参数。第k层特征层对应的尺寸大小计算公式为:
其中,为特征图个数,本文设置为6。是默认框相对于与原图大小比例,和分别为该比例所取的最大值与最小值。第1层Conv4_3尺寸设置为0.1,第2至第6层的尺寸可得到分别为0.2,0.375,0.55,0.725,0.9。
默认框的高度和宽度计算公式为:
(2)先验框匹配
默认框形成后需要进行一定的筛选,去除无意义的候选框,避免出现冗余计算的情况。采用IOU方法筛选候选框,IOU是计算检测边框与实际边框交集与并集的比值,公式可表示为:
(3)损失函数设计
采用多任务损失函数进行判断置信度以及位置回归,将两者加权求和,计算公式可表示为:
其中,x为匹配成功的先验框,c为置信度预测值,l为预测框,g为标注框,N为先验框数量,为权重因子,Lconf为置信度损失,Lloc为位置损失。
(4)非极大值抑制
非极大值抑制算法在SSD算法中对于筛选合适的候选框异常重要,可避免仅采用IOU方法时出现的漏检或重复检测。非极大值抑制算法是对通过分类器进行类别判断时得到的类别概率值进行排序,首先找出其中的最大概率值,同时设置好判别阈值,计算所有检测框与最大概率值之间的IOU,删掉其中IOU大于阈值的重叠率高的检测框。再对未删的检测框进行重新排序,重复上述过程,处理完所有检测框后,输出结果。
1.3 视频分析架构
视频分析架构主要可分为前端分析与后端分析[6],前端分析将视频分析模块内嵌在前端设备中,前端设备将分析结果数据传输至中心节点,是较为常用的视频智能分析方式。这种分析方式可有效减少带宽资源以及处理能力的限制,本文主要采用前端分析方式。
后端分析将采集到的视频传输至后端或关键节点处做视频分析处理,摄像机仅提供视频采集功能。后端分析方式对视频数据做统一处理与分析,处理灵活性强。但视频分析计算复杂度和计算量较大,因此对与后端处理性能和带宽要求较高。
2 智能应用
得益于SSD算法在人脸检测中的快速性和精准性,视频监控系统可以实现更多的智能应用,本节主要研究基于SSD算法的人脸检测在司机状态识别和乘客信息识别两个场景下的智能应用。
2.1 司机驾驶状态监测
列车司机疲劳驾驶是造成列车运营安全事故的主要原因之一,当前列车视频监控系统中对于列车司机驾驶状态的监测还比较薄弱,因此对司机的状态监测的研究与应用就尤为重要。司机驾驶列车是相对枯燥的过程,在运行过程中可能会发生司机疲劳闭眼,分心等影响驾驶安全的行为[7]。采用人脸检测技术实时监测司机驾驶状态,当检测到异常情况后可向司机和管理人员发出主动提醒,避免由于司机异常驾驶行为造成的安全事故。
图2 人脸监测流程
司机驾驶状态监测实现流程如图2所示。首先由前端摄像机采集司机面部视频信息。前端设备通过SSD算法检测人脸,提取人脸特征,识别人脸位置及大小。然后进行人脸跟踪,跟踪人脸所处位置。最后进行人脸对齐,即识别出人脸上关键点,根据关键点识别司机状态,识别司机疲劳驾驶,分心驾驶等影响列车安全运营的行为。若检测到发生违规行为,通过前端设备对司机发出语音提醒。人脸检测算法实现效果如图3所示,涉及隐私部分打码处理。分别对闭眼疲劳和分心驾驶这两种影响安全运营的行为进行了100次试验,两种行为的识别准确率如表1所示,识别率都达到了95%以上。驾驶状态监测应用于列车司机监控可很好的避免由于司机注意不集中而导致的交通安全事故。
图3 人脸检测效果
表1 司机疲劳驾驶和分心驾驶识别率
2.2 乘客信息识别
针对于铁路运营中可能存在的逃票、买短乘长等问题。采用人脸识别技术自动检测与识别面部信息,联动客票数据库判断车上人员是否为该车乘客,以及是否按照区间乘车。视频监控系统识别出异常后发出报警信息提示工作人员处理,避免出现逃票、买短乘长等扰乱列车运营管理的行为。效果如图4所示,采用乘客信息识别可提升铁路部门运营管理效率。
图4 乘客信息识别效果
3 结论
针对现有传统列车视频监控系统效率低,人工成本高,时效性差等问题,本文介绍了卷积神经网络和SSD算法的基本原理及结构,研究了应用基于SSD算法的人脸检测在列车视频监控系统中的智能应用,主要结论如下:
(1)在司机驾驶状态的识别中,人脸检测识别疲劳驾驶和分心驾驶的准确率达到90%以上;在乘客信息识别中,技术方案可有效比对乘客信息,智能应用效果良好。
(2)铁路部门推行智能视频监控系统,将被动监控变为主动监控,可有效提升运营安全性及管理高效性。