基于改进的Mask R-CNN 的鱼类识别算法研究*

2023-09-29 05:51闫党康
计算机与数字工程 2023年6期
关键词:候选框感兴趣鱼类

闫党康

(北方工业大学信息学院 北京 100144)

1 引言

鱼类是水体资源及水下生态系统的重要组成部分,合理开发和利用鱼类资源对于水体生态保护和渔业资源的可持续利用进而实现社会经济的可持续发展发展具有重要意义。而深度学习是近年来兴起的主流的人工智能技术之一,在图像识别中的优势尤其突出,因此,基于深度学习技术开展水下鱼类识别的研究具有重要的学术价值和社会经济价值。

传统的鱼类识别方法大多基于特定环境下的鱼类采用人工设计的特征使用图像识别方法进行分类,具有一定的局限性。由于人工设计的特征具有强烈的主观性,识别效果的优劣取决于人工设计的特征是否合理,因此,对于特定的数据集和识别任务,人工设计的低级特征能在一定程度下获得良好的性能,但随着数据集的增长,基于人工设计特征的传统鱼类识别方法的泛化能力迅速饱和,不仅复杂度高、鲁棒性差,且产生大量的候选冗余区域[1]。

2012 年,Krizhevsky 等[2]提出了一种基于深度卷积神经网络的AlexNet 算法,该方法使用仿生视觉细胞的局部感受野等手段解决了图像处理的难题,并在ImageNet 竞赛中获胜。2014 年,Girshick等[3]提出了基于区域的卷积神经网络,它结合选择性搜索(Selective Search)、卷积神经网络等方法进行候选区域生成、特征提取、位置修正,提高了目标检测效果,改变了目标检测领域的研究思路。受此启发,特征提取网络、特征表示器和检测框架相继出现。目前的深度学习目标检测算法可以划分为两类[4]:1)一步(one-stage)目标检测算法,这类检测算法不需要生成候选区域(region proposal)阶段,即仅通过一步均匀在特征图(feature map)上进行密集抽样,产生大量的先验框(prior box),然后进行分类和回归,因此在检测速度上相对较快,代表算法有YOLO[5~8]、SSD[9]等;其中YOLO 算法是将原始输入图片进行分割成网格进而得到预测结果,SSD算法利用了多尺度的特征图相融合的方法消除冗余得到预测结果。2)两步(two-stage 目标检测算法,这类检测算法将检测问题划分为两步,首先,产生包含目标位置信息的候选区域(region proposals),然后,对候选区域进行分类和位置精修。因此在检测精度上优势显著,代表算法有更快的区域卷积神经网络[10],该算法将特征提取(feature extraction),区域(proposal)提取,边界框回归(bounding box regression),分类(classification)整合在一个卷积神经网络中,使得检测性能大大提高。

深度学习目标检测算法在诸多领域中广泛应用,例如交通中的“车辆检测”[11],人脸识别中的“多姿态识别”[12],行人检测中的“细粒度识别”[13]等任务均获得进展。不同于以上类型的识别目标,鱼类图像为水下拍摄所得,受光照、水质等因素的影响,图像质量较低,难以针对鱼类目标进行精确地候选框生成,并将对目标的分类定位任务造成一定的影响。因此,本文采用基于深度学习的目标检测算法,提出将Mask R-CNN 结构应用到鱼类识别中并加以改进,主要工作包含以下几个部分:

1)数据集的获取与打标阶段,选择Fish4knowledge 鱼类数据库并利用VIA 图像打标工具进行标注,采用翻转、剪切等几何变换方式对数据集进行扩充,实现数据增强。

2)候选区域生成阶段,采用改进的Soft NMS替代非极大值抑制(Non Maximum Suppression,NMS)进行感兴趣区域(Region of Interest,RoI)的后处理,以降低置信度进而提升准确率。

3)分类回归阶段,在头部网络中添加级联结构,针对边界框(bounding box)递增地调用多个IOU 阈值以区分真实边框(ground-truth bounding box)和预测框(predicted bounding box)。

2 网络框架

2.1 Mask R-CNN算法

本文采用Mask R-CNN 算法实现对鱼类进行识别,网络结构如图1 所示。首先,使用深度残差网络(Deep Residual Network,ResNet)[14]和特征金字塔(Feature Pyramid Network,FPN)[15]进行特征提取以生成特征图(feature map)和感兴趣区域;其次,输入到区域生成网络(Region Proposal Network,RPN)中进行二值分类(前景或背景)和边界框回归,过滤掉一部分候选的感兴趣区域;然后,对感兴趣区域进行双线性插值操作(RoIAlign)操作解决特征图和原始图像上感兴趣区域的不对准问题;最后,将感兴趣区域全连接网络中同时进行分类和回归。

图1 Mask R-CNN结构

在Mask R-CNN算法头部网络的训练环节,使用RoIAlign 替代全连接层操作,可以实现输入与输出像素的一一对应,即对每一个类输出一张特征图,并采用平均二进制交叉熵损失函数替代全连接层中的Softmax 损失函数进行训练。因此,Mask R-CNN 算法对感兴趣区域的多任务损失函数可以定义为[16]

2.2 骨干网络

骨干网络(backbone network)是用于提取图像特征图的一系列卷积层,如VGG、GoogLeNet、ResNet101 等[4]。深层的网络有利于进行复杂的特征提取,同时会出现梯度爆炸和模型退化等问题。为了解决这一问题,采用ResNet 进行特征提取。残差网络单元如图2所示。

图2 残差网络单元

残差单元可以表示为

其中Xl和Xl+1分别表示的是第L个残差单元的输入和输出,F是残差函数,表示学习到的残差,而h(xl)=xl表示恒等映射,f是ReLU激活函数。

在ResNet中有两种实现策略:

1)采用零填充(zero-padding)增加维度,采用步距为2 的池化(pooling)进行下采样以减少参数量;

2)采用新的映射(projection shortcut),短路连接使用恒等映射替代1×1 的卷积操作,避免了参数量和计算量的增加。

2.3 迁移学习

迁移学习指的是将已训练好的模型参数迁移到新的模型中来帮助模型训练[17~18]。迁移学习不仅能够快速地训练出一个相对理想的实验模型,也可以在数据集量不充足时学习到更丰富的特征信息。迁移学习主要作用在以下三个方面:初始性能高,学习速率块;模型收敛强。

为了更好地学习到鱼类图像的特征信息,提升泛化性能,本文在训练过程中载入MS-COCO 数据集的预训练权重训练本文实验模型中的所有参数。

2.4 非极大值抑制及其改进

非极大值抑制算法[19]针对候选框进行如下处理:删除大于设定阈值的重叠候选框,保留无重叠的候选框和低于阈值的重叠候选框。非极大值抑制算法对不同阈值的候选框处理由公式表示如下:

考虑到非极大值抑制算法直接删除大于设定阈值的重叠框导致误检漏检的问题,本文采用改进的Soft NMS进行替代,即在算法执行过程中摒弃直接删除感兴趣区域大于设定阈值的候选框方式,选用降低置信度得分的方式过滤候选框。由于是在非极大值抑制算法的基础上进行改进,因此不需要重新训练原有模型即可集成到原识别任务中,同时改进的Soft NMS 在阈值重置函数部分采用与非极大值抑制计算方式相同的二值化函数。

此外,改进的非极大值抑制算法的计算方式依据权重变量的值分为线性加权和高斯加权,其计算公式如下所示:

1)线性加权:

2)高斯加权:

2.5 级联结构

为了判断候选框的正负样本,需要设定感兴趣区域阈值,感兴趣区域阈值的选择是影响模型的识别性能的重要因素:当感兴趣区域阈值较高时,正样本数量减少,训练阶段缺失足够的正样本,训练过程出现过拟合;当感兴趣区域阈值较低时,检测器难以鉴别负样本和背景图,导致误检情况的出现。同时训练阶段和预测识别的感兴趣区域阈值的不同也将导致识别目标不匹配情况的出现。

因此考虑到在头部网络中加入级联结构,即加入一个多阶段检测子网络对区域候选网络产生的特征区域进行逐步的微调。由于采用了多阈值检测子网络的级联结构,级联顺序将按照阈值由小到大排列,当感兴趣区域阈值为0.5时,正样本数量足够,保证模型不会过拟合,而当修正后的感兴趣区域阈值由更高阈值的回归器进行修正时,则能够大大提高识别目标位置的准确性。通过添加级联机构解决了传统单个网络设定阈值时出现正样本数量不够以及候选区域修正效果不佳之间的矛盾。

3 实验方法与结果

3.1 实验平台

本文的实验配置为运行环境Anaconda3,编程语言Python3.6,深度学习框架TensorFlow1.4.0,keras2.1.6,CPU 为AMD R7,GPU 为GTX1650,CUDA9.0,模型参数初始化采用MS COCO 预训练权重。

3.2 数据集的选取与制作

基于深度学习的鱼类识别需要大量的数据集进行训练学习识别目标的特征信息,因此,本文从典型的Fish4knowledge 数据库中进行选取制作实验数据集,该数据库从实时视频数据集中获取到鱼类图像数据,共得到27370 张鱼类图像,划分为23种鱼类,数据显示不同鱼类之间的数据量不平衡,其中最常见的物种约是最不常见物种的1000倍。

数据集制作过程采用VIA 图像打标工具进行标注以制作成标准的MS-COCO 数据集。首先,定义实验数据集中的鱼类相应的属性值;其次,针对图像中的鱼使用多边形工具进行打标;最后,将所有标注好的鱼类信息导出成json 文件以备实验模型调用。

3.3 预训练

为了减少训练时间,提高实验模型精度,本文采用MS-COCO 数据集预训练权重进行迁移学习,MS-COCO 数据集的预训练权重中包含80 类对象特征信息,有助于加速训练实验模型,学习识别目标特征信息。在预训练阶段,骨干网络选择使用ResNet101 深度残差神经网络进行特征提取,训练过程中设定为30 个epoch,每个epoch 设置为100step。

3.4 实验评价指标

目标识别算法性能的通用评价指标可分为:交叉点联合(Intersection Over Union,IOU)、平均精度(average precision)、平均精度均值(mAP)、准确率(precision)、召回率(recall)[14]。其中交叉点联合的度量值用来评估识别目标的定位效果,表示为预测框(predicted bounding box)和地面真实框(ground truth bounding box)中包含的重叠区域与联合区域的比值:

平均精度是衡量类别精度的指标,平均精度均值是所有类别的平均精度的平均值,准确率定义为正样本(TP)与预测负样本总数的比率,召回率定义为预测出所有正样本的概率。平均精度(AP)、准确率(precision)、召回率(recall)的计算公式如下:

其中,TP(True Positive)表示预测为正的正样本,FP(False Positive)表示预测为正的负样本,FN(False Negative)表示预测为负的正样本,TN(True Negative)表示预测为负的负样本。

3.5 实验结果与分析

3.5.1 实验数据的可视化效果

本文实验数据的可视化效果如图3 所示。从实验数据集中随机选取一张未经过处理的鱼类图像与经过改进的Mask R-CNN 算法处理后的识别效果相对比,可以发现图中的单位鱼类被清晰地识别并作为前景目标像素级地分割出来。

图3 可视化效果

3.5.2 数据增强对比实验

本文采用的Fish4knowledge 数据集呈现长尾数据特征,不同鱼类的数据量呈现较大差异(约1000 倍),为了学习到数据体量较少的鱼类更加丰富的特征信息,提高实验模型的识别精度和泛化能力,本文采用翻转、旋转、裁剪、颜色亮度变化等数据增强的方法对训练过程中的鱼类数据进行合理的扩充,如图4所示。

图4 图像数据增强示例

根据表1 的结果可知,当训练集经过数据增强的方式从1771 张鱼类图像增加到5313 张图像后,鱼类识别的精度提高了10.1%。因此,对长尾数据集进行合理的数据增强处理,可以帮助实验模型充分地学习到识别目标丰富的特征信息,帮助实验模型提高识别性能,同时以下对比实验均在数据增强的基础上进行。

表1 数据增强实验对比

3.5.3 采用不同策略训练网络的对比实验

为了验证本文所提出方法的有效性,分别采用不同策略对Mask R-CNN 进行训练预测,实验结果如表2所示。原始Mask R-CNN算法中使用非极大值抑制进行后处理来筛选感兴趣区域;通过分析Mask R-CNN 的算法流程和非极大值抑制算法针对感兴趣区域的处理方法,本文采用改进的Soft NMS对重叠候选框下的鱼类目标进行识别,实验结果表明:针对重叠候选框选用改进的Soft NMS进行后处理可使平均精度均值提升1.9%;同时,考虑到感兴趣区域阈值的选取对Mask R-CNN 算法的分类效果的因素影响,在头部网络中添加级联结构,递增的调用上一阶段学习的感兴趣区域阈值,实验结果表明:采用级联结构解决感兴趣区域阈值问题,可以使平均检测精度提升3.6%,充分地提高了鱼类识别精度。实验对比结果如表2所示。

表2 对比实验模型结果

4 结语

本文以Mask R-CNN 为基础的目标识别框架,使用深度残差神经网络和特征金字塔进行图像的特征提取,采用区域候选网络生成候选区域,采用Soft NMS 对候选区域进行后处理减少误检率,并在头部网络中添加级联结构递增的调用感兴趣区域阈值来保证目标识别的准确率,大幅提高了鱼类识别的平均精度和平均精度均值。但本文对于鱼类识别的检测速度低于单步检测器的检测速度,因此,接下来的研究工作将集中在提升模型检测速度。同时伴随着深度学习研究成果的不断融入,优秀的特征提取网络和检测框架相继出现,未来将对其进行更深一步的探讨。

猜你喜欢
候选框感兴趣鱼类
重定位非极大值抑制算法
基于MFCC和ResNet的鱼类行为识别
面向自然场景文本检测的改进NMS算法
基于Soft-NMS的候选框去冗余加速器设计*
更 正
鱼类运动会
一种针对特定目标的提议算法
鱼类是怎样保护自己的
这样的智能厨房台面,你会感兴趣吗?
现在是几点