APP下载

基于残差模块的红螯螯虾虾卵计数方法的研究

2022-09-02杨国伟胡起立孙丽慧张俊杰郭建林

渔业现代化 2022年4期
关键词:鱼卵残差卷积

杨国伟,周 超,胡起立,孙丽慧,张俊杰,郭建林

(1 杭州电子科技大学 通信工程学院,浙江 杭州 310018;2 杭州海关技术中心环境与化学安全检测研究所,浙江 杭州 311215;3 浙江省淡水水产研究所 智慧渔业研究团队,浙江 湖州 313001)

红螯螯虾(Cheraxquadricarinatus)又称澳洲淡水龙虾,其个体大、生长快、营养价值丰富、肉质口感好,得到了广大消费者和水产养殖业的青睐[1-2],近年来全国养殖规模正在不断扩大,水产品总产量迅猛增长[3-4]。螯虾的高效人工繁育是实现大规模人工养殖的关键环节,其中虾卵数量是后期孵化、培育、养殖和产出数量的重要前馈信息。目前,实际孵化场的虾卵计数还基本采用打样和人工计数方式,存在计数工作烦琐和准确性差等问题。准确的虾卵计数一方面可以给养殖场管理者提供有效养殖管理信息,实现更加精准的放养管理,从而准确控制养殖成本。另一方面,可以通过虾卵数量预估螯虾捕捞量,解决螯虾供求关系中产量预估不准确,造成水产市场滞销或者供不应求的现象[5-6]。

随着计算机视觉的发展,诸多神经网络模型被融合到计算机视觉应用上,特别是为密集场景识别提供了新的思路,并且可以延伸到农业领域[7-8]。与传统数字图像处理技术不同,基于卷积神经网络的计算机视觉技术提供了一种高精度、轻设备的通用化识别检测方案[9-10]。

在水生生物卵子识别领域,已有一批学者做了大量的研究。Witthames等[11]发明了一种对鱼卵自动计数的电子系统装置,该装置利用悬浮水中的鱼卵经过电子传感器时产生的电压脉冲来对鱼卵进行计数。该计数装置可以实现99.5%精度的鱼卵计数任务,鱼卵直径需控制在200~2 500 μm,这种方法需要让鱼卵一粒一粒穿过而导致计数速度受限,还需要对鱼卵进行一定操作而导致鱼卵一定程度损伤。张杭文等[12]提出一种基于数字图像处理的鱼卵计数方法,使用OpenCV对已经预处理过的鱼卵图像进行轮廓检索和轮廓绘制计数,报道精度可达99.7%,但这是图像中鱼卵数量较少、分布分散情况下的测试结果。Friedland等[13]使用商业软件包Optimas对鱼卵计数,精度为99%,但是依靠多种人工特征将鱼卵从图像背景中分离出来,导致图像预处理太过繁琐。Duan等[14]提出一种基于阈值分割、形态学处理的自动化方法对大西洋黑线鳕卵进行计数,精度为94%,但是这种自动化方法仅适用于透明远洋鱼卵,普适性较差。

国内外学者对水生生物卵子的识别技术做了诸多的研究,先前的研究大多利用传统数字图像特征提取技术和机器学习方法,过程烦琐且普适性较低。其次先前研究采用的图像中,卵的分布密度不高、较分散,无法应对真实场景下虾卵的高密集识别。随着深度学习图像处理技术的快速发展,在水产领域的应用也快速发展起来。近年来,范松伟等[15]采用深度学习技术,利用卷积神经网络学习虾苗图像特征,根据神经网络输出的密度图进行计数。结果显示,在均匀光背景环境下可以对较高密度的虾苗准确估计其数量,符合养殖业的计数要求。王金凤等[16]利用CSRNet网络构建的鱼群密度智能检测系统可预防鱼群高密度缺氧,提高鱼产量,实现智能养殖。以上研究大多为鱼卵计数,对于虾卵计数的研究较少。红螯螯虾虾卵的尺寸较大且呈椭球形,而一般鱼卵的尺寸小且呈球形,将鱼卵的计数装置直接应用到虾卵上会因为尺寸和形态差异而产生一定误差,所以对密集虾卵计数的研究仍是十分重要和必要的。

本研究采用一种基于残差模块的端到端虾卵计数模型,利用神经网络对虾卵图像不同维度的特征进行提取,通过融合残差模块的方法,设计了一套虾卵自动计数装置,以应对真实场景下的虾卵计数。

1 数据集与计数模型

1.1 数据集制作

在浙江省淡水水产研究所八里店综合试验基地养殖场进行虾卵采集,首先用梳子将虾卵轻轻地梳下来,酒精消毒后装入盛水容器,如图1。虾卵梳离由研究所专业人员操作完成,力求不对虾卵造成伤害。

根据试验基地人员的前期统计,红螯螯虾单次产卵量在200~600粒之间,虾卵呈椭球形,虾卵短直径在1.5~1.9 mm之间,长直径在2.40~2.85 mm之间。试验时,每次取不同数量的虾卵放入盛有清水的计数容器中,轻轻晃动,防止虾卵成块堆叠。然后设置数字相机分辨率为640×480,一次可以清晰拍摄2~3尾红螯螯虾虾卵,并且每次拍照虾卵需呈现不同分布以便在训练时增强模型的鲁棒性,最终得到高质量的虾卵图像450张,图2所示样本是呈现不同分布的两张虾卵图像。根据文献[17-19]提出的算法,编写虾卵标注程序,对虾卵图像中的每粒虾卵进行人工标注,如图3。

图2 虾卵图像的样本

图3 虾卵标注(右侧为局部区域放大图)

这种标注方法利用了图像中目标虾卵的空间分布信息,可以将虾卵的计数转换成密度图的估计问题。标注过程中得到的每个虾卵的坐标值,代表一个单位冲激函数。

(1)

式中:x表示图像中的像素点,xi为标记的虾卵像素点。

首先生成虾卵图像等大的初始密度矩阵,虾卵坐标所对应的矩阵元素设为1,其余元素则为0。对于一张包含了N粒虾卵的图像可表示为一个仅有数字0和1组成的稀疏密度矩阵H(x)。

(2)

利用高斯核函数Gσ(x)对得到的密度矩阵H(x)进行高斯滤波,从而产生密度图F(x)。

F(x)=H(x)×Gσ(x)

(3)

使用镜像、翻转等[20-21]方法对450张虾卵照片及其对应的人工标注生成的标签文件进行样本数据增强,同时防止过拟合情况的出现[22]。在训练过程中,训练集和测试集所占比为7∶3。由于始终保持自上而下相同距离的垂直俯拍视角,因此不存在类似Shanghaitech数据集中视角畸变导致的同一幅图像中距离摄像头近的目标所占像素多而距离远的目标所占像素少的情况[23]。根据大量试验,在高斯核参数σ=4时计数的精度最高。因此,本研究所有测试均将高斯核参数σ设为4。

1.2 计数模型

1.2.1 残差模块结构

ResNet是一种新的深度学习网络,通过将浅层的残差传递到神经网络的深层,主要解决了深层网络在模型训练过程中的退化问题[24]。在本设计基于残差模块的虾卵计数模型中,使用的残差模块有两种,一种是基本残差模块,其输入和输出的特征映射在维度和尺寸方面都相同,另一种是带有下采样和升维的残差模块,该模块来自ResNet50,残差模块的中间部分使用步长为2的卷积对特征映射进行下采样,残差模块的上层部分利用1×1卷积对输入特征进行下采样和升维以便进行残差连接操作。本研究在残差模块中还引入了批归一化(Batch Normalization)概念,主要解决了神经网络在训练时耗时久、易过拟合的缺点,具体过程如图4。

图4 基本残差模块(A)和有下采样和升维的残差模块(B)

1.2.2 计数模型设计

设计的一种基于残差模块的端到端虾卵计数模型,分为前端网络和后端网络两个部分,如图5。为了使网络在低层就能获得较大的感受野,前端网络的前两层采用了卷积核大小为3×3,padding=2,膨胀率为2的膨胀卷积作为输入层,且第二层膨胀卷积的步长设置为2,以实现下采样[25]。

图5 网络结构示意图

接着使用残差模块对特征映射进行升维和传递,使得浅层网络所提取的特征能够传向深层网络,这样前端网络就完成了对图像中虾卵位置信息的特征提取[26]。

后端网络由8层3×3的卷积层和三层转置卷积组合而成[27],其中转置卷积的尺寸为4×4,步长为2,转置卷积起到对特征信息进行上采样的作用。使用转置卷积代替主流框架中默认的线性插值方法是为了使神经网络自己学习上采样参数,从而上采样的结果更接近真实值,较好地反映出虾卵的位置空间信息。特征映射每经过一层转置卷积,尺寸就会变为先前的两倍。这样前端网络的1/8特征映射经过后端网络的三次转置卷积之后又可以变成原始图像大小。

2 测试结果与分析

2.1 试验平台

为了保证对比试验的公平性,所有的训练和测试均在相同计算平台和数据集上进行。计算平台的配置如下:CPU XEON 5115,GPU NVDIA GTX 2080Ti,软件环境Python 3.7、CUDN 10.0、Pytorch3.7,操作系统Ubuntu 16.04.6。在相同的试验环境下,本研究计数模型与基于大规模图像识别网络(VGG-16)[28]、拥挤场景识别网络(CSRNet)[29]、多列卷积网络(MCNN)[30]、规模聚集网络(SANet)[31]的计数模型进行对比测试。

2.2 模型训练

在计数模型训练过程中,使用标准差为0.01的高斯函数对网络中的参数进行随机初始化,设置学习率(Learning rate)为 0.000 01,批大小(Batch size)为50,遍历次数(Epoch)为200,使用Adam优化器,并选取公式(4)作为损失函数对模型进行优化。

(4)

2.3 试验结果

2.3.1 密度图质量评估

在测试集中,通过随机选取2张虾卵图像的真实密度图与本模型得到的预测密度图进行对比,如图6所示。可以得出,预测密度图和真实密度图之间差异很小,模型预测值与虾卵真实值也非常接近。图像左上角数值代表虾卵个数。

图6 预测密度图与真实密度图对比

为了定量评估虾卵计数模型的性能,选取结构相似性(Structural Similarity,SSIM)和峰值信噪比(Peak Signal to Noise Ratio,PSNR)作为评估指标,来比较预测密度图(x)和真实密度图(y)之间的差距。SSIM越接近1,且PSNR越高,则输出的密度图质量越好。SSIM、PSNR的计算公式如下。

(5)

(6)

使用随机抽取的50张虾卵图像作为测试集进行所有对比试验,对比模型选用VGG-16、CSRNet、MCNN、SANet,最后结果取均值并保留4位小数,如表1所示。可见,基于残差模块的计数模型在SSIM、PSNR两个指标上都取得了最好的效果。

表1 各种计数模型生成密度图质量的比较

其次损失值的变化也是判断神经网络是否发生过拟合和欠拟合的重要依据,如图7所示,计数模型的训练损失和测试损失在前20轮Epoch中下降迅速,后面趋于平缓。损失值在140轮Epoch过后,波动的幅度几乎不大,且处于较低水平,可见本研究提出的基于残差模块的虾卵计数网络易收敛,且没有出现过拟合和欠拟合的情况。

图7 训练和测试损失变化

2.3.2 计数误差评估

根据相关文献[32],选用在深度学习领域应用广泛的三个指标评估虾卵计数精度,绝对误差(xMAE)、均方误差(xMSE)和精确度(xAcc)。xMAE和xMSE的值越低,xAcc越高,则表示计数模型的计数精度越高,计算公式如下。

(7)

(8)

(9)

使用先前随机抽取的50张测试数据集样本进行试验,每幅图像中虾卵最少201粒,最多1 217粒,平均565粒。本文提出的基于残差模块的虾卵计数模型的计数误差波动如图8所示,平均误差为5粒,最大误差为13粒。

图8 虾卵计数误差波动

为了全面展示计数精度,测试集中所有图像的预测值和真实值的散点对比图展示在图9中。由图9可知虾卵数量预测值和真实值之间差距很小。根据公式(9),可得本研究提出的基于残差模块计数模型的精度为98.88%,表明残差模块作为前端特征提取网络,精确地传递了虾卵空间位置信息,反映出真实的密度分布图,较好地解决了虾卵数量大、个体小、高密集场景的计数难点。

图9 50张测试集中虾卵真实值和预测值对比

图10展示了两张测试样本在不同神经网络计数模型下的结果,左上角标出的数字为当前算法下虾卵的个数。第一列为原始图像,第二列为真实密度图,第三列为本文方法的预测密度图,其余列为对比计数模型的预测密度图。通过可视化虾卵密度图,对比各种模型,可以得出本文计数模型在虾卵密集分布且有粘连的情况下,生成的预测密度图质量高、较清晰,对于虾卵目标的细节更加精细,背景和前景轮廓的区分更加明显。 在50张图像的测试集中,计算不同计数模型的xMAE、xMSE和xAcc。

(A)真实虾卵图像,(B)真实密度图,(C)-(G)本文计数网络、密集场景识别网络、多列卷积网络、规模聚集网络、大规模识别网络的预测密度图

从表2结果看,相比于VGG-16、MCNN、SANet、CSRNet,本研究所提出的计数模型在虾卵计数方面取得了最低的xMAE值(5.05)和xMSE值(6.23),以及最高的xAcc值(98.88%),对比鲁棒性较好的CSRNet有较大提升。

表2 各种计数模型的误差指标对比

说明基于残差模块的计数模型在密集的小颗粒物体计数方面有非常优越的性能,可以很好地应用于实际孵化过程中卵细胞的计数工作,方便工作人员开展水产生物的繁衍研究。

2.4 虾卵自动计数装置

为了验证本方法的实用性,搭建了一套结构简单、操作方便的自动计数装置,相应地开发了基于本研究所提出计数模型的应用软件。计数装置包括数字工业相机、计容器和个人笔记本电脑,如图11A所示。计数软件由PyQt设计,左上方为实时视频画面,右上方可以调整工业相机的参数(曝光时间、增益、亮度、对比度)、密度图的保存路径以及采样频率,左下方是当前图像帧对应的密度图,右下方显示是当前密度图中虾卵的个数以及先前采样的总数,如图11B所示。该自动计数装置是一种实用性强、使用简便的通用计数系统,所有部件可以自行购买和组装,有助于广泛开展自动化虾卵计数技术的研究工作,并且可以延伸到鱼类养殖领域。

图11 自动计数装置(A)及计数软件界面(B)

3 讨论

3.1 网络模型对比分析

对比常用于密集人群计数的SANet、MCNN、CSRNet等卷积神经网络模型,本研究的难度在于密集的虾卵更容易产生粘连,因此本研究采用残差结构,使得虾卵位置信息得到更好的传递,从而生成质量更高的预测密度图。通过对模型生成的预测密度图和原始密度图进行结构相似性分析可知,基于残差模块的虾卵计数模型输出的预测密度图有93.08%的相似度,而其他的网络模型的SSIM值普遍都在60%左右,可见在深度学习的训练过程中,残差模块相比于其他网络的特征提取模块有更强的学习能力,具有很强抑制背景噪声和杂质干扰的能力。

对比采用经典图像处理的较分散鱼卵、鱼苗计数[33-34],本研究主要关注虾卵密集粘连情况,因此使用深度学习克服传统数字图像处理技术较难处理的粘连虾卵计数,首先输入模型前无需对虾卵图像进行较多的预处理,简化了操作步骤,其次依靠神经网络的监督学习,自动更新模型参数值,摆脱了传统图像算法依靠人工寻找虾卵特征的烦琐操作,并且在计数结果上显著提高了计数精度。

对比基于two-stage方法的害虫计数模型[35],本研究所提出的基于残差模块的虾卵计数算法则是一种回归模型。从神经网络输出的结果上看,前者输出的是目标类别和位置点信息,有利于定位和追踪单个目标,后者输出的是虾卵总数和高质量的虾卵密度图,有利于养殖者对离体孵化期间的虾卵密度进行研究分析和观察,及时发现高密集的虾卵,防止虾卵因高度密集而出现供氧不足、孵化率降低的情况。

对比基于Yolo模型的计数方法[36-37],本研究采用点式打标签方法,在密集小目标的标注过程中相比于包围框式的标签更便捷,并且采用端到端的编解码网络,模型计数精度提高至98.88%,单次检测误差平均为5粒虾卵。不过,本文计数模型网络结构相对复杂,检测平均帧率约为5帧/s,尽管基本达到应用需求,但在计算速度方面较基于one-stage方法的Yolo模型仍有待进一步优化。后续研究可在模型蒸馏、单层卷积剪枝和模型参数量化等方面着手,在尽量不降低计数精度的情况下,降低模型占据的内存大小,提高实时检测的帧数。

3.2 鱼卵贝苗计数产品与虾卵计数装置对比

市场上的鱼卵贝苗自动计数产品多是利用LED背光板进行成像,并通过传统图像处理算法对鱼卵贝苗进行计数,容易受到类似形态杂质和计数物体粘连的干扰而引起误差。本研究考虑的红螯螯虾虾卵,尺寸大、易粘连,且在抱卵虾剥离虾卵的过程中会带有泥沙和杂质。本研究所搭建的红螯螯虾虾卵计数装置,采用基于残差模块的虾卵计数方法,降低了杂质和粘连干扰的影响,提高了计数精度。其次本研究所设计的虾卵计数装置具有结构简单、操作简便、性价比高等特点,更加适合在实际水产养殖业中进行推广。

4 结论

基于残差模块的虾卵计数模型,利用深度学习框架作为网络工具,以浙江省淡水水产研究所八里店综合试验基地养殖场拍摄的虾卵图像为样本,经过融合残差模块的训练得到模型,最终模型试验结果的计数精度达到98.88%,单帧图像检测时间为0.2s,能够满足真实场景下虾卵计数需要。对比其他网络模型VGG-16、CSRNet等,本计数模型在xMAE、xMSE、xAcc、SSIM和PSNR指标方面分别领先热门的密集人群计数网络(CSRNet)3.13、5.72、0.38%、0.361 5和9.157 0。综上所述,基于残差模块的计数模型和基于计算机视觉的虾卵自动计数装置可以适应真实密集场景下虾卵的计数工作,大大提高了虾卵计数的精度和效率。本研究为后续进一步的虾卵定位、尺寸检测、孵化过程监控等研究提供了新的思路和方法。

猜你喜欢

鱼卵残差卷积
基于全卷积神经网络的猪背膘厚快速准确测定
多级计分测验中基于残差统计量的被试拟合研究*
基于图像处理与卷积神经网络的零件识别
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
基于广义加性模型的天津近海鱼卵、仔稚鱼群落结构研究
小金鱼孵化记
基于深度卷积网络与空洞卷积融合的人群计数
鱼妈妈
卷积神经网络概述
测量数据的残差分析法