基于Faster R-CNN和图像增强的水下鱼类目标检测方法

2020-07-24 09:49袁红春张硕
大连海洋大学学报 2020年4期
关键词:鱼类高清图像

袁红春,张硕

(上海海洋大学 信息学院,上海 201306)

近年来,水下探测作业技术已成为海洋技术领域的研究热点,要实现水下探测和作业,水下机器人必须能快速对水下环境中需要捕获信息的目标进行精确识别和定位[1-4]。传统方法中,人们依靠延绳钓探捕、拖网探捕等常用海洋捕捞技术进行鱼类密度及分布测算或利用相关性分析筛选出显著影响鱼类资源量的关键网格点建立模型进行预测[5]。此外,海洋科学家也通过水下摄像机拍摄视频录像带,然后通过人工标注鱼类分析渔情[6]。精确的渔情预测数据能够解决目前多数渔业标准服务系统中缺少基于标准体系的渔业标准服务的问题,并能够为渔业标准修订指南提供数据决策依据[7]。随着水下拍摄技术的发展与相关设备的普及,水下拍摄在鱼群监测、鱼类资源量预测等渔业方面的应用日益广泛。利用水下拍摄视频图像自动处理,极大地节省了时间和成本[8],但这项工作面临着许多挑战,如复杂的水下背景、变形、低对比度、低分辨率和光传播细节不充分等因素,给鱼类目标检测带来了困难。因此,针对水下拍摄图片中鱼类目标快速检测方法的研究具有重要意义。

传统机器学习方法是通过人工方法提取鱼类特征,然后将特征输入支持向量机、boosting等分类器进行检测分类。Rova等[9]提出一种基于模板匹配的可变形提取技术可用于鱼类检测;张志强等[10]提出一种一般化方法,将鱼类图像中各颜色分量和长短轴之比作为鱼类特征;姚润璐等[11]则从鱼类图像中分割出鱼各部位的图像模块,然后提取关联度更高的特征,但其提取过程非常复杂,需要人工制定鱼类各部位的匹配规则,不适用于分析海量数据;Dalal等[12]提出HOG(Histogram of oriented gradients)特征具有较好的分类特性等。然而,上述人工方法提取到的鱼类特征通常只适用于光照充足、清晰度高、背景环境对比度高的情景下,在水下较难产生作用。而且机器学习方法提取鱼类特征是通过人类的先验知识实现的,挖掘特征的能力差,在检测效果达到一定程度后无法随数据量的扩增而提高。

相较于传统机器学习方法,深度学习方法在特征提取方面具有极大优势。近年来,深度卷积神经网络算法[13]的发展使目标检测的精度得到显著提高,并能在无须任何先验知识下对数据本身特征进行自我学习,自动逐层提取,当数据规模足够大、网络层数足够深时能够对数据深度挖掘, 提取出具有分辨力的高质量特征。但深度学习需要数据支撑,在数据规模较小时很难提取出具有较强泛化能力的特征,而水下拍摄的鱼类图像数目少、拍摄成本高,数据量难以支撑训练网络。通过迁移学习[14]可解决水下拍摄鱼类图像数据量不足的问题,即采用Faster R-CNN[15]算法,首先通过预训练模型对Open Images高清鱼类数据集进行一次迁移学习初步训练网络,然后固定训练好的检测模型的低3层卷积网络参数,再用水下拍摄的小规模鱼类数据集进行二次迁移学习训练、微调网络[16],最后通过带色彩恢复的多尺度视网膜增强算法(Multi-Scale Retinex with Color Restoration,MSRCR)对水下拍摄的低清晰度、低对比度、低质量图像进行处理以增大其与高清鱼类图像的相似性,使二次迁移学习高效进行,从而得到能准确检测水下图像中鱼类目标的网络。为此,本研究提出了一种基于Faster R-CNN二次迁移学习和MSRCR算法的方法,用于水下低清晰度图像中鱼类目标的快速检测,旨在为深海探测作业与海底鱼类等生物资源的监测、保护、可持续开发等工程应用提供参考。

1 Faster R-CNN目标检测模型与迁移学习

Faster R-CNN可看作“区域生成网络Fast R-CNN[17]+RPN[18]”的系统,两者相互协调对图像中目标进行检测。其最大创新在于增加目标区域提取网络RPN(region proposal network),其本质是基于滑窗的无类别目标检测器,通过锚点机制来生成候选框以替代选择搜索、Edge Box等传统方法,然后通过 CNN 来预测检测目标可能存在的区域,可极大地提升检测框的生成速度。

RPN网络采用端到端的训练方式,能够输出感兴趣区域的边框位置和可能存在目标的概率值。在结构上,Faster R-CNN将特征抽取、边框回归及分类都整合在一个网络中,从而有效提高检测精度和检测效率,在检测速度方面提升尤为明显。如图1所示,基于Faster R-CNN的鱼类目标检测步骤如下:(1)将鱼类图像缩放后输入到卷积层提取特征图,然后将特征图输入后续的Fast R-CNN与RPN网络中共享。(2)在特征图传入RPN后,使用滑窗生成特征向量,然后将特征向量输入分类层和回归层。(3)在分类层中,使用Softmax分类器执行二分类任务,对锚点进行前景或背景的判断;在回归层中,调整锚点边框中心,拟合推算回归得到候选框位置。(4)Fast R-CNN综合候选框与特征图的信息,判断前景所属类别,并生成最终鱼类图像检测框的确切位置。

图1 Faster R-CNN模型结构Fig.1 Structure of the Faster R-CNN model

由于采用交替训练使两个网络卷积层实现了共享,使用Faster R-CNN极大地缩短了检测时间的同时又提高了精度。依据其在ImageNet数据集的检测结果能够看出,到目前为止,Faster R-CNN依然是检测精度与检测速度综合性能最高的算法,故本研究中采用Faster R-CNN算法,选用VGG16网络[19]及ResNet101[20]网络进行鱼类目标检测,实现水下拍摄图像中鱼类目标的有效检测。

为缩短训练时间和提高检测精度,使用迁移学习的方法:用超大规模源域ImageNet数据集训练好的VGG16与ResNet101网络参数用于初始化,然后利用目标域数据集对参数微调。Faster R-CNN迁移学习训练具体步骤如下:

第一步:使用上述初始化好的参数来训练RPN网络,然后生成感兴趣区域。

第二步:对于第一步中得到的感兴趣区域,利用ImageNet数据集初始化完毕的网络进行回归训练和分类。由于此时RPN网络和Fast R-CNN网络各自独立训练,故训练后各自对网络参数的更新不同,两个网络参数不共享。

第三步:使用第二步生成的网络参数来训练RPN网络,此时只调优RPN独有的网络层参数,并生成感兴趣区域。

第四步:使用生成的感兴趣区域训练网络,然后进行分类和回归,期间固定卷积层共享的参数,最终实现目标域Faster R-CNN检测模型的训练。

2 基于MSRCR算法的水下拍摄图像数据增强

获取水下拍摄大规模鱼类图像比较困难,成本较高,现有的水下拍摄样本量很难训练出符合要求的模型。在常规深度学习训练中,若数据量不足,通常方法是通过随机裁剪、翻转、亮度与对比度设置及颜色转换等方法对数据集进行扩充,虽然一定程度上能提高检测精度,但是提高有限。借助数据量相对充足的Open Images高清鱼类图像,采用迁移学习的方法,利用水下拍摄的鱼类图像微调Open Images高清鱼类目标检测网络,进而实现对水下图像中鱼类目标的检测。迁移学习所连接的两个目标的相似程度越高,就越利于迁移学习的进行。Open Images高清鱼类图像与水下拍摄鱼类图像最主要的差别在于光。与普通图像不同,水下由于光随距离和深度呈指数衰减,从而产生雾霭、水下介质吸收光能、散射改变光的方向,故水下图像对比度低、清晰度低、颜色褪色。提高两者之间相似度的关键是处理光线条件及恢复水下颜色色彩,而MSRCR算法能够减弱光线对图像中物体的影响,恢复物体本来的清晰度、对比度、色彩、边缘等信息。故本研究中使用MSRCR算法对水下拍摄鱼类图像增强,增大其与Open Images高清鱼类图像的相似度。

MSRCR是对Retinex算法的极大改进。依据Retinex理论,图像可看作由入射光线和反射光线组成,数学表达式如下:

I(x,y)=L(x,y)×R(x,y)。

(1)

其中:I(x,y)为观察者感知的物体图像信息;L(x,y)为环境光的照度分量;R(x,y)为物体的反射分量。Retinex算法的核心思想是消去照射光线的影响,保留物体本身的反射属性。对式(1)两边取对数,即可抛除入射光线的影响,从而得到目标物体的原本面貌,关系式如下:

lg[R(x,y)]=lg[I(x,y)]-lg[L(x,y)]。

(2)

对于已获取的一张图像I(x,y),计算图像增强后的对应R(x,y),关键是获取L(x,y)。Retinex理论提出L(x,y)能够通过对图像I(x,y)和一个高斯核的卷积进行高斯模糊来近似表示,关系式如下:

R(x,y)=exp{lg[I(x,y)]-

lg[I(x,y)*G(x,y)]}。

(3)

其中:*为卷积;G(x,y)为高斯核。

然后将lg[R(x,y)]量化成0~255范围之内的像素值输出。计算出lg[R(x,y)]的最小值与最大值,然后对每个lg[R(x,y)]值采用线性方式量化,计算公式如下:

R(x,y)={lg[R(x,y)]-lg[R(x,y)]min}/

{lg[R(x,y)]max-lg[R(x,y)]min}×

(255-0)。

(4)

为了获得更好的增强效果,在其基础上又衍生出多尺度视网膜增强算法MSR(Multi-Scale Retinex),其优点是能够在保持图像高保真度和对图像的动态范围进行压缩的同时也能够实现色彩增强。MSR算法在计算lg[R(x,y)]时需要对输入图像进行每个尺度的高斯模糊,得到模糊后的图像Li(x,y)(下标i表示尺度数),然后对每个尺度进行累加计算,计算公式如下:

lg[R(x,y)]=lg[R(x,y)]+W(i)×

(lg[Ii(x,y)]-lg[Li(x,y)])。

(5)

其中:W(i)为每个尺度对应的权重,各尺度权重之和为1,经典取值为等权重。其他的计算步骤与单尺度相同。

MSRCR是对MSR结果做了色彩平衡、归一化及增益和偏差线性加权,解决了MSR普遍存在的偏色问题。MSRCR算法,首先是计算出lg[R(x,y)]中R/G/B各通道数据的平均值(Mean)和均方差(Var),设置动态参数(Dynamic),然后通过lg[R(x,y)max=Mean-Dynamic×Var和lg[R(x,y)max=Mean+Dynamic×Var计算各通道的最小和最大值,最后对lg[R(x,y)]的每一个值用式(4)进行映射,通过判断语句:if(R(x,y)>255)R(x,y)=255;else if(R(x,y)<0)R(x,y)=0做溢出判断。经上述处理,在水下拍摄图像即可取得非常好的效果。

MSRCR不同尺度数对比试验结果(图2)表明,尺度(scale)数对结果的影响不大,且在实际网络模型检测鱼类图像中精度差别甚微,但随尺度数的增加,算法耗时将线性增加,为满足鱼类图像快速检测的需求,一般选取尺度数为3比较合适。

图2 MSRCR尺度数对比试验图Fig.2 Test diagram of MSRCR scale number comparison

MSRCR不同动态参数对比试验结果(图3)表明,动态对比参数Dynamic取值越小,水下图像增强后的对比度越强,当其取值在2~3之间时能取得很自然的过渡效果,保持图像的清晰度适度增强。对于最大尺度,针对水下拍摄鱼类数据集,本试验中总结出取值以大于100为好。

图3 MSRCR动态参数对比试验图Fig.3 Comparison test diagram of MSRCR dynamic parameters

3 一次迁移学习与对Open Images中高清鱼类图像检测结果

3.1 高清鱼类数据准备

使用谷歌Open Images训练集中共计13 443张有单独鱼类边界框的高清鱼类图片作为训练数据,如图4所示,像素尺寸为1920×1080,其中鱼类种类多样、背景复杂、对比度强、清晰度高。从Open Images的测试集选取500 张鱼类测试图片,共计2253个样本作为测试集,并从训练集的图片中随机选取500张图片作为交叉验证集。通过python脚本读取Open Images中谷歌开源标注好的边界框信息,转换成本研究中训练所需的数据格式。

图4 Open Images数据集中带有单独鱼类边界框的高清鱼类图片Fig.4 High definition fish pictures with individual fish boundary frame in Open Images data set

3.2 Open Images高清鱼类数据集检测结果

利用超大规模ImageNet数据集训练好的VGG16、ResNet101网络模型对网络参数初始化, 并利用高清鱼类数据集对网络微调,完成基于一次迁移学习的Open Images高清鱼类目标检测。

试验环境配置参数如下:处理平台为台式计算机,CPU为AMD Ryzen Threadripper 1950X,CPU主频3.4 GHz,动态加速频率4 GHz。GPU为NVIDIA GTX1080Ti,运行环境为Windows 10(64位)系统,Python 3.6,TensorFlow 1.8.0。通过CUDA 9.0.176版并行计算架构进行加速运算。采用mAP(mean average precision)检测模型评估指标,mAP是不同score阈值下准确率-查全率曲线和坐标轴围成的面积,然后对各类别的面积值取平均值,这是目前应用最广泛、最合理、最稳定的检测模型评估指标。利用交叉验证集的检测结果对VGG16与ResNet101这两种网络进行超参数分析与调优,择取最优超参数,最后通过测试集数据对网络的检测精度进行无偏估计,采用的评价指标为查准率、查全率和调和函数F1度量,以及每张图像的平均检测耗时。对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(true positive,TP)、假正例(false positive,FP)、真反例(true negative,TN)、假反例(false negative,FN)4种情形。查准率(precision,P)又称准确率,是针对预测结果而言的,其表示预测为正的样例中有多少是真正的正样例,计算公式为P=TP/(TP+FP)。查全率(recall,R)又称召回率,是针对原来样本而言的,其表示样本中的正例有多少被预测正确,计算公式为R=TP/(TP+FN)。F1度量是查准率与查全率的调和平均数,其计算公式为F1=2×P×R/(P+R)。

检测结果如表1所示,可以看出,ResNet101网络的查准率及查全率均高于VGG16网络,并且查全率与查准率均高于90%, 同时ResNet101网络相对于VGG16网络检测耗时更短,这是由于ResNet101引入残差结构,并且网络深度远大于 VGG-16 网络但参数空间较小。

表1 对Open Images高清鱼类数据集的检测结果

图5为RestNet101网络对高清鱼类图像的部分检测结果,可以看出,该网络模型能够精确地识别出清晰度高、对比度强的鱼类目标,并对光照、背景、阴影等因素具有一定程度的鲁棒性,在海草遮蔽鱼身及水底环境复杂的情况下亦可检测到目标,但是当目标与背景颜色相近或者与背景环境对比不强时有可能发生较小的漏检和误检。

图5 高清鱼类图像识别结果Fig.5 Recognition results of high-definition fish image

4 二次迁移学习与水下低清晰度鱼类图像检测结果

4.1 水下拍摄鱼类图像数据集准备

由于目前还没有较为完备的、公开的水下鱼类数据集,因此,利用水下摄像机拍摄鱼类图片,共600张图片,像素尺寸为 1000×600,场景主要是本文背景项目养殖基地。从中随机选取100张,共计324个样本,作为测试集;从剩余的图片中随机选取100张,共计433个样本,作为交叉验证集;其余400张图片,共计1838个样本作为训练集。并对每幅图片中的所有样本统一归为鱼类目标类别,用labelImg图像标注工具进行人工标注并制作成所需的xml格式,结果如图6所示。

图6 使用labelImg制作标签图Fig.6 Using labelImg to create labels

4.2 二次迁移学习与图像增强对检测效果的影响

网络模型的低层卷积层是用来提取识别目标的纹理、色彩、边缘等底层特征的,对于不同的数据集影响较小,一般预训练模型对底层特征的提取能力非常强,基于对图像识别时提取底层特征通用的特点,在进行参数迁移时会保留并固定低层卷积模块结构与参数,并将靠近分类层的高层卷积的模块与结构参数设置为可训练的状态,然后将模型放入目标域中进行再训练,由于可训练参数继承自源模型,因此,在进行微调时无须从初始值开始梯度下降,一般经过小幅调整后即可达到新的最优值。针对已经训练好的Open Images高清鱼类目标检测模型固定前3层卷积网络参数,根据水下拍摄鱼类数据集,仅对更高层次的网络参数做微调,并观察其在交叉验证集中的检测效果,结果如表2所示。

从表2可以看出,相较于直接利用水下拍摄数据集进行训练,进行二次迁移学习后对鱼类目标检测效果有较为明显的提高,由于VGG16的网络规模与层数相对较小,其包含的抽象信息较少,因此,在微调时权值更新数量相较总参数量占比重较大,对模型检测能力的提升作用明显。当对数据采用简单的增强图片明亮度方法将水下拍摄的鱼类图像亮度提高30%时,对比不进行图像增强时,这两种网络模型均有提高,但是mAP提升并不大,因该算法没有提高水下鱼类图像的清晰度,无法大幅提高迁移源域高清鱼类图像和目标域水下低清晰度鱼类图像的相似度。而使用MSRCR算法进行水下图像增强后,二次迁移学习后的效果有了进一步的提高,特别是在网络规模更深的ResNet101网络上检测效果提升更加明显。这是由于更深的网络具有更多的网络参数,需求更大的数据量,图像增强一定程度上是等效数据量的增大,并且在引入残差结构后解决了模型的退化问题,其映射对最终检测输出的变化更敏感,因此,ResNet101网络检测效果提升明显。此外,由于迁移学习的本质就是在原有网络模型已有的基础上做网络层数的冻结及对参数更精细的调整,因此,降低学习率后能够进行更为精细的参数学习。本研究中,降低学习率至10-4后检测效果有进一步提高,其中VGG16网络的mAP达到0.821,而更深的ResNet101网络则能够达到0.917。

表2 不同处理方法下水下拍摄鱼类图片检测mAP结果

4.3 水下鱼类图像测试集检测结果

为对VGG16和ResNet101两种网络的鱼类检测效果进行无偏估计,使用与鱼类图像训练集、验证集都互斥的测试集测试网络。训练与测试时的参数设置及训练时间见表3,检测结果见表4。

表3 网络训练与检测参数、方式、时间

表4 水下鱼类图像测试集检测结果Tab.4 Detection results of underwater fish image test set

使用基于Haar-like特征的Adaboost传统水下图像鱼类检测方法[21],在本文鱼类监测数据集中检测准确率仅为75%,其对于复杂水下环境有较差的鲁棒性,而使用Faster R-CNN目标检测算法的两种模型准确率比Adaboost目标检测方法均提高了约20%。同时能够看出,ResNet101网络的查准率和查全率均优于VGG16网络(表4),但由于网络深度和结构存在一定差别,特别是ResNet101引入了残差结构,能够大幅加速训练与检测。在使用一块显存为11 GB的NVIDIA GTX1080Ti显卡预热后,ResNet101网络检测一张图片比VGG-16网络要节省大约76 ms。但VGG16的功耗与内存需求相对于ResNet101网络较低,这与其较慢的推理时间相关,因此,如果对鱼类图像检测精度的要求不高,在电池及硬件资源等设备有限制的情况下,可选择VGG-16网络。VGG-16网络虽相对ResNet101网络检测耗时较长,但仍能满足鱼类图像快速检测的要求。

在输出检测结果前,网络会依据score阈值进行判断,然后丢弃结果小于score阈值的目标,保留大于score阈值的目标。如图7所示,对于ResNet101网络,随着score阈值的增加,查准率基本是以线性方式增长,而查全率先是一定程度的缓慢下滑,然后急剧下降;而对于F1度量而言,当score阈值小于0.90时,F1度量随着score阈值的增大先缓慢升高,然后又平稳下降,幅度较小;但当socre阈值大于0.90之后,查全率下降迅速,由于其查准率始终保持在较高的水平,波动幅度较小,所以此时查全率对F1度量影响较大,在score阈值为0.30时,其值约为0.975。

图7 不同score阈值对水下鱼类图像检测结果的影响Fig.7 Effects of different score thresholds on the detection results of underwater fish images

图8为ResNet101网络最终的检测结果,可以看出,对水下鱼类图像增强后的图片检测效果令人满意,无论是在鱼类游动速度较快的情况下拍摄的带有残影的模糊鱼类图像,还是在水下环境对比度较差、鱼类密集甚至重叠的情况下,ResNet101网络均能够较为精准全面地检测出鱼类目标。相较于传统机器学习提取鱼类特征的方法,本研究中所采用的Faster R-CNN方法无须人工设计鱼类特征的提取规则,检测网络可以自动挖掘出鱼类信息,从中提取出高区分度、高聚类、低耦合的鱼类特征。通过二次迁移学习的方法解决了水下鱼类数据集不足的问题,网络的查准率与查全率也都得到了不同程度的提高,并且随着以后水下鱼类图像数据的搜集与扩充,该网络依然能够继续提高检测精度,传统机器学习方法不具备的此优点,这对水下鱼类检测具有重要意义。

图8 ResNet101增强前(A)、增强后(B)水下拍摄鱼类数据集的对比Fig.8 Comparison of underwater fish data sets before(A) and after(B) ResNet101 enhancement

5 结论

(1)本文中首先完成了ImageNet超大规模数据集到大规模Open Images中高清鱼类数据集的一次迁移学习,实现了对Open Images中高清鱼类目标的有效检测。在VGG-16上的查全率、查准率、F1度量及检测耗时分别为0.948、0.852、0.897、183 ms,在ResNet101上则分别为0.959、0.911、0.934、108 ms。

(2)然后完成了大规模高清鱼类数据集到小规模水下拍摄鱼类数据集的二次迁移学习,并对水下拍摄图像使用MSRCR算法进行数据增强,以便二次迁移学习的高效进行。在VGG-16上的查全率、查准率、F1度量及检测耗时分别为0.949 6、0.929 9、0.939 6、172 ms,在ResNet101上则分别为0.981 2、0.950 8、0.965 8、96 ms。

(3)在不同图像增强算法对比上,Brightness增强算法在VGG16与ResNet101网络的mAP分别为0.772、0.824,而MSRCR算法则分别是0.813、0.902,高下立判,MSRCR算法具有明显优势。同时,进行二次迁移学习后,相较于一次迁移学习,在VGG16与ResNet101两种网络的mAP结果上分别提升了0.056与0.012。

(4)不同score阈值对ResNet101网络检测鱼类图像结果影响较大,随着score阈值增加,查准率基本呈线性增长,而查全率先轻微下滑再急剧下降。而对于F1度量而言,当score阈值小于0.90时,对F1度量影响较小,但当socre阈值大于0.90时,对F1度量影响较大,在score阈值为0.30时,其值约为0.975。

本研究表明,该网络具有较高的检测精度并可以满足水下鱼类目标的快速检测需求,具有较强的工程应用参考价值。下一步的工作将在水下鱼类成功检测的基础上,对水下鱼类进行分类识别,从而实现对水下鱼类丰富度的检测,继续为海底鱼类等生物资源的检测、保护,以及可持续开发等方面提供一定的技术支持。

猜你喜欢
鱼类高清图像
基于生成对抗网络的CT图像生成
浅析p-V图像中的两个疑难问题
三峡工程高清影像公布 等
巧用图像中的点、线、面解题
鱼类运动会
奇妙的古代动物 泥盆纪的鱼类
上海——电影之城 高清家庭影院来了——东方电影高清频道5月8正式开播
趣味数独等4则
视听与高清行情