Artificial Intelligence and Robotics Research
Vol. 10  No. 04 ( 2021 ), Article ID: 46672 , 8 pages
10.12677/AIRR.2021.104032

改进Pelee轻量化网络及在建筑物裂缝检测中的应用

宋立博1,费燕琼2

1上海交通大学学生创新中心,上海

2上海交通大学机械与动力工程学院,上海

收稿日期:2021年10月12日;录用日期:2021年11月16日;发布日期:2021年11月24日

摘要

针对电力线绝缘子检测及高大建筑物裂缝检测等特殊应用场合,提出在边缘设备上运行深度网络程序实现智能检测的设想。综合考虑常见轻量化网络结构特点、训练难度和运行速度等特点基础上,选择Pelee为所需的轻量化深度网络。为在边缘设备上顺利运行,修改双通道全连接层结构,重新设计由主干层、残差预测层、双通道全连接层、残差预测层组成,以13 × 13为输出的深度学习网络,并在Darknet深度学习框架上设计并实现新型轻量化Pelee学习算法。建立裂缝目标检测Pascal VOC格式数据集,训练后在树莓派4B进行部署测试。结果表明,相对于YOLOv4-tiny算法,Pelee算法在权重文件大小及总计算量等方面具有明显优势,总体性能与YOLOv4-tiny相当。本文创新点在于修改双通道全连接层结构,增加残差预测模块,采用单YOLO输出头结构形式以提高小裂缝检测效果。

关键词

深度学习,深度网络,边缘设备,边缘智能,目标检测

Improved Pelee Light Network and Its Application on Crack Detection

Libo Song1, Yanqiong Fei2

1Student Innovation Center, Shanghai Jiao Tong University, Shanghai

2School of Mechanical Engineering, Shanghai Jiao Tong University, Shanghai

Received: Oct. 12th, 2021; accepted: Nov. 16th, 2021; published: Nov. 24th, 2021

ABSTRACT

In view of such special applications as power line insulator inspection with flying aircraft and crack inspection of tall buildings, the idea of running deep network program on edge equipment to realize intelligent detection is put forward in this paper. Taking the structural characteristics, training difficulty and running speed of common lightweight networks into consideration, the Pelee is selected as the required lightweight deep network. In order to run efficiently on some edge devices, the dual-channel dense layer structure was modified, and the new deep learning network consisting of stem block, residual prediction block, dual-channel dense layer and residual prediction block was redesigned with the 13 × 13 image output. Then, the Pelee lightweight learning algorithm and structure was designed on Darknet deep learning framework. After establishing dataset in Pascal VOC format for crack detection and training with Cli command, the Pelee-based crack detection deep network was deployed on RaspberryPi 4B. The results show that the Pelee algorithm has significant advantages in weight file size and total calculation in comparison to the YOLOv4-tiny network and its overall performance can be comparable to that of YOLOv4-tiny. The innovations of this paper focus on modifying structure of the dual-channel dense layer, adding an RPB module, and adopting a single YOLO output head structure to improve the detection effect of small cracks.

Keywords:Deep Learning, Deep Network, Edge Device, Edge Intelligence, Object Detection

Copyright © 2021 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

随深度网络技术的成熟,建立在深度网络基础之上的AI (artificial intelligence)系统日渐普及,并在自然语言理解、人脸识别、目标分类、目标识别、语音识别、语义分割及风格迁移等领域得到成功应用。Google、Facebook、Amazon、百度等公司分别推出或采用Tensorflow、Pytorch、MXnet和Paddlepaddle等开源深度网络系统,及在Github和Gitee等仓库中开源各类应用源代码,推动了AI技术的研究和发展。为实现日渐复杂应用,设计和训练更深和更多参数的深度网络就成为可行的工程方案。重要的是,多达上千万或上亿参数的深度网络训练需更大算力的支持,限制了这些更“大”AI系统的普及。

针对电力线巡检、高大建筑物裂缝检测等需树莓派或Jetson NANO等算力有限的边缘设备做控制器的特殊应用场合,轻量化深度网络是在不增加硬件成本条件下可能的选择,而树莓派和Jetson等边缘设备的普及也使得部署轻量化深度网络更加容易。目前,寻求可在边缘设备上高速运行且有较高精度的轻量化深度网络也成为人工智能发展和深度学习的另一个重要发展方向。本文在轻量化网络研究基础上,研究改进Pelee网络结构及在Darknet深度框架上的实现过程,并在树莓派4B上的移植和实验方法。

2. 常用轻量化深度网络

在目标识别领域,常用的有以SSD和YOLO为代表的单阶(one-stage)算法,Fast-rcnn和Faster-RCNN系列的双阶(two-stage)算法以及R-CNN和SPPNet为代表的多阶(multi-stage)等三类算法。这些算法一般网络较深,参数较多,在边缘设备上直接运行有较大难度,部分学者开始了轻量化网络的研究。而轻量化网络有Densenet、Efficientnet、Ghostnet、MobileNet系列、Pelee、Shufflenet、Squeezenet、Thundernet、VoVnet、VarGnet及Xception等几种。其中,尤以Efficientnet、MobileNet系列和Squeezenet应用较为广泛。加拿大西安大略大学提出的Pelee网络 [1] 以可在几乎不增加计算量情况下提升特征表达能力著称,部分学者在Github仓库提供有SSD算法 [2] [3]、Pytorch框架实现 [4] 及手写字体识别cifar识别 [5] 的源代码,方便用户学习和使用。国内相关研究重点集中于交通场景目标检测 [6]、实时车辆检测 [7]、不规则场景文本识别 [8]、PCB元器件检测 [9]、图像分割 [10]、大视场多类遥感目标检测 [11] 及提高性能 [12] 等方面,在裂缝检测方面应用较少。

针对国内1600余座高大建筑物裂缝检测的巨大市场需求,并综合速度检测精度需求,确定采用Pelee轻量化深度网络并在树莓派4B上部署作为技术实现方案。

3. Pelee轻量化深度网络结构

Pelee轻量化网络可看作Densenet网络的变体及部分性能增强版本,包括如下几个组成部分。

3.1. 主干层(Stem Block)

主干层由两通道网络组成,是Pelee轻量化网络的第一部分,其目的是通过降采样和增加通道数量尽可能表达目标特征,而无须增大较多计算量。其结构如图1所示。

Figure 1. Stem block of Pelee network

图1. Pelee主干层结构

3.2. 双通道全连接(Dense)层

与Inception结构类似,采用双通道全连接层分别捕捉不同尺度的感受野信息。第一通道经一层1 × 1卷积,再经一层3 × 3卷积;第二通道则再经两层3 × 3卷积后经融合层(route)输出。其中,两通道1 × 1卷积层生成瓶颈(bottleneck),成为Pelee轻量化网络目标特征提取的核心。为进一步提高特征提取性能,在原始全连接层之前增加了一个具有滤波功能的卷积层。同时,为避免深度网络可能的过早过拟合,删除以虚线表示的前向直接传递通道,改进的双通道全连接层结构如图2所示。

Figure 2. Dual-channel of dense layer of Pelee network

图2. 双通道全连接层结构

因用于目标识别,用于物体分类的瓶颈(bottle neck)层、过渡层和采用激活后(post-activation)结构的复合函数(Composite Function)层不再介绍,感兴趣的读者请查阅Pelee官方文档 [1]。

3.3. 残差预测(Residual Prediction Block, RPB)层结构

在检测分支,使用残差网络进行预测,其结构如图3所示。

Figure 3. Residual prediction block of Pelee network

图3. 残差预测层结构

通过修改和完善目标检测网络结构,残差预测层还可以与双通道全连接层组合以提高特征提取性能。这也是残差预测层的一大特点。

4. 基于Pelee轻量化网络的目标检测算法及结构

标准Pelee轻量化网络多用于无需较高特征提取能力的物体分类,其结构简单,层数较少。在用于小裂缝目标检测时,还需要提高Pelee轻量化网络的特征提取性能并修改其输出以用于目标检测。为此,在主干层和全连接层之间增加了一个残差预测层用于特征提取。借鉴Yolov4-tiny算法兼顾效率和性能的特点,在Darknet深度框架上设计了以Pelee轻量化网络为主干的新型目标检测算法。如图4所示。

Figure 4. Sketchmap of this new algorithm

图4. 新算法结构框图

新算法有如下几个特点:1) 全连接层增加了滤波功能,去除前向直接传递通道,可在一定程度上避免可能存在的过早过拟合;2) 在标准Pelee结构基础上,增加一个残差预测层并与主干层配合以提高特征提取性能;3) 采用单Yolo输出头结构形式,输出为13 × 13,用于较小尺寸裂缝检测和输出。略做修改,即可成为双Yolo输出头结构输出形式以同时用于较小尺寸和较大尺寸裂缝检测。

Pelee轻量化网络多在Caffe和Pytorch等深度学习框架上实现。作者在Darknet深度学习框架上实现的Pelee轻量化网络结构如图5所示。

(a) 主干层结构 (b) 第一层残差预测层结构 (c) 全连接层结构 (d) 第二层残差预测层结构 (e) Yolo输出头结构

Figure 5. Structure of Pelee lightweight network designed with Darknet frame

图5. Darknet实现的Pelee轻量化网络具体结构图

其中,主干层、全连接层和两层残差预测层均采用官方推荐的参数。但为Yolo输出头前的两层卷积层均采用256个滤波(filter)参数形式以提高小裂缝检测性能,而未能全部采用轻量化设计要求。

5. 训练及部署

作者从https://github.com/下载AlexeyAB版本的Darknet深度网络源代码,修改image.c源文件代码以输出预测框中心坐标、置信度、类别统计、各类别物体数量及检测物体总计数等,编译生成GPU版本的Darknet可执行文件,以用于网络训练和测试。训练环境:64位Ubuntu16.04 LTS,MX150显卡,8G RAM,i5-8250 CPU,CUDA 10.1,cuDDN 7.3。

裂缝数据集来源于网络图片和在校内建筑物上拍摄的各类裂缝图片。将裂缝图片划分为大裂缝、小裂缝、斑驳裂缝和表面脱落等四种类型,使用Imagemagick软件截取为416 × 416尺寸的RGB图片,最终形成600张的裂缝数据集。使用官配python文件按7:2:1比例生成训练集、测试集和验证集,严格按照Pascal VOC格式和目录组织。

训练较为简单。在作者工作电脑上,采用Cli行和无预权重文件的训练命令为:

./darknet detector train Cracks/cfg/voc.data Cracks/cfg/pelee.cfg

最终生成若干个形如pelee_1000.weights、pelee_2000.weights及pelee_last.weights等权重文件,大小为6.61 M。训练过程中损失(Loss)图(部分)如图6所示。调整和优化网络参数后,Loss最终收敛在0.5附近,使用./darknet map命令得到的Pelee网络mAP为52.52%。

Figure 6. Loss map output during training (partial)

图6. 训练过程中的损失图(部分)

把这些.cfg网络配置文件和训练得到的.weights权重文件拷贝到树莓派4B SD卡适当位置,即完成Pelee网络在树莓派4B上的部署。经测试,Pelee网络总计算量为3.842 BFLOPS。

6. 测试与实验

使用如图5所示的Pelee轻量化网络和Yolov4-tiny网络在经NNpack软件包加速的树莓派4 B上进行了裂缝检测实验。其中,Yolov4-tiny网络mAP为60.18%,权重文件大小为23.5 M,总计算量为6.787 BFLOPS。从权重文件和总计算量可见Pelee网络轻量化效果,若去除增加的残差预测层将进一步降低总计算量和减小权重文件。以推理速度(/ms)、检出数量、误检数量(含漏检数量、重复检测数量和误检数量)及最高置信度(%)为例,其对比如表1所示。

Table 1. Comparison of detection results of Pelee network and Yolov4-tiny network

表1. Pelee网络与Yolov4-tiny网络检测结果对比表

在测试集中随机选择对应四种分类的裂缝图片文件,实际检测结果如图7所示。

(a) Pelee网络检测结果 (b) Yolov4-tiny网络检测结果

Figure 7. Detection results of Pelee network and Yolov4-tiny network

图7. Pelee网络与Yolov4-tiny网络实际检测效果

由此可见,除以总时间计的推理速度略慢(<3%)和置信度略低外,Pelee网络与Yolov4-tiny网络并无明显差别。但因权重文件仅为Yolov4-tiny网络的28.13%,增加一个残差预测层后总计算量为Yolov4-tiny网络的56.61%,Pelee轻量化网络的实际检测效果完全可以接受。并且,二者的锚框位置也有所不同。更多测试表明,相对较而言Pelee对于小裂缝检测和定位更为准确,Yolov4-tiny对于斑驳裂缝和表面脱落检测和定位更为准确。

Pelee轻量化网络运行速度理论上应快于Yolov4-tiny网络。因其内部存在大量size = 1和stride = 1的卷积计算用于特征提取和特征表达,这是降低其运算速度的一大原因。同时,因其深度仅为35层(Yolov4-tiny网络有38层),特征提取仍稍欠充分,故其置信度相对低,损失(Loss)函数仍较大。其特征表达环节也较浅,数据集较少及训练参数未完全优化等原因,其效果还有较大改进空间。

7. 结语

在改进双通道全连接层结构上,设计了以Pelee为主干网络,以主干层、残差预测层、全连接层、残差预测层及单Yolo输出头的新型轻量化目标检测网络,并在Darknet深度学习框架上设计实现。移植到树莓派4B上进行了实际测试实验,Pelee轻量化网络以类似深度、28.13%的权重文件、56.61%的总计算量获得与Yolov4-tiny网络相当的检测结果,其置信度和mAP虽较低,但尚存较大改进空间。进一步提高推理速度和检测精度,及如何与机器人运动控制系统融合是下一步研究目标。

基金项目

国家自然科学基金项目(51875335)。

文章引用

宋立博,费燕琼. 改进Pelee轻量化网络及在建筑物裂缝检测中的应用
Improved Pelee Light Network and Its Application on Crack Detection[J]. 人工智能与机器人研究, 2021, 10(04): 313-320. https://doi.org/10.12677/AIRR.2021.104032

参考文献

  1. 1. Wang, R.J., Li, X. and Ling, C.X. (2018) Pelee: A Real-Time Object Detection System on Mobile Devices. https://arxiv.org/pdf/1804.06882.pdf

  2. 2. Wang, R.-J. (2019) Pelee: A Real-Time Object Detection System on Mobile Devices. https://github.com/Robert-JunWang/Pelee

  3. 3. Edison, G. (2018) PeleeNet: A Real-Time Object Detection System on Mobile Devices. https://github.com/GZQ0723/PeleeNet

  4. 4. Li, J. (2020) Pelee: A Real-Time Object Detection System on Mobile Devices, in PyTorch. https://github.com/yxlijun/Pelee.Pytorch

  5. 5. Yang, Y.Z. (2018) PeleeNet. https://github.com/nnUyi/PeleeNet

  6. 6. 李环. 基于轻量级卷积神经网络的交通场景目标检测算法研究[D]: [硕士学位论文]. 广州: 华南理工大学, 2020.

  7. 7. 黄生鹏, 范平清. 基于深度学习的实时车辆检测研究[J]. 软件工程, 2021, 24(1): 13-16, 5.

  8. 8. 产世兵, 刘宁钟, 沈家全. 一种轻量级的不规则场景文本识别模型[J]. 计算机技术与发展, 2020, 30(11): 20-24, 29.

  9. 9. 产世兵, 刘宁钟, 沈家全. 基于轻量级网络的PCB元器件检测[J]. 计算机技术与发展, 2020, 30(10): 14-20.

  10. 10. 连博博. 基于谱分割和卷积网络的图像分割算法的研究与应用[D]: [硕士学位论文]. 苏州: 苏州大学, 2020.

  11. 11. 侯金元. 基于深度视觉感知建模的大视场多类遥感目标检测[D]: [硕士学位论文]. 北京: 北方工业大学, 2020.

  12. 12. 倪伟健, 秦会斌. GSDCPeleeNet: 基于PeleeNet的高效轻量化卷积神经网络[J]. 电子技术应用, 2021, 47(3): 22-26, 30.

期刊菜单