APP下载

基于改进 RetinaNet网络的水下机器人目标检测与实验

2024-02-28黄珍伟王文杰路锦通

计算机工程与科学 2024年2期
关键词:卷积权重机器人

黄珍伟,陈 伟,王文杰,路锦通

(江苏科技大学自动化学院,江苏 镇江 212000)

1 引言

水下机器人可以在极端情况下完成人工不能胜任的任务。水下目标快速精准检测[1]是实现水下机器人高效作业的关键技术之一,广泛应用于渔业养殖[2]、海洋管道铺设[3]等领域。

目前水下机器人目标检测算法大致分为2类:一类是基于回归思想的单阶段算法,以YOLO(You Only Look Once)系列算法[4]和RetinaNet算法[5]为主,具有较好的检测精度和优异的检测速度;另一类是基于生成目标候选框和标签的双阶段算法,以Fast R-CNN(Fast Region-based Convolutional Neural Network)算法[6]和Faster R-CNN算法[7]为主,其特点是检测精度略高于单阶段算法的但是检测速度慢。上述算法都可以在水下复杂环境中对退化严重的低质量图像进行相应的目标检测,且具备较好的检测精度和检测效果,但是其网络模型参数量过大或者运算速度过慢,且均未使用到水下机器人进行实地检测作业。水下机器人属于嵌入式机器人,为了方便实地作业,一般算力和内存较小,难以满足水下目标检测的硬件要求,故需要一种参数量少、模型结构简单且运算速度和精度都较好的目标检测算法。本文选取的RetinaNet算法属于单阶段算法,具备良好的检测精度和检测速度,算法结构相对于双阶段算法结构更加简单,且对中小型目标具有优异的检测效果。

现有的国内外水下机器人目标检测算法更多专注于提升复杂环境中的检测精度或者检测速度。陈宇梁等人[8]提出快速空间金字塔池化模块,解决了水下物体区分度低和特征损失严重的问题;提出了一种基于旋转窗口的Swin-Transformer模块,提高了小目标的检测能力。Wei等人[9]在YOLOv3模型中加入挤压和激励模块,增大了检测规模。强伟等人[10]用ResNet卷积神经网络代替SSD(Single Shot multibox Detector)的VGG(Visual Geometry Group)卷积神经网络,再用深度分离可变形卷积替换原始卷积,以简化网络并提高其性能。上述衍生的改进算法具备较高的检测效率和鲁棒性,但是其复杂度过高,很难集成在水下机器人上。

综上所述,为了实现轻量型模型在真实水下环境中对目标快速、精确的识别,本文提出了改进DenseNet121-Deform-CBAM算法,在原有单阶段的RetinaNet算法基础上,利用深度分离可变形卷积的特点代替原始卷积,参考DenseNet121[11]的网络结构,替换ResNet50;此外还引入了注意力机制模块[12]提高对水下模糊目标的提取性能,使得复杂水下环境中目标检测在保证检测速度和准确性的情况下,降低模型复杂度,减轻模型运行负担,从而进一步推动水下机器人的实用化进程。

2 基于改进RetinaNet的水下目标检测算法

2.1 原始卷积的改进

原始RetinaNet的卷积会沿着卷积核的固定路线进行平移来确定检测区间,并且池化层的池化比例固定不变。但是,当检测到形变较大的图像时,仍然沿着固定轨迹机械地进行卷积运算会导致整体运算效率大大下降。

本文利用可变形卷积能够减少网络内部计算量的优点,替换原始卷积。改变每个卷积核的权重,增加卷积核的偏移量,以此改变卷积核的原始轨迹。如图1所示,可变形卷积在采样过程中,可对检测区域的目标位置进行适应性改变,使得卷积核集中于有效感受域。

Figure 1 Comparison of activation units of standard convolution and deformable convolution图1 标准卷积和可变形卷积激活单元对比

图2为可变形卷积的学习过程。其中,K表示卷积采样区域大小,N表示通道纬度。首先,输入特征图,通过原始卷积核进行卷积操作。其次,把原始卷积核的输出作为可变形卷积所需要的偏移量,根据反向传播原理,同步更新卷积核和偏移量。可变形卷积虽然可以提高模型结构的适应性和泛化能力,但是相对于原始卷积来说增加了参数量,并且一定程度上影响了模型的运行速度。

Figure 2 Learning process of deformable convolutional图2 可变形卷积学习过程

针对可变形卷积增加了参数量,进而影响模型的运行速度的问题,本文采用深度分离卷积来提取特征,以减少参数量和运行成本。深度分离卷积示意图如图3所示。

Figure 3 Schematic diagram of deep separation convolution图3 深度分离卷积示意图

首先,输入5×5×3彩色图像,通过3×3的卷积核,由于逐通道卷积是在二维平面上进行,所以卷积核的数量与上层通道数一一对应。生成3个特征图,尺寸与输入层的相同,均为5×5。然后,进行逐点卷积,根据上层通道数(3),设置卷积核尺寸为1×1×3,卷积核数量为4。对比传统卷积,在同样参数的情况下,传统卷积需要3×3×3×4=108个参数,而深度分离卷积仅需要3×3×3×1=27(逐通道参数)加上1×1×3×4=12(逐点卷积)共计39个参数。

将深度分离卷积和可变形卷积结合构成深度分离可变形卷积,大幅度减少了模型参数,且同时增加了特征图的维度,显著提高了模型运行速度,增强了模型对于复杂环境的适应能力。

2.2 主干网络的改进

原始ResNet的传输原理是建立前后层之间的连接。在ResNet传输过程中,前一层的结果作为后一层的输入进行运算。但是,随着网络层数的增加,计算误差逐渐增大,最后会产生梯度爆炸的问题。

DenseNet通过建立前后层的密切连接来促进训练过程中的梯度反向传播,从而使得网络的训练深度增加。在参数量和计算量更小的情况下,DenseNet具备比RetinaNet更加优秀的性能。DenseNet模型结构如图4所示 。

Figure 4 Structure of DenseNet model图4 DenseNet模型结构

若干个Dense layer和Transition layer层组成DenseNet。DenseNet区别于RetinaNet之处是DenseNet每个层将前面所有层的信息整合后作为下一层的输入,实现了特征重用。第i层DenseNet和ResNet的输入和输出之间的表达式分别如式(1)和式(2)所示:

ResNet:

xi=Hi(xi-1)+xi-1

(1)

DenseNet:

xi=Hi(x0,x1,…,xi-1)

(2)

其中,xi表示第i层的输出;xi-1表示第i-1层的输出;Hi(·)表示非线性变换,包含归一化、激活函数和卷积3种操作。式(2)中的(x0,x1,…,xi-1)指的是将第i-1层的输出与之前所有层的输出进行连接。

2.3 CBAM注意力模块的引入

注意力机制是一种聚焦于局部信息的机制。本文采用由通道注意力模块CAM(Channel Attention Module)和空间注意力模块SAM(Spatial Attention Module)串行形成的CBAM( Convolutional Block Attention Module)轻量级注意力模块。通过多次更改CBAM模块在模型中的位置,比较各项参数,最后将CBAM模块放在第1个卷积后。输入图像首先经过DenseNet特征提取模块进行图像特征提取,之后将具有不同分辨率的特征信息传入到CBAM模块,先在CAM模块中将输出的特征信息(4×4×256)进行最大池化和平均池化操作,得到2个1×1×256的通道特征提取后的图像特征信息,然后将这2个特征图分别输入多层感知器MLP(MultiLayer Perceptron),得到2个1×1×256特征向量,最后通过Sigmoid激活函数获得通道注意力权重Mc。而SAM模块的输入则需要先乘以Mc,然后依次进行最大池化和平均池化操作,通过池化层操作后输出特征信息,再通过3×3卷积核进行拼接,最后通过Sigmoid激活函数获得空间注意力权重Ms。经过CAM模块输出的特征信息再乘以Ms即得到经过聚焦于关键目标信息后的增强特征。

3 实验设置

3.1 实验环境

本文实验环境如下:Windows 11操作系统,NVIDIA®GeForce®RTXTM3090 Ti显卡,开发工具为PyCharm,编程语言为Python,环境配置为Python 3.9、CUDA11.6和PyTorch框架。基础参数设定如表1所示。

Table 1 Basic parameters setting

3.2 水下数据集的建立

由于图像是在真实的海洋环境中拍摄,受到水质、光线等多方面因素的影响,所以图像存在对比度低、失真和模糊等明显的质量退化问题,并且水下环境复杂,还包含很多干扰目标(珊瑚、其余鱼类等),故本文采用水下图像融合来对水下图像进行恢复和增强。

本文的图像融合算法结合了自适应直方图均衡化和多尺度融合算法。先对原图进行灰度世界和白平衡处理,由于水下图像光线质量差,图像中存在亮暗不均的问题,所以对处理好的图像的亮通道进行自适应直方图均衡化操作。其次,为了得出质量最佳的水下图像,本文均衡化图像后再进行基于几种权重的多尺度融合处理。几种权重介绍如下。

(1)拉普拉斯对比度权重▽2f(x,y):该权重用于扩展景深,对图像边缘和纹理赋予较大权重值,详细公式如式(3)所示:

(3)

拉普拉斯对比度权重通过计算亮度通道的拉普拉斯滤波绝对值来估算全局对比度。

(2)显著性权重Ws:本文利用显著性估计器估计图像中水下生物的显著性水平,加强明暗区域的对比度。计算公式如式(4)所示:

Ws=Iμ-Iω

(4)

其中,Iμ表示Lab色彩通道的平均值,Iω表示Lab通道在进入高斯滤波后的结果。

(3)饱和度权重Wsat:该权重用于增强融合算法适应彩色图像中高饱和度信息的能力。详细公式如式(5)所示:

(5)

其中,Rk、Gk和Bk分别表示RGB通道中在第k个像素点的亮度值,Lk表示第k个像素点的亮度标准值。

(4)曝光权重WE:该权重用于反映图像中像素的曝光程度,此权重与平均归一化范围值(0.5)的距离成反比。距离中间值越近,权重值越大,反之则越小。具体公式如式(6)所示:

(6)

其中,Ik(x,y)表示图像中当前点的像素值;σ表示标准差,本文设为0.25。权重值过大,说明图像出现了过曝或曝光不足的问题。

最后本文通过多尺度融合算法进行图像融合。R(x,y)是对每个像素点(x,y)的4种权重进行融合,具体公式如式(7)所示:

(7)

图像增强效果如图5所示。

Figure 5 Image contrast with and without enhancement图5 增强前后图像对比

本文实验采用URPC(Underwater Robot Professional Contest)数据集,并在网络上收集海胆、海星、海参和扇贝4类图像作为扩充数据集,共计6 000余幅。4种类别的图像呈现不均匀分布。20%为测试集,80%为训练集,再将训练集以8∶2划分为训练子集和验证子集。

3.3 评价指标

本文采用平均精度AP(Average Precision)、全类平均精度mAP(mean Average Precision)以及帧率FPS(Frame Per Second)综合评价目标检测算法的性能。

(1)AP指标用来评价单个类型的检测精度,计算公式如式(8)~式(10)所示:

(8)

(9)

(10)

其中,R(Recall)表示召回率,表示正样本中成功被检测出来的样本占比;P(Precision)表示检测精度,用于表示预测为正的样本数在真实正样本数中的占比;TP表示检测为正、实际为正的正样本数量,FN表示检测为负、实际为正的正样本数量。

(2)mAP指标用来综合评价算法的检测精度,计算公式如式(11)所示:

(11)

mAP指标是对每个类别的AP指标进行求和取平均,式中C表示数据集类别总数,c表示其中的某一类别。

(3)FPS指标表示每秒传输帧数,用来评价算法的检测速度。

4 实验与结果分析

4.1 改进算法与原始RetinaNet算法对比

为了评价本文改进算法,对改进算法与原始RetinaNet算法的检测精度和检测速度等方面进行比较。实验结果如表2、表3和图6所示。

Table 2 Comparison of AP values of the improved algorithm and the original RetinaNet algorithm

Table 3 Comparison of other parameters between the improved algorithm and the original RetinaNet algorithm

Figure 6 Comparison of detection results of algorithms with and without improvement图6 改进前后算法检测结果对比

从表2和表3可以看出,本文改进算法对于4种类别的水下目标检测效果都明显优于原始RetinaNet算法的,对海胆、海参、海星和扇贝的AP分别提升了9.8%,15.9%,9.9%和11.1%,mAP提升了11.1%。一方面水下环境复杂,干扰多,另一方面水下检测目标存在遮挡和粘连等现象,原始RetinaNet算法对于这类目标检测能力有限,而改进算法经过一定的优化,对于模糊和存在遮挡的目标具备更强的检测能力。

从图6来看,原始RetinaNet算法并不能很好地处理水中模糊或者特征类似的物体,对于小目标存在一定的漏检和误检问题。改进算法则解决了上述问题。

4.2 与其他主流算法的对比实验

为了验证本文提出的融合改进RetinaNet和注意力机制的水下目标检测算法DenseNet121-Deform-CBAM的性能,在保持其他条件不变的情况下,分别对RetinaNet、Fast R-CNN和YOLOv4 3种主流算法进行对比实验。实验结果如表4所示。

Table 4 Comparison of experimental results among mainstream algorithms

从表4可以看出,改进算法的mAP可达81.9%,相对于其他3种主流算法的提升明显,说明改进算法对于水下目标检测具有一定的优势,可以提升检测精度。

图7是不同算法对于相同复杂水下图像的处理结果。从图7可以看出,原始RetinaNet算法对于粘连目标和小目标存在一定的漏检情况,并且置信度较低。相对于Fast R-CNN 和YOLOv4算法,本文改进算法的检测效果也有所提高,利用深度分离可变形卷积大幅降低了算法复杂度,减少参数量,使得运算速度加快,在保证准确率和低误检率的同时,更快地检测出了更多的目标。而本文引入CBAM模块和改进模型结构则有效地解决了漏检的问题,提高了对目标物体的专注度。除此以外,从参数量来看,改进算法的参数量(Parameters)小于其他3种算法的,其原因是采用的深度分离可变形卷积代替原始卷积极大地减少了计算量和参数量,说明DenseNet121-Deform-CBAM是一种相对轻量型的模型。推理速度方面也有一定的提升,相较于大部分对比算法而言提升幅度不大,总结原因是算法复杂度虽然比对比算法有所降低,但是算法模型仍具备一定程度的参数量。

Figure 7 Detection results of different algorithms图7 不同算法的检测结果

4.3 消融实验

为了更加准确地验证改进算法的性能,本节对改进后的算法通过叠加不同的模块进行消融实验。从模型大小Modelsize、参数量Parameters、全类平均检测精度mAP和检测速度FPS等性能指标进行对比分析,实验结果如表5所示。第2组实验在第1组实验基础上用DenseNet121网络替换了ResNet50网络,保持其他条件不变。这时算法模型大小和参数量分别为154.8 MB和45.9 MB,mAP提高了5.5%,检测速度提高了0.8 f/s,FPS的明显下降。这是因为DenseNet121要比ResNet50的复杂度低很多,有效地减少了计算量和参数量,且DenseNet121提高了特征的传播和利用效率,减轻了梯度消失现象。第3组实验和第2组实验结果对比,第3组实验用深度分离可变形卷积代替原始卷积层。这时模型大小和参数量分别为155.9 MB和34.5 MB,mAP为79.6%,检测速度提高了1.2 f/s。值得一提的是,使用深度分离可变形卷积后,最明显的特点是参数量大幅下降,算法模型变得更加轻量化,即使具备更少的训练参数,速度也有一定程度的提高。第4组在第3组的基础上增加了CBAM模块,这时模型大小和参数量分别为170.2 MB和56.8 MB,检测速度小幅上升了1.8 f/s,但是平均检测精度增加了2.3%,说明添加了CBAM模块之后增加了算法复杂度,对运行速度也存在一定的影响,但CBAM模块串行了空间注意力和通道注意力,抑制了无效信息,增强了有效信息,从而加强了网络的鲁棒性,提升了多尺度目标的检测能力,所以mAP值上升明显。

Table 5 Results of ablation experiments

图8为实验过程中损失值函数曲线的变化趋势。从图8可以看出,由于加入了不同作用的模块,损失值函数曲线也发生了相应的变化,在前50轮左右的损耗相差不大,但是改进后的网络模型参数量较小,较为容易训练,损失函数值收敛速度加快。

Figure 8 Loss values of different combination modules in ablation experiments图8 消融实验中不同组合模块的损失值

4.4 人工水池抓取实验

本节在实验室水池环境中进行水下机器人目标检测和海参抓取实验。水下机器人实物图如图9 所示。

Figure 9 Picture of underwater robot图9 水下机器人实物图

机器人装载三自由度机械手、网络摄像机和推进器等硬件设备。实验场地为人工水池。抓取实验中,水下机器人先对网络摄像机采集的水下目标图像进行图像优化,然后根据本文改进RetinaNet算法精准识别图像中仿真海参位置。通过计算出机械臂在空间坐标系位置,利用视觉伺服控制算法移动机械臂至海参模型位置,完成海参抓取任务。

图10为水下机器人进行水下抓取实验的实验流程,实验对象为水下仿真海参,总共进行300次抓取实验,抓取成功的次数为276次,抓取准确率为92%,平均抓取时间为7.2 s,水下目标检测与抓取效果较好。

Figure 10 Grasping experiment of underwater robot图10 水下机器人抓取实验

此外,为了验证本文改进算法在真实环境中对比其他3种算法的优势,其他3种算法也进行人工水池中的抓取实验。实验条件中仅改变水下机器人加载的检测算法,不改变其余条件,实验结果如表6所示。

Table 6 Experimental results of different algorithms for grasping in artificial water tank

从表6可以看出,在检测速度方面,大部分算法的检测速度小幅低于改进算法的;在抓取准确率方面,改进算法抓取准确率精度高达92%,明显高于其余对比算法的。

4.5 自然水域抓取实验

在自然水域中,水质较差,且相对于人工水池来说背景更复杂,目标与环境对比差别较小,识别目标与水底泥沙颜色相近。采集的图像质量较差,颜色整体偏蓝绿色。为验证自然水域中水下机器人目标识别效果及本文所提算法的有效性,本节在同一自然水域下的不同地点进行目标识别检测实验。首先放置部分目标假体,岸边控制水下机器人进行水下巡游,部分实验图像和检测结果如图11所示。

Figure 11 Underwater target detection experimental results in natural environment图11 自然水域目标检测实验结果

实验过程中,水下机器人运转正常,通信稳定,运行帧率保持在15~20 f/s。检测准确率为86.3%,平均检测时间为10.6 s。几种类别的目标均可以被检测到,但是部分性能指标存在小幅下降的情况,原因可能为除水体质量影响了水下机器人识别以外,部分检测过程中泥沙扬起或者是水草遮挡影响了机器人目标识别。总体而言,本文提出的算法仍具备较高的可行性,可以满足自然水域中高效作业的需求。

5 结束语

针对水下图像质量差导致目标特征信息提取困难和目标漏检等问题,本文提出了一种融合改进RetinaNet算法和注意力机制的水下目标检测算法DenseNet121-Deform-CBAM。在原有单阶段的RetinaNet算法基础上,利用深度分离可变形卷积代替原始卷积,降低了算法复杂度,减少了模型计算量;用DenseNet替换ResNet,增加模型的训练深度,解决梯度爆炸问题;最后,引入CBAM模块,集中网络注意力,关注有效信息,增强算法对水下模糊目标的提取性能,提升算法对水下多尺度目标的检测能力。实验结果表明,本文所提出的算法对于复杂环境中的水下目标检测具备优异的检测能力。

猜你喜欢

卷积权重机器人
基于3D-Winograd的快速卷积算法设计及FPGA实现
权重常思“浮名轻”
从滤波器理解卷积
为党督政勤履职 代民行权重担当
基于傅里叶域卷积表示的目标跟踪算法
基于公约式权重的截短线性分组码盲识别方法
机器人来帮你
认识机器人
机器人来啦
一种基于卷积神经网络的性别识别方法