APP下载

基于M-SegNet 算法的羊群密集计数应用研究

2023-02-08叶润发赵建敏李雪冬

智能计算机与应用 2023年1期
关键词:密集羊群尺度

叶润发,赵建敏,李雪冬

(内蒙古科技大学 信息工程学院,内蒙古自治区 包头 014010)

0 引言

内蒙古自治区是中国重要的畜牧业生产基地,蓬勃发展的羊养殖业成为了内蒙古地区的标志性产业。羊群计数在监测草原过度放牧和大规模牲畜保险理赔时是不可或缺的环节,依靠传统的人工计数方法费时费力,效率低下。利用深度学习的方法实现自动精确地计数,有助于节约人工成本,提高管理效率,为草原生态评估及牲畜保险理赔提供了技术和数据支持。本文将羊群密集计数算法与应用系统设计结合,构建羊群密集计数应用系统。在羊群密集计数算法部分,将密集人群计数领域的M-SegNet模型应用于密集羊群计数研究,同时在USC2021 数据集上与M-SFANet 模型对比。在应用系统设计部分,采用Django 框架作为Web 服务器端,实现用户通过人机交互界面对羊群羊只计数。

1 相关工作

大部分早期的密集计数研究集中在使用基于检测的方法,依赖于从计数对象中提取特征,如哈尔小波(Haar Wavelets)和方向梯度直方图(Histogram of Oriented Gradient,HOG),提取的特征较为单一,适用于稀疏的场景,这种计数模型在羊只密度较大的复杂场景下表现不佳,难以克服高遮挡问题,使估计精度有所降低。针对在高密度复杂场景下基于检测的方法存在迁移困难的问题,相关研究人员提出了基于回归的方法,该方法试图根据图像特征到数量的映射进行计数,巧妙地避开了复杂的检测过程,但受到摄像机视角引起的头部尺度变化大和背景噪声大的人群分布多样化的影响,基于回归的方法难以进一步提升准确度。Lempitsky V 等[1]提出了一种基于密度图估计的人群密集计数方法,通过对估计的密度图进行积分,得到计数结果,同时保留了计数目标的空间分布信息,但这种方法的性能高度依赖于生成的真实密度图的质量。

近年来,深度学习技术发展迅猛,在处理高密度计数问题上展现了传统方法无法比拟的优势。许多研究人员致力于探索基于卷积神经网络(convolutional neural network,CNN)的人群计数方法。与传统方法相比,在处理场景适应性、尺度多样性等问题时,基于CNN 的人群计数方法表现更佳。Zhang 等[2]提出了一个经过深度训练的CNN 来估计人群数量,同时预测人群密度水平;Zhang Y 等[3]首次提出一种并行提取多尺度信息的多列卷积神经网络(MCNN)模型,一定程度上解决了多尺度特征提取问题,大大提升了人群计数的精度;Cao 等[4]提出了一种编码器-解码器的规模聚合网络(SANet),在编码器中引入尺度聚合模块来提高特征的表示能力和尺度多样性,解码器则生成与原始图像大小一致的高质量密度图;Liu N 等[5]通过将注意力感知网络集成到多尺度可变形网络中来检测人群区域,从而将注意力机制应用于人群计数;Liu W 等[6]提出了一个基于VGG16 的模型,该模型具有可感知规模的上下文结构(CAN),结合从多个感受野大小中提取的特征,并了解每一个这样的特征在图像位置上的重要性;Zhu等[7]提出了双路径多尺度融合网络(SFANet),并通过一条附加路径来监督学习生成的注意力图,该网络将类似UNet 的解码器与双路径结构集成在一起,以预测复杂背景中的头部区域,然后进行人数回归,但SFANet 没有明确的模块来处理尺度变化问题。

2 实验模型及密度图

2.1 M-SegNet 模型

M-SegNet 是基于编码器-解码器的深层卷积神经网络,得益于3×3 卷积层在提取多尺度特征和多层次语义信息上的优秀表现,M-SegNet 采用VGG16-bn 的前10 层作为特征图编码器,逐渐减小特征图的大小并捕获高级语义信息。输出的特征图为原始输入图像的1/8,便于生成高质量的密度图,解码器恢复空间信息以生成最终的高分辨率密度图。M-SegNet 设计为使用最大反池化操作替换SFANet 中的双线性上采样,这种设计提供了更快的模式,同时提供了具有竞争力的计数性能。在人群计数中表现优秀的M-SFANet 相比M-SegNet 没有附加的上下文感知模块CAN 和ASSP 来额外强调多尺度信息,因此是轻量级的模型,可以在某些人群计数基准上取得竞争性结果,且经实验验证,在羊群密集计数上也表现优异。M-SegNet 的体系结构如图1 所示。卷积层的参数表示为:Conv(内核大小)×(内核大小)×(通道数),最大值池化在2×2 像素的窗口上进行,步长为2。

图1 M-SegNet 模型的体系结构Fig.1 The structure of the M-SegNet model

2.2 密度图

本文采用密度图计数方法,该方法能够反映出羊只的空间分布情况,对密度图进行积分即可得到计数结果。为了生成密度图的地面真实值D(x),本文采用带有固定标准偏差核的高斯方法,对每个被标注的点进行高斯核卷积。假设在像素xi处有一个羊只身体部位标注为增量函数δ(x -xi),因此一幅带有C个羊只标注点的图像可以表示为H(x) 函数:

为了转换成一个连续的密度函数F(x),可以将每个δ(x -xi) 与具有参数σ的高斯核滤波器Gσ进行卷积。该过程为

其中,*表示卷积运算。

事实上,每一个xi都是三维场景中地面上的羊群密度的样本,并非是图像平面上的独立样本。由于透视失真,表示羊身体部位的每一个像素点所占面积会存在较大差异。对于给定图像中每个xi,本文将离其最近的K个羊只标注点的距离表示为。因此,平均距离可以表示为

为了准确估计xi周围的羊群密度,需要用方差σi与di成正比的高斯核对δ(x -xi) 进行卷积,得到的密度图方程为

3 实验材料及硬件配置

3.1 数据集

本文在数据集USC(UAV Sheep Counting)的基础上,采集了内蒙古自治区呼伦贝尔市新巴尔虎右旗牧场中羊圈羊群图像,通过帧截取等处理,共得到3 590张羊群图像,挑选2 700 张制作成数据集USC2021,涵盖羊只遮挡严重、羊只数量不同、密度变化大和复杂光照条件等特点,为密集计数研究提供了数据支持。USC2021 数据集部分样本如图2 所示。

图2 USC2021 数据集样本示例Fig.2 Sample example of USC2021 dataset

为保证样本的多样性,将得到的图像进行预处理,使用Matlab 2015a 作为标定软件,标定点的个数即为图像中羊只的真实个数。按照4 ∶1的比例将数据集划分为训练集和测试集,USC2021 羊群数据集见表1。

表1 USC2021 羊群数据集Tab.1 USC2021 sheep dataset

3.2 实验环境及参数设置

本文在羊群数据集USC2021 上训练了MSFANet 模型和M-SegNet 模型,优化了模型参数。

模型训练与测试所使用硬件平台为Intel i7-7700k,32 G 内存的CPU,NVIDIA GeForce GTX 1 080Ti×2 的显卡,软件平台为Ubuntu16.04、CUDA 10.0、cudnn7.6.4。

模型训练选用Adam 优化器和lookahead 优化器,参数配置为训练epoch =1 500,学习率为0.000 05,权重衰减为 0.000 1,批处理规模batch_size =5;利用训练后的网络模型在USC2021的测试集上验证对比算法的性能。

4 实验结果评估

4.1 评价指标

本文采用平均绝对误差(Mean Absolute Error,MAE)、均方误差(Mean Square Error,MSE)和平均相对误差(Mean Relative Error,MRE)作为模型评价指标。指标定义公式(5)~公式(7):

4.2 模型评估

对M -SFANet 模型和M -SegNet 模型在USC2021 测试集上的性能进行了对比,得到的结果见表2。

表2 两种计数方法性能比较Tab.2 Performance comparison of two counting methods

可以看出,M-SegNet 模型训练时间相对减少了20 个小时,密度图平均绝对误差为6.84、均方误差为9.48、计数平均相对误差为3.65%。本文还对比了两个模型的网络收敛情况,两种模型的训练损失曲线如图3 所示。可以看出模型的误差随着epoch的增加趋于同一趋势,表明在epoch的设计上能够保证模型的误差收敛。总体来说,M-SegNet 模型在测试集上表现比M-SFANet 模型更胜一筹。

图3 两种模型的训练损失曲线Fig.3 Training loss curve of the two models

实验发现,公式(4)中β取0.3 时生成的羊群密度图表现最佳,为了直观的显示网络生成的密度图,图4 展示了两个模型的可视化结果,既得到图像中羊只的个数,也反映了羊只在图像中的空间分布信息。

图4 所选模型在测试集上的可视化结果Fig.4 Visualization results of two selected models on the test set

5 羊群计数应用系统设计

为更方便相关工作人员对牧场羊群的计数操作,本文基于Django 框架设计了羊群计数应用系统。Django 遵循模型-模板-视图(Model-Template-View,MTV)模式,拥有良好的ORM 数据库支持和URL 设计。本系统基于系统开发需求结合了轻量级数据库SQLite,SQLite 将定义、表、索引和数据都存储于宿主主机的一个单一文件中,能够支撑起整个系统的运转,功能不亚于如Mysql 等大型数据库。羊群计数应用系统结构如图5 所示。

图5 羊群计数应用系统结构图Fig.5 Sheep counting application system structure diagram

本系统的主要用户是过度放牧监测人员和牲畜保险工作人员,系统实现用户注册、找回密码、羊只数量查询以及系统维护等功能。羊只数量查询结果界面如图6 所示。

图6 羊只计数查询结果界面Fig.6 Sheep count query result interface

查询结果界面展示有羊只数量、查询时间、查询用户以及查询次数等信息。为了记录用户的历史查询信息,本系统设计了用户操作历史查询功能,除以上信息外,还能根据时间戳详细记录查询者、查询结果、查询详情和总查询次数等信息,为信息维护提供了数据支持。

6 结束语

本文借鉴了人群密集计数方法,采用M-SegNet模型进行羊群密集计数,并与M-SFANet 模型进行对比。实验结果表明,M-SegNet 模型比M-SFANet模型计算能力强,MAE、MSE和MRE分别降低了1.25、3.32 和0.6%,训练时间短,同时还提供了类似的性能,提高了在复杂拥挤场景下的羊群计数精度,具有良好的准确性和鲁棒性。

本系统设计提供了羊只数量查询、用户管理和历史查询等基本功能,用户能够直观地对羊群图像进行计数,方便计数结果的保存与维护,提升了工作效率。

猜你喜欢

密集羊群尺度
耕地保护政策密集出台
密集恐惧症
财产的五大尺度和五重应对
羊群莫名蒸发疑案
羊群莫名蒸发疑案
城里的羊群
宇宙的尺度
不止一个
全球导航四大系统密集发射卫星
欧盟等一大波家电新标准密集来袭