陈国栋,王翠瑜*,张神德,邓志勇,王同珍,吴志鸿,黄明炜,林进浔
(1.福州大学 物理与信息工程学院,福建 福州 350108;2.中建海峡建设发展有限公司,福建 福州 350015;3.福建数博讯信息科技有限公司,福建 福州 350002)
根据国内塔吊安全事故的统计研究,2007—2016年间国内发生152起塔式起重机安全{1]事故,2013—2019年间发生了194起,其中2017—2019年间占了111起,这194起事故导致294死、109伤,造成35 572.18万元的经济损失[2]。因此,由于塔式起重机结构的特殊性,对其定期的检测与监督,及时发现裂缝消除隐患是保障安全施工的重要环节,但现有的检查手段主要以人工攀爬巡查为主,成本高,费时费力,同时也要考虑检查人员的安全,且裂缝若出现在塔节点交界处等不易被察觉,无法有效排除隐患。
随着深度学习各种目标检测算法越来越成熟[3],通过深度学习解决缺陷检测问题的效果越来越好,应用领域也越来越广。单阶段目标检测(you only look once,YOLO)系列[4]方法基于回归的端到端的单阶段检测不依赖候选区的模型,可以非常迅速得识别定位图像中目标位置,相对于区域卷积神经网络(region-convolution neura network,R-CNN)[5]系列更符合实时快速检测的需求,但该类方法针对小目标的识别精度不高。随着发展和优化,YOLO系列的YOLO V3[6]定位精度有了很大的改善。
针对上文提出的塔吊裂缝安全检查问题,本文提出一种基于改进YOLO V3的塔式起重机裂缝检测方法,且根据实际塔吊应用场景提出相应的改进使得满足于工地干扰强,塔吊高大,需无人机搭载识别等特点,提高其识别速度和对小目标的敏感性。从而做出更好的预测来帮助完成施工安全的监督检测作业。
YOLO V3相对YOLO V1和YOLO V2[7]在识别速度与精度有了明显改善,同时优化了很多缺陷。在YOLO V3中以Darknet-53[8]为骨干网络,相比于YOLO V2的Darknet-19拥有更深的网络层数,如图1所示,该特征提取网络由52个卷积层和一个全连接层组成,并且交替使用1×1和3×3的滤波器进行卷积。在加深网络的同时YOLO V3还增加了多尺度融合的特征预测目标机制[9],该方法在最后获得的最小特征图上采取两次上采样,得到的特征图为三个尺度,并融合基础网络中同尺寸的浅层信息特征,分别进行三次目标框预测,然后通过非极大值抑制获得最后结果。这种方法使得YOLO V3具有更好的鲁棒性[10]。
图1 YOLO V3结构图
YOLO V3通过聚类算法[11]得到9个先验框,而在加速Faster RCNN[12]和单阶段多框目标检测(single shot multibox detector,SSD)[13]中需要手工设置先验框,客观性不够强,当先验框的维度合适,可以让神经网络更容易学习,更好地做出判断。本文对目标框采用聚类的方法来确定先验框参数。
K-means是一种常用的聚类算法,是一种使用广泛的最基础的聚类算法,K表示设置的聚类数目K-means成本函数公式如下:
(1)
其中,xi为第i个样本,uk是第k个类的重心位置。在塔式起重机裂缝检测中,改进前预设的9组先验框维度分别为(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326),本文在塔式起重机裂缝检测中对数据集进行聚类分析,使得先验框维度更适用于工地复杂环境下的裂缝识别场景聚类过程中簇的中心个数K和平均交并比的关系如图2所示:
图2 K-means聚类结果图
由图中可以看出,K=6时平均交并比的数值高且曲线收敛,新聚类出的先验框参数为(42,23),(56,32),(68,45),(73,59),(90,72)和(126,107)。
在塔式起重机裂缝检测中的损失函数[13]包括如下:
中心坐标误差,
(2)
宽高坐标误差,
(3)
置信度误差,
(4)
分类误差,
(5)
上述公式中,说明如表1所示:
表1 公式意义
原始的YOLO V3的损失函数对边界框的宽度没有足够重视,检测对象偏小时易忽视而检测对象为大目标时对损失会产生较大影响,如此易导致在对小目标检测时效果不好,为了帮助小目标更好的被边界框不足,提高小边界框的鲁棒性,将原YOLO V3坐标误差部分,参考真实目标边框对宽高坐标误差乘以一个加权,加强对待检测的小目标的损失的重视,降低大目标的误差对小目标的误差的影响,使得更好地检测小目标。改进后的损失函数如下:
(6)
在塔式起重机裂缝检测特征提取过程中,根据施工现场干扰较多,包括线缆、器材连接处、不规则锈迹、杂物等使得误检率高,区别于其他表面缺陷检测,塔式起重机裂缝检测在图像中更多都以小目标为主,在保持对小尺度目标检测精度良好下可以轻量化网络结构来提高检测速度,更符合实际识别检测需求,根据上述特点可将原来3个尺度规格13×13、26×26 和 52×52改成在26×26 和 52×52的2个尺度上做预测实现网络结构的轻量化。每种尺度有三种锚框,以降低误检的情况。如图3所示,将高层特征图的通道数通过1×1的卷积核改变,然后采用2倍上采样,将其与低层特征结合,3×3的卷积核可以消除混叠效应。改进后的多尺度融合提升小目标的检测效果,降低误检率,减少了改进的YOLO V3需要预测的边界框数,降低了网络的复杂性,更加符合施工作业现场的安全识别检测需求。
图3 多尺度融合改进
数据集的数量对试验结果有很大影响,数据集不足会引起过拟合的现象,为此,需要一个足够大的数据集。本文数据集共计7 506张各类塔式起重机及其附属设备的裂缝图片。如图4所示,为提高检测效果,我们通过随机旋转、镜像翻转、局部变形等多种方式对现有的数据集进行数据扩展。
图4 图像数据增强示例
本文训练时参数设置如表2所示,在训练过程中通过比较损失大小,保存损失最小的模型参数。
表2 训练参数设置
为评价本方法对塔式起重机进行定位的性能及改进后的效果,分别对两个网络进行测试,采用召回率和准确率评价,其具体计算公式分别为:
(7)
(8)
(9)
其中,T为正检数,FP为误检数,FN为未检测个数,A(average precision)为平均精度,m(mean average precision)为均值平均精度,是各类别A的平均值。
3.3.1改进的YOLO V3识别效果
为了测试改进的YOLO V3的识别效果,使用测试集分别针对原YOLO V3和改进的YOLO V3进行测试。改进的YOLO V3的识别效果如图5和图6所示,试验结果表明其均值平均精度可达到85.63%。对于图5中比较狭长不规则走势的裂缝,以及图6中因承重、作业操作失误、安装不规范等因素产生的断裂式错位式裂缝都有良好的识别效果,同时从图5、图6中也可看到小尺度的裂缝也能被正确识别出来,由此可以看出改进的YOLO V3针对塔式起重机的裂缝能有效识别定位。
图5 改进的YOLO V3 识别效果(一)
图6 改进的YOLO V3 识别效果图(二)
3.3.2改进的YOLO V3效果对比
多尺度融合改进效果测试,原来的 YOLO V3 使用 3 个不同尺度的特征图来预测待检测目标,将网络输出的后两个特征图上采样,与网络前期相应尺寸的特征图融合成有效信息进行预测。如表3所示,本文数据集以小尺度目标为主,在保持对小尺度目标检测精度良好下可以优化网络结构来满足实际更快检测的需求,将多尺度融合改在26×26 和 52×52的尺度上做预测后,试验测试结果表明,检测速度提高10.53%。
表3 检测速度对比
损失函数改进效果测试,本文根据需求改进损失函数中的坐标误差部分,调整检测大目标和小目标的损失影响权重,使得小目标的识别效果更好,试验结果如表4所示,改进后的YOLO V3检测方法整体对塔式起重机的裂缝识别平均检测精度优于原YOLO V3检测方法。
表4 性能对比
小尺度目标检测测试,经过K-means聚类和损失函数的改进,使得改进后的YOLO V3相比原检测方法对小尺度目标更加敏感,检测效果有所提升。为测试对小尺度目标的识别效果,在测试集中选取只包含小尺度目标的图片为子测试集进行测试试验,结果表明改进后的YOLO V3针对小尺度目标提高了3.87%的检测精度。如图7小裂缝识别效果图和图8中Improved YOLO V3图可以明显看出,改进后的YOLO V3算法对于塔式起重机局部出现的小裂缝识别效果良好,在干扰条件下未出现漏检或误检现象。
图7 改进的YOLO V3对小裂缝识别效果图
图8 改进的YOLO V3与原YOLO V3识别效果对比
如图8所示,改进的YOLO V3与原始YOLO V3识别效果对比,改进前算法将塔式起重机的部件连接部分误识别为裂缝,而改进后的YOLO V3准确地识别出裂缝所在位置和走势,在对复杂环境的小目标检测中,改进的YOLO V3优于原始YOLO V3,识别效果良好,相比之下改进的YOLO V3更符合需求。
3.3.3不同检测方法对比试验
本文采用改进的YOLO V3进行塔式起重机裂缝检测,为了对比改进的YOLO V3与其他检测识别方法的检测识别效果,除上文与原YOLO V3检测方法对比外,同时分别与SSD,Faster RCNN等方法进行对比,试验结果如表5所示。
表5 各方法实验结果对比
由表5可以看出Faster RCNN的检测精度最高,但速度远不及其他检测方法,不满足实时检测的任务需求,不适用于本文提出的塔式起重机裂缝检测需求。而SSD算法和原YOLO V3两种算法在精度和检测速度上都不如改进的YOLO V3算法。改进的YOLO V3采用K-means维度聚类提高了检测精度,损失函数的改进加强了对小目标的检测效果,多尺度融合轻量化网络结构提高了检测速度,相对于其他检测方法在两个指标中都有良好表现,由此可见本文改进的YOLO V3的性能能够较好地完成对塔式起重机的裂缝检测识别任务。
本文针对解决塔式起重机的安全问题提出基于改进YOLO V3的塔式起重机裂缝检测方法,并针对实际需求和应用场景对方法做出改进,通过K-means 算法对数据集的目标框大小进行聚类,有利于提高精度;改进了损失函数提高对小目标的识别效果;通过多尺度融合改进提升检测效果等,使得在保持良好检测准确率的同时拥有更好的检测速度,基本满足塔式起重机裂缝检测的准确性和实时性的需求,对预防塔式起重机事故的发生起到重要作用。在之后的工作中,将针对网络进一步优化来提高检测精度,增强在各种干扰下的检测效果,扩展数据集提高训练质量。