APP下载

基于级联多任务深度神经网络的施工现场车辆进出检测与识别算法

2023-11-15葛永新

重庆理工大学学报(自然科学) 2023年10期
关键词:多任务车牌级联

喻 捷,杨 倩,冯 欣,葛永新

(1.重庆建工住宅建设有限公司,重庆 400000;2.重庆理工大学 计算机科学与工程学院,重庆 400054;3.重庆大学 大数据与软件学院,重庆 401331)

0 引言

近年来,对进出车辆的类型、时间和车牌等信息的记录,成为了企业安保工作的重要环节。对于施工现场来说,建筑工地的材料是极其重要的财产,且施工现场本身就是安全事故频发重地,所以施工单位需要建立健全的施工现场车辆管理制度。若施工现场车辆进出管理有误,就可能会出现建筑材料被私自运送出施工场地或非施工车辆驶入施工现场工作区的情况,所导致的后果是不堪设想的。因此,亟需智能化的管理手段对施工现场的进出车辆进行检查和管理。

现有的传统智能车辆进出管理方式,大多采取车辆停在匝道时只对车辆进行车牌信息的识别。但这些传统方法却无法很好地应用在施工现场中。首先,对于施工现场来说,主要需要统计的车辆信息为大型卡车类车辆,因此需要对进出车辆的类型进行分类。其次,进出施工现场的车辆大多为装满建筑材料的大卡车,这些负载极大的卡车若在通过匝道时停下可能会造成建筑材料掉落。最后,施工现场的车辆的车牌很有可能会被泥土覆盖导致模糊不清,传统方式直接对整张图像进行车牌检测的效果降低。因此,目前施工场景下的车辆检测与识别面临着车型识别、车辆定位、车辆跟踪、车牌定位和车牌识别5个任务的挑战。

目前,车辆检测、车型识别和车牌识别在各自领域都取得了很大进展。对于车辆检测,传统的方法通常采用高斯背景模型[1]对物体进行检测。自2012年 Krizhevsky等[2]提出了AlexNet深度学习网络框架,基于深度学习的物体分类等任务中得到了广泛应用。Redmon等[3]提出了一种新的目标检测方法,即YOLO算法,检测速度和检测结果的准确度又得到明显提高,因此,其在车辆检测领域的运用也越来越广泛。对于车牌识别算法,Cheang等[4]提出了CNN-RNN网络框架对车牌进行无分割识别,解决了传统的车牌识别方法无法将整张图像作为输入的问题。孙世昕等[5]提出了构建二级级联定位网络Tiny-MTCNN,实现实时车牌检测和识别功能。

以上各方法都聚焦于自己的领域而很难以并行的方式在复杂的多任务实际场景中共同发挥作用。多任务学习(MTL)是机器学习的一个子领域,其中通过共享模型同时学习多个任务的方式提高了数据效率,减少了过拟合,还可以利用辅助信息进行快速学习。因此,考虑在施工现场背景下,提出级联多任务神经网络框架对前面提出的多个任务挑战制定解决方案。级联多任务设计所面临的技术挑战是需要准确、快速对大目标(车辆)、小目标(车牌)的混合检测与识别。若用现有串行式的多任务执行方式,则有计算量大、耗时、小目标(车牌)定位不准等缺点。

本文中搭建的级联多任务神经网络框架使用目标检测和跟踪技术对门岗所设摄像头接收到的监控视频进行分析。利用YOLO网络实现场地车辆的检测,得出车辆特征与车型识别结果;得到车辆区域特征并设计轻量级神经网络实现了端到端的精准、高效车牌识别;基于改进的DeepSort目标跟踪算法[6],实现了对场内所有车辆的追踪、统计。基于实际工地场景监控数据,构建数据集,完成了对多任务级联神经网络的训练与测试,并在COCO2017数据集[7]上对算法的性能进行了进一步的验证。考虑实际施工现场的临时性的特性,基于边缘计算完成了算法的灵活部署。

综上所述,本文的主要贡献如下。

1) 在施工现场的实际背景下,首次提出了基于级联多任务深度神经网络的施工现场车辆进出检测与识别算法。解决了大目标(车辆)和小目标(车牌)混合检测与识别,比现有串行式多任务执行方式更加快速、准确。

2) 构建级联多任务深度神经网络框架,该网络将车辆检测、车型识别、车牌定位、车牌识别和车辆跟踪5个任务结合到一起,实现端到端训练和更加高效地对工地进出车辆信息进行管理。

3) 基于现有的门岗监控数据,构建了施工现场车辆检测数据集对多任务级联神经网络进行训练,以提高算法在实际应用场景中的准确率。实验结果表明,在自制数据集和COCO2017数据集中均取得良好的效果。

1 方法与模型

1.1 构建级联多任务端到端车辆进出检测与识别深度神经网络框架

本文中所实现的级联多任务神经网络包括车辆定位测、车型识别、车牌定位、车牌识别和车辆跟踪5个任务,具有大小目标混合检测的特点。该神经网络结构如图1所示,以YOLOv5目标检测网络为主,在输入的监控视频流进入YOLOv5网络后首先对车辆进行定位和检测,并识别车型,输出车型类别。定位车辆对小目标车牌做检测,随后用车牌识别算法进行车牌识别。使用改进的DeepSort算法对定位车辆进行跟踪,以统计车辆数量。

图1 级联多任务神经网络结构

由图1可知,从最开始接收到来自建筑工地门岗的监控视频流之后,需要将其每一帧的图像作为处理单位,该网络架构完成上述5个任务的具体做法如下。

1) 使用目标检测算法对图像中出现的车辆进行检测。车辆检测模块基于一阶段目标检测算法YOLOv5所实现,并结合COCO数据集进行训练得到的目标检测模型,实现车辆定位和车型识别功能。

2) 将检测出的车辆区域的特征作为车牌模块的直接输入,该做法省去了后续车牌识别网络对车辆特征的提取步骤,提高了车牌识别的速度。车牌识别过程中先使用目标检测算法定位出车牌,识别网络实现车牌识别功能。

3) 将检测得到的车辆位置及其区域特征作为目标跟踪算法的输入,基于改进的DeepSort目标跟踪算法实现对相邻帧图像中的车辆进行匹配同时予以编号,实现施工现场车辆数量的统计。

4) 设置检测线,用于判断车辆是否进出施工现场。此功能基于目标跟踪的结果实现。

5) 得到车辆检测结果并绘制出矩形框,输出处理过程中得到车型和车牌内容,同时可视化统计车辆进出数量等信息。

1.2 构建损失函数

由于该网络结合了多个子任务网络,因此该网络的总体损失函数Lall为5个子任务损失函数的和,如式(1)所示。

Lall=λ1Lreg+λ2Lcls+λ3Ltrack+

λ4Lid+λ5Ldet

(1)

式中:Lreg和Lcls是YOLOv5检测网络中的回归损失、车型分类损失;Ltrack和Lid是改进DeepSort目标跟踪算法中的损失函数和车牌识别中的损失函数;λ1、λ2、λ3、λ4、λ5为车辆检测损失、车型分类损失、目标跟踪损失、车牌检测损失和车牌识别的权重系数,均设为1。

1.3 基于YOLOv5的车辆检测与识别

车辆检测采用YOLOv5算法实现,该算法不仅检测速度快,而且灵活性和准确度较高,在模型的快速部署上具有极强优势,被广泛应用于实际应用场景中。从深度和宽度的角度看,YOLOv5共有4种网络结构:YOLOv5l、YOLOv5m、YOLOv5s、YOLOv5x。考虑到低成本,所设计的基于级联多任务深度神经网络的施工现场车辆进出检测与识别算法是在嵌入式的边缘计算设备上的。边缘计算的一个关键目标就是尽可能地减少延迟,也就需要算法达到较快的处理速度,所以参数计算量不宜过大。通过后续的对比实验可知,在平均检测精度相当的情况下,YOLOv5s的网络深度和宽度最小,参数量和模型内存量均处于一个较小的水平。

经过网络的车辆检测模块后得到车辆区域的特征以及车辆的类别,这是整个网络的第一个输出,将作为后续车牌检测与识别以及车辆跟踪模块的输入。

1.4 基于检测车辆特征的车牌识别

考虑到在施工现场的整个监控视频中,所拍摄到的车辆车牌大概率情况下只是一个很小的部分,是一个处于复杂环境下且面积较小的目标。并且很有可能存在车牌被泥土覆盖的情况,因此为了提高识别率,通过设计轻量化的车牌识别算法来对输入的车辆区域特征进行车牌检测与识别。该网络没有特征提取主干网络,以车辆区域的特征作为输入,输出车牌中的字符序列。在每一卷积层之后,都进行批处理归一化和ReLU激活。该轻量级神经网络具有以下优势:第一,不需要预先对车牌字符进行分割,可以端到端地训练和识别牌照,是一个高质量的车牌识别框架;第二,该网络是一种不使用回归神经网络的实施方法[8],所以它足够轻量化,能够运行在嵌入式边缘计算设备中。后续实验证明使用该轻量级卷积神经网络在检测相对复杂的中文车牌时仍然有不错的性能。

该网络具体设计思路为:将车辆检测后的车辆区域特征作为车牌检测的输入,对车牌进行检测,最后完成车牌识别功能。车牌识别功能的整体流程如图2所示。

图2 车牌识别的整体流程

1.5 基于检测车辆特征的车辆跟踪算法

本文中所设计的基于级联多任务深度神经网络的施工现场车辆进出检测与识别算法需要对出入门岗的车辆数量予以记录,所以在目标检测成功的同时还需要进行目标跟踪,根据车辆的运动轨迹判断其当前是进入施工现场还是离开施工现场。传统的目标跟踪算法中,经典的有基于相关滤波的MOSSE和KCF算法,虽然都优于最初的视觉跟踪方法,但因为它们只关注物体的行动轨迹预测而忽略了目标物体的内容,无法将前后帧中的同一运动对象进行关联,导致跟踪结果中均出现了严重的跟踪框漂移情况。基于检测的多目标跟踪算法DeepSort[9]涉及到相邻两帧中多个目标的关联,其复杂性相比于传统的跟踪算法要高得多。为了实现施工现场车辆进出统计的功能,需要实时记录车辆的轨迹,因此目标跟踪算法必不可少。本文中的车辆跟踪算法是基于DeepSort算法改进实现的,由于车辆跟踪的输入为车辆检测后的车辆区域特征,因此基于改进的DeepSort算法则去掉DeepSort算法中的特征提取骨干网络。具体的车辆跟踪算法流程如图3所示。

图3 改进的DeepSort跟踪算法流程框图

车辆跟踪算法的基本思想是通过检测网络后的车辆区域特征实现跟踪,视频数据经过目标检测算法逐帧输入之后,将运动模型与目标的外观信息予以数据关联,再使用卡尔曼滤波器对运动轨迹进行预测,更新时使用匈牙利算法完成级联匹配。由此可见,该算法的核心即为卡尔曼滤波和匈牙利算法。还会把这个最优值传入下一帧作为新状态的预测值,不断迭代,得出目标的实际值。

1.6 边缘计算设备部署

由于施工项目的工作地点并不固定,搭建的工地基本都是临时性的,因此算法的部署要具备低成本、灵活性高的特点。考虑到边缘计算方式具有一系列优点,所以本文中所设计的基于级联多任务深度神经网络的施工现场车辆进出检测与识别算法采用低成本嵌入式的边缘计算方式。面向施工现场的边缘计算设备部署如图4所示。对于建筑工地来说,车辆的出入口不止一处。假定工地大门处为终端节点1,工地停车场门口处为终端节点2。在这两处安放摄像头,并连接嵌入式的边缘计算设备。将监控到的视频流传输到该设备之后,边缘计算设备就会进行车辆进出信息解析的一系列操作,包括车辆检测、车型识别和车牌识别等。最后该设备再将结果通过局域网发送到服务器端,工作人员即可轻松获得车辆出入的信息。

图4 边缘计算设备部署

2 实验结果与分析

2.1 构建数据集

实验数据来源于重庆市建设安全施工安全管理总站,为了使训练的模型能够在实际应用场景中更准确,采集了多处施工现场的门岗监控视频,包含不同门岗、不同监控设备角度的车辆进出数据。实验一共涉及到2个数据集:车辆检测数据集和车牌识别数据集。

对于车辆检测数据集,由于采集和标注的施工现场数据集较小,因此对其进行数据集扩充操作。主要使用的车辆检测数据集为COCO2017数据集,但是由于该数据集包含了80种不同的目标检测类别,有许多与车辆无关的数据图片,如西蓝花、人、大象和电脑等。因而需要对原始的COCO2017数据集进行数据筛选工作,留下符合本次实验需要的部分数据图片,如小型汽车、摩托车、卡车。经过数据筛选,结合采集的实际施工场地数据,划分的数据集中含各类车辆图片的数量统计如表1所示。

表1 车辆检测数据集

对于车牌识别数据集,车牌识别模块的实现涉及到车牌检测和牌照内容识别2个模型。由于搜集到的实际车牌数据有限,因此这2个模型训练时所使用的车牌数据集将结合中国城市车牌开源数据集——CCPD2019数据集[10],该数据集主要采集于合肥市停车场,所拍摄的车牌照片涉及多种复杂环境,包括模糊、倾斜、雨天、雪天等。CCPD2019数据集主要内容如表2所示,车牌识别功能的实现一共采用了2个模型,对于车牌检测的部分,使用的是在CCPD2019数据集上基于YOLOv3模型训练得到的车牌检测模型;对于车牌识别的部分,使用的是本文中的车牌识别算法在车牌数据集上训练得到的模型。

表2 CCPD2019数据集主要内容

2.2 实施细节

本次实验均在3090GPU上实现。车辆检测实验采用的是在COCO2017数据集上预训练的车辆检测模型。将“YOLOv5s.pt”作为初始训练权重,对COCO2017数据集进行训练后,建立车辆目标检测模型,部分训练参数如表3所示。

表3 部分训练参数

2.3 实验结果

YOLOv5一共有4种网络结构:YOLOv5l、YOLOv5m、YOLOv5s、YOLOv5x,如表4所示,通过4种网络结构进行对比实验可以发现,在平均精度差的不多的情况下,YOLOv5s的参数量和每秒的浮点运算次数都远远小于其他3个网络结构。由于施工现场考虑到低成本,所设计的车辆进出识别与检测算法是在嵌入式的边缘计算设备上的。边缘计算的一个关键目标就是尽可能地减少延迟,也就需要算法达到较快的处理速度,所以参数计算量不宜过大。综合来看,YOLOv5s在本检测数据集中表现最好。

表4 4种YOLO网络结构主要技术参数

基于YOLOv5[11]所实现的车辆检测的可视化结果如图5所示,对2个不同门岗的监控数据均进行了测试。虽然实际的建筑工地上会出现摩托车这一车型,但总体来说出现的频率较小。由于此次所采集到的施工现场监控视频中并没有包含摩托车的通行记录,所以只测试了频繁出现的小型汽车和卡车。从3组的可视化测试结果来看,特征明显的车辆几乎都能被成功检测和定位出来,且得到正确的分类结果。

图5 车辆检测结果记录可视化

对于车牌识别实验,为证明本文中车牌识别算法的优势,进行了详细的对比实验。实验对比了3种输入方式,并将设计的车牌识别算法与LPRNet车牌识别算法进行对比。第1种方式为直接将监控视频中未截取车辆区域的原图输入到LPRNet网络中进行检测与识别;第2种方式为将车辆截取图片输入到LPRNet网络中;第3种方式为将经过检测网络后所截取的车辆区域的特征输入车牌识别网络中进行检测与识别。对于3种不同的输入,本文中提出的车牌识别算法与LPRNet车牌识别算法的车牌检测准确度以及检测速度的实验结果如表5所示。

表5 车牌识别实验结果

由表5的实验结果可知,采用本文方法识别车牌比其他2种方法的mAP值都高,并且检测速度更快,几乎达到实时检测的速度。由此体现本文方法相较于LPRNet车牌识别方法的优势。

本文方法的可视化车牌识别结果如图6所示。由图6可以看出,在车辆刚驶入监控画面时,车牌图像较清晰,整个车牌目标相对较大。由于监控视频中背景较为复杂,且车辆在整幅图像中占比较小,因此测试时将视频尺寸进行了裁剪,只保留了车辆部分。从实验结果来看,识别的结果准确,符合实际车牌内容。

图6 车牌识别结果可视化图

2.4 本文算法在车辆进出计数中的应用

为了实现施工现场车辆进出统计的功能,需要实时记录运动车辆的轨迹,因此目标跟踪算法必不可少。对于改进的DeepSort跟踪算法[12],采用其默认的参数配置文件。实验所采用的数据是来自重庆市建设安全施工安全管理总站的门岗监控视频,其尺寸大小为1 920×1 080。要统计该视频流中的车辆进出数量,需设置表6中所示的参数内容。其中,line存放检测线的2个坐标,big_to_small 和point_idx分别控制计数方向和用于检测的顶点编号。

表6 参数设置

对车辆进出数量统计功能的测试结果如图7所示。该测试用例均为进入施工现场的车辆,从结果中可以明显看出,原本在检测线左端的车辆,在检测框的左上角顶点完全穿过检测线到达右端之后,计数器进行了+1的操作。2辆汽车都已通过检测线进入施工现场后,左上角num的值变成2。由此可见,车辆进出数量统计功能的实验结果符合预期。

图7 车辆进出数量统计过程图

3 结论

对于建筑工地而言,财产安全是重中之重,但在传统的施工现场,工作流程繁琐且效率低。在此背景下,本文中提出的基于级联多任务神经网络对施工现场车辆进出的检测与识别算法相比其他方法,在大目标(车辆)与小目标(车牌)的混合检测与识别中能够更快速、准确地得出结果。并且对车辆的检测过程中无需车辆停止,减少建筑材料掉落的危险。

实验证明该级联多任务神经网络框架在车辆检测数据集上取得了良好的结果。该算法在未来仍有一些需要改进的地方。例如:在对进出车辆进行跟踪的时候,由于门岗处有遮挡会出现跟丢的情况,可以考虑对跟踪器的参数进行微调或者将YOLOv5s替换为精度更高的模型。对于车牌检测部分还可以考虑加入黄色、绿色车牌的数据集,完善车牌识别功能。未来本算法将结合嵌入式相关知识,将模型移植到rk3588开发板中,真正运用于实际场景中。

猜你喜欢

多任务车牌级联
数字图像处理技术在车牌识别系统中的应用
基于中心化自动加权多任务学习的早期轻度认知障碍诊断
第一张车牌
基于MATLAB 的车牌识别系统研究
级联LDPC码的STBC-OFDM系统
基于判别性局部联合稀疏模型的多任务跟踪
基于多任务异步处理的电力系统序网络拓扑分析
基于级联MUSIC的面阵中的二维DOA估计算法
LCL滤波器在6kV级联STATCOM中的应用
H桥级联型STATCOM的控制策略研究