APP下载

基于ResNet34模型的大菱鲆鱼苗识别计数方法

2024-02-21涂雪滢刘世晶李国栋

渔业现代化 2024年1期
关键词:大菱鲆鱼苗计数

涂雪滢,钱 程,刘世晶,2,刘 晃,2,李国栋,2

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

大菱鲆(Psettamaxima),又名多宝鱼,是原产于欧洲的一种优良海水养殖鱼类,于20世纪90年代初引入中国,经过养殖鱼苗技术的突破性发展,大菱鲆已成为中国北方山东半岛、河北和辽东半岛等沿海地区的重要水产养殖品种之一[1-2]。目前,大部分水产育苗场采用称重的方式对鱼苗进行粗略计数,该方式误差率较大,存在20%~30%的误差,而人工分选计数的方式十分耗费时间与人力,大菱鲆育苗场的熟练工平均每人每小时只能计数3 300多条鱼苗,且该方法人为因素影响较大,效率极低[3]。因此,针对鱼类育苗的产业发展需求,应加强关键技术攻关,攻克苗种识别、鱼苗计数和孵化率计算技术难点,研发鱼苗识别与计数技术。

随着水产养殖向机械化、自动化和智能化的方向不断发展进步,鱼苗计数的手段不再局限于传统的人工计数方式[4]。目前国内自动化鱼苗计数手段主要分为两大类,一类是基于机械结构和电子元器件辅助的鱼苗分级计数装置,杨雨辰[5]设计了一种基于点钞机结构原理和光线计数器的鱼苗精确检测计数与分级装置;吴丛迪等[6]设计了一种基于分流、传送、打包装置和红外计数器的全自动点苗分装器。此类方法需要鱼苗的种类规格与机械结构有较高的匹配度,且由于存在聚集鱼苗分离、鱼苗长距离滑动等采样过程,容易对鱼苗造成一定损伤;此外,电子技术原理需要计数对象满足光线反射特性,而刚孵化大菱鲆鱼苗由于其个体微小、身体透光性强等特点,导致上述技术不能满足微小鱼苗自动无损技术要求。另一类是基于计算机视觉和机器学习技术的鱼苗识别计数系统,该系统主要利用相机等视觉采样装置,通过目标识别以及数量统计模型实现苗种计数。例如,朱从容[7]利用相机从上方采集背景已知鱼苗全景图像,通过背景差分实现鱼苗的像素点提取,并构建鱼苗像素点与鱼苗数量之间的线性关系,得到鱼苗数量,适用于鱼苗图像纹理清晰、前景和背景差异较大的工作场景;王文静等[8]通过结合水流流速和拍摄速度,采集鱼道出口处的鱼苗图像,通过阈值法计算样本中鱼苗数量,取得了较好的计数精度。该方法对鱼苗聚集度、个体大小和身体透光性具有较高要求,无法满足微小目标计数需要;王硕等[9]对鱼苗轮廓进行曲线演化,通过统计最大轮廓曲线数来计算鱼苗数量,适用于较大个体大菱鲆苗种。由于刚孵化大菱鲆鱼苗个体微小、透光性强且孵化池背景成像受外部影响较大,基于背景去除或轮廓提取的方法很难直接应用到变工况场景,因此传统的适用于鱼体个体和背景差异较大以及鱼体轮廓较易获取的计数方法不能满足刚孵化大菱鲆鱼苗计数需要。

本研究提出了一种基于深度残差网络(Deep Residual Network,ResNet)[10]的大菱鲆鱼苗识别计数方法。首先,针对微小目标成像特征不明显的问题,设计了一套由相机、光源、承装容器等组成鱼苗采样装置,通过调整相机和光源位置,实现鱼苗图像的有效获取。为了提升算法识别精度,降低背景干扰,采用背景差分、高斯滤波、全局灰度线性变换以及形态学处理等方法实现鱼苗前景分割和初步定位,并利用最小外接矩规则化初步定位信息形成待识别目标,然后利用ResNet34模型作为识别模型实现大菱鲆苗种识别和目标区域数量统计,并统计所有待识别目标识别结果实现大菱鲆苗种计数。最后,通过不同方法比较分析验证本方法的有效性。

1 材料与方法

1.1 试验装置

设计了如图1所示的试验装置。

图1 试验装置

该装置由不锈钢黑箱、置物抽屉、可调节光源和工业相机等组成。装置以铝合金型材为骨架,在骨架外固定黑色不锈钢板,组成密闭黑箱,其尺寸为(400×400×400) mm,置物抽屉安装在黑箱底部,便于更换样本,工业相机型号为大恒ME2P-2621-4GC-P,镜头焦距为8 mm。相机固定在顶部居中位置,保证承装容器中鱼苗有效成像。光源采用2个条形光源,固定在黑箱顶部。针对微小透光鱼苗清晰成像的拍摄需求,设计采用光照强度可调光源,用以配合不同光照强度的拍摄需求。此外,为了满足算法运算要求,本研究中模型是基于Python3.8、Pytorch框架开发,软件运行在Windows11操作系统上,硬件包括:中央处理器为Intel(R) Xeon(R) W-2245 CPU @ 3.90 GHz,运行内存为64 G,图形处理器为NVIDIA GeForce RTX2080 SUPER。

1.2 样本获取

由于大菱鲆鱼卵孵化周期短,鱼苗孵化后短期内就具备自由游动能力,因此为了有效获取刚孵化的大菱鲆鱼苗,减少大面积采样对孵化池内鱼苗的影响,根据大菱鲆鱼苗孵化规律,将采样时间设定为鱼卵开始孵化后的第72小时,并将采样鱼苗暂养在养殖箱内。采样时,选用200 mm×200 mm×60 mm的亚克力盒作为拍摄容器,从养殖箱内随机选取部分幼苗倒入容器中,置于拍摄箱底部。为增强鱼苗与背景的反差,亚克力容器底部采用白色底板为采样背景,通过调节采样高度和相机焦距,得到清晰的幼苗样本图像。

1.3 方法整体框架

鱼苗计数方法整体框架如图2所示,分为3个部分:图像预处理、样本库构建和目标识别计数。

图2 大菱鲆苗种计数技术路线图

图3 图像预处理

图像预处理部分主要用于降低背景噪声对识别精度的影响,因此根据采样装置成像特点,选用背景差分、图像增强和几何变换的手段抑制背景无用的信息,增强前景图像特征[11]。样本库构建部分,为了进一步提升方法的实用性,有效统一样本空间和待识别目标空间,利用经过图像预处理的前景信息,通过对目标轮廓做最小外接矩形,实现目标的提取,以此构建待识别目标样本集,并根据提取出的目标图像大菱鲆苗种构建分类标签,按照8∶2的比例将其划分为训练集和验证集;目标识别计数阶段,首先是利用ResNet34模型实现不同数量目标样本的识别,然后根据识别样本数量统计整张图像大菱鲆鱼苗总数,实现苗种计数。

1.4 图像预处理

通过试验装置采样得到的图像包含过多背景信息,不利于后续鱼苗目标的识别,因此需要对原始图像中冗余的信息进行预处理。共采用4步图像预处理方法获得鱼苗清晰前景图像。首先,对容器的4个角点进行定位,采用透视变换法[12]得到目标区域的图像,然后使用背景差分法[13]得到背景信息相对较少的鱼苗图像,采用高斯滤波[14]对图像进行平滑处理并利用全局灰度线性变换方法[15]对图像进行灰度拉伸。最后,利用膨胀腐蚀等形态学处理去除图像中的噪点、毛刺和微小杂物,填补目标的空洞和断点[16-17],去除图像中多余的杂质点。采样原图及预处理后图像如3所示。

1.5 样本库构建

1.5.1 目标提取

经过形态学处理的鱼苗图像为二值图像,已经能够很好地区分出目标与背景,采用边界跟踪算法[18]来提取目标的轮廓(图4a)。对于鱼苗不重叠,且背景无杂质的图像,直接通过计算轮廓的数量即可得到鱼苗的数量。但当背景较为复杂时,轮廓圈出的可能不仅有鱼苗,还有其他干扰目标。此种情况可以选择先提取出轮廓圈出的所有目标,再对每一个目标进行识别判断,判断其是否为鱼苗,从而计算鱼苗的数量。因此可以通过对轮廓做外接矩形的方法,提取出待识别目标(图4b)。当鱼苗相邻较近时,普通外接矩形容易将其他目标也圈进矩形中,且鱼苗斜向时,其外接矩形圈出的背景面积较大。因此,在外接矩形的基础上,选择轮廓最小外接矩形对轮廓进行目标提取(图4c)。

图4 目标提取

图4d为对原图中鱼苗目标的轮廓做最小外接矩形,可以看出效果相对普通外接矩形要好。但最小外接矩形的四条边并不是平行和垂直正常画面,要提取出每一个目标,需对最小外接矩形提取出的部分做透视变换[19],得到每个目标的图像。

由表1可以看出,提取出的图像包含4种类型,其中,0个目标图像不包含鱼苗,1个目标图像、2个目标图像和3个目标图像中分别包含1条、2条、3条鱼苗。将提取出的图像做分类标签,形成大菱鲆鱼苗样本集。

表1 目标提取后的图像

表2 样本数量分布

1.5.2 样本分配

样本数量分布如图2所示。

大菱鲆鱼苗样本集中,包含76张0个目标图像,2 466张1个目标图像,160张2个目标图像和12张3个目标图像,共计2 714张样本图像。将样本集按约3∶1的比例划分为训练集和验证集,构成目标样本库。

1.6 目标识别

1.6.1 ResNet网络结构

网络层的深度和数量增加,引入的激活函数数量增加,有利于提高网络的非线性变换能力,更好地进行数据特征的提取和变换。然而,当其达到一定水平时,网络几乎完全失去了线性转换的能力[20]。ResNet在传统的深度学习基础上引入了残差模块,通过多个网络的输入输出,对一个单元模块进行跳跃拼接,在特征提取的同时叠加上一步的信息,该方法很大程度上缓解了因网络深度的增加而出现的梯度消失、网格退化等问题[21]。

ResNet网络结构因其模型不易退化、特征信息损耗度小等优点[20],在图像识别领域有较为优秀的识别速度和精度,其在鱼类识别方面也有较多应用和较好的识别效果,经过对比分析,本研究选用ResNet34模型对鱼苗图像进行识别研究。

Input为输入图像,输入尺寸设置为224×224×3像素;Conv1为预处理卷积层,包含一个7×7的卷积层,批标准化处理层、激活层和最大池化层;Conv2_x、Conv3_x、Conv4_x、Conv5_x代表残差结构,每个残差结构分别包含3、4、6、3个参数不同的残差单元;残差层的输出结果经过AvgPool平均池化层后进入FC全连接层进行分类;由Softmax分类器输出对应的概率值,从而得到识别结果。ResNet34网络结构如图5所示。

图5 ResNet34网络结构

2 结果与分析

2.1 模型参数选择

参数的选择对模型训练时的收敛效果、速度、识别精度非常重要。综合考虑试验环境系统配置、样本数量和模型训练效果,将批尺寸[22]的大小设为8,迭代次数为30次,选取Kaiming正态分布作为模型初始化权重方式[23],ReLU作为模型的激活函数[24],交叉熵损失函数作为模型的损失函数[25],初始学习率设为0.001,并采用Adam优化算法优化学习率[26],同时添加Dropout避免模型训练时出现过拟合风险[27]。

2.2 试验结果

大菱鲆目标样本库中,训练集包含2 036张样本图像,验证集包含678张样本图像。利用ResNet34对训练集和验证集进行训练,得到训练模型,其训练效果如图6所示。

图6 准确率与损失值曲线

训练时,每批次训练的图像数量为8张,一共迭代30次,可以看出,训练集和验证集分别在第11轮和第17轮迭代后趋于收敛,训练集经过30次迭代后,损失值稳定在0.1左右。完成训练后,保留准确率最高的一次ResNet34训练模型,构建大菱鲆鱼苗识别计数系统,实现对测试样本的识别与计数。

识别结果用混淆矩阵[28]的方式可视化展示,结果如表3所示。表3中,横向表示目标样本图像中含有鱼苗的真实数量,纵向表示目标样本图像中含有鱼苗的预测数量,矩阵中的数值xij表示将类别i预测为类别j的数量,其中,对角线上的数值越大,代表识别的准确率越高。由表3可以看出,对角线上的数值远高于其他位置的数值,这表明ResNet34对目标样本图像有较高的识别准确率。

表3 混淆矩阵

2.3 不同模型识别结果比较分析

为了验证方法的有效性,选取目前常见的SVM[29]、AlexNet[30]、ResNet18[31]和ResNet50[32]等方法与本研究方法进行比较分析,结果如表4所示。

表4 不同算法的识别准确率对比

由表4可知,5种方法识别精度都高于85%,证明本研究样本数据库构建的有效性;相比于深度学习方法,SVM方法识别精度较低,识别精度仅为85.8%,ResNet18、ResNet34和ResNet50等方法识别精度接近,其中ResNet34识别精度最高,达到94.44%。由此可见,ResNet34更加适用于本研究构造的大菱鲆鱼苗样本图像的识别检测。

2.4 平均识别精度分析

为了估算大菱鲆鱼苗识别计数系统的计数准确率,用亚克力盒从养殖箱内随机选取部分大菱鲆鱼苗进行采样,将该图像传入系统进行识别计数,共采样50次,得到每次的识别准确率和计数准确率,统计结果如图7所示。

图7 鱼苗识别与计数准确率

由图7可知,系统在鱼苗识别方面,识别的准确率最低为90.07%,最高为98.11%,平均识别准确率为94.27%,在 50 次识别检测中有26次的识别准确率在平均线以上。在鱼苗计数方面,计数的准确率最低为92.78%,最高为100%,平均计数准确率为96.28%,在 50次计数检测中有27次的计数准确率在平均线以上。相较ResNet34模型对鱼苗样本图像识别的准确率94.44%,鱼苗计数准确率较高,这主要是由于模型会将0个目标图像识别为1或2个目标图像,将1个目标图像识别为2个目标图像,使得检测出的鱼苗数量增加,又将2个目标图像识别为0或1个目标图像,将1个目标图像识别为0个目标图像,导致检测出的鱼苗数量减少,双方平衡下,导致最终检测出的鱼苗个数与实际鱼苗个数相差不大。

3 结论

设计了一套针对微小鱼苗计数专用图像采样装置,搭建了基于图像预处理的鱼类苗种数据集,为后续苗种识别和数量统计提供数据支撑。通过图像预处理手段,将全局随机检索问题简化为特定目标识别问题,有效降低了后续识别计数算法应用复杂度。结果证明ResNet34识别模型在不同数量大菱鲆鱼苗图像识别的有效性,并通过识别每个初步定位目标大菱鲆鱼苗数量实现整张图像大菱鲆鱼苗的全局计数,大菱鲆鱼苗的平均识别和计数精度分别达到94.27%和96.28%,为大菱鲆养殖鱼苗孵化率的精准计算提供坚实的技术支撑。本方法虽然实现了特定场景苗种计数,但不可避免地带来了鱼苗损伤问题,下一步将根据本研究结果,尝试引入相关环境补偿算法,实现原始工况场景鱼苗精准计数。

猜你喜欢

大菱鲆鱼苗计数
古人计数
黄海水产研究所“一种大菱鲆油乳化疫苗及其应用”获国家发明专利授权
递归计数的六种方式
古代的计数方法
惨!海南再现死鱼事件,石斑鱼养户亏上百万,刚投放鱼苗几乎全军覆没
辽宁大菱鲆养殖产业发展形势分析
这样“计数”不恼人
体外培养法探讨不同蛋白源对大菱鲆肠道菌群的影响
鱼苗养殖中疾病的预防与控制
染料木黄酮对大菱鲆生长、消化酶活力和肠道组织结构的影响