APP下载

基于改进Faster RCNN的钢筋数量检测

2023-05-05黄文豪

电子技术与软件工程 2023年2期
关键词:特征提取尺度注意力

黄文豪

(长沙理工大学计算机与通信工程学院 湖南省长沙市 410114)

在建筑施工中,钢筋计数是一个基础任务,这涉及到施工过程中钢筋的数量和位置,钢筋的数量和位置对于建筑结构的稳定性和安全性具有至关重要的作用。然而,传统的手动计数方法存在着效率低下、易出错等问题,尤其是在大规模和复杂的建筑工程中,计数难度更大。因此,研究一种高效、精确、自动化的钢筋计数方法对于提高工作效率、降低人为误差、提高工程质量具有重要意义。

本文针对我国大多数工地钢筋计数现状,提出了一种基于优化后的Faster RCNN 为主的钢筋计数算法模型,使用ResNet101 和ROI Align 分别替换原Faster RCNN 中的VGG16 与ROI pooling,并引入FPN 结构和CBAM 注意力机制,形成Faster RCNN+FPN+ResNet101检测模型框架。与其它传统方法相比,该方法具有更高的工作效率和更低的计数误差,可为钢筋计数工作带来便利。

1 检测模型与改进

1.1 Faster RCNN原理结构

Faster RCNN 是一种先进的基于深度学习的两阶段目标检测算法[9]。它的中心思维是将目标检测分为两个部分:候选区域提取和目标分类与定位。它采用了深度神经网络来自动地提取图像中的信息,并在此基础上,通过回归和分类器对每个候选区域进行分类和定位,这样就可以确定目标在什么位置以及属于什么类别。其网络结构图如图1所示。

图1:Faster RCNN 网络结构图

输入的图像通过CNN 网络进行特征提取,获得对应的特征信息图。RPN 网络会在图上产生一系列的Anchors,这些Anchors 会与输入的类别进行匹配并得到一组分数,基于这些得分将大量Anchors 舍弃,将适合的Anchors 调整成Proposals。得到一系列候选框后,采用一个分类器和一个回归器来对每个候选区域进行类别的划分和位置的确定,分类器用于确定候选区域中是否包含目标,回归器用于精确定位目标的位置。

1.2 改进部分

钢筋成捆的端面图中,由于钢筋横截面比较小,数量大且密度高,给检测带来了许多困难。结合这些特点,对Faster RCNN 以及检测模型主要有以下改进:使用ResNet101 和ROI Align 分别替换原Faster RCNN 中的VGG16 与ROI pooling;利用FPN 结构来融合不同尺度下的图片信息;对特征图引入CBAM 注意力通道机制。

1.2.1 ResNet101

ResNet101 是一种深度神经网络,它的深度有101层,主要特点是它使用了一种称为残差学习的技术,可以帮助网络训练更深的层数而不会出现梯度逐渐衰减的问题。对于小目标检测任务,使用ResNet101 取代原算法中的特征信息提取部分,主要有以下优势:

特征提取能力强:能够在不失去分辨率的情况下,逐层提取不同层次的特征。这对于钢筋数量检测任务非常有帮助,因为钢筋端面都是比较小的目标,通常需要更加细致的特征提取才能够识别出来。

支持多尺度检测:可以很容易地实现多尺度检测,经过在网络中增加多个尺度的特征图,可以检测到不同尺度的目标。对于小目标检测任务,这种多尺度的检测方式可以更好地适应不同大小的目标。

鲁棒性强:更加稳定可靠,因为小目标往往容易被复杂的背景、噪声和遮挡情况所干扰,而它可以处理一些钢筋图片背景较复杂、噪声影响较大的情况。

1.2.2 FPN

FPN 是一种特征金字塔结构,它能够在不同尺度下获取图片信息特征,从而识别不同大小的物体。FPN结构主要由两部分组成:自下而上(bottom-up)的特征提取网络和自上而下(top-down)的特征融合网络。自下而上的特征提取网络通常采用常见的卷积神经网络(CNN)结构。自上而下的特征融合网络则从高层特征图开始,逐层向下生成一系列金字塔状的特征图,通过上采样和融合的方式将高层语义信息和低层细节信息结合起来,得到尺度不同但语义信息丰富的特征图。

在钢筋检测中引入FPN 结构具有以下优势:

多尺度特征提取:FPN 可以同时获取不同尺度的图片信息,这使得网络能够更好地检测钢筋。因为小物体在图像中往往是比较模糊的,需要在不同尺度下进行特征提取才能更准确地检测。

联合特征:FPN 通过跨层连接将不同层级的特征进行联合,这种跨层连接的方式可以让不同层级的特征进行信息交流和共享。

目标识别:FPN 可以在不同层级的特征图上进行目标识别,这使得网络能够更好地检测小物体,因为小物体往往不仅仅是在图像中的某个位置出现,还需要通过周围的上下文信息进行识别。

1.2.3 CBAM 注意力模块

CBAM 是一种用于卷积神经网络的注意力机制,它能够帮助神经网络学习更好的特征,并提高分类和检测任务的性能。CBAM 由通道注意力模块和空间注意力模块两部分组成[5]。

通道注意力模块用于自适应地选择不同通道的特征图,以帮助网络学习更加准确和具有代表性的特征,计算公式如下:

式中,Mc为第c 个通道的全局平均特征图,ac为第c 个通道的激活值,Mc'为第c 个通道的注意力特征图,Mc''为所有通道的注意力特征图的平均值,H 和W 分别为输入特征图的高度和宽度,fij,c为输入特征图中在位置(i,j)处的第c 个通道的特征值。

空间注意力模块用于自适应地选择不同位置的特征图,以进一步提高网络的表现力和准确性,计算公式如下:

式中,Ms与as分别为空间注意力模块的特征图和激活值,Ms'为空间注意力特征图,f为输入特征图,W2和b2分别表示空间注意力模块的权重和偏置,sigmoid为Sigmoid 激活函数。

最终CBAM 模块的输出结果为:

1.2.4 ROI Align

ROI Align 是一种用于在深度学习中处理图像目标检测的技术。首先,将图像输入卷积神经网络获取图像信息特点,得到特征图。接下来对每个ROI 进行如下处理:根据ROI 的坐标,在特征图上定位ROI 的方位信息,再将ROI 均匀分成固定大小的格子,并在每个格子内插值计算出该格子内的特征值,这里采用的是双线性插值,即在相邻四个格点的值中加权插值得到目标点的值。最后,将得到的所有格子内的特征值拼接在一起作为输出。

在Faster RCNN 中进行ROI 池化操作,会将ROI划分成固定大小的网格,再对每个网格内的特征值进行池化操作。然而,这种方法会导致ROI 与特征图之间的对齐问题,进而影响目标检测的准确性。相比之下,ROI Align 则采用双线性插值的方法,能够更加精准地对齐特征图中的像素。此外,ROI Align 的输出是由多个格子内的特征值拼接而成,而不是简单地选取一个最大值。因此,在Faster RCNN 中采用ROI Align 可以更准确地对齐ROI 与特征图之间的像素,避免了ROI 池化操作中因对齐不准确而导致信息丢失的问题,从而提高了目标检测的准确性。

2 实验结果与分析

硬件配置:内存为16GB,GPU 为NVIDIA RTX 3060,CPU 为Intel Core i9-11900K。

软件环境:操作系统为Ubuntu 20.04.2 LTS, IDE为PyCharm2018.3.7,Python 版本为Python3.9,深度学习框架为TensorFlow 2.5,CUDA 版本为CUDA11.1,cuDNN 版本为cuDNN8.0。

2.1 数据集制作

通过手机拍摄、网络上获取等方式,最开始获取了500 多张钢筋端面图片用于数据集的制作,每张图片中包含大量的钢筋。数据集部分样本如图2所示。

图2:部分数据集样本

随后通过数据增强,如:翻转、裁剪、镜像等操作,将数据集扩充到了2000 多张。使用labelImg 对获取到的钢筋图片进行标注,由于需要实现的是钢筋数量检测,所以标签的类别就只有一个rebar,代表钢筋。

2.2 实验优化分析

为了证明所提出的改进后的钢筋计数模型是有效的,进行了Faster RCNN 与一阶段目标检测算法YOLOv3 应用在钢筋计数上面的比较,以及优化后的钢筋计数模型与原Faster RCNN 实验的比较。改进比较采用的是逐步加入改进模块与原算法实验结果进行比较,实验结果如表1所示。

表1:实验结果对比

由实验结果可以看到,对于钢筋数量检测,原Faster RCNN 比YOLOv3 的mAP 要高3.45%, 使用ResNet101 代替VGG16 作为特征提取网络后,mAP 提升了3.45%,再引入FPN 结构后mAP 提升了1.72%,CBAM 注意力机制可使mAP 提升0.87%,采用ROI Align 来进行池化操作后使mAP 提升了1.72%。

在实验过程中,YOLOv3 的检测速度是要更快一些的,这是因为一阶段目标检测算法检测速度快的特性,然而检测的准确度还是Faster RCNN 更胜一筹。且在工地的钢筋数量检测实际场景中,这些速度方面的差异几乎可忽略不计,而对于精度的要求反而更高。在改进模块中,使用ResNet101 来作为特征提取网络所带来的改进是最明显的,mAP 提升了3.45%,VGG16 只有16 层,而ResNet101 有101 层,具有更深的网络结构,能够更好地捕获图像中的一些细节信息。此外,ResNet101 采用了残差学习的思想,可以更好地处理梯度逐渐衰弱和梯度爆炸的问题,从而提高了特征提取的效果。分别引入FPN、CBAM、ROI Align 改进模块也从不同程度上提升了钢筋数量检测的精确度,最终改进后的方法比原Faster RCNN 的mAP 提升了7.76%,证明了提出的改进方法是切实有效的。钢筋计数效果图如图3所示。

图3:钢筋计数效果图

3 总结

本文提出了一种基于改进Faster RCNN的钢筋数量检测方案,改进措施包括:使用ResNet101 和ROI Align分别替换原Faster RCNN 中的特征提取网络VGG16 与池化层ROI pooling,利用ResNet101 更深的网络结构以及残差学习的思想,能够更好地提取图像中的信息,处理梯度爆炸的问题,使用ROI Align 代替原来的ROI 池化操作,通过更精细的插值方式,减少信息损失和不对齐的问题,从而增强了特征提取的效果;引入FPN 结构,融合不同尺度的特征信息,在不丢失物体的空间信息的情况下,提高对小目标物体的检测精度;加入CBAM注意力机制,提高重要通道的表征能力,同时抑制不重要位置的干扰,增强了检测的精度和鲁棒性。

实验结果表明,使用Faster RCNN 算法来进行钢筋计数比使用一阶段目标检测算法,如YOLOv3,准确性要更高。改进后的钢筋数量检测模型相比于原Faster RCNN 来进行钢筋计数的检测结果有明显的提升,mAP提升了7.76%,证明了该方法是有效的。

在实验的过程中也发现了一个问题,对于目前所有的应用到钢筋数量检测的算法中,大部分在检测钢筋端面比较整齐,钢筋摆放规则的图片时,检测效果比较良好。但是当应用到一些较复杂的环境中时,比如钢筋端面长短不一,摆放杂乱,钢筋上有遮挡等情况时,检测效果会有所降低。如图3 中,未检测出的两根钢筋,一根处在图片边缘位置,且端面有变形,另一根在钢筋的端面有一颗螺丝和铁片遮挡。所以说,如何在复杂的环境下进行钢筋的识别与检测,这个问题还有待研究,也是目前存在方法有待改进的地方。

猜你喜欢

特征提取尺度注意力
让注意力“飞”回来
财产的五大尺度和五重应对
基于Daubechies(dbN)的飞行器音频特征提取
“扬眼”APP:让注意力“变现”
Bagging RCSP脑电特征提取算法
宇宙的尺度
基于MED和循环域解调的多故障特征提取
9
Walsh变换在滚动轴承早期故障特征提取中的应用
室外雕塑的尺度