一种基于改进Unet的虾苗密度估计方法
2021-04-05王琪孟娟
王琪 孟娟
摘 要:智慧海洋是智慧农业的基础性工程。文章针对传统方法无法解决高密度粘连情况下虾苗计数精度较差的问题,提出了一种基于改进Unet的虾苗密度估计算法。鉴于现有虾苗数据集不足,收集并标记了一个针对虾苗计数的数据集(Dlou_Shrimp)。在该数据集上对所提出的算法进行了测试,实验结果表明该算法可以解决虾苗计数中的遮挡与粘连问题,可为其他领域的密度估计提供全新的思路。
关键词:虾苗计数;密度估计;神经网络;深度学习
中图分类号:TP273+.4 文献标识码:A 文章编号:2096-4706(2021)17-0012-06
Abstract: Smart ocean is the basic project of smart agriculture. Aiming at the problem that the traditional methods can not solve the poor counting accuracy of shrimp seedlings in the case of high-density adhesion, an shrimp seedling density estimation algorithm based on improved Unet is proposed in this paper. In view of the shortage of existing shrimp seedling data sets, a data set for shrimp seedling counting (Dlou_ Shrimp) is collected and marked. The proposed algorithm is tested on the data set, the experimental results show that the algorithm can solve the problems of occlusion and adhesion in shrimp seedling counting, and can provide a new idea for density estimation in other fields.
Keywords: shrimp seedling count; density estimation; neural network; deep learning
0 引 言
21世紀以来,我国迈入高速发展阶段,其中电子商务、物流运输模式等的迅猛发展,使得海产品的销售渠道增多,销售份额也随之大幅度提升。随着市场对鱼类、贝类、虾类等海产品的需求日益上升,中国拥有的自然海域中海产品的产出速度已不能满足国内虾苗的购买需求,且过度捕捞会引起海产类渔业物种的灭绝。根据《2020年中国渔业统计年鉴》[1],2019年全国水产养殖总量为5 079.07万吨,同比增长1.76%。虾类作为海产品的主要分类之一,其养殖方法十分重要。精准高效的养殖方法有助于产出更多更好的虾产品。准确地估计养殖水域内的虾苗数量对虾苗养殖、虾苗交易以及虾苗行为分析都有着十分重要的现实意义。
就虾产品的养殖流程而言,最为关键的一步是虾苗的筛选与计数。传统虾苗筛选与计数采用的是直接观测的方法,即依赖专家肉眼观察虾苗。传统的筛选与计数方式简单,但是采用这种方式所需的时间成本和人力成本较大且准确度不高。因此,采用直接观测的方法并不能保证长时间有效完成虾苗数量统计任务。
近年来,计算机视觉技术得到了快速发展,广泛应用于人脸识别、鱼类计数、虾苗计数等,但虾苗计数依然面临很多挑战,例如虾苗之间遮挡严重、光照情况复杂等。此外,以下两方面因素使虾苗计数变得更加困难:
(1)虾苗极度拥挤。虾苗的活动有一定规律,水面的虾苗往往成群出现,相机所获得的原始数据中虾苗往往极度密集,互相遮挡严重,这就使得我们用传统的目标提取、图像分割等方法对虾苗进行计数遇到了极大的挑战,如图1所示。
(2)相机透视效应严重。由于相机具有一定的透视效应,同一相机在不同位置、不同角度拍摄的同一场景,所得到的数据往往不尽相同。图像中离相机较近的目标偏大,而离相机较远的目标较小,这使得所获得的图像数据存在严重的相机透视效应,因此我们很难准确定位虾苗。
为了解决上述问题,本文在深入研究现有虾苗计数方法的基础上,提出了一种基于改进的Unet虾苗密度估计方法。本文所做的工作主要有以下几点:
(1)为了更好地学习上下文信息和位置信息,在原有Unet网络的特征图融合阶段增加了一个改进的注意机制模块。
(2)针对几何自适应高斯核与固定高斯核所存在的二值矩阵分布不均问题,本文采用DM-Count的损失函数替代原有的损失函数。
(3)考虑到现有虾苗数据集不足的情况,我们收集并标记了一个针对虾苗计数的数据集(Dlou_Shrimp),该数据集中搜集并整理了250幅图像,并对约80 000个图像中的虾苗做了准确的标注。
1 相关工作
1.1 卷积神经网络在计数问题上的应用
随着大数据、5G技术的广泛普及,视频监控设备以及各种特定场景的图像自动分析逐渐成为研究热点。目前,特定场景的分析主要集中在密集人群的自动分析上。在早期,深度学习、统计虾苗等技术发展迅速,人们的研究热点主要集中在如何利用滑动的窗口将图片中的人探测出来,但是虾苗图片存在遮挡严重的问题,采用该方法进行虾苗统计效果并不理想。
通过计数问题和虾苗密度图之间建立的映射可以很好地解决该问题,有很多专家和学者使用密度估计来解决计算问题。周飞燕[2]等人总结了深度学习在目标检测和计算机视觉、自然语言处理、语音识别和语义分析等领域的成果;Sang[3]等针对非线性动态系统提出了一种基于改进的混沌神经网络(CNN)的间接自适应神经控制器;付宇豪[4]等实现了基于多列卷积神经网络(MCNN)的虾苗计数算法和基于选择卷积神经网络(Switch-CNN)的虾苗计数算法;王金凤[5]等基于水下鱼类的群聚现象,采用基于拥塞场景识别的卷积神经网络(CSRNet)技术,将剔除了全连接层的VGG-16与空洞卷积神经网络相结合,在保持分辨率的同时扩大感知域,从而生成高质量的鱼群分布密度图;汪梦婷[6]等依据虾苗密度估计方法创建了鱼群密度估计数据集,并针对虾苗密度估计网络中因使用空洞卷积而产生的“网格效应”,提出将空洞卷积替换为混合空洞卷积,建立了端到端的鱼群密度估计网络;Zhang[7]等受多列卷积神经网络(MCNN)和上下文金字塔卷积神经网络(CP-CNN)的启发,提出了一个新的深度学习框架,用于对虾苗进行高效而精确的计数,生成高质量的密度图;刘洋[8]等根据枚举法的思想设计自动训练算法,用于训练迁移学习和人工设计的卷积神经网络。
1.2 计算机视觉在虾苗计数中的应用
近年来,深度学习发展迅速,被广泛应用于各种场景,有不少实验人员开始利用卷积神经网络来提取虾苗的深层特征,估算虾苗的密度,传统的直接观测虾苗计数方法被取而代之。范大岳[9]通过降低孵化池水位来“浓缩”幼体,再由排出管排入细网眼塑料笼内,移入充气水体里,然后用玻璃杯舀起,慢慢倒入附近的暂养池,边观看边计数。黄应生[10]等介绍了一种通过电子称原理而制造的鱼苗计数器,其具有计数率高、误差小、鱼苗存活率高、成本低以及便于推广等优点,适用于各类鱼、虾苗和其他颗粒状或带壳的水产苗种。张康德[11]通过制作一个四方盒,将鱼苗连同水倒入盒里,将框格放入盒中。取出两个方格里的鱼苗,分别计数,取平均值,然后乘以方格数,即得出总的鱼苗数;薛志宁[12]等通过对日本对虾仔在室内人工养殖条件下的各种参数进行测试,得出了回归方程,为虾苗购买者提供参考;季玉瑶[13]等针对虾苗图像光照不均、图像粘连等问题,对图像复原的TV-L1模型进行了改进,提出了一种新的计数法;范松伟[14]等提出了一种基于卷积神经网络模型的虾苗自动计数技术,该方法在均匀背光环境下能够对一定密度的虾苗数量进行准确的估计,符合虾苗养殖业的计数要求。于秋玉[15]提出了一种基于改进YOLOv4的虾苗智能识别计数系统,但是该方法对于中高密度虾苗图像的计数精度较差。
2 本文方法
2.1 Unet+SAM
本文提出一种在特征图融合阶段在增强的Unet网络中加入改进的注意力机制SAM模块的方法,本文提出的增强的UNet网络结构如图2所示。整个网络结構主要分为跳跃连接、上采样、缩减采样和增强注意模块四个部分。首先将该网络分为左右两个部分进行分析,左边是压缩过程,即Encoder。输入任意尺寸的虾苗图片,通过卷积和缩减采样减少图像大小并提取一些简单的功能。右边是解码过程,即Decoder。通过卷积和上采样,可以获得一些深刻特征。其中,用于卷积的valid的填充方式可得到上下文齐全的结果,因此每次经过卷积之后,图像大小都会减少。通过中间的concat,将编码阶段获得的特征图与改进的注意力机制模块后解码阶段获得的特征图相结合,将深度和浅度的特征相结合,细化图像,可以有效地观察虾苗的细节。密度图预测是根据结果特征图进行的。请注意,这里两层的特点是大小不同,需要剪切。最后一层则是通过1×1的卷积生成最终密度贴图。
传统的注意力机制模块SAM,是由Woo[16]等人于2018年在ECCV上提出的一种基于数据相关性的模块,该模块通常可以放在卷积层的后面。任何的流行网络都可以嵌入SAM模块。在注意力机制模块出现之前,Hu[17]等提出了SENet的模型结构,该模型可以在特征图的通道上执行attention操作,乘以原来的特征图,得到具有注意力机制的特征图,但SENet方法的重点是在通道上执行attention操作,在空间层面上无法反映attention。传统SAM模块可以在通道和空间层面同时使用attention,在不显著增加计算量和参数量的情况下提高模型的特征提取能力。但是,传统的注意力机制模块集中在上下文频道和空间两个大维度上,忽视了对图片核心点的学习。
针对虾苗计数中虾苗图像的个体都比较小,采用传统的SAM算法,由于包含平均池化与最大池化两种操作,从而会使虾苗图像的细节信息丢失。针对这一问题,本文在原有SAM的基础上去除池化模块,用一个卷积得到特征图,直接使用Sigmoid函数进行激活,然后对应点对点相乘,具体的网络图如图3所示。本文所提出的Unet+SAM算法,在保持虾苗计数精度的同时能够有效地解决虾苗计数中的遮挡与粘连问题。
2.2 DM-Count loss
高斯密度估计方法[18]是将密度估计视为生成高质量的密度图,在密度估计过程中,每个训练图像包含多个虾苗,每个虾苗都用一个点来标记。然后使用高斯核对标记的点进行平滑操作。然而,Wang[19]等人于2020年证明了将几何自适应高斯方法强加于注释会损害模型的泛化能力,因此本文采用分布匹配的方法对虾苗进行计数,该方法不需要用高斯核来平滑带注释的点。DM-Count的泛化误差范围比高斯平滑方法的泛化误差范围更严格。
具体来讲,本文用表示用于点注释的矢量化二进制图, 表示由神经网络返回的矢量化预测密度图。将z和 视为未归一化的密度函数,用以下三项来表示DM-Count中的损失函数,包含计数损失、OT损失和总变量(TV)损失,如式(1)所示。计数损失测量总体密度图之间的差异,而后两项则测量归一化密度函数分布之间的差异:
总变化损失?TV:在每次训练迭代中,我们使用Sinkhorn算法来近似α*和β*。时间复杂度为O(n2logn/2),其中是所需的最佳差距,即返回的目标与最佳目标之间的差异的上限。使用Sinkhorn算法进行优化时,目标在开始时急剧下降,但在以后的迭代中仅缓慢收敛到最佳目标。实际上我们设置了最大迭代次数,而Sinkhorn算法仅返回近似解。结果,当使用Sinkhorn算法优化OT损耗时,预测的密度图接近于真实密度图,但并不完全相同。OT损耗接近虾苗的密集区域,但是对于虾苗的低密度区域,近似值可能会更差。为了解决此问题,我们另外使用总变化(TV)损失,定义为:
2.3 Dlou_Shrimp数据集
由于没有公开的数据集可供神经网络对虾苗计数进行训练和测试,因此我们通过长期的搜集和整理,建立了一个虾苗计数数据集(Dlou_Shrimp)。该数据集包含250张带注释的高密度虾苗图像,如图4所示。我们对这些高密度的虾苗图像进行标注,标记的虾苗数量约为80 000条。
虾苗数据集样本一部分来自虾类养殖场,拍摄设备是一个800万像素的摄像机。每幅图像的分辨率为3 264×2 448。为丰富数据集并保证数据样本的多样性,在所拍摄的视频中分别从不同的时段截取图像,并保证所截取图像中的虾苗具有不同的状态;实验样本中的另一部分图像是从互联网上收集的,共有50张。
3 实验及实验结果评估
3.1 实验环境
本次实验的实验环境是搭载Windows10操作系统,CPU处理器选择intel Core i7-6800K,其主频是3.4 GHz,GPU为GTX2080Ti,实验平台采用PyCharm(2018版),所用的深度学习框架为Pytorch。
3.2 评价指标
我们采用平均绝对误差MAE与均方误差MSE对算法的性能进行评价。其中MAE与MSE都是用于衡量算法性能的标准,MAE表征算法估计的准确性,MSE表征算法估计的稳定性,定义为:
其中,N表示测试集中图像的数目,zi表示第i张图像中实际含有的虾苗数量,表示算法估计的图像中含有的虾苗数量。MAE、MSE的值越小,实验效果越好。
MAE、MSE误差相较于其他评估指标,优点在于执行简单,较容易理解,比较适用于回归的场景中,尤其是当回归的值是实数值的时候。
同时,MAE损失对离群值的鲁棒性更强,但其导数的不连续性使得寻找最优解的过程效率低下;MSE损失对离群值比较敏感,但在优化过程中更加稳定和准确。
3.3 实验结果
我们将本文所提出的基于改进的Unet虾苗密度估计算法与近几年先进的密度估计方法进行对比实验,具体对比值如表1所示。表中的数据表明,无论是平均绝对误差MAE还是均方误差MSE,本文提出的方法在Dlou_Shrimp数据集上所取得的结果都优于其他密度估计算法。同时,相较于当前最先进的密度估计算法,MAE提升了7.87,MSE提升了约9.92。
图5为Dlou_Shrimp数据集部分样本样例的可视化结果,可以看出本文生成的密度图与标签密度图十分接近。
为了验证本文所提出框架中各个构建模块的有效性,以控制变量的形式设计了几组内部模型间的对照实验。为了更直观地探明各模块对模型性能的贡献度及其各自的最优配置,后续对照实验均采用Dlou_Shrimp数据集,下文给出了各对照实验设置及结果分析。
为了验证改进SAM模块在模型中的有效性,我们进行了传统的UNet网络与加入SE模块、加入SAM模块和加入改进SAM模块的对比实验,实验结果如表2所示。当模型未使用改进SAM模块时,模型在Dlou_Shrimp数据集上的各指标均有较大程度的回落。实验结果表明,使用改进SAM模块的算法比不使用改进SAM模块的算法相比,虽然前一种算法在计算量上有所增大,但是在准确性和鲁棒性方面,其计数精度最高。
為了找到一个最适合的下采样深度,实验将虾苗图片放入深度为3、4、5的改进的UNet网络深度中进行试验。表3是不同深度在Dlou_Shrimp数据集上的性能比较结果,从表中可以看出改进的UNet网络在深度为4的情况下,MAE与MSE两个指标上均有较好的效果。
为了验证DMCountloss优于传统几何高斯核密度估计方法,在改进的Unet模型上进行了DMCountloss与几何高斯核密度估计的对比实验,实验结果表明,DMCountloss的MAE和MSE均优于几何高斯核密度估计方法,具体的对比值如表4所示。
4 结 论
本文提出了一种基于改进的Unet虾苗密度估计方法,该方法可以通过神经网络将一张虾苗图像生成虾苗密度图,并由密度图积分求和得到虾苗总体数量,最后得出图像中虾苗的数量。本文所提出的算法能够有效地克服虾苗计数中的遮挡与粘连问题,虽然SAM模块去掉了池化层,导致计算效率下降,但却能有效地提高虾苗计数的精度。在未来的研究工作中,我们将从以下两个方面对本文算法不断改进:
(1)由于大规模虾苗计数数据集存在标注困难、样本数量较少且存在误标现象,因此我们下一步将研究如何引进无监督或半监督的标注方式,进一步扩大虾苗计数数据集的规模和质量。
(2)针对密度图估计方法中对目标较少的虾苗图片估计精度不高的问题,计划后续将目标检测的计数方法与密度图估计方法相结合,从而更高效地进行虾苗密度估计。
参考文献:
[1] 罗茵.《2020中国渔业统计年鉴》出版 广东水产品总产量首次全国第一 [J].海洋与渔业,2020(6):12-13.
[2] 周飞燕,金林鹏,董军.卷积神经网络研究综述 [J].计算机学报,2017,40(6):1229-1251.
[3] KIM S H,AHN H W,WANG H O. A study on the Adaptive Neural Controller with Chaotic Dynamic Neural Networks [J].International Journal of Fuzzy Logic and Intelligent Systems,2007,7(4):236-241.
[4] 付宇豪.基于卷积神经网络的人群计数算法研究与应用 [D].北京:北京工业大学,2019.
[5] 王金凤,胡凯,江帆,等.基于改进深度学习模型的鱼群密度检测试验研究 [J].渔业现代化,2021,48(2):77-82.
[6] 汪梦婷,袁飞,程恩.鱼类目标的密度估计模型 [J].哈尔滨工程大学学报,2020,41(10):1545-1552.
[7] ZHANG W,WANG Y J,LIU Y Y. Deep Convolution Network for Dense Crowd Counting [J].IET Image Processing,2020,14(4):621-627.
[8] 刘洋,张胜茂,王斐,等.海洋捕捞鱼类BigH神经网络分类模型设计与实现 [J].工业控制计算机,2021,34(6):18-20.
[9] 范大岳.罗氏沼虾苗的A型光电计数器 [J].渔业现代化,1986(3):18-20.
[10] 黄应生,许斐力,马应森.YJ-2型鱼苗计数器 [J].渔业机械仪器,1989(3):29-30+20.
[11] 張康德.框格式鱼虾苗计数法 [J].适用技术市场,1997(9):11.
[12] 薛志宁,段吉旺.应用重量法计量出池日本对虾虾苗的研究 [J].河北渔业,2000(5):11-12+15.
[13] 季玉瑶,魏伟波,赵增芳,等.基于改进TV-L1模型的虾苗计数方法 [J].青岛大学学报(自然科学版),2018,31(4):62-68+82.
[14] 范松伟,林翔瑜,周平.基于改进的卷积神经网络的虾苗自动计数研究 [J].渔业现代化,2020,47(6):35-41.
[15] 于秋玉.基于改进YOLOv4的虾苗智能识别算法研究 [J].河南科技,2021,40(6):25-28.
[16] WOO S,PARK J,LEE J Y,et al. CBAM: Convolutional Block Attention Module [C]//European Conference on Computer Vision. Cham:Springer,2018:3-19.
[17] HU J,LI S,ALBANIE S,et al. Squeeze-and-Excitation Networks [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2020,42(8):2011-2023.
[18] NUALART E,SARDANYONS L Q. Gaussian estimates for the density of the non-linear stochastic heat equation in any space dimension [J]. Stochastic Processes and their Applications,2011,122(1):418-447.
[19] WANG B Y,LIU H D,SAMARAS D,et al. Distribution Matching for Crowd Counting [J].Computer Science,2020(v2):135-137.
[20] GABRIEL P,MARCO C. Computational Optimal Transport [J].Foundations and trends in machine learning,2019,11(5-6):355+206.
[21] LARADJI I H,ROSTAMZADEH N,PINHEIRO P O,et al. Where are the Blobs: Counting by Localization with Point Supervision [C]// Computer Vision-ECCV 2018.Cham:Springer,2018:560-576.
作者简介:王琪(1996—),男,汉族,辽宁瓦房店人,硕士研究生在读,研究方向:深度学习;孟娟(1981—)女,汉族,山东龙口人,副教授,博士,研究方向:非线性控制、复杂网络同步。