深度学习在塔吊裂缝识别中的应用 ①

2021-01-15 03:27黄宏安陈国栋张神德
关键词:塔式起重塔吊检测器

黄宏安, 陈国栋, 张神德

(福州大学物理与信息工程学院,福建 福州 350108)

0 引 言

目前深度学习已被广泛应用于许多领域,但是在工地领域方面的运用仍然较少,目前塔吊安全事故频繁发生,2007—2016年间总共发生了152起在役塔吊安全事故[1],在这些塔吊安全事故中由于塔吊出现裂缝没及时发现最终导致安全事故的发生不在少数。塔吊安全事故的发生往往会给施工现场带来巨大的经济损失甚至会造成严重的人员伤亡,因此塔吊已然成为工地施工现场主要的危险源之一。对于塔吊裂缝的识别如果采用传统的人工检测裂缝的方法将浪费大量的时间和精力,再加上在塔吊高处的检测非常危险,检测人员在塔吊高处的检测难度较大,如果操作不慎极有可能对检测人员的生命安全构成威胁。除此之外,检测精度也随各检测人员的经验技术而异,具有不确定性,因此分析研究深度学习技术在工地领域中塔吊裂缝识别中的应用具有非常重要的现实意义。

在传统的关于识别与检测的算法中,大多数的检测算法是基于滑动窗口的经典框架或者是根据目标图像的特征点进行匹配的[2],然而传统的算法面临许多的问题,包括时间复杂度高、区域选择算法暴力等缺点。直到2012年AlexNet在ImageNet大规模视觉识别挑战赛中一举夺冠,而且AlexNet的识别效果远远超过传统的目标检测算法[3],人们的视野才渐渐的转到卷积神经网络上。目前基于深度学习的目标识别算法可以分为两个流派,一个流派是以YOLO算法[4]和SSD算法为代表的基于回归的目标检测算法,另一个流派是以R-CNN为代表的基于分类的检测算法。本文将YOLOv3算法、SSD算法和Faster-RCNN算法应用在塔吊的裂缝识别上,实现对塔吊裂缝的目标检测,通过比较分析这两种算法在塔吊裂缝识别上的优缺点,并进一步提出下一步的改进方向。

1 基于CNN的深度学习模型

目前主流的基于深度学习的目标检测器可以被分为以下两个大类:其中一大类是以基于候选区域的卷积神经网络R-CNN为代表的二阶段检测器(Two-stage)[5],但是由于R-CNN算法在训练模型时需要对每一个候选区域都进行一次CNN操作,R-CNN算法在训练过程较为繁琐导致模型的训练速度并不理想,后来为了提高训练的速度对CNN操作进行改进从而得到了相比R-CNN算法训练速度得到大量提高的同时仍能保持与R-CNN相近检测精度的Faster-RCNN算法;另一大类是以基于回归算法的YOLO算法和SSD算法为代表的一阶检测器(One-stage)。通常而言,二阶检测器的检测精度要比一阶检测器的检测精度要高,而一阶检测器的检测效率比起二阶检测器的检测效率高。

1.1 YOLO算法

YOLO算法的思想是端到端的回归方法,直接通过暴力的网格划分产生若干个含有裂缝的候选区域,随后送入神经网络模型进行回归检测,该系列算法识别速度快、识别准确度略低于RCNN算法。本文采用YOLOv3算法对塔式起重机裂缝进行检测,YOLOv3算法采用一个单独的卷积神经网络模型实现end-to-end的目标检测[6],因此在训练效率上YOLOv3算法比Faster RCNN算法要快很多。YOLOv3算法以Darknet53为骨干网络架构如图1所示,通过对图像进行降采样来获取不同尺度下的特征图,这样做的目的是为了用来适应在不同尺度下目标的检测输出[7],与此同时也是为了降低底层目标的特征损失,通过对顶层特征图的两次上采样并与底层特征图进行融合,加强了对不同尺度下目标的适应性。

图1 YOLOv3特征提取网络

1.2 R-CNN 算法

R-CNN算法是二阶段的检测算法,第一阶段通过一定的算法提取可能含有目标的候选区域,第二阶段对候选区域中的目标进行详细分类和候选区域回归,输出目标的类别和位置。该系列算法识别错误率低,但检测速度较慢。Faster RCNN[8]算法抛弃了传统的滑动窗口方法,直接使用RPN生成检测框,这也是Faster R-CNN的巨大优势,这样做能极大提升检测框的生成速度。目前为止,Faster RCNN 方法是主流的二阶检测器目标识别算法,虽然通过RPN直接生成检测框大大提高了运行速度,但是在识别效率上依然无法做到对检测目标进行实时性检测。本文中对于塔式起重机裂缝的识别以VGG16模型为骨干网络架构,Faster RCNN的识别流程图如图2所示。

图2 Faster RCNN识别流程图

1.3 SSD算法

SSD算法[9]是Wei Liu在2016年提出的一种目标检测算法。SSD算法综合了 YOLO 和 Faster RCNN 两种算法的优势,对目标检测的精度和速度都进行了提升。SSD的骨干网络是基于传统的图像分类网络,如ResNet,VGG等,在本文塔式起重机裂缝识别中作者所用的SSD网络模型是基于一个前馈的卷积神经网络VGG16,其结构如图3所示。经过3个池化层和10个卷积层的处理,可以得到一个尺寸为38×38×512的特征图。最后在这个特征图上进行回归,得到物体的位置和类别。

图3 SSD网络结构图

2 训练策略

2.1 数据采集及计算平台

基于上述算法,本文将目前主流的基于候选区域的二阶检测器Faster RCNN算法和基于回归的一阶检测器YOLOv3算法应用在塔式起重机的裂缝识别中,对于基于这两种算法训练得到的裂缝识别模型进行比较,分析Faster RCNN算法和YOLOv3算法在塔式起重机裂缝识别方面的优劣。为了获取足够多的塔式起重机裂缝图像样本数据,防止数据集不足导致网络在训练过程中过拟合的情况的发生,本文除了通过人工采集方式获得塔式起重机裂缝图像数据,本文还加入了和塔式起重机材质相类似的钢铁裂缝和高铁铁轨裂缝,同时考虑光照和阴影等环境因素影响,本文使用相机在不同时间和不同时刻对塔式起重机裂缝的不同位置进行拍摄,最后将所得到的数据集进行一定程度的垂直翻转、水平翻转、线性变换与空间滤波变换获得裂缝样本图像共6128张,部分裂缝样本数据集如图5所示。数据集中包含各种塔式起重机裂缝图片并转换成PASCAL-VOC 数据集格式用于训练模型。在整个实验的过程中随机使用数据集中的80%的数据集用于训练数据,剩下20%的数据集用于测试数据。

图4 目标检测算法训练、识别流程图

图5 实验裂缝样本数据集

本实验在64位Window 10操作系统上进行,IDE采用Pycharm。具体环境配置如表1所示。

表1 实验运行环境

2.2 训练网络模型

本文应用YOLOv3,Faster RCNN和SSD算法进行塔式起重机裂缝检测,一共分为训练和识别两个过程,对于一些裂缝图像较暗、模糊等现象,可以在算法执行时进行数据预处理,改善图像质量。除此之外在进行深度学习目标检测算法训练时,为了提高算法的鲁棒性,可以对图像进行垂直翻转、水平翻转、线性变换等操作,图4为训练算法流程图与识别算法流程图。

3 塔吊裂缝实验对比

将训练测试集分别输入到Faster RCNN,SSD,YOLOv3算法中,分别训练出三种塔式起重机裂缝网络模型,得到依次为Faster RCNN,SSD,YOLOv3裂缝识别效果图,如图5所示。

图6 Faster RCNN、SSD、YOLOv3 识别效果图

在本次实验中使用Faster RCNN算法、SSD算法、YOLOv3算法在裂缝测试集中进行测试,并对不同算法结果进行了对比,实验结果如表2所示。

表2 根据裂缝识别实验结果所得出的不同评测的指标值

通过分析实验和表2的实验结果,我们可以知道SSD算法在训练塔式起重机裂缝网络模型时训练速度最快,当我们需要实时的监测塔式起重机裂缝图像时相对效果的训练效率往往更具有优势,因此SSD算法适用于较大的塔式起重机裂缝图像数据集。YOLO算法对裂缝图像中有裂缝的区域定位比起SSD算法更精准但训练速度会比SSD算法更慢,YOLO算法能够用标定框较为完整地标记出裂缝区域,适用于对塔式起重机裂缝图像区域标定框定位要求较为严格且对实时性具有一定要求的场景,Faster RCNN 算法与SSD算法、YOLO算法相比对塔式起重机的裂缝图像识别上漏检率误检率漏较低,但是对塔式起重机裂缝网络模型训练速度最慢,适用于对塔式起重机裂缝图像区域标定框定位严格,但对实时性要求不高的场景。

4 结 语

本文通过对基于回归算法的SSD算法和YOLO算法和对基于候选区域的Faster RCNN算法在塔式起重机裂缝识别的识别领域的分析表明,YOLO算法、SSD算法和Faster RCNN算法都能较为准确地识别出裂缝图像。其中Faster RCNN算法检测精度最高,达到86.15%,同时针对Faster RCNN算法在训练效率上和测试效率的不足,下一步改进的方向可以让Faster RCNN算法生成的候选框采用自适应反馈调节的方式,通过训练时反馈调节,使生成的候选框数量形成动态变化,这样可以有效提升训练效率。SSD算法训练裂缝模型时所用时间最少,模型的检测精度为74.47%,YOLOv3算法检测精度为76.36%,训练效率略低于SSD算法,针对SSD算法和YOLO算法在检测精度上的不足,下一步将继续对SSD算法和YOLO算法的网络结构进行优化,可考虑加入GAN网络,提升检测精度。

猜你喜欢
塔式起重塔吊检测器
儿童主动学习行为的分析及支持策略——以扭扭积木《塔吊》为例
浅析塔式起重机垂直度偏差成因及纠正措施
一起塔式起重机拆卸倒塌事故的技术分析
塔式起重机布设典型问题与解决措施研究*
多标段工程群塔布置与安装
塔吊检查
超高层建筑塔吊选型和布置分析
基于二次否定剪切选择的入侵检测方法*
塔式起重机螺栓疲劳断裂分析
车道微波车辆检测器的应用