徐晓东,王俊杰
中国海洋大学 工程学院,山东 青岛 266100
建筑业作为我国国民经济的重要支柱产业之一,目前智能化和自动化水平较低,尤其在现场施工管理工作中,仍然以人工检查为主。随着人工智能技术的快速发展,深度学习方法已经被广泛应用到交通、医疗和城市管理等领域。在建筑施工领域,深度学习方法的应用,能够支撑并推动建筑机器人、智慧建造和无人工地等最新的建筑技术和施工管理方式的发展。在现场施工管理工作中,基于工地监控设备进行施工人员检测,能够为施工安全、资源调配和进度控制等方面提供支持,具体应用有碰撞预警、异常侵入检测和危险区域警告等,拥有很高的应用价值[1-2]。
行人检测是目标检测研究领域的一个重要研究方向。目标检测是一种基于深度学习的计算机视觉方法,能够从输入图像中找到特定类别目标并给出位置信息,大致可以分为两类,即Two-stage和One-stage检测算法。Two-stage检测中,代表算法为基于区域的卷积神经网络R-CNN[3],以及其优化版本Fast R-CNN[4]和Faster R-CNN[5]。该类算法检测过程可以分为两个阶段,一是进行候选区域选取,二是对选取区域进行分类和定位。这类检测方法检测精度较高,但模型结构复杂,计算参数较多,实时检测性能较差。One-stage算法,如SSD[6]、YOLO系列[7-9]等,可以通过一个网络结构,完成候选框的选择和分类定位,节省了计算成本,提高了检测的速度,更适合于在边缘计算设备上进行实时检测。
传统的行人检测任务大多基于自然场景下,如商场、体育场和道路等。李昕昕[10]、魏润辰[11]分别基于RFBNet[12]和YOLOv3算法进行改进,用于检测道路行人。相较于常规行人检测任务,在其他特殊场景下,行人检测算法也有具体的应用。王琳[13]、李伟山[14]分别基于YOLOv2与Faster R-CNN算法提出了煤矿井下的工人检测方案。
在施工场景下,图像环境背景更加复杂,人员穿戴和行为姿势也较为特殊,因此需要专门进行施工场景下的施工人员数据集开发。同时,在算法部署方面,由于施工现场基础设施条件较差,难以保证全天候的良好网络环境,因此面向边缘计算,在嵌入端设备上进行施工人员检测算法开发,其实用价值更高。
本文将基于目标检测算法YOLOv3,针对施工场景中人员检测任务存在背景复杂、姿态多样和部分遮挡等特点,在原基础上引入特征金字塔池化模块(SPP)[15],增加深层和浅层特征融合并针对施工人员数据集改进网络anchor大小,建立施工人员检测网络YOLO-W,提升检测精度。同时,使用通道剪枝方法,对模型网络进行轻量化处理得到实时施工人员检测网络YOLO-PW,并在边缘设备Jetson Xvaier NX上完成部署实验,建立一套完整的实时施工人员检测方法。
YOLOv3网络是YOLO系列算法的第三个版本,由于其良好的检测精度和较快的检测速度,已经被广泛应用于各个行业。YOLOv3网络模型主要由两部分组成:特征提取网络和YOLO检测器。
YOLOv3模型使用Darknet-53网络作为特征提取的主干网络。该骨干网络具有53个卷积层,网络结构更深,其中使用了一系列性能良好的卷积层,如3×3和1×1大小的卷积结构,并采用LeakyReLu作为激活函数,可以在保持较高检测速度的同时提高目标识别的准确性。同时,Darknet-53网络使用类似于ResNet[16]的快速连接(Shortcut Connections)的跳层连接,原始数据可越过中间层直接与后面的层连接,降低了模型的复杂度并减少参数的数量,从而有效提升模型的检测速度。
以图像输入尺寸416×416为例,Darknet-53网络通过各网络层的卷积和池化处理,对输入图像进行不同尺度的特征提取,再通过YOLO检测器将对特征提取网络输出的不同尺度特征图进行融合,最终在三个不同输出维度上进行结果预测,最终得到目标的位置和类别信息。其中,YOLO检测层在13×13、26×26和52×52三个不同尺度生成预测结果,分别适用于大尺度目标、中等尺度目标和小尺度目标的检测。
由于施工现场背景复杂,人员目标大小尺度具有多样性,同时,为使得检测模型具有更好的泛化性,在施工人员数据集中使用了不同拍摄距离的照片,使得人员目标尺寸大小差别较大。因此,为加强对不同尺度目标的检测精度,提升模型泛化性能,在原有的特征提取网络后加入特征金字塔池化模块(SPP),以实现局部特征和全局特征的良好的融合。
如图1所示,SPP模块由三个大小不同的池化层组成。原始输入图片通过特征提取网络后,输出特征图将分别在5×5、9×9和13×13的三个池化层(深色框部分)中进行池化操作。之后,将三个输出结果和原始特征图合并,再与原始特征图进行通道融合,从而实现不同尺度的特征融合,消除目标尺寸差异的影响,提高检测精度。
图1 空间金字塔池化模块Fig.1 Spatial pyramid pooling module
施工现场图像背景复杂,包含建筑结构、施工机械和施工材料等,相较于这些大型建筑资源和建筑结构,施工人员目标在施工场景中尺寸较小,因此需要在检测网络中加强对图像低层特征的提取,来提升网络模型对小目标的检测性能。
在YOLOv3原网络中,特征提取网络获得的特征图将经过不同尺度的特征融合,最终在13×13、26×26、52×52三个不同尺度上输出特征图进行预测。其中,最小特征图尺寸为13×13,这对于大场景、远距离的施工图像中的人员目标检测仍然存在一定局限。因此,在原网络结构上增加一个输出检测层,以提高浅层特征对输出结果的影响程度,加强对小目标的识别。
如图2所示,浅层特征较深层特征对施工人员目标的位置信息更为敏感,对于施工图像中的人员定位更加精准,对全局信息的关注度更高。因此在原网络结构基础上增加一个104×104尺寸的检测层,加强对浅层特征的敏感程度,提升对小目标的检测性能,最终在13×13、26×26、52×52、104×104四个不同尺度上进行结果预测,实现对施工场景中不同尺寸的施工人员目标检测。
图2 浅层特征与深层特征Fig.2 Shallow features and deep features
图3为本文建立的施工人员检测网络,施工人员数据集图像输入到检测模型后,首先将尺寸统一修正为416×416,输入到特征提取网络Darknet-53中进行特征提取并输出不同尺度的特征图,再通过YOLO检测器进行多尺度预测,并将检测结果合并得到最终的输出结果,检测出施工场景图像中的施工人员目标并进行可视化预测。
图3 施工人员检测网络YOLO-W结构Fig.3 Structure of construction worker detection network YOLO-W
YOLOv3原网络所使用的先验框是在COCO公共数据集[17]上使用聚类算法生成。COCO数据集多基于自然场景,目标类别较多,而在施工人员检测任务中,应用场景为具体的施工现场,检测目标也只有施工人员一类,因此原候选框不适用于施工人员检测场景,需要采用K-means聚类算法在施工人员数据集上进行重新聚类得到合适的候选框,如图4所示。
由于本文所提出的检测网络在原YOLOv3基础上增加了一个检测层,在四个尺度上进行特征输出,因此需要聚类得到12个候选框。其中,(11,26),(15,45)和(24,36)用于104×104特征图输出预测,适用于小尺寸人员目标的检测;(22,68),(36,57),(31,103)以及(57,79),(47,129),(48,199)分别用于52×52和26×26特征图输出预测,适用于中等尺寸人员目标的检测;(89,144),(76,258)和(140,286)用于13×13特征图输出预测,适用于大尺寸人员目标的检测。
图4 目标框聚类及锚框分布Fig.4 Target clustering and anchor distribution
YOLOv3算法能够在保证较高检测精度的同时,实现较快的检测速度,但原检测网络较为复杂,模型计算参数过多,难以在嵌入端设备上进行现场部署,在施工场景下完成部署并进行实时检测存在困难。为了让检测模型能够在计算能力较低的嵌入端设备上实现实时的检测,可以使用通道剪枝方法来简化网络结构并降低参数量。
通道剪枝算法可以根据模型中各卷积层每个通道的重要程度大小,去除掉其中对下一层输出结果贡献程度不大的通道,来减少模型的计算参数[18]。本文采用的通道剪枝思路为,通过常规基础训练获得具有较高精度的权重,在BN层中引入缩放因子γ,对网络进行稀疏训练,以稀疏处理后γ系数大小作为判断各通道的重要程度,从而为剪枝处理提供依据。
YOLOv3网络中,除YOLO检测层外,卷积层后都连接一个BN层来加速模型收敛并提高泛化能力。为便于进行通道剪枝,在各通道中引入缩放因子γ,在每个训练批次中,卷积操作后的特征将在BN层中进行归一化处理,如公式(1):
公式(1)中,x和y分别为BN层的输入和输出,x和σ分别是各训练批次输入特征的均值和方差,γ和β分别为缩放因子和偏差。由公式可见,在BN层中引入的缩放系数γ可用于保留BN层输入特征,可根据γ大小来判断所在通道的重要程度[17]。
为便于进行通道剪枝处理,对λ系数进行L1正则化约束,引入新的损失函数如式(2),对网络进行稀疏训练,实现对BN层权重的稀疏化处理。
式中,第一项为网络正常训练损失,x和y分别为训练的输入和输出,W为网络中的训练参数;第二项为BN层γ系数的L1范数约束项,λ为惩罚项的尺度因子。引入该损失函数后,在稀疏训练过程中,使用梯度下降优化方法不断迭代,自动学习并调整BN层权重大小,不重要的通道λ系数值将趋近于0。
如图5所示,使用BN层γ系数大小来确定其所在通道的重要程度,根据设定的通道剪枝率确定γ系数阈值,去除低于该值的通道。在图5中,假定设置的γ系数阈值为0.005,则图中红色实线所指通道将得到保留,而红色虚线所指通道将被去除,不参与前后两层的输出连接关系,从而实现通道剪枝。
图5 通道剪枝算法示意图Fig.5 Pruning schematic diagram of channel pruning algorithm
行人检测任务大多基于自然场景下,使用的行人数据集也以商场、体育场和道路等自然场景为主,如COCO数据集[19]、Pascal VOC数据集[20]等。图6为常规场景下行人目标与施工场景下的人员目标对比,施工场景下图像的环境背景更加丰富,人员穿戴特征和行为姿势也较为特殊。
因此,相较于常规行人检测,施工人员检测任务更为复杂,同时需要专门进行施工场景下的施工人员数据集开发。首先,对本研究领域论文公开的施工图像数据集[21]进行图片筛选,同时通过实地拍摄获取施工现场图像,从而得到施工人员数据集的原始图像,再使用LabelImg标注工具对施工图像进行标注,如图7所示。
图6 常规场景与施工场景对比Fig.6 Comparison of conventional scenes and construction scenes
图7 labeLImg工具图像标注Fig.7 Image annotation with labeLImg tool
施工人员数据集共包含3 000张带有施工人员标注信息的图片,共包含施工人员目标11 817个。其中,2 400张图像将作为训练集参与训练,600张图像作为测试集对检测结果进行评价。
目标检测模型在训练过程中对设备计算能力要求较高,因此在台式计算机设备上完成基础训练和剪枝试验,训练所使用计算设备具体参数如表1所示。
表1 实验平台配置Table 1 Experimental platform configuration
经过网络训练和剪枝处理得轻量化检测模型后,在嵌入式平台Jetson Xavier NX上进行实验部署,结合Tensorrt库进行加速推理,来判断该模型在边缘计算设备上的实时监测性能。
在实验结果分析中,使用平均准确率均值(mean Average Precision,mAP)作为模型检测精度评价指标,计算公式如式(5)所示:
式中,TP指真正例,FP指假正例,FN指假负例,P代指Precision(精确率),R代指Recall(召回率),n为类别数,由于所使用的施工人员数据集类别数为1,因此AP值与mAP值相同。另外,使用每秒检测帧数(FPS)作为模型检测速度评价指标。
基于本文制作的施工人员数据集对建立的施工人员检测网络进行基础训练,训练中批处理大小和分组数量均设置为16,动量和权重衰减分别设置为0.9与0.000 5,初始学习率设置为0.001,训练过程中损失函数变化情况如图8所示。
图8 训练过程损失变化曲线Fig.8 Loss curve variation of training process
训练中发现,在8 000个训练批次完成后,损失值基本收敛,因此在进行到8 000和10 000训练批次时将学习率降低为当前的1/10,分别再进行2 000个批次的训练,从而保证模型训练达到最优,得到mAP值为88.5%的高精度权重,将该检测模型命名为YOLO-W。
如图9所示,原模型经过基础训练后,每层的BN层γ系数分布大致呈现为正态分布,不利于进行各通道重要程度的排序从而设定阈值进行通道剪枝处理。
将基础训练后得到的高精度权重作为输入,在训练集上重新迭代训练300次,将BN层权重进行稀疏处理,训练过程中γ系数变化如图10所示。
图9 稀疏处理前γ值分布Fig.9 Distribution ofγ-values before sparse processing
图10 稀疏训练γ值分布变化Fig.10 Variation ofγ-values distribution during sparse training
经过稀疏训练处理后,如图11所示,BN层γ系数得到压缩,重要程度较低的通道γ值将被压缩至0附近,以此作为依据来进行各层通道重要度区分,进行后续的剪枝处理。
图11 稀疏处理后γ值分布Fig.11 Distribution ofγ-values after sparse processing
另外,在稀疏训练过程中,由于对BN层权重进行了压缩处理,在迭代过程中精度会有一定程度的下降,mAP降低到76.4%,但在后续剪枝处理完成后,可以通过微调训练恢复部分精度,从而在进行模型压缩后仍能保证较高的检测精度。
在稀疏训练完成得到的模型权重基础上,设置不同的剪枝率的阈值来进行剪枝实验,不同剪枝比例的模型mAP变化情况如图12所示。
图12 mAP随剪枝率变化Fig.12 Variation of mAP with pruning rate
从图12中可以看出,随着剪枝率的阈值不断增大,模型mAP随之下降,但精度损失较小,直到剪枝率的阈值超过90%时,精度迅速下降。因此,为平衡模型压缩程度与检测精度降低情况,选用剪枝率的阈值为90%的模型作为最终的轻量化网络,并在Darknet框架下进行微调训练,检测精度恢复到88.34%,将该施工人员检测模型命名为YOLO-PW。
表2为本文提出的施工人员轻量化检测网络YOLOPW与剪枝处理前模型YOLO-W、原始YOLOv3以及其简化版本YOLOv3-Tiny,在施工人员数据集上的实验结果对比。可以看出,YOLO-PW检测精度较YOLOv3提升4.89个百分点,将模型大小压缩至原来的1/13,速度提升约一倍,仅略低于YOLOv3-Tiny,检测性能提升明显。
表2 不同模型的检测性能Table 2 Detection results of different models
图13为YOLO-PW施工资源检测模型在不同场景下的检测结果,可以看出,该网络对于多视角、多姿态的施工人员检测效果较好,且在光照不良、存在遮挡等不利条件的影响下,仍能够保证良好的检测性能,准确识别出人员目标,完成不同施工场景下的施工人员目标检测任务。
为检验本文所提出的轻量化施工人员检测网络在边缘端的实时检测性能,将在嵌入端平台Jetson Xavier NX进行YOLO-PW模型的部署实验,并使用Tensorrt库进行加速推理。表3为不同检测方案在该设备上部署的检测速度对比,可以看出,经过通道剪枝后得到的YOLO-PW网络在边缘设备Jetson Xavier NX上经过Tensorrt加速后,能够实现69.08 FPS的检测速度,可以满足施工现场多视频流的实时检测需要。
表3 Jetson Xavier NX部署模型检测性能Table 3 Detection performance of models deployed in Jetson Xavier NX
实验结果表明,本文所提出的实时施工人员检测网络YOLO-PW能够在保证精度的情况下,将模型大小压缩为原来的1/13,在嵌入端设备Jetson Xavier NX上经过Tensorrt加速后,检测速度提升为原YOLOv3模型的两倍,能够在施工现场边缘端部署,并进行实时施工人员检测。
图13 YOLO-PW在不同施工场景下的检测结果可视化Fig.13 Visualization of YOLO-PW detection results under different construction site
本文以YOLOv3目标检测算法为基础,通过增加多尺度特征融合、加入空间金字塔池化模块以及改进候选框,得到施工人员检测模型YOLO-W,克服施工图像中背景复杂、目标尺度多样和存在遮挡等困难,检测精度可达到88.57%,相较于原YOLOv3算法提升5.23个百分点。另外,为实现模型在施工现场边缘端的实时部署,对YOLO-W网络采用通道剪枝方法得到轻量化模型YOLO-PW,参数量降低为原来的1/13,检测速度提升为原来的2倍,同时精度损失有限,剪枝后模型仍能保持88.23%的检测精度。该YOLO-PW模型在嵌入端设备Jetson Xavier NX上结合Tensorrt进行加速推理,可以实现69.08帧/s的检测速度,能够良好地满足施工现场的边缘端的部署要求,进行实时施工人员检测,为施工管理人员提供有效的实时信息。本文所使用的施工人员数据集覆盖的施工场景有限,在后续研究中将继续扩充数据集图像,提升模型泛化性能,同时将针对获取的施工人员目标信息进行算法的继续开发,将其应用到异常侵入、工效计算和危险预测等管理任务中。