APP下载

基于ResNet的典型养殖鱼类识别方法研究

2022-07-07涂雪滢刘世晶

渔业现代化 2022年3期
关键词:残差网络结构卷积

涂雪滢,刘世晶,2,钱 程

(1 中国水产科学研究院渔业机械仪器研究所,上海 200092;2 农业农村部渔业装备与工程技术重点实验室,上海 200092)

中国渔业资源丰富,鱼类养殖品种繁多[1]。目前,渔业捕捞、养殖管理以及生产加工等都面临鱼类精准识别的问题,且随着渔业产业信息化发展步伐的加快,对鱼类品种的精准分类提出了更高的要求[2]。现阶段鱼类识别手段大都集中在基于离水状态的静态识别,水下鱼类目标受其自身高柔性的体态和多姿态的运动方式的制约,导致基于静态图像的识别方法在实际应用场景中识别精度较低[3]。因此,急需从采样手段、样本集构建以及高效识别算法等多个方面开展研究,提升水下活体鱼类识别精度,满足水下运动个体精准识别的产业发展需要。

目前,鱼类种类识别方式主要依赖人工,劳动强度大,对鱼体会造成损伤,不利于鱼类的福利养殖[4]。计算机视觉技术具有高精度、非接触、速度快、抗干扰能力强等特点[5],在智能识别、自动跟踪、智能分类等领域起到越来越重要的作用[6-8]。基于机器视觉技术的目标识别方法主要分为两类,一类是基于传统BP、SVM等的传统机器学习方法[9],另一类是基于卷积的深度学习方法[10]。传统的机器学习方法主要是利用已知特征进行分类学习,在特征结构明显、学习场景单一的工况条件下取得了较好的识别效果[11],但由于其学习特征不具备空间缩放能力,导致算法适用场景受限,不能满足动态场景的识别要求[12]。基于卷积网络的深度学习算法是目前机器学习领域的研究热点,该方法通过构建多个卷积层、池化层和全连接层实现对平移、旋转、缩放等特征的有效识别,在图像识别领域起到了越来越重要的作用[13]。自2012年至今,涌现出大量优秀卷积神经网络算法,如AlexNet、ZFNet、VGG、GoogleNet、ResNet、SENet等,已经广泛应用在人脸、姿态、农作物以及鱼类识别领域[14]。

ResNet算法[15]是目前应用较为广泛的分类识别方法,该算法充分利用了浅层网络信息,解决了模型梯度消失和梯度爆炸的问题[16],在图像识别领域取得了不错的成绩。田强等[17]通过调整ResNet18模型的网络结构,搭配Leaky ReLU激活函数,实现汽车车标识别,识别率高达99.8%。Adao等[18]通过替换线性层的方法改进ResNet34网络结构,实现15种棉花害虫的分类,识别率达到98.1%。万鹏等[19]通过优化ResNet50算法,结合迁移学习、Adam优化和余弦退火方法,实现6种淡水鱼类的识别,识别率达到96.94%。上述基于ResNet的图像识别研究有效提升了目标识别精度,但识别对象大都为表型姿态变化较少的样本,面对水下鱼类游泳运动的复杂性和姿态的多样性,缺乏针对水下动态图像的有效试验论证。目前,基于ResNet算法的鱼类识别技术主要围绕单一的框架结构开展相关研究,缺少对不同网络层数框架结构的综合比较分析,虽然ResNet可以通过残差单元使网络结构无限扩大,但是增加的网络结构不可避免地增加了算法的复杂度,降低了运行效率[20]。

以ResNet框架为研究对象,通过对比分析不同网络层数和框架结构识别效果,以期找到适用于多姿态鱼类目标识别最优网络结构。首先,采取多角度图像获取方式,结合网络检索手段,丰富样本数量,增加算法对鱼类复杂姿态的适应能力,以期解决复杂样本库构建问题;其次,在经验分析的基础上,选取ResNet18、ResNet34和ResNet50这3种网络结构作为测试结构,通过对比分析不同网络结构的识别效果,以期找到识别精度和运行效率匹配度最佳的网络结构,满足水下鱼类动态目标精准识别产业发展需求,为产业智能技术升级提供算法支撑。

1 试验数据

1.1 试验装置

如图1所示,试验系统由透明玻璃鱼缸、过滤器、相机、支架和图形工作站组成。其中,玻璃鱼缸的长、宽、高均为600 mm,距地面1 m,玻璃厚度为7 mm,工作水深460 mm,相机型号为WST-U1080。为了避免镜面反射,将鱼缸的背面、底面、右侧面采用白纸遮挡。过滤器采用基于高效培菌滤材所建立的硝化系统的小型外置水循环过滤器,保持试验过程中水质健康稳定,减少换水次数。为了增加样本数量,采用位于鱼缸两侧的2台相机进行采样,调整采样高度使采样面与鱼缸平面近似平行,保证图像数据集构建的有效性。

图1 试验装置Fig.1 Test equipment

1.2 样本库构建

如图2 a所示,受相机镜头光路影响,图像存在一定的径向畸变,因此本研究采用标准棋盘格方法[21]进行图像矫正,矫正后样本图像如图2 b所示。

图2 鱼类图像矫正前后对比Fig.2 Comparison of fish image before and after correction

2 试验方法

2.1 ResNet网络结构

为了解决模型退化带来的信息传输过程中丢失、损耗等问题,何凯明等[15]提出ResNet残差网络,使用残差学习单元,形成短路机制,实现了卷积神经网络的深层次应用。ResNet残差结构如图3所示,x是输入信号,经过第一层线性变化,得到F(x),经过第二层线性变化,得到输出信号H(x)。在卷积神经网络训练过程中,随着学习准确率不断上升到饱和状态,输出信号H(x)趋于稳定,为保证学习准确率不再随训练层数加深而降低,原本带权值的x须变为恒等映射,保持输出信号H(x)与输入信号x相等,得到F(x)=H(x)-x,为使得H(x)与x随网络结构加深而保持等值,F(x)须趋近于0,ResNet训练过程逐渐转向为对残差F(x)趋于0的学习。

图3 ResNet残差结构Fig.3 ResNet residual structure

ResNet有不同的网络层数,比较常见的有18-layer、34-layer、50-layer,其结构均由5个卷积层和1个综合模块组成[15],其中卷积层由不同数量的残差模块不断堆叠组成,综合模块由全连接层、池化层和分类模块组成[22]。不同层数的ResNet的主要区别就在于每个卷积层包含的残差块的数量和残差块中的具体参数不同。

根据ResNet网络的成熟应用形式[15],经典的ResNet18、ResNet34和ResNet50网络结构如图4所示。其中,ResNet18和ResNet34结构较为简单,以两个3×3的卷积核和一个跳跃结构构成的一个残差单元,通过多个残差单元串联组成网络结构,ResNet34在ResNet18的基础上加深了网络层次;而ResNet50在ResNet34的基础上,将2层残差单元替换成3层残差单元,其中3层残差单元是由一个1×1、一个3×3和一个1×1的卷积核相串联,同时并联一个跳跃结构,再通过数个残差单元串联组成网络结构。

图4 不同层数ResNet网络结构模型Fig.4 Different ResNet structure models

2.2 参数选择

2.2.1 损失函数

损失函数[23]在模型训练时能够反映出模型与实际的差距,损失函数的大小与模型的优劣成反比,损失函数的值越小,代表模型的预测值与真实值相差越小,模型识别精度越高。交叉损失熵[24]作为ResNet模型的损失函数在目标识别领域取得了较好的效果[19],因此采用交叉损失熵作为损失函数,进行验证试验,其表达式为:

(1)

式中:loss为损失函数;m为取样数量;n为分类数量;Pij为符号函数,当i的类别为j时取1,否则取0;qij为i属于j类的预测概率。

2.2.2 学习率

学习率是决定ResNet模型收敛速度与收敛效果的重要参数,学习率的大小决定了模型学习速度的快慢[25]。采用指数衰减方法对学习率进行更新,在保证识别精度的前提下提升算法的收敛速度[26]。其学习率公式为:

α=βepoch_num×α0

(2)

式中:β为衰减指数,α0为初始学习率,epoch_num为迭代次数。综合考虑模型收敛速度和收敛效果,β取值0.95,α0初始设定值为0.001,学习率α随迭代次数的增加而减小,保持模型稳定不退化。

2.2.3 批尺寸

批尺寸的选取对模型迭代速度及识别精度均有一定影响[27]。对于小样本量数据集,批尺寸越大,模型梯度估值越准确,但对于大样本量数据集,批尺寸取值过大会占用过多内存,造成学习速度过慢[28]。使用的鱼类图像样本集共含有35 000张图像,综合考虑模型训练速度、准确度、系统内存等因素,选取128作为批尺寸。

3 结果与分析

3.1 试验环境

使用基于Windows 10操作系统的联想工作站,CPU为IntelXeon W-2245,主频3.90 GHz,显卡RTX2080S,内存64 GB,训练平台为基于Anaconda3的PyTorch框架。

3.2 样本分配

表1 鱼类图像样本数量分布Tab.1 Quantity distribution of fish image data sets

3.3 识别结果对比

采用ResNet18、ResNet34和ResNet50网络结构对样本库中的鱼类图像进行训练和测试。图5为3种ResNet算法模型训练准确率对比,横坐标为迭代次数,从图中可以看出,3种ResNet模型经过50次迭代后均稳定在99.8%,其中ResNet18的收敛速度最快。

图5 不同层数ResNet模型训练准确度Fig.5 Training accuracy of different ResNet models

表2为不同模型识别结果,从表中可以看出,随着ResNet模型网络层数的复杂化,对鱼类图像的训练时间也变长,模型识别的准确率相对有所提高,其中ResNet18浮点运算量最小,所需训练时间和识别时间最短,但准确率在3种模型中最低,准确率93.57%;ResNet50识别准确率最高,达到95.47%,但训练时间相较ResNet18和ResNet34分别增加了21.90 min和9.02 min;ResNet34识别准确率与ResNet50相差不大,达到95.03%,与ResNet50相比,其准确率降低了0.44%,训练时间减少了14.56%。

表2不同模型的识别结果对比Tab.2 Comparison of the results of different kinds of models

3.4 单一姿态图像和复杂姿态图像识别分析

采用多角度视频采样方式,采集小水体水下鱼类运动视频,从而获取不同姿态鱼类图像。不同于其他鱼类识别研究采用离水拍摄采样[29],或者大水体拍摄采样[30],采集的鱼类样本均为姿态、角度单一的样本,本研究采用小水体鱼缸作为采样空间,相机采样空间覆盖鱼类全部活动区域,所采集的样本包含鱼类不同角度、不同游姿的图像。

在养殖鱼类图像样本库的35 000张样本图像中,包含鱼类不同姿态的图像。其中,图6 a为鱼类侧面图像,该类图像类似于离水试验采集的样本,为单一姿态图像,共计18 791张;图6 b为鱼类多角度、多姿态图像,该类图像为复杂姿态图像,共计16 209张。当样本库按4∶1随机分为训练集和测试集后,以鱼类姿态为分类标准,则训练集中包含15 033张单一背景图像和12 967张复杂背景图像,测试集中包含3 758张单一背景图像和3 242张复杂背景图像,3个ResNet模型对不同姿态样本的识别精度如表3所示。

图6 鱼类单一姿态和复杂姿态图像Fig.6 Single pose and complex pose images of fish

表3 单一姿态图像和复杂姿态图像识别结果对比Tab.3 Comparison of recognition results between single attitude image and complex attitude image

从表3中可以看出,3个模型对单一姿态图像的识别准确率分别为96.70%、97.53%、97.92%,对复杂姿态图像的识别准确率分别为89.94%、92.13%、92.63%,相较单一姿态图像分别降低了6.99%、5.54%、5.40%。说明模型对单一姿态图像的识别效果更好,单一姿态图像中目标的特征更明显,而复杂姿态图像中的目标包含了鱼类的运动特征,在不同姿态时展现的体征不同,加大了模型学习的难度,导致识别准确率下降。

对比3个模型的识别结果,不同姿态和不同背景的鱼类图像对模型识别精度有一定影响,经过对错误识别结果的对比分析,造成识别错误的原因有如下几种:1)当鱼游转到某个角度,其表型特征不明显(图7a);2)当鱼运动幅度与频率过大,采集到的样本为运动模糊图像(图7b);3)当鱼游到循环装置附近,与循环装置形成特定角度(图7c);4)当鱼以某个姿态游到鱼缸角落,与背景融为一体(图7d);5)当背景中含有与其他鱼类相似特征(图7e);6)当背景干扰因素过多、过于复杂(图7f)。分析整个样本库的特点,当样本的特征丢失较多,成像角度较为特殊,鱼类贴边运动,或者背景较为复杂时,容易识别错误。且这种特殊情况出现的概率较低,样本相对较少,模型无法充分学习此类样本的全部特征,因此其识别精度较差。

图7 易识别错误的鱼类图像Fig.7 Easily misidentified fish images

3.5 识别结果可视化分析

混淆矩阵能够将分类算法模型的预测结果可视化,展示模型准确率及实际预测分布[31]。本研究采用混淆矩阵来评价3种ResNet网络结构对5种养殖鱼类的识别效果,其可视化结果如表4所示,横轴表示5种养殖鱼类的真实种类,纵轴表示其预测种类,矩阵中的数值xij代表将第i种鱼类预测为第j种鱼类的总次数。混淆矩阵中对角线上的数值越大,代表模型预测准确率越高。

表4 不同层数ResNet识别结果的混淆矩阵

由表4可以看出,3种算法鱼类识别结果的混淆矩阵,其预测数量基本分布在矩阵对角线上,3种算法的预测类别与真实类别基本一致,这表明ResNet算法在鱼类识别方面有很高的准确率。对比3个混淆矩阵,ResNet18对5种鱼类识别精度相差较大,对鮰鱼的识别精度最高,达到97.00%,对鲫鱼的识别精度最低,仅有86.36%;ResNet34在识别5种鱼类方面准确率基本相同,对每种鱼的识别准确率均在94.14%以上,说明ResNet34在鱼类图像识别方面性能稳定;ResNet50对5种鱼类识别准确率略有差距,识别鲈鱼的效果在3种算法中最好,准确率达到98.28%。

4 结论

通过采集鱼类高柔性、多姿态的运动目标图像和网络获取不同背景目标鱼类图像,构建复杂姿态与复杂背景鱼类图像样本集,以ResNet框架为核心,通过比较分析典型的ResNet18、ResNet34、ResNet50框架结构对鱼类识别精度和效果的影响,确定适用于典型养殖鱼类识别的ResNet网络结构形式。主要结论如下:

1)基于残差卷积神经网络的深度学习算法在养殖鱼类图像识别上具有较好的识别准确度,3种ResNet模型平均识别准确率达到94.69%,其中ResNet50识别精度最高,达到95.47%,ResNet34次之,达到95.03%,但ResNet50识别效率比ResNet34降低20.43%,综合考虑识别精度和识别效率,ResNet34更加适用于大样本量鱼类图像的识别分类。2)采用小水体作为采样空间,能够在保证鱼体无损的情况下,获得高柔性、多姿态的鱼类样本图像。增加模型对不同姿态鱼类图像的训练,增强了ResNet模型的泛化能力和鲁棒性,更适用于现实场景下的鱼类种类识别。3)通过对比分析不同ResNet识别结果的混淆矩阵,ResNet34对每种鱼的识别精度均在94.14%以上,表明了ResNet34在鱼类图像识别方面性能稳定。

针对鱼类运动高柔性、多姿态的特点,设计了双相机同步采样系统,所采集的鱼类图像样本均基于活鱼自由运动状态,能够适用于实时环境下动态鱼类识别。但采样背景较为单一,对实际工况中背景复杂的鱼类图像识别效果不如单一背景的鱼类图像,下一步将针对复杂环境下鱼类开展识别研究。

猜你喜欢

残差网络结构卷积
基于全卷积神经网络的猪背膘厚快速准确测定
多级计分测验中基于残差统计量的被试拟合研究*
基于图像处理与卷积神经网络的零件识别
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
基于深度卷积网络与空洞卷积融合的人群计数
卷积神经网络概述
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
测量数据的残差分析法
非常规突发事件跨组织合作网络结构演化机理研究