APP下载

基于RetinaNet的水下机器人目标检测

2022-10-17魏庆宇张境锋郭碧宇

计算机工程与设计 2022年10期
关键词:海参聚类卷积

陈 伟,魏庆宇,张境锋,郭碧宇

(江苏科技大学 电子信息学院,江苏 镇江 212000)

0 引 言

水下环境中的光学成像比大气环境中的光学成像更复杂,图像存在明显的质量退化问题,基于机器视觉的传统目标检测方法精度与准确率不高[1]。随着数据量的增加与计算机计算能力的增强,传统目标检测方法已被人工智能所取代[2]。近年来,许多基于卷积神经网络的方法被用于水下目标检测的研究。基于SSD[3]、Faster R-CNN[4-6]和YOLO[7-9]的水下目标检测方法在准确性上已经远超传统目标检测算法,即使水下目标物图像质量明显退化,依然能够准确识别,但均没有应用到水下机器人上进行目标检测作业。水下机器人属于嵌入式机器人,计算力不足且存储有限,因此需要一种算力需求小且保证速度与精度的目标检测算法。

RetinaNet是一种单阶段目标检测算法[10],在保证单级目标高检测速度的基础上,达到甚至超过了两级目标检测精度,对于中小型目标具有较好效果。因此,本文采用RetinaNet作为水下机器人目标检测框架,为进一步提高水下机器人目标检测速度,降低算法运算所需硬件资源,需对RetinaNet进行改进。首先采用DenseNet[11]替代ResNet构建骨干网络,减轻网络重量,其次使用2×2大小的卷积核进行两次卷积代替原始的单次卷积操作,增加感受野并减少参数[12];最后通过实验验证该算法的运行速度与检测精度。

1 基于RetinaNet的目标检测方法研究

1.1 RetinaNet

RetinaNet是一种单阶段目标检测算法,解决了单阶段目标检测中速度快但精度不高的问题[13]。其网络结构如图1所示,是一个简单的端到端网络,相对于其它目标检测网络结构较为简单,主要由ResNet、FPN(feature pyramid networks)和两个FCN(fully convolutional networks)子网络组成。

ResNet负责提取特征,一个FCN执行水下目标的分类(class students),另一个FCN执行水下目标包围盒的回归(box students)。FCN由卷积层组成,不包含全连接层,使用上采样和去卷积将通过卷积运算获得的特征图放大到预测期间输入图像的大小。因此,可以实现原始图像的逐像素分类预测,比传统方法的全图像预测更有效,最后使用S(Softmax)型函数进行激活。回归子网与分类子网平行,并且在FPN的每一层都添加了一个小的完整卷积网络,以进行边界回归。

RetinaNet应用在水下机器人上对水下目标具有较好的检测效果的另一个重要原因是它使用了一个新的损失函数(FL)。FL将原始损失函数乘以一个因子,削弱易检测目标对训练模型的贡献,从而解决类别不平衡问题。二分类标准的交叉熵损失函数如下

(1)

其中,y∈{±1} 为类别真实标签,p∈[0,1] 是模型预测y=1的概率。如果定义如下的pt

(2)

典型交叉熵损失函数可简化如下

CE(p,y)=CE(pt)=lnpt

(3)

FL乘以对典型交叉熵损失的调整因子,其公式如式(3)所示

FL(pt)=αt(1-pt)γlnpt

(4)

其中,γ为焦点损失。从中可以看出,更易检测的目标对总损失的贡献较小,而不可区分的样本对损失的贡献相对较大。对于不同的类别,参数α可以使损失函数更加平衡。这样的损失函数将引导模型尝试区分难以区分的水下目标。

1.2 改进的RetinaNet目标检测网络

由于水下机器人计算力不足且存储有限,直接采用RetinaNet作为目标检测网络可能会造成机器人运行卡顿。因此,本文使用新的骨干神经网络DenseNet代替默认的残差网络,将FPN构造为改进的RetinaNet特征提取网络来提高算法的识别精度和速度。同时使用2×2大小的卷积核进行两次卷积代替原始的单次卷积,减少网络参数进一步提高算法的检测速度,并同时增加网络深度,提高网络非线性力。

1.2.1 基于DenseNet对FPN的改进

DenseNet提出了一个更为激进的密集连接机制:即互相连接所有的层,具体来说就是每个层都接受其前面所有层作为其额外输入[14]。相比ResNet,DenseNet网络更窄,参数更少。图2为ResNet网络连接机制,作为对比,图3为DenseNet密集连接机制。ResNet是每个层与前面的某层(一般是2~3层)短路连接在一起,连接方式是通过元素级相加。而在DenseNet中,每个层都会与前面所有层在通道维度上连接在一起(这里各个层的特征图大小相同),并作为下一层的输入。在传统的卷积神经网络中,每一层都与相邻层直接相连,因此整个网络只有l个连接,而在DenseNet中,每一层都与上一层直接相连,因此存在l(l+1)/2个连接。

传统网络在l层的输出为

xl=Hl(xl-1)

(5)

ResNet在l层的输出为

xl=Hl(xl-1)+xl-1

(6)

DenseNet在l层的输出为

xl=Hl([x0,x1,…,xl-1])

(7)

式中:xl为第l层的输出,Hl为第l层的非线性变化,其中可能包括一系列的激活、池化及卷积等操作。

由于密集连接方式,改进的FPN提升了梯度的反向传播,使网络更加容易训练,且每层输出都可以参与最后计算,实现隐式深度监督。改进后的FPN建立在两个方向结构上,在自下而上的路径上,从每个密集块输出特征图中获取特征图。在自顶向下的路径上,特征金字塔网络通过因子为2的向上采样和横向连接来构建。之后去掉全连接层,连接两个FCN作为分类器和回归器。一些较早层提取出的特征仍可能被较深层直接使用,过渡层也会使用这些特征,因此改进后的RetinaNet在原始数据集和增广数据集上的性能都会比采用残差网络的原始结构有所提高。

本文采用DenseNet连接机制代替原有ResNet连接机制,为保证维度上的连接,每个层的特征图大小需保持一致,且卷积之后输出通道数相同。假设输入层的特征图通道数记为k0, 则l层的输入通道数为k0+k(l-1)。 那么随着层数的增加,网络的输入量将会激增,因此学习率k可设置为一个较小值, 同时把网络的每一层设计得特别“窄”。虽然后期网络有着较大的输入量,但由于特征重用的原因,每层仅有k个特征是独有的。考虑到后面层输入量过大的问题,在DenseNet连接机制中增加1×1卷积以降低特征数量。通过DenseNet的连接机制,每一层都包含之前所有层的输出信息,因此其仅需要较少的特征图,并且可采用较小学习率k,因此每个层所独有的特征图较小,整体参数更小且计算效率更高。

1.2.2 基于卷积层堆叠对RetinaNet的改进

卷积层堆叠策略,是将多个连续的卷积层构成卷积层组替换原始单次卷积的操作[15]。如图4所示,使用2×2大小的卷积核进行两层卷积堆叠替代原始网络的一次卷积操作,可视范围达到16,但参数仅有8个,使用3×3大小的卷积核进行卷积,可视范围为9,参数为9个。与单个卷积层相比,卷积层堆叠提高了可视范围,增强了网络学习能力和特征表达能力;与使用较大卷积核的卷积层相比,采用具有小卷积核的卷积层串联的方式能够减少网络参数,在每层卷积之后进行ReLU非线性操作可提升网络特征学习能力。

在DensNet中,将原有的Dense block设计中3×3大小的卷积核替换为两个2×2的小卷积核。并且使用1×1卷积核,保证输出数据维度不变,增加系统非线性能力且不增加计算量。采用卷积层堆叠改进后,具有121层和169层的DenseNet的结构见表1,其增长率为32。

表1 改进的DenseNet结构

由于2×2卷积核且步长为2的卷积操作无法处理尺寸为奇数大小的图片,在训练之初,需要将尺寸为S×J(S为奇数,J为偶数)的大小图片扩展成 (S+1)×J大小。在配置中,使用1×1卷积核进行输入通道的线性变换。使用两种方法进行训练尺度的确定,第一种是固定S, 第二种采用多尺度的方法。首先使用S=256进行预先训练,接着使用其权重加快S=384的网络训练。多尺度训练时,其中每个训练图像通过从范围 [Smax,Smin] 随机采样S来单独重新缩放。因为图像中的物体可以有不同的大小,所以在训练中考虑到这一点是有益的。这也可以看作是通过缩放抖动来增加训练集模型。出于速度原因,通过微调具有相同配置的单比例模型的所有层来训练多比例模型。

改进后的RetinaNet使用卷积层堆叠组合成的“卷积组”代替原来的单次卷积操作,因此网络更深,模型判别力增强。小卷积层与大的相比,拥有更多非线性变换,使得CNN对特征的学习能力更强。相比之前,整个网络的参数明显降低,在一定程度上可以提高水下目标检测的精度与速度。在训练过程中,浅层网络采用随机数初始化,然后将权重值移植后面较为复杂的模型,从而加快训练速度。

1.3 标记框重设

根据每个特征层次的不同大小和步长生成候选框,并在每个候选点生成K个不同大小和步长的候选框。候选框的大小和步长与原算法相似,但候选框的大小和步长不是基于先验的,而是通过对数据集中标记盒的大小进行聚类得到的。根据候选框生成机制,可以在算法开始时得到与目标大小相匹配的候选框,提高算法的识别精度。原RetinaNet候选框生成相当于在原始图像中以 {8,16,32,64,128} 的步长滑动 {32,64,128,256,512} 像素大小的窗口,并在每个候选框生成3个大小比例和3个比例大小的候选框,每个候选点生成9个候选框。由于算法的速度与输入图像的分辨率直接相关,因此经常需要调整原始图像的分辨率。假设调整后的分辨率大小为1200×800像素,则在输入图像中将生成大约7000个锚框。

因此,本文利用K-means++算法重新设计候选框的数量和大小,使得改进算法的候选框得到最高的平均IoU值,与水下目标的实际大小相匹配。

使用标记框之间的相交比率IoU作为距离函数的参数

dij=1-IoUij

(8)

式中:IoUij是标记框i和标记框j之间的IoU值。在聚类中心初始化位置的选择中,随机选择一个样本点作为第一个聚类中心,然后选择剩余样本点中离第一个聚类中心最远的点作为第二个聚类中心,离前两个聚类中心最远的样本点作为第三个聚类中心。在收敛准则上,定义了一个新的损失函数LossN,它是将所有样本点与相应聚类中心之间的距离相加得到的,公式表示为

(9)

当聚类中心位置更新前后的损失差小于设定的阈值时,算法收敛。在迭代次数的选择上,考虑到聚类中心的初始位置是预选的,算法相对容易收敛,需将迭代次数设置为足够大。

原始网络中,K值为9。K-means++算法处理后的损耗曲线和平均IoU曲线如图5所示。迭代3次时平均IoU值达到最大,损失值最小,且满足设定的30次迭代收敛条件。但根据期望的聚类数来看,并不是数据集中的所有数据都是严格的球形分布。当一个聚类中大部分数据相对集中,少量数据相对较远时,如果聚类中心相对靠近稠密样本,迭代会使聚类中心向稀疏数据靠拢。由于稀疏数据的样本量相对较小,迭代对聚类中心偏移的影响会越来越小,最终收敛,但聚类中心陷入局部最优解。增加K值可以在一定程度上解决局部最优解的问题,但是增加K值,也就是增加每个锚点获得的锚帧数量,会导致RetaiNet的运行速度变慢。所以在增加K值和运行速度上要做到平衡。在本文中,K在1~15之间进行测试。

2 实验和结果分析

2.1 实验数据集

本文以海参为典型研究对象,建立海参数据集。共收集水下摄像头拍摄海参高分辨率图像1329张和互联网上海参图像1518张。同时根据PascalVOC标签格式,使用labelImge在海参图像中标注目标,生成XML文件。XML文件包括标记框坐标和训练所需其它信息。其中2000幅图像用作训练集,847幅图像用作测试集。

2.2 训练环境和参数设置

本研究中使用的硬件和软件见表2。为训练RetinaNet原始算法及改进算法,进行以下初始化设置:

(1)使用DenseNet169作为骨干网;

(2)使用MSCOCO训练集参数对ResNet101骨干网进行初始化,根据激活函数值σ=0.01和高斯分布初始化DenseNet骨干网所有权重;

(3)共训练40个历元,将批处理设置为一张图像,每个历元重复5242次;

(4)重量衰减设置为0.0001,动量设置为0.9;

(5)焦点损失γ设置为2,α设置为0.25。

表2 训练环境

2.3 改进的RetinaNet模型验证

为了验证DenseNet与卷积层堆叠的优越性,本文分别基于ResNet101和卷积层堆叠作用下DenseNet121训练测试了改进的RetinaNet。两种算法的损耗曲线如图6所示。

从图6可以看出,由于在训练开始时没有转移学习,改进的RetinaNet损失值高于原始网络损失值。随着训练进行,原始网络对训练集的收敛速度更快,但是在36个历元之后,改进的RetinaNet损失值低于原始网络损失值,这表明改进的RetinaNet可以更好地拟合36个历元的训练集数据。两种算法在测试集上的性能,见表3。

表3 改进前后RetinaNet性能对比

从表3可以看出,尽管改进的RetinaNet网络参数仅具有16.8 M,但AP值达到0.8958,在海参检测性能上提高了8.24%。DenseNet每一层都与前面所有层相连接,且每一层输入都为前面所有层输出线性连接。改进的网络结构采用了DenseNet这种较为复杂的结构,增加了计算成本,训练速度较慢。但在检测速度上,改进的RetinaNet网络比原始网络有所提高。

实验结果表明,改进的RetinaNet网络相比较原始网络具有较高的准确性。通过改进的RetinaNet对海参进行检测结果如图7所示,即使在水质浑浊且背景相似的情况下,依然能够准确对海参进行识别与框选。

2.4 不同算法的实验比较

为验证改进的RetinaNet性能,训练并测试Faster R-CNN 与YOLOv3作为实验对比。

Faster R-CNN和YOLOv3的损耗曲线如图8所示。可以看出,RetinaNet的损耗曲线比较平滑,YOLOv3的损耗曲线略有振荡,而Faster R-CNN相对较大。这种差异很大程度上是由于RetinaNet每次迭代使用一幅图像,每幅图像对损失函数的贡献值有限,所以曲线相对平滑。每一次迭代分别使用64幅和256幅图像,因此每次迭代的损失波动较大值,这也可以解释为什么YOLOv3和Faster R-CNN越来越振荡的原因。同时,从训练成本来看,Faster R-CNN 需要10 000次左右的迭代才能得到相对稳定的损失值。YOLOv3训练到一个相对稳定的损失值需要6000次左右的迭代。改进RetinaNet在近40个迭代周期趋于稳定,从网络训练难度来说,Faster R-CNN>YOLOv3>RetinaNet。

Faster R-CNN、YOLOv3和改进的RetinaNet在测试集上的实验结果见表4。改进的RetinaNet正确率比Faster R-CNN略高8.65个百分点,明显高于YOLOv3网络30.93个百分点。算法参数方面,改进的RetinaNet参数仅有18.1 M,远小于Fast RCNN 和YOLOv3。在速度上,由于YOLOv3算法结构和少量锚盒提取,速度明显快于Faster R-CNN,但仍落后于改进的RetinaNet。

表4 不同算法的性能

为了验证不同算法对不同识别难度目标的识别能力,根据主观判断将测试集中的样本分为简单样本、一般样本和困难样本3种类型。简单样本包括高水质下单个海参,共300张图像;一般样本包括一般水质下多个海参,共150幅图像;困难样本包浑浊水质下多个被遮挡海参,共50幅图像。3种算法的识别结果见表5。

表5 不同难度样本的识别性能

从表5可以看出,虽然改进的RetinaNet在简单样本中的检测效果与Faster R-CNN基本相同,AP值分别为0.8631和0.8823,但在一般样本和困难样本中表现出较好的检测精度,分别高出7.84和36.21个百分点。同时,改进的RetinaNet比YOLOv3的准确性方面更具综合优势。通过实验验证和结果分析,可以得出结论:改进的RetinaNet是一种适用于水下目标识别的目标检测算法。

2.5 不同网络深度的实验比较

分别以改进的DenseNet121和DenseNet169为基础进行实验,验证网络深度对改进的RetinaNet性能的影响,实验结果见表6。

表6 不同网络深度下改进的RetinaNet性能

从表6中可以看出,采用改进的DenseNet169作为主干网络在海参检测的性能上略有提高,但参数数量相比DenseNet121高了45.6%。由于网络的加深,检测速度降低到27 fps,整体检测速度降低了13%。因此,本文所研制的水下机器人采用改进的DenseNet121作为主干网络代替原始的残差网络。

2.6 样机实验与结果分析

本文使用的实验平台如图9所示,主要由Vectored ROV型水下机器人和目标检测网络实验平台两部分组成。机器人本身配备一个三自由度电动机械手和一个网络摄像机,并配备4个电动推进器,内置环境感知系统,如惯性导航、水深测量和热导率深度(CTD)。机体选用吸水率小于1%(24 h)的固体复合泡沫,可承受2000英尺至36 000英尺的水下环境。Vectored ROV型机器人进行水下图像的采集,目标检测网络实验平台读取图像信息,进行海参目标检测,将处理好的结果实时显示在屏幕上,同时记录下目标框的平面坐标为后期的海参自动捕捞提供数据支持。实验场地为大型水池,满足实验所需环境布置要求。

实验结果如图10所示,改进的RentinaNet可以在水下机器人上稳定快速运行。在实验水池环境下,单个及多个目标均可以准确检测,即使在海参被遮挡或显示不全的情况下,依旧能够准确判别与框选。

同时,水下机器人自动捕捞系统采用本文提出的改进的水下目标检测方法替代原有基于机器视觉目标检测方法,进行抓取实验。实验结果如图11~图12所示。

从图中可以看出,采用基于机器视觉方法做海参目标检测,受光线和角度影响,会造成目标丢失,导致机器人放弃原有目标进行其它目标的检测与抓取,出现捕捞不完全的问题。采用本文提出的改进的目标检测方法的自动捕捞系统,海参相互重叠的情况下,依旧可以识别出所有海参,并进行准确的自主捕捞作业。

为准确验证改进的目标检测系统对水下机器人自动捕捞系统的提升,使用同一机器人,在实验池、池塘及海滩中,每次放置多只海参,进行多次海参抓取实验,实验结果见表7。

从表7中可以看出,改进的RetinaNet可以在水下机器人上稳定快速运行,无论哪种环境下,水下机器人的自动捕捞率均有明显提高,自动捕获海参的时间显著减少。其中,目标检测精度提高了23%,运行速度提高了17%。实验结果表明,本文提出的目标检测方法可应用在水下机器人上,并提高水下机器人自动捕获效率。

3 结束语

水下机器人自动捕捞系统广泛应用于水产养殖和海洋资源探索作业,而水下环境中的光学成像较为复杂,图像存在明显的质量退化问题,基于卷积神经网络的目标检测方法难以应用在计算力有限的水下机器人上。针对上述问题,本文设计了一种基于改进的RetinaNet水下机器人目标检测方法,使用新的骨干神经网络DenseNet代替默认的残差网络,将FPN构造为改进的RetinaNet特征提取网络来提高算法的识别精度和速度。同时使用2×2大小的卷积核进行两次卷积代替原始的单次卷积,在扩大感受野的同时减少网络参数,并同时增加网络深度,提升网络的特征学习能力。本文以海参为典型研究对象。实验结果表明,所设计的目标检测网络能够在水下机器人上正常稳定运行,显著提高了水下机器人检测水下目标的速度和精度。在多种环境下,应用于水下机器人自动打捞任务,目标检测精度提高约23%左右,作业速度提高约17%。该方法可应用于水下机器人,有效解决了对水下目标检测环境适应性差的问题,提高了水下机器人的自动捕捞效率。水下机器人的自动捕捞系统的研发,仍有许多地方需改进优化,如海流等未知水下环境干扰会显著降低系统的性能,在本文的基础上需进一步研究。

表7 不同环境下自动捕捞速度及准确率

猜你喜欢

海参聚类卷积
一种傅里叶域海量数据高速谱聚类方法
感谢海参
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
一种改进K-means聚类的近邻传播最大最小距离算法
AR-Grams:一种应用于网络舆情热点发现的文本聚类方法
从滤波器理解卷积
古今八珍之葱烧海参
海参易变弯,掺了糖
基于傅里叶域卷积表示的目标跟踪算法