基于改进的Faster R-CNN贝类识别检测
2022-07-02冯怡然,张馨丹,陶学恒
冯 怡 然, 张 馨 丹, 陶 学 恒
(1.大连工业大学 辽宁省海洋食品加工技术装备重点实验室,辽宁 大连 116034;2.大连工业大学 工程训练中心,辽宁 大连 116034)
0 引 言
目前海产品大多依靠机械分类和人工分类。为了减少劳动力需求,提高加工效率,可以将计算机视觉应用于海产品的非接触式计算和测量,这样可以在不损害被检海产品的前提下提高加工效率和计算精度。在贝类识别领域已有相关研究,杨靖尧等[1]采用了极限学习机的方式实现了贝类的分类识别,但是该算法很难实现快速大批量的检测。杨眉等[2]研究了基于BP神经网络的扇贝识别,但无法解决畸形和遮挡等问题。里红杰等[3]依靠计算机视觉技术达到海产品分类和质量评估,但在识别过程中图像处理时间相对漫长。席芮等[4]提出了计算机视觉深度学习的方法,使得马铃薯芽眼的识别率达到96.32%,虽然识别对象单一,但大大提高了检测精度。Costa等[5]应用计算机视觉对石斑鱼的大小、性别和骨骼异常进行自动分类,基于最小二乘法建模的多元素技术将图像分析和轮廓形态学相结合,适用于对活鱼进行分类处理。
本研究在前期研究的基础上创新性地引入了一种Faster R-CNN网络[6],用于4种贝类的识别、定位和检测,以解决在真实环境下贝类识别缺乏深度学习算法的问题[7-9]。基于各种贝类的特征,对Faster R-CNN框架进行修改,通过替换特征提取方式与合并手段,并在真实环境下收集和构建贝类数据集,最终解决了遮挡、光线和多目标环境中贝类的识别和定位问题,有效地提高了贝类的识别率。
1 Faster R-CNN架构
Faster R-CNN在近几年应用非常广泛[10],由RPN和Fast R-CNN相结合[11],本研究优化了该算法,Faster R-CNN的3个网络为基础网络特征提取、区域候选网络(RPN)和测试网络。贝类的颜色、轮廓、纹理等都是贝类深层次的抽象特征。这种网络经训练好后,可以提取输入贝类图片的深层次特征,经过DenseNet提取不同尺度的贝类特征图并融合处理实现贝类精准的识别分类。对贝类的识别操作过程如图1所示。
图1 Faster R-CNN算法步骤
1.1 改进的Faster R-CNN
1.1.1 密集连接网络
虽然更深的网络可以提取更深的数据信息,但随着网络的加深,参数不可避免地会增加[12]。这给网络优化和实验硬件带来了一系列的问题,使优化的运算量增大,导致硬件无法承受。针对贝类分类检测算法建立的数据集样本容量小,网络训练容易导致过拟合,使用DenseNet作为特征取网络有助于解决的上述问题[13]。
作为一种新颖的网络架构,DenseNet借鉴ResNet的理念[14](ResNet的网络传递函数如式(1)、(2)所示)。
xl=Hl(xl-1)+xl-1
(1)
xl=Hl({x0,x1,…,xl-1})
(2)
网络的第l层输出等于第l-1层输出的非线性变化加上第l-1层输出。相比之下,DenseNet的第l层输出是所有前一层输出的非线性转换的集合(如图2所示)。
图2 Dense Block架构
每个Dense Block中的卷积都是相互连通的[15]。H代表每个输入都使用批量归一化和激励函数(ReLU)与k维3×3卷积核进行运算。k是输出特征的深度。DenseNet的深度为32[16]。对于DenseNet,其控制模块中间的密集连接可以合理地利用浅层和深层,其特点是确保高效率并大大减少网格的复杂性和运算量。
使用4个121层Dense Blocks组成特征提取网络,去除全连接和分类层后,将RPN和区域兴趣(RoI)池化层连接起来,完成目标识别和定位。Dense Block体系结构的主要参数如表1所示。
表1 DenseNet架构表
1.1.2 非极大值抑制
非最大抑制的目的是寻找局部最大值并抑制非最大元素,这是检测过程中的一个重要步骤[17-18]。Faster R-CNN被转换为图像中的一系列检查框B={bi,…,bN},并且相对框被划分为分集Ci。在目标检测的整个过程中,NMS优化算法先选择得分最高的复选框(M),然后对其余检测帧进行IoU(intersection over union)测量。如果测试结果超过设置的阈值Nt,则复选框将被抑制。NMS算法为
(3)
从式(3)中可以看出,当复选框NMS的阈值与M接近或超过临界值时,Ci将为0。假如贝类被部分遮挡,该贝类将无法被识别,从而降低检测模型的准确性。
为了解决这一问题,传统的NMS算法被Soft-NMS算法所取代,Soft-NMS算法根据相邻复选框之间的大小,设计衰减函数,而不是将它们的分数设为零,从而确保对相邻目标的准确识别。Soft-NMS算法为
(4)
为了实现真实环境下的贝类分类检测,对Faster R-CNN检测算法的前端特征提取器和末端回归器进行了修改[19],算法步骤如图3所示。
1.2 算法算例
为了使实验与实际生产相匹配,在基于深度学习的海产品分拣机器人生产线上进行贝类识别实验。将贝类提取特征的过程进行可视化操作,原始的扇贝图片经过过滤器也就是卷积来过滤图像,再经过激活,最后进行池化处理,从而达到减少参数的效果,以扇贝为算例,如图5所示,特征图的颗粒度随着网络深度的加深而增强。
图5 扇贝的算例特征图
2 实验及数据处理
2.1 实验条件及数据采集
为了验证实验提出的Faster R-CNN算法的有效性[20],独立采集了贝类数据集,这些数据集分为4个物种(扇贝、海虹、海螺和蚬子),共包含4 218张图像(表2)。
表2 数据参数
数据特征包括不同的光强度、遮挡、复杂的背景和多个目标,以确保检测模型涵盖常见的现实生活中的贝类。此外,50%的数据集是镜像的,另外50%是平动扩展的(图6),使用LabelImg软件对检测的贝类进行标示。经过扩展,数据包括8 463 幅图像,其中90%数据作为训练集,10%数据作为检测集。
(a)原始标示
2.2 数据及处理
整个训练过程中卷积损失的全过程和检测精度如图7所示。约2 000次的卷积后,总偏差稳定在0.1~0.2,检测精度稳定在80%。
图7 训练过程中卷积损失和检测精度
2.3 实验结果对比分析
使用原始算法和优化后的算法进行卷积,依靠贝类数据集对算法进行测评。表3列出了各种算法对贝类的检测结果,贝类多样化的测试效果如表4所示。
表3 算法的检测效果
表4 贝类多样化的检测效果对比
根据检测结果,使用ResNet的Faster R-CNN 在各种贝类检测中mAP值超过77%。图8是部分检测结果。在图8(a)中,明显的贝类特征和充足的光照,模型可以取得显著的检测性能。图8(b)中的扇贝部分被遮挡,包含多种贝类,检测效果较好。在图8(c)中的海虹被遗漏。可见ResNet在复杂场景下适应性较弱。
(a)正常检测
从测试效果来看,优化算法的mAP值高达83%,比初始算法高出近4%。3种贝类(海虹、扇贝和蚬子)的检测结果得到了极大的改进。这是因为这3种贝类的测试集包含了多种贝类、贝类重叠和复杂环境的特点,对DenseNet+Soft-NMS优化后,在包含多种贝类的海虹和蚬子数据集中,检测准确率提高了2%。所以,优化后的算法在贝类多样化的环境中的适应性比初始算法更好,在光线不足和贝类重叠两类样本的适应性有明显改善。在多目标和复杂背景下,将改进后的Faster R-CNN算法与原始Faster R-CNN算法进行性能比较,如图9对比所示。
图9 原始算法与优化后的算法对比
检测效果由图9(a)可见,初始算法经常导致背景多样化下的遗漏。图9(b)显示了对初始算法的检测错误,蚬子和海螺被错检为海虹。图9(c)为遗漏的案例,检查框架无法准确地框取贝类目标。通过比较可以看出,经过DenseNet和Soft-NMS改进后的Faster R-CNN在精度上要优于原始算法,可以测试大量贝类目标,并且当相邻目标之间的距离太小时可以准确地框取单个元素。改进后的Faster R-CNN主要表现出在背景多样化和多个贝类目标下的更明显的优势。
3 结果与讨论
为了解决传统的贝类识别算法在不同光线、不同背景和不同重叠条件下的问题,提出了一种用于贝类识别的深度学习算法。该算法是基于改进的Faster R-CNN,通过优化算法和网络架构,以提高贝类检测的精度。同时,用Soft-NMS代替原算法对合并策略进行了优化,从而提高了检测的精度。结合生产实际情况建立了4种常见贝类的数据集。研究的检测算法能够实现海产品加工企业对贝类分类识别的需求,在光线不足、重叠等复杂条件下,比传统模型的检测精度提高近4%,具有较好的检测性能。