基于改进Cascade R-CNN和图像增强的夜晚鱼类检测
2021-10-13张明华黄冬梅梅海彬
张明华 龙 腾 宋 巍 黄冬梅,2 梅海彬 贺 琪,3
(1.上海海洋大学信息学院, 上海 201306; 2.上海电力大学电子与信息工程学院, 上海 200090;3.大洋渔业资源可持续开发教育部重点实验室, 上海 201306)
0 引言
在水产养殖和海洋捕捞方面,需要对鱼类进行目标检测[1]。随着深度学习的应用广泛,利用深度学习对鱼类进行目标检测逐步成为目前的研究热点。在水下鱼类目标检测中引入深度学习方法,可以节省大量人力物力,提高工作效率。对鱼类的养殖、鱼类行为的研究、鱼类活动能力的评估也有着重要的研究意义[2-6]。
目前,一些较为成熟的目标检测方法并不能很好地适用于夜晚水下环境。这是由于夜晚水下环境光照不均,水下光线散射及水体对光线的吸收导致图像场景阴暗、模糊不清,影响了鱼类目标检测效果[7]。LI等[8]使用Faster R-CNN,对水中小型鱼类进行检测,精度达到89.95%。SUNG等[9]将YOLO网络模型用于白天水下环境,对鱼类进行目标检测,得到较好的检测精度。以上方法的实验环境均在光线较好、图像清晰的条件下进行,而在光照不均、噪声过大、拍摄质量不高的夜晚水下环境中,目标检测效果并不理想。
Cascade R-CNN[10]由Faster R-CNN[11]改进而来,是一种多阶段目标检测模型,通过级联的方式设置不同的IoU阈值,对检测目标进行多次校正,使其在图像质量较差的环境中,依旧保持较高的检测精度。
对于夜晚水下环境图像质量较差的问题,可以通过图像增强的方法予以改善。目前主流的图像增强算法包括多尺度Retinex(Multi-scale Retinex,MSR)[12]和具有色彩保护的多尺度Retinex(Multi-scale Retinex with color restoration,MSRCR)[13],虽然可以有效地提高图像的整体质量,但在增强夜晚水下图像时,会过度增强背景色彩,产生光晕。MSRCP[14]算法可以使夜晚环境的背景色彩保持一致,并增强前景的色彩。
本文提出一种基于改进Cascade R-CNN目标检测模型和MSRCP图像增强的夜晚水下鱼类目标检测方法,以实现对夜晚水下鱼类的精准检测。通过MSRCP图像增强算法,有效提高夜晚水下场景图像的色彩质量。通过结合软化非极大值抑制算法(Soft non-maximum suppression,Soft-NMS)[15]以及DetNASNet主干网络,在出现目标物体重叠的情况时去除重复的候选框,并利用更加高效的目标检测主干网络提高检测效率。
1 目标检测方法
本文方法的总体流程图如图1所示。针对夜晚水下环境的视频数据,首先根据时间间隔,截取出相应的夜晚水下鱼类图像。对截取的原始图像进行MSRCP图像增强,将增强后的图像用于DetNASNet主干网络进行搜索训练,得到其网络结构,并进行特征提取。然后将提取出的特征信息输入Cascade R-CNN模型,并且使用Soft-NMS算法优化其中的区域生成网络(Region proposal networks,RPN)[16],最后得到夜晚水下鱼类目标检测结果。
1.1 MSRCP图像增强算法
针对夜晚水下鱼类图像光照不均、图像模糊的问题,本文使用MSRCP算法对原始图像进行色彩增强。该算法是把强度图像作为原始图像,保证原始图像的背景色彩,对图像前景进行增强。强度图像的获取公式为
(1)
式中Int——强度图像
IR——原始图像的R通道值
IG——原始图像的G通道值
IB——原始图像的B通道值
为了使增强后图像的背景色彩与原始图像一致,求得放大因子A,计算公式为
(2)
其中
B=Max(IRi+IGi+IBi)
(3)
式中B——色度
Inti——单通道强度图像
i——像素索引序号
分别对R、G、B3个通道利用放大因子A进行色彩调整,从而得到增强后的图像。计算公式为
R(x,y)=AI(R,G,B)(x,y)
(4)
式中I(R,G,B)(x,y)——图像在坐标(x,y)处的RGB特征图
R(x,y)——增强后图像
与MSRCR算法相比,MSRCP直接对RGB空间进行处理,不仅可以保持原图的背景色彩,而且可以有效地克服颜色失真的问题。
1.2 改进Cascade R-CNN模型
本文基于Cascade R-CNN目标检测模型,对其中的模块进行改进,改进后的具体架构如图2所示。
首先,将原始图像使用MSRCP算法进行图像增强,之后输入DetNASNet主干网络进行训练,得到其网络结构。图2中的Conv为DetNASNet构成的网络,用于特征提取,将提取的特征信息输入Soft-NMS算法优化的RPN中进行回归和分类,得到类别标签C0和检测边框回归坐标B0。然后,将B0和主干网络提取出的特征信息经过ROI Pooling池化后继续输入到交并比(Intersection over union,IoU)阈值为0.5的RPN网络中,得到类别标签C1和检测边框回归坐标B1。之后RPN网络IoU阈值分别取0.6和0.7,最终得到类别标签C3和检测边框回归坐标B3,即检测目标的类别和位置。
1.2.1Cascade R-CNN目标检测模型
Cascade R-CNN由Faster R-CNN改进而来,Faster R-CNN对图像中所有的RPN进行打分,需要主动挑选重叠度阈值判定正负样本。通过设定IoU阈值,使正样本与原目标吻合,得到检测结果。但设置较高的IoU阈值,会造成正样本数量不足、训练结果过拟合。设置较低的IoU阈值,虽然可以获得较多的正样本,利于模型的训练,但会在检测时造成较多的伪检。
Cascade R-CNN采用级联的方式,前一个检测模型的输出作为后一个检测模型的输入,而且越往后检测模型的IoU阈值越大。通过设定不同大小的IoU阈值,多个专用回归量针对不同阶段重采样进行优化,从而提高检测精度。本文在改进Cascade R-CNN模型中,参照文献[10],分别设置0.5、0.6、0.7共3种不同的阈值,从而使每个阶段都产生最优的结果。
1.2.2DetNASNet主干网络
DetNASNet是一种基于神经网络搜索方法的目标检测模型主干网络。常规的目标检测模型往往使用已经设计好的神经网络架构作为主干网络,但对于不同场景中的目标检测任务,使用单一主干网络往往无法获得最优检测效果。对于特殊场景中的目标检测任务,则需要通过人工设计的方法完善网络架构,才能使得目标检测方法适应该场景,而人工设计网络架构,则需要相关人员对网络架构十分精通,并且还需要长时间训练和调试才可使用。DetNAS使用网络架构搜索(Network architecture search,NAS)[17]来设计目标检测的主干网络,可以对目标检测主干网进行搜索,利用强大的搜索空间,在有限的复杂度下获得较高的准确率,节省了人工设计网络框架的工作。
DetNASNet网络架构主要由ShuffleNet[18]单元组成,当前目标检测主流的VGG、ResNet等网络框架往往在卷积层使用一个固定大小的卷积核对图像进行卷积,而ShuffleNet单元采用卷积层组来替换原本的卷积,并且在卷积层后添加一个通信通道,使得各个不同的卷积结果得以通信,可以大幅度降低卷积带来的运算量。并且最后把取得的特征信息进行连接。这样不仅可以提高网络训练的精度,也可以降低网络整体的计算量与所需要的参数数量。
1.2.3Soft-NMS算法
目标检测算法在检测过程中,通常会在目标附近产生较多候选框。本文将RPN网络原本使用的非极大值抑制NMS算法替换成Soft-NMS算法用于优化候选框。NMS[19]是一种通过临近最大值挑选候选框的算法,其核心思想是对重复度较高的候选框打分,只保留分数最高的候选框。然而,当两个目标物体距离较近,或在图像中有较大重叠部分时,该算法也会剔除候选框,使得检测精度有所降低。
Soft-NMS算法基于NMS算法改进而来,使用小分数进行权重打分,避免了打分为0的情况。分为线性加权和高斯加权两种,本文采用高斯加权改进的Soft-NMS算法,计算公式为
(5)
式中IoU——交并比
Si——当前检测框的得分
Nt——IoU阈值
M——权重最高的框
bi——检测中产生的检测框
D——最终检测结果集合
σ——高斯函数惩罚系数
在高斯加权中,采用高斯函数惩罚,越接近高斯分布中心,惩罚力度越大,得分权重就越低。
为了对参数进行敏感分析,在训练数据集上通过改变参数值来观察查准率的变化。经过研究,Soft-NMS的参数σ在0.4~0.7范围内有较高的性能,超出该范围,查准率明显降低。因此本文设定σ为0.5。
2 实验
2.1 实验数据
为了验证本文方法的有效性,使用实际拍摄的水下视频作为数据集。固定高分辨率摄像机进行拍摄,拍摄时将白灯打开作为照明。由于在相邻几帧图像中目标运动不会变化太大,无需对每一帧都进行截取。本文采取每隔1 s截取一次图像,这样既保证了检测的精确率,也不影响数据集的完整性,同时加快了数据集的制作速度。水下视频共计180 min,11.1 GB,转换成图像后打乱顺序,共截取10 800幅图像,分辨率约为720像素×270像素。将9 000幅水下鱼类图像当作训练集,其他1 800幅水下鱼类图像当作测试集。并使用LabImage对图像中的鱼类进行标注,制作成实验所需要的XML格式。
实验考虑了视频中不同场景条件下截取的图像。算法的运行环境是Intel(R) Core(TM) i7-9700 CPU 3.00 GHz处理器,NIVDIA RTX-2070_8GB GDDR6显卡16GB_DDR4内存,编译环境为OpenCV+Pytorch。
选取计算精度(Accuracy)、查准率(Precision)、查全率(Recall)、F1值以及平均检测时间作为检测性能指标。
2.2 图像增强结果
为了说明MSRCP图像增强算法在夜晚水下环境中的有效性,本文对比目前较为主流的图像增强算法MSR、MSRCR以及LIME(Low-light image enhancement)算法[20]。原始图像如图3所示。表1为不同算法在不同参数设置下的图像增强结果。
从表1可以看出,由于夜晚水下环境的特殊性,MSR算法和MSRCR算法在增强时,会使图像整体色彩增强,导致最终增强后的图像纹理、色彩模糊不清。LIME算法增强效果较好,还原了水下丰富的色彩,但对背景色彩也进行了增强。在后续的目标检测中,由于背景有较多的杂色,反而会降低检测精度。而MSRCP算法,由于其保留了夜晚环境的背景色彩,只增强了其中前景物体的色彩饱和度,不会影响夜晚水下的背景色,使得鱼类目标更加清晰,色彩更加鲜艳,为后续的目标检测提供了良好的基础。
表1 不同算法图像增强结果Tab.1 Image enhancement results of different algorithms
除了主观评价外,本文还选用以下6个客观评价指标进行评价:
(1)峰值信噪比(PSNR):表明增强后的图像相对于真实正常光照图像的失真程度,其值越大,说明增强后的图像质量越高,即失真越少。
(2)结构相似性(SSIM):一种衡量两幅图像相似度的指标,其值越大表明增强后的图像与真实正常光照图像的结构特征越相似。
(3)色阶映射图像质量评价系数(TMQI):源于SSIM,是衡量增强图像的色彩与原始图像色彩一致性的指标。TMQI值越大,图像质量越好。
(4)自然图像质量评价指标(NIQE):一种基于空间自然场景统计(Natural scene statistics,NSS)模型构建的质量感知统计特征集合。NIQE值越低说明图像质量越高,越符合人眼的主观评价标准。
(5)基于块的对比度质量指数(PCQI):一种基于局部块的客观质量评估方法,它能够生成局部对比度质量图。PCQI值越高,增强后的图像对比度越大,图像质量更好。
(6)亮度顺序误差(LOE):一种基于相对亮度顺序来衡量图像的自然程度的评估方法。相对亮度顺序可以用来表示光照的方向和光照的变化程度。LOE值越低,则亮度误差越小。
相比于主观评价,这6种客观评价具有操作简单、成本低、易于解析和实现等优点。并且参考多个评价结果,可以更客观地分析图像增强后的质量。评价结果如表2所示。并参考主观评价结果,选出其中效果最好的图像增强算法,为后续目标检测实验提供较高质量的数据。
表2 图像增强评价结果Tab.2 Image enhancement evaluation results
从表2中可以看出,MSRCP算法在水下鱼类增强图像的PSNR、SSIM、PCQI、TMQI和NIQE这5种客观评价指标上均优于其他算法。
参考以上主观评价以及客观评价指标结果,本文使用MSRCP算法作为后续实验的图像增强方法,并使用增强效果较好的参数Color:2.00、Contrast:2.00、Sharpness:2.00。
2.3 目标检测结果
本文网络结构的参数设置为:方差0.1、均值0、Dropout 0.5、偏置0.1、初始学习率0.01。图4为本文方法在数据集上训练时的验证损失及训练损失函数变化曲线。可以看出,本文方法在数据集上的收敛速度较快,整体迭代次数达到20左右时,验证损失和训练损失达到一个较低的水平,说明网络模型训练良好,能够有效进行目标检测。
为验证本文方法的效果,将本文方法与Cascade R-CNN模型进行对比。另外,还与Faster R-CNN、SSD和YOLO v3进行对比,并采用不同的主干网络进行对比。表3为实验获得的目标检测结果。
从表3可以看出,在DetNASNet主干网络下,本文所使用的方法查准率为95.81%,查全率为93.13%,比Cascade R-CNN方法在ResNet-101网络下的查准率高11.57个百分点。
表3 水下鱼类目标检测结果Tab.3 Underwater fish object detection results
同样采取本文的图像增强和候选框优化算法,对比ResNet-101主干网络,在使用DetNASNet主干网络时,检测效率也有明显提升,检测时间节省了56 ms。
在ResNet-101主干网络下,单独使用MSRCP图像增强算法对输入图像数据进行处理后,查准率比Cascade R-CNN方法提高了6.15个百分点,查全率提高了6.35个百分点。
在ResNet-101主干网络下,单独使用Soft-NMS算法对Cascade R-CNN模型进行改进时,查准率比Cascade R-CNN方法提高了5.44个百分点,查全率提高了4.74个百分点。
可以看出在分别使用两种优化方法时,对夜晚水下鱼类目标检测精度都有一定的提高。而本文方法的查准率比Cascade R-CNN方法提高了11.57个百分点,查全率提高了11.72个百分点。
本文使用目前主流的目标检测方法Faster R-CNN、SSD以及YOLO v3进行对比实验,从实验结果可以看出,本文方法在准确率和效率方面都有明显提高。
图5~7为不同情况下目标检测的实际效果。
图5b显示了只采用MSRCP图像增强算法后的目标检测结果。可以看出,图像中的鱼类更加清晰,色彩更加鲜艳。在没有使用图像增强的原始图像中,部分夜晚水中的鱼类无法检测到,对于增强后的图像,目标检测的准确率更高。
由图6可以看出,在未使用Soft-NMS候选框优化算法时,无法全部将候选框重叠的鱼类正确地进行检测,而经过Soft-NMS算法优化后,可以更加准确地检测出检测框重复较多的重叠鱼类。
图7为Cascade R-CNN和本文方法检测结果。对比Cascade R-CNN和本文方法的检测结果可以看出,本文方法处理后图像色彩有了明显提升,图中的鱼类也更加清晰,检测精度明显提高。
3 结论
(1)提出了一种基于改进Cascade R-CNN目标检测模型和MSRCP图像增强的夜晚水下鱼类目标检测方法。利用MSRCP图像增强算法,解决了由于光照条件的突变或渐变,夜晚水下鱼类图像不清晰、辨识度不高的问题。利用Cascade R-CNN模型,实现了对水下鱼类目标的精准检测。通过DetNASNet主干网络提高网络训练精度,降低了网络整体的计算量。Soft-NMS候选框优化算法解决了在目标检测过程中,鱼类目标重叠所产生的检测框不准确的问题。
(2)本文方法比Cascade R-CNN方法或者单独使用MSRCP算法和Soft-NMS算法目标检测精度更高。与其他目标检测方法相比,本文方法在检测精度和检测时间方面性能更优。