基于改进深度学习模型的鱼群密度检测试验研究

2021-04-23 09:18王金凤吴耿潜罗东林周子枫
渔业现代化 2021年2期
关键词:鱼群准确率卷积

王金凤,胡 凯,江 帆,吴耿潜,罗东林,周子枫

(华南农业大学数学与信息学院,广州 510642)

水产养殖作为水产品生产及供给的重要产业,目前正面临着一系列的问题[1-2]。一些养殖从业者缺乏养殖经验及养殖知识,难以判断养殖过程中鱼类种群密度是否处于合理范围。通过养殖密度对鱼类生长情况影响的研究[3-5]发现,密度过小会浪费水体生产力和饲料,密度过大会对鱼类生理生长造成影响。养殖密度作为一种环境胁迫因子能引起鱼类的应激反应,改变鱼类内在生理状况,使养殖群体生长率和存活率下降。因此,有效检测鱼群密度是保证养殖鱼类品质的关键。

传统的密度检测方法分为基于检测的方法和基于回归的方法[6-9]。人群密度检测是其中的热点[10-13],卢湖川等[14]基于统计运动区域几何特征实现实时人群计数系统。姬丽娜等[15]解决人群遮挡、光照突变环境下人群计数的问题。近年来,深度学习被引入计算机视觉应用中[16],出现通过深度学习生成密度图的基于密度估计的方法[17-19],有效缓解对拥挤场景判断失准及忽视显著性特征的问题,受到更为广泛的应用。Rodriguez等[20]结合邻域特征平滑技术将密度检测结果转化为密度热力图。Zhang等[21]提出多列卷积神经网络MCNN架构,解决前景分割、密度和分布差异大、不同图像尺度不同等问题。Li等[22]提出拥塞场景识别的网络CSRNet,实现准确的计数估计,生成高质量的密度图,解决训练时间过长以及存在大量无效分支的问题。与此同时,相关方法也逐渐迁移到其他生物领域的研究中。王卫民等[23]基于卷积神经网络有效提高虫情图像的计数精度。范松伟等[24]基于改进的卷积神经网络在均匀背光环境下实现虾苗自动计数,符合虾苗养殖业的计数要求。

目前,已有基于声学光学的传统的鱼群数量和密度统计方法[25-27]。花胜强等[28]基于水下光栅仪和摄像机建立对鱼的实时计数和种类识别新型系统,实现自动化检测和统计。然而上述传统研究方法缺少利用视觉和图像特征建模为基于深度学习的密度识别任务。Alfonso等[29]提出基于深度网络体系结构的鱼类检测系统,可在各种底栖背景和光照条件下稳健地检测和计数鱼类对象。姜萌萌[30]基于卷积神经网络特征实现快速区域检测鱼群数量与密度。但是两者都是进行鱼体目标检测,没有系统地处理为密度估计任务,也没有充分考虑到鱼群中的遮挡、前景分割等问题,影响其应用效率及应用价值,并且准确率还有较大提升空间。

本研究基于CSRNet的鱼群密度检测系统,将基于深度学习的密度识别任务扩展到鱼群密度识别领域,将鱼群密度识别问题归结为基于密度图的密度评估任务。系统结合生物学知识,嵌入密度预警系统,可实时检测定点区域鱼群密度是否处于正常范围。

1 鱼群密度检测系统

1.1 系统概况

本研究构建开发一个基于深度学习的鱼群密度检测系统,将识别系统与生物学知识相结合,嵌入了密度预警系统,从而可以帮助鱼类养殖工作者实时检测定点区域鱼群密度是否处于正常范围。

系统采用CSRNet网络模型,利用机器视觉技术对鱼群密度进行实时精确检测。基于深度学习框架TensorFlow进行实现,调用高级神经网络API Keras进行网络构建。采用鱼群密度检测数据集对网络进行训练,得到所需的数学模型,用来获取鱼群的密度情况。系统构建框架图如图1所示。

图1 系统流程图

1.2 CSRNet架构

通过剔除全连接层,并权衡准确性和资源开销,我们选取CSRNet架构作为训练主网络。通过测试发现保持前十层VGG-16只有3个池化层时可抑制由池化操作引起的对输出精度的不利影响,实现最佳权衡。若继续增加卷积层和池化层,输出大小会进一步缩小,难以生成高质量的密度映射。根据Simonyan等的研究[31],当获得相同大小的感受区域时,使用具有较小内核的更多卷积层比使用具有更大内核的更少层更有效。

CSRNet分为前端和后端网络。前端网络由基于视觉几何群网络VGG-16的10个卷积层和3个池化层组成,并删除完全连接层及其分类部分。卷积层采用3×3的卷积核,相比于5×5、7×7和11×11的大卷积核,参数量明显减少,带来了性能的提升。后端网络使用6个空洞率相同的空洞卷积层,并采用1个普通卷积层输出最后的结果。将扩张的卷积层作为后端进行部署可提取更深层次的显著性信息,既保持分辨率,又扩大感知域,从而生成高质量的鱼群密度图。本研究的CSRNet详细架构如图2所示。

图2 CSRNet架构图

前端网络设置3个池化层使得每个维度的输出大小是原始输入大小的1/8,导致输出的密度图较小。为确保图像输出分辨率与输入相同,选择因子为8的双线性插值进行缩放,并确保输出与输入图像具有相同的分辨率,以便将预测密度图与真实密度图进行比较。

CSRNet的前向传播算法如下:

a)根据输入层的填充大小,填充原始图片的边缘,得到输入张量al。

b)初始化所有隐藏层的参数W,b。

c)forl=2 toL:

如果第l层是卷积层,则输出为:

al=ReLU(Wl×al-1+bl)

(1)

如果第l层是池化层,则输出为:

al=P(al-1)

(2)

式中:P表示根据池化区域大小以及池化标准将输入张量缩小的过程函数;l为网络层数;al为第l层输出张量。

1.3 密度图生成

在CSRNet的训练阶段,对于给定的图像,数据集提供了由该图像中鱼眼标注组成的稀疏矩阵,并利用高斯滤波器将该稀疏矩阵转换为2D密度图。使用几何适应的高斯变换核的方法来从标定的数据集中生成密度图。

高斯核计算方式如下:

(3)

式中:N为图像中的鱼眼总数;δ为冲激函数;xi表示在图像中鱼眼的像素位置;δ(x-xi)为鱼眼位置的冲激函数;Gσi(x)为具有标准偏差σi的高斯核函数。

1.4 损失函数

基于Zhang等[21]的相关研究,采用欧氏距离测量生成的密度图与真实值的距离。欧式距离算法的核心是:设图像矩阵有n个元素,用n个元素值组成该图像的特征组,特征组形成了n维空间,特征组中的特征码,即每一个像素点构成了每一维的数值。在n维空间下,两个图像矩阵各形成了一个点,然后利用数学上的欧式距离公式计算这两个点之间的距离,距离最小者就是最匹配的图像。

损失函数的计算方式如下:

(4)

2 试验

2.1数据集

由于缺少高清水下摄像机等设备的支持,主要采用网络爬虫与自制仿真等手段整理了一个标注正确的、逼真的鱼群密度检测数据集。同时,采用真实的养殖鱼群图像作为模型的校验数据集。不同种鱼类之间的形态、性状差异较为明显,且考虑到多数养殖渔场在同一水域所养殖的鱼类相同,因此所采用的鱼群数据为常见的同种或类型相似的养殖鱼类。

试验数据集使用的是像素为800×450的高密度鱼群与像素为400×300的低密度鱼群的两种仿真高清鱼群图片;像素为400×300的真实的养殖鱼群图片作为校验,数据共100余张。利用图像标注工具Labelme对鱼群图片进行标注,记录图片中每条鱼的鱼眼位置,并将位置信息保存在对应的JSON文件中。

鱼群真实密度图的生成是基于原始图片数据以及对应的正确标注的JSON文件。通过构建与图像大小相同的零矩阵,并将标注点赋值为1,生成热力编码的稀疏矩阵。利用高斯滤波器将该稀疏矩阵转换为2D密度图,密度图中所有单元格的总和为鱼的实际数量。最后,将密度图信息存储在H5文件中。本研究的CSRNet模型与多个模型进行比较,如Faster R-CNN[30]、基于光栅图特征提取方法[28]。

2.2 评估指标

2.2.1 鱼群密度识别准确度

鱼群密度识别准确度采用平均绝对误差(Mean Absolute Error,MAE)、均方误差(Mean Square Error,MSE)和可释方差得分(Explained Variance Score,EVS)作为评测方法[21-22]。

2.2.2 密度图的质量

鱼群分布密度图的质量使用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似性(Structural Similarity,SSIM)作为评估方法[22]。

2.3 试验设置

CSRNet属于端到端网络,其前端网络的10个卷积层使用ImageNet预训练权重进行初始化,并进行微调训练。其余卷积层参数使用标准偏差为0.01的高斯分布进行初始化,优化算法采用随机梯度下降(Stochastic Gradient Descent,SGD),超参数初始化设置为Learning rate=0.008,decay=1e-6,momentum=0.9,nesterov=True。接下来,Keras在SGD优化器中具有默认的学习率调整器,该调整器根据随机梯度下降优化算法,在训练期间降低学习速率。在训练过程中使用了提前终止法,以节省训练时间。

2.4 结果分析

2.4.1 密度图展示

将本模型应用到经过预处理的数据集上,按既定参数设置网络架构,输出的结果如图3所示。第一行是鱼群密度检测数据集中测试集的样本,第二行是该样本的真实密度图,第三行是通过CSRNet模型生成的预测密度图。通过对比真实密度图与预测密度图可知,两者在形状上非常接近。但由于预测的密度图矩阵方差偏大,故其所呈现出的亮度会更大。而这也更易于通过观察预测密度图,了解到鱼群的密度情况。

2.4.2 密度检测情况

图3中的第一列是高密度鱼群检测的情况,第二列是低密度鱼群检测的情况,通过对比两种情况可知,低密度情况下的预测准确度更高。第三列、第四列是真实的养殖鱼群的情况,利用养殖生产的鱼群数据进行模型的校验,将真实鱼群图片添加进鱼群密度检测数据集中,训练得到的CSRNet模型也具有良好的表现,其在预测鱼群分布、密度信息上基本吻合,且预测密度图的形状与真实情况十分接近。在真实的养殖鱼群图片中会含有气泡、光线、遮挡等因素的干扰,因此所呈现的预测密度图会存在一定的误差,但这并不妨碍我们从图中直接观察鱼群密度的分布情况。

图3 密度检测结果示例

2.4.3 密度检测评价

表1中列出了不同密度鱼群数据上所得的指标值。MAE可以较好地反映预测值误差的实际情况,MSE可以描述模型的准确度。CSRNet模型应用于低密度时各项估计误差更小,意味着在鱼群密度越低的情况下误差值越小。而EVS越接近1表示模型拟合度越好。CSRNet模型在各密度中所得的EVS都比较接近1,表明模型拟合程度较好。

表1 CSRNet的预测结果评价

图像在经过灰度化处理后,分别计算PSNR和SSIM值。PSNR是计算对应像素点间的误差,是基于误差敏感的图像质量评价。当PSNR高于40时,说明图像质量极好,即非常接近原始图像。应用于各密度下的CSRNet模型所得的PSNR值都高于40,意味着预测的密度图和真实情况十分接近。SSIM是从亮度、对比度、结构三方面度量图像相似性。值越接近1,表示图像失真越小。CSRNet模型所得的SSIM值在各密度下都趋向于1,意味着预测的密度图失真度极小。

2.4.4 与其他模型的比较

为了评价模型的性能,本研究的CSRNet模型与多个模型之间进行方法及准确率及预测方法的比较分析,模型预测准确率结果如表2所示。

表2 不同模型或方法的准确率对比

CSRNet模型与传统的基于光栅图特征提取方法相比,不仅省去了大量复杂的声学光学设备,并且在各密度情况下都大大提升了预测的准确率。同样基于VGG-16的改进,CSRNet模型比Faster R-CNN模型在密度检测方面的表现更为优越。

CSRNet模型在鱼群低密度的预测下准确率极高,而随着密度升高准确率有轻微下降,但仍能保持90%以上的准确率,能很好地预估各密度下的鱼群密度。

3 结论

基于CSRNet的鱼群密度检测模型与传统的基于声学光学设备的方法以及其他模型相比,在预测各密度最好的情况下准确率提升了近14%,并且生成高质量的鱼群分布密度图。真实的养殖鱼群图片中含有气泡、光线、遮挡等因素的干扰,导致呈现的预测密度图存在一定误差,但并不妨碍观察鱼群密度的分布情况。建立基于深度学习的鱼群密度检测系统软件,可实时检测定点区域鱼群密度是否处于正常范围,有利于实现鱼量的合理产出,达到科学养殖的效果。

猜你喜欢
鱼群准确率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
从滤波器理解卷积
人工鱼群算法在雷达探测器射频端电路设计中的应用
基于傅里叶域卷积表示的目标跟踪算法
鱼群漩涡