两类YOLOv4-tiny简化网络及其裂缝检测性能比较

2022-02-22 06:54宋立博费燕琼
关键词:树莓网络结构残差

宋立博,费燕琼

(1.上海交通大学学生创新中心,上海 200240;2.上海交通大学机械与动力工程学院,上海 200240)

随着芯片计算能力的快速提高及深度网络技术的成熟,以深度学习为基础的机器智能时代已经来临。Tensorflow、MXNet、Pytorch和Caffe等开源深度网络尤其是高效的Darknet深度网络的推出,更促进智能技术在语音识别[1-2]、人脸及姿态识别[3-5]、电力设备及设施[6-7]、零件质量及缺陷检测[8-9]、轮廓检测[10]、垃圾回收[11]及农业相关[12-13]等领域成功工程应用的同时,也成为国内外学术机构的研究热点之一。

实际工程应用证实了深度网络实现的机器智能的高效性。但这些深度网络普遍运行在Python软件上,普遍存在硬件要求高、环境依赖项多、搭建难度大及对使用者有一定编程基础要求等的缺点。由于算力限制,深度网络在树莓派等边缘设备上运行速度更慢,从而限制了其在移动机器人领域的工程应用。本文以上海交通大学研发的裂缝检测机器人为例,研究简化YOLOv4-tiny网络及在树莓派上实现裂缝智能检测的方法和技术。

1 Darknet网络及YOLOv4-tiny深度网络结构

目标检测是深度网络及其算法的主要应用领域之一。传统上,物体检测有两阶段(two-stages)和一阶段(one-stage)两种方法。其中,基于候选区域(Region Proposal)的R-CNN,Fast R-CNN,Faster R-CNN等R-CNN系算法[14]就是典型的两阶段方法,其特点是先通过启发式方法或卷积神经网络(convolutional neural network,CNN)产生一系列候选框,再对这些候选框进行分类与回归。而一阶段方法则是采用不同尺度和长宽比在图片不同位置均匀采样,利用卷积CNN提取特征后直接进行分类与回归,将候选框产生与分类过程合二为一,典型的有单发多窗检测器(single shot multibox detector,SSD)[15-16]和YOLO(you only look once)两种算法。相比较而言,一阶段方法速度较快、准确度稍低且训练较为困难。

YOLO算法建立在华盛顿大学Redmon J.团队推出的Darknet深度网络框架基础之上,采用C语言和CUDA编写,无依赖,速度快,可在Windows及Linux等系统及CPU和GPU等多种硬件上快速编译和运行。2020年4月,Bochkovskiy等[17]在考虑了边框重合度、中心距离和宽高比等尺度信息的完全交并比(complete-intersection-over-union,CIoU)损失函数等基础上推出YOLOv4算法,Mosaic数据增广、DropBlock正则化等数据增强方法的应用使其在MS COCO数据集上的平均精度均值(mean average precision,mAP)提升至43.5%,性能较其他版本YOLO算法有了很大提升。

YOLOv4具有162层网络结构,使用三个特征层进行分类。回归预测骨干网络采用CSPDarknet53,以空间金字塔池化(spatial pyramid pooling,SPP)和PANet为脖颈(Neck)的附加模块和特征融合模块。相对于一般PC和树莓派等算力较弱的计算设备,YOLOv4运行速度较慢,训练和检测时间较长。2020年6月,Bochkovskiy团队[18]在YOLOv4网络结构基础之上,推出只有38层结构的简化版YOLOv4,称为YOLOv4-tiny。与YOLOv4相比,YOLOv4-tiny在主干特征提取网络、脖颈和头部(head)等方面均做了极大简化。YOLOv4-tiny主干特征提取网络采用CSPDarknet53-tiny,一般以416×416×3图像为输入。

2 简化版YOLOv4-tiny网络结构

在树莓派等边缘设备上运行时,38层网络结构的YOLOv4-tiny速度依然较慢,简化后再加速就是可能的技术途径了。学术界以YOLOv4系列算法为基础进行了改进,主要手段有如下几种。

(1)数据增强。结合采用Mosaic和CutMix等多种数据增强方法和策略,解决单类检测和小目标检测时正负样本不平衡问题,使用小样本构建具有多种数据特征的数据集[19];

(2)改进特征融合。结合低层信息丰富特征提取网络层次结构,使用多尺度融合及使用损失函数加权来约束权重和偏置以提高特征利用率。同时,使用CIoU等作为边框回归损失函数加快模型收敛速度[20];

(3)改动网络特征层数量。通过删减或增加网络中相关的特征提取层,以实现网络改进[21-22];

(4)改进特征提取网络。这是简化结构并提高性能的主要技术手段,主要方法有使用GhostNet[23]、逆残差组件(Inverted Residual Unit)[24]及将MobileNetV3作为主干特征提取网络[25],再结合特征融合层引入跨阶段部分网络(cross stage partial network,CSP)结构、融合卷积层和BN(batch normalization)层的方法或软性非极大值抑制(soft DIoU-non-maximum suppression,Soft-DIoU-NMS)等算法或K-means聚类方法优化锚框选取以提高网络检测能力。

除删减特征提取层外,文献[19-25]所述简化方法依然没有显著减少CPU计算量及提高在树莓派上部署的可能性。本文采用的技术方法是删减一个用于特征提取的残差网络结构及改变最后一个route层连接的方法,在保证网络参数不变的条件下实现目标特征的尽早前向传播。其算法如图1所示。

图1 改进YOLOv4-tiny网络结构Fig.1 Improved network structure of YOLOv4-tiny

由此可见,改进YOLOv4-tiny算法主要在于残差网络层的删减及特征的后向传递与route层连接。作为比较,本文设计了两种简化形式。

2.1 YOLOv4-lite1网络结构

YOLOv4-lite1网络结构是第一种简化形式。与标准YOLOv4-tiny相比,YOLOv4-lite1网络有如下几个特点:①去除了第二个残差网络结构,仅使用两个残差网络进行特征提取;②在第10层conv卷积层和第11层conv卷积层之间增加了一个maxpool池化层以匹配原第三个残差网络结构的输入;③最后一层route层与新结构中的第12层conv卷积层相连,新网络具有33层结构,未改变标准YOLOv4-tiny双YOLO头输出形式。

采用netron工具表示的YOLOv4-lite1网络结构(部分)如图2所示,虚线内结构为YOLOv4-lite1网络最大变化。最大变化之一是在原第三层残差网络之前增加一个maxpool池化层在降维的同时减少运算量,第二个变化是第一层残差网络前向传播后再上采样与第一个YOLO输出融合,以用于较小裂缝检测。

图2 YOLOv4-lite1网络结构Fig.2 Structure of YOLOv4-lite1

2.2 YOLOv4-lite2网络结构

与YOLOv4-lite1相比,YOLOv4-lite2网络最后一个route层连接的是第17层,其余与YOLOv4-lite1网络相同。去除与图2a相同部分,其余部分结构如图3所示。

图3 YOLOv4-lite2网络结构(部分)Fig.3 Structure of YOLOv4-lite2(part)

由此可见,除最后一个route层连接外,YOLOv4-lite1和YOLOv4-lite2网络是完全类似的。

3 深度网络学习及训练

3.1 数据集准备

因未能获取待测建筑物的实际裂缝图片,以“裂缝”为关键词在百度上使用Python爬虫程序下载了166张网络照片,街拍200余张裂缝图片。将图片分为大裂缝、小裂缝、斑驳裂缝和表面脱落等4种类型后,使用imagemagick软件将其裁剪为416×416的标准尺寸照片,再经旋转、镜像和曝光度调整等处理得到800余张有效照片数据集,严格按照Pascal VOC格式和目录组织。使用官配Python软件按7:2:1比例随机分为训练集、测试集和验证集。

3.2 编译GPU版本Darknet

从https://github.com上下载了AlexeyAB版本的Darknet深度框架源代码,修改后以输出预测框中心坐标、置信度、类别统计、各类别物体数量及检测物体总计数等。在64位Ubuntu16.04环境下结合MX150显卡对应的CUDA编译生成GPU版本Darknet可执行文件。

3.3 训练

分别按照如图2和图3所示简化版YOLOv4-tiny网络,修改YOLOv4-tiny.cfg配置文件,保存间隔burn_in和学习率learning_rate等采用默认参数,未调整其他参数。

无预训练权重文件的训练命令为:

至第10 000个迭代周期终止,分别得到YOLOv4-lite1_1000.weights,YOLOv4-lite1_2000.weights等10个权重文件及YOLOv4-lite2_1000.weights,YOLOv4-lite2_2000.weights等10个权重文件。

4 部署及实验

4.1 部署

为验证裂缝检测功能,作者将经NNpack深度网络工具包加速的AlexeyAB版Darknet部署在树莓派4B上,使用make all指令编译后生成./darknet可执行文件。将相关.cfg配置文件和.weights权重文件拷贝至MicroSD卡相关目录内,即完成裂缝智能检测系统在树莓派4B边缘设备上的部署。

4.2 实验

在树莓派4B上分别使用2 000、4 000、6 000和8 000次迭代周期生成的weights权重文件及YOLOv4-lite1及YOLOv4-lite2网络进行了验证。4个图片文件在验证集和测试集中随机抽选,采用默认thresh阈值时实验结果如图4~图7所示。其中,图4~图7的分图a为YOLOv4-lite1实验结果,b为YOLOv4-lite2实验结果,c为标准YOLOv4-tiny实验结果。

图4 2 000次迭代周期生成的weights权重文件实验结果Fig.4 Experiment results of the 2000-epoch weights file

图7 8 000次迭代周期生成的weights权重文件实验结果Fig.7 Experiment results of the 8000-epoch weights file

此时,各测试图片使用YOLOv4-lite1、YOLOv4-lite2和YOLOv4-tiny算法的检测时间和平均精度均值mAP如表1所示。其中,lite1、lite2及tiny分别表示YOLOv4-lite1、YOLOv4-lite2和YOLOv4-tiny算法。

表1 各测试图片检测时间表Tab.1 Detection time of different weights files and pictures ms

相应的,各图片裂缝检出数量如表2所示,“+”后面的数字为重复检测或误检数量。

表2 各测试图片检出数量对比表Tab.2 Detection number of different weights files and pictures

图5 4 000次迭代周期生成的weights权重文件实验结果Fig.5 Experiment results of the 4000-epoch weights file

分析如上数据,可得如下结论:

(1)因残差网络结构相同而route层连接靠前,在较低迭代周期时YOLOv4-lite1网络平均精度均值mAP高于YOLOv4-lite2和YOLOv4-tiny网络,其置信度相对较高;而随着训练的进行,较高迭代周期时YOLOv4-lite2网络平均精度均值将高于YOLOv4-lite1和YOLOv4-tiny网络;

图6 6 000次迭代周期生成的weights权重文件实验结果Fig.6 Experiment results of the 6000-epoch weights file

(2)两者权重文件均为23.7 M,一般情况下YOLOv4-lite1平均运行速度比YOLOv4-lite2快0.86%。二者速度并无本质差别,但均高于YOLOv4-tiny网络;

(3)以2 000次迭代周期为例,在较少迭代周期时YOLOv4-lite1的裂缝检出率较YOLOv4-lite2高约22%;超过4 000个迭代周期后YOLOv4-tiny网络和YOLOv4-lite2网络因过拟合出现大量重复检测,而YOLOv4-lite1网络因较为稳定的平均精度均值表现稳定且效果最好。这就是说,平均精度均值与检测效果并无必然关系,但过拟合将影响实际检测效果。

需说明的是,裂缝检测数据集较少,训练均不太充分,网络参数也未经完全优化。综合来讲,在使用图例图片检测时YOLOv4-lite1网络较YOLOv4-tiny网络和YOLOv4-lite2网络效果佳,虽然其平均精度均值较YOLOv4-lite2小。进一步的分析、训练和测试表明,增加网络的批量数batch和批次数subdivision参数确实能在一定程度上提高平均精度均值。例如,YOLOv4-lite1网络在batch=32和subdivision=4及batch=16和subdivision=2时,其平均精度分别如表3所示。

表3 不同参数的平均精度均值对比Tab.3 Comparision of mAP with different parameters

但在网络滤波因子filter等参数变化的情况下,表3所示结论未必成立。例如,某网络在batch=16和subdivision=2条件下,在迭代周期分别为6 000、7 000和8 000时,其平均精度均值为26.25、24.71和28.91;batch=32和subdivision=4条件下,在迭代周期为6 000、7 000和8 000时,其平均精度均值分别为24.16、24.51和24.58,平均精度均值mAP反而有所降低。

5 结语

在标准YOLOv4-tiny网络结构基础上,简化出两种YOLOv4-lite新网络结构。以裂缝检测为例,训练后在树莓派4B上进行了实际检测实验。结果表明,YOLOv4-lite1较YOLOv4-tiny和YOLOv4-lite2有更好的检出效果、稳定性和更快的运行速度。下一步作者将建立实际的远程图像采集和传输系统,并在裂缝检测机器人上进行实际测试。同时,采集更多实际裂缝图像扩大图像集数量和类型,进一步提高实际检测效果。

作者贡献声明:

宋立博:设计YOLOv4-lite1比YOLOv4-lite2新网络结构,训练网络并进行测试。

费燕琼:网络上下载裂缝图片,处理并形成裂缝数据集。

猜你喜欢
树莓网络结构残差
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
基于残差学习的自适应无人机目标跟踪算法
基于深度卷积的残差三生网络研究与应用
基于AutoML的保护区物种识别①
基于树莓派的骑行智能头盔设计
黄金水果红树莓
带通信配网故障指示器故障监测方法及安装分析
e络盟率先推出第三代树莓派
年度睡姿大盘点(下)