杨 栋,李 超,吴兴华,王椿钧,唐 雯
(1.中国铁道科学研究院 研究生部,北京 100081; 2.中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)
铁路旅客运输安全检查主要依托安检仪检测旅客行李并成像,值机人员根据图像颜色及形状判断查堵禁限物品。目前铁路客运安检物防和技防措施相对较少,仍采用传统的人工判图方式,时有发生漏查漏检事件[1]。因此,迫切需要基于机器视觉、深度学习等智能识别技术,并结合铁路车站现场情况,研究铁路安检辅助分析装置,辅助安检判图作业[2-3]。
铁路安检辅助分析装置相关研究较少,现有研究主要围绕禁限物品识别算法。文献[4]基于Faster-RCNN、RetinaNet等主流目标检测算法针对手枪检测进行研究,实验环境为GTX1080TI显卡,未分析算法的检测速度和资源消耗。文献[5]以Yolo-V3为基线算法,通过引入复合骨干网络、特征增强模块改进算法,提高了检测精度,在2张RTX2080TI的环境下,检测速度达到40(FPS/s)。文献[6]以Yolo-V3为基线算法,通过引入密集连接,改进损失函数的方法进行优化,提高了检测精度,检测速度低于10 FPS。上述研究主要关注识别精度的提升,缺乏对模型轻量化部署、资源消耗、检测速度、安检仪适配、整体设计的统一考虑,均无法直接运用于铁路安检辅助分析装置,不满足现场需求。
铁路安检作业流程如下:判图员通过盯控安检仪显示器,根据图像颜色及形状判断查堵禁限物品,若发现疑似禁限物品,则通知处置人员进行开包核验,并对核验确认携带禁限物品的旅客登记信息。综上分析,铁路安检辅助分析装置主要功能如下:1)实时分析安检X光图像,准确识别图像中的禁限物品,并以直观、清晰的方式在安检X光图像中进行展示,且不影响判图员看图作业;2)支持导出发现的禁限物品图像、报警信息等。
目前,全路客运站的安检通道约5 300个,主流安检仪厂家约30家,没有标准化的对外数据接口,安检仪内置工控机与显示器通过VGA、HDMI、DVI等接口连接。综合业务需求和现场情况,辅助分析装置采用边缘分析方案设计,与安检仪连接如图1所示。辅助分析装置与安检仪通过视频图像接口连接,可适配VGA、HDMI、DVI接口,满足主流安检仪的接入适配;辅助分析装置与显示器通过视频图像接口连接,将识别禁限物品后的视频信号传送至显示器。
图1 辅助分析装置连接
基于上述的装置连接设计和功能需求,辅助分析装置应尽量小型化,且支持视频采集、分析处理和实时展示功能。因此,辅助分析装置硬件采用定制工控机,整机采用电源外置设计,以尽可能减小机身尺寸,方便实施部署,装置基于X86架构,并搭载视频采集卡和GPU,满足视频采集和分析处理展示要求。
主流安检仪的画面刷新率为60 Hz,画面分辨率不超过1 080 P,视频接口通常为DVI、HDMI或VGA接口。因此,视频采集卡的最高采集性能需支持60 Hz下的1 080 P分辨率,在采集接口方面,DVI、HDMI为数字高清接口,VGA为模拟接口,且3种接口可相互转换,故视频采集卡仅需支持一种接口,本设计选择DVI接口的视频采集卡。
估算视频分析、处理、展示需求,进行CPU和GPU选型。由于系统软件涉及目标检测、目标跟踪、实时视频展示等多种功能,存在多进程需求,故采用4核CPU。GPU选型主要由目标检测算法和模型的算力需求决定。经实验测试,禁限物品检测算法和模型的显存需求不高于4 GB,在10.6 TFlops算力的GTX1080TI显卡下,检测一张图片的时间约为10 ms。经分析,禁限物品检测算法的检测时间在100 ms即可满足需求,故GPU显存应不低于4 GB,浮点算力不低于1 TFLops,兼顾成本控制情况下,选择4 GB显存、896 Cuda核心的入门级计算卡。
辅助分析装置配置8 GB内存,硬盘容量要求较低,为提高读写速度,提高整机性能,采用固态硬盘,选择240 GB SSD硬盘。辅助分析装置硬件参数见表1。
表1 辅助分析装置硬件参数
辅助分析装置主要功能为对接入的安检视频信号实时分析,检测禁限物品,并将识别禁限物品后的视频信号实时展示。软件设计主要有以下2点挑战:1)高速处理及显示问题:安检视频信号刷新率通常为60 Hz,即每一帧安检画面的分析、显示全流程需在16 ms内完成;2)高准确率问题:对手抢、刀具、压力罐等禁限品的识别准确率应尽量高。
为保证高准确率,采用基于深度学习的目标检测算法进行禁限物品识别。对主流基于深度学习的目标检测算法Faster-RCNN[7], SSD[8], Yolo[9], RetinaNet[10]等进行性能比选,均无法在有限的边缘算力下,在16 ms内完成1帧安检X光图像的处理。为保证软件在低资源消耗下可实时准确地进行安检X光图像检测,软件整体设计采用基于深度学习的目标检测算法结合安检X光图像跟踪算法实现,软件整体设计如图2所示。
图2 软件整体设计
软件采用多进程设计。主进程为跟踪进程,采用关键点差分算法实现安检X光图像跟踪,负责读取安检X光图像、控制分析进程启动、执行安检X光图像跟踪算法、识别结果展示,整个流程控制在16 ms内完成,可满足安检X光图像实时展示需求。首先,对读取的每一帧安检X光图像,判断是否需要做分析检测,分析检测采用定时轮询方式,即每隔固定的帧数图像进行分析检测。然后,计算读取的图像与参考基准图像的画面偏移量,将禁限物品检测的标记方框按照计算的偏移量进行调整,并标记在新读取的图像上,实现安检X光图像中禁限物品的跟踪。最后,调用展示函数,展示最新的安检X光图像。分析检测间隔的帧数i由图像刷新率s、画面移动速率v、跟踪范围R综合决定,具体关系如下:
(1)
式中,s表示图像的刷新率,单位为帧/秒,R表示跟踪算法能跟踪的最大范围,即两幅安检X光图像的最大偏移量,单位为像素,v表示安检图像的移动速率,即图像每秒平移多少像素,单位为像素/秒,i表示在算法保持稳定跟踪效果的前提下,分析检测算法可以间隔的最大帧数,单位为帧。
子进程为分析进程和推送进程。分析进程根据检测标志位数值,执行禁限物品检测,通过对每次的分析检测结果进行锁定,保存为参考基准信息,主进程中的跟踪算法便可根据参考基准信息进行跟踪,降低了对分析进程实时性的要求,分析进程仅需在200 ms内完成分析检测即可。分析进程采用改进的ResNet实现禁限物品图像的特征提取,采用CenterNet算法实现禁限物品检测,可实现手抢、刀具、扳手、钳子、剪刀、压力罐、打火机、充电宝、塑料瓶、保温杯10类禁限物品的检测和识别,检测结果以目标类别、置信度、标记方框坐标进行输出。
推送进程根据键盘中断判断是否推送信息,判图员通过指定按键操作,可实现向外部系统平台推送检测结果的操作,便于禁限物品信息录入和统计分析。
何恺明等提出的ResNet网络,已在众多图像分类算法中取得优异成绩,并被广泛运用在目标检测算法中作为特征提取网络[11-13]。ResNet网络的基本单元如图3所示[14]。输入张量x,经权重层卷积运算、relu函数激活、权重层再次卷积运算得到张量F(x),对F(x)+x再次进行relu函数激活,得到最终输出张量。
图3 ResNet网络的基本单元
ResNet网络有18层、34层、50层等多种结构形式,为适应边缘分析端算力需求,以ResNet18网络为基线,对ResNet网络进行改进。改进的ResNet特征提取网络如图4所示。网络有4组卷积层、2组反卷积层、1个级联层组成。卷积层1由7*7*64、步长为2的卷积层构成,卷积层2由2组3*3*64的 ResNet网络的基本单元构成,卷积层3由2组3*3*128的 ResNet网络的基本单元构成,卷积层4由2组3*3*256的 ResNet网络的基本单元构成。反卷积层1、反卷积层2均为上采样率为2的反卷积层。级联层对卷积层2的输出和反卷积层2的输出做级联操作。对归一化为512*512尺寸的图像进行特征提取,最终可得128*128*128的特征输出。
图4 改进的ResNet特征提取网络
与原始ResNet18网络相比,改进的ResNet网络舍弃了卷积层5,在最终的特征输出中级联了卷积层2的输出。上述设计更适应安检禁限物品检测中多小目标、少大目标的数据特点,同时降低了模型参数量、计算量[15-16]。
CenterNet算法为无锚点目标检测算法,与传统的二阶段目标检测算法和一阶段目标检测算法相比,算法舍弃了锚点框的思想,且最终生成的预测框不需要进行非极大值抑制运算,在保证高精度的同时,大幅提升了检测速度,在coco数据集中达到了142 FPS的检测速度[17-20]。CenterNet算法使用预测框的中心来表示目标,在预测目标中心的基础上,同时预测目标的分类、目标中心的偏移量以及目标的宽高,算法原理如图5所示[21]。将128*128*128的输入特征分别送入3个预测分支,用于预测目标中心点、中心的偏移量以及目标的宽高。由于特征图相比于输入图像有4倍的下采样率,预测的目标中心与真实目标中心存在一个偏差,这个偏差通过中心的偏移量预测分支进行预测
图5 CenterNet算法原理
算法按检测10类禁限物品设计。目标中心点预测分支依次经过3*3卷积层、1*1卷积层、3*3池化层,得到128*128*10的张量输出,该张量的10个维度,分别预测每一类禁限物品的中心点概率。中心的偏移量预测分支依次经过3*3卷积层、1*1卷积层,得到128*128*2的张量输出,该张量的2个维度分别预测特征图中每一个中心点相比于真实值的偏移量,2个维度分别表示x方向和y方向的偏移。中心的宽高预测分支依次经过3*3卷积层、1*1卷积层,得到128*128*2的张量输出,该张量的2个维度分别预测目标的宽和高。
CenterNet的损失函数为:
L=Lk+Loff+λLsize
(2)
式中,Lk为中心点预测损失,Loff为中心偏移预测损失,Lsize为目标宽高预测损失。
Lk与Focal Loss函数类似,计算如下:
(3)
Loff与Lsize均采用L1损失函数,用于计算中心偏移损失和目标宽高损失。由于预测中,宽高采用真实值,未做归一化处理,故对Lsize添加了校正系数,保证3个分支的权重接近。
关键点差分算法的目的是实现禁限物品的目标跟踪。视觉目标跟踪指在一个视频序列中, 给定第一帧目标区域,在后续帧中自动匹配到该 目标区域的任务[22]。视频目标跟踪算法大多基于粒子滤波、均值漂移、孪生网络等技术,这些算法为适应场景遮挡、光照变化、物体本身形变等复杂因素,均有大量复杂计算,无法满足系统目标跟踪实时性要求。因此,分析安检X光图像的生成机制和特点,设计关键点差分算法。
安检仪生成安检X光图像的方式与摄像机生成视频信号的方式不同。摄像机生成的视频信号,每一帧的整幅画面都是重新曝光生成的,即使是完全静止的画面,每一帧图像中的相同位置的像素值也会有差异。安检X光图像是通过安检仪探测器扫描产生,数据以列信号方式生成,即随着待检测物体在安检传送带的传送,逐列增量产生新的数据信号,故连续安检X光图像中的相同画面部分,像素数值完全相同。安检X图像的这一特点,使得安检X光图像的跟踪算法可通过像素差值对齐的方式进行设计,大幅降低运算量。
安检仪显示器画面示意如图6所示,由于安检画面为左右移动,且有效信息通常在画面中央,故可选取画面中间直线位置的一组像素作为关键点f,表示该幅画面。对于两幅临近时刻的画面,通过计算两幅画面的偏移量,再根据偏移量调整禁限物品坐标,便可实现禁限物品的目标跟踪。若画面宽高分别为W和H,跟踪范围为R,则偏移量off计算公式如下:
off=Argmin(Sum|Loop-R,R) (f1)-f2|)
(4)
式中,f1为画面1的关键点,f2为画面2的关键点,f1和f2均为1个覆盖R、G、B3个通道的三维数组,数组中数值取值范围为0~255。Loop()函数表示对关键点f1依次做偏移,偏移量遍历(-R,R)区间,Sum为求和函数,对关键点的差值的绝对值求和,Argmin()函数返回所有求和中最小和值对应的偏移量,该偏移量即为画面1和画面2的相对偏移量。
图6 安检仪显示器画面
为支持报警图像、报警信息的导出,方便处置登记,设计推送进程。推送进程采用独立进程设计,通过检测键盘中断,在判图员按下指定按键时,向外发送报警图像,以及报警时间、禁限物品类别、禁限物品置信度等报警信息。报警图像及报警信息通过socket连接的方式,以流的形式进行发送。
辅助分析装置操作系统为Ubuntu16.04,软件采用python3.7实现。多进程基于multiprocessing包实现;安检X光图像数据采集基于cv2包中的VideoCapture类实现;改进的ResNet网络及CenterNet算法基于pytorch1.7实现;算法GPU加速基于Cuda10.1和Cudnn7.6实现;关键点差分算法基于numpy包实现;报警图像推送基于cv2包中的事件函数实现。
禁限物品识别模型基于铁路安检数据集训练,该数据集包含简单背景、复杂背景下共10类禁限品的10 000张图像,禁限物品种类包括:手抢、刀具、扳手、钳子、剪刀、压力罐、打火机、充电宝、塑料瓶、保温杯。选取数据集中70%为训练集,30%为测试集,模型训练采用SGD优化器,超参设置如下:初始学习率0.005,训练100轮,学习率在第60轮和第90轮分别衰减至1/10,训练batch设置为16,采用平均精度(mAP)作为评价指标。测试损失函数中取值的影响,实验结果见表2。
表2 不同取值的mAP
故λ取值为0.1时,模型取得最高精度,为84.8%。在λ取值为0.1时,采用原ResNet18网络进行特征提取,与改进的ResNet18网络进行对比,实验结果见表3。
表3 与原ResNet18网络对比
本文改进的ResNet18网络相比原ResNet18网络精度提高2.5%。部分禁限物品检测结果如图7、图8所示。在图7中,算法检测出2个禁限物品,分别为扳手和钳子,置信度分别为0.86和0.99。在图8中,算法检测出1个禁限物品,为剪刀,置信度1.00。
图7 禁限物品检测结果
图8 禁限物品检测结果
铁路车站常见安检仪的分辨率为1 280*1 024,60 Hz刷新率,在该输入条件下,实验不同参数组合的关键点差分算法。对关键点差分算法中的主要参数关键点f、跟踪范围R、抽样率进行控制变量测试,以选取验证最优参数组合。对不同的关键点f长度,实验跟踪效果,实验结果见表4。
表4 不同f长度的跟踪效果
上述实验表明,关键点f长度在600像素以上时,算法可稳定跟踪目标。通过分析关键点差分算法可知,算法在做跟踪运算时,需对关键点f做左右平移和做差运算,左右平移的最大范围即为跟踪范围R,因此关键点f长度与跟踪范围成负相关,故在满足跟踪效果要求时,f取值应尽量小,以保证算法有尽可能大的跟踪范围。综上,f最优取值为600像素。在f为600像素时,实验跟踪算法在不同跟踪范围R下的跟踪耗时,实验结果见表5。
表5 不同R的跟踪耗时
分析上述结果,跟踪耗时与跟踪范围成整比,这是由于跟踪范围的大小等同于运算处理的循环次数。从实验结果可以看出,在跟踪范围为300像素时,单次运算耗时为4.5 ms,满足处理时效性要求。为进一步提高算法速度,尝试对关键点f进行等间隔抽样,在f为600像素,R为300像素条件下进行实验,实验结果见表6。
表6 不同抽样率的对比
分析上述结果,对f抽样可进一步降低跟踪耗时,但下降不多。进一步分析,发现抽样函数本身会耗时,虽然抽样后,算法总循环次数降低了,但是抽样过程消耗了大量时间,因此抽样对跟踪算法耗时降低有限。在抽样率为0.1时,跟踪耗时3.8 ms,是稳定跟踪实验组中耗时最低的。故跟踪算法的最优参数为:f取600像素、R取300像素、抽样率取0.1。
按硬件参数设计定制工控机,整机采用小型化设计,尺寸为23.5 cm*18.0 cm*13.2 cm。对整机在车站进行现场测试,辅助分析装置与安检仪通过DVI接口连接。采用车站收缴的刀、剪刀、打火机、压力罐、扳手等禁限物品实物测试装置报警准确率。将禁限物品装入书包、行李箱等,进行过机测试,干扰物为笔记本电脑、衣服、书籍、电子产品、食品等,统计分析检测的准确率,车站现场测试情况如图9所示。
图9 车站现场测试
整机测试采用准确率、漏报率指标进行评价,准确率、漏报率定义如下:
测试分单禁限品简单背景和多禁限品复杂背景2组,各100个测试包裹。单禁限品简单背景测试中,每个包裹仅放置1件禁限物品,不超过3件干扰物。多禁限品复杂背景测试中,每个包裹中放置不少于2件禁限物品,不少于5件干扰物,且刻意堆叠摆放。测试中,辅助分析装置的报警阈值设置为0.7,即对于置信度大于0.7的目标进行标记和报警。经车站现场测试,辅助分析装置在单禁限品简单背景测试中,报警准确率为99%,漏报率为2%,检测速度为60;在多禁限品复杂背景测试中,报警准确率为85%,漏报率为5%,检测速度为60;平均准确率为92%,漏报率为3.5%,检测速度为60,测试结果见表7。
表7 车站现场测试
分析装置在复杂背景下的表现与简单背景下存在较大差距。分析实验数据,发现算法对复杂背景存在较多误判,拉低了算法准确率。在复杂背景中,多种目标混合重叠,对算法干扰较大,尤其是笔记本电脑目标,由于笔记本电脑有较大的金属和电路板区域,产生了大量纹理纹路复杂的蓝色背景,贡献了较多误判。
下一步,将从以下方面对装置进行改进:1)对训练数据集中添加笔记本电脑等非禁限物品,扩充数据集,以进一步提升模型在复杂背景下的性能;2)不断扩充数据集,并加入多种品牌型号安检仪的安检图像,持续迭代模型,提升精度。
为解决铁路安检高度依赖人工判图,时有发生漏报的问题,基于智能识别技术和多进程思路设计了铁路安检辅助分析装置,并对识别检测算法和跟踪算法进行了深入研究。经车站试点测试,辅助分析装置可适配多品牌安检仪,部署实施方便,报警准确达92%,漏报率为3.5%,安检画面达60 FPS,满足车站使用需求。辅助分析装置可辅助安检判图员作业,提升整体安检质量,促进安检作业提质增效。