杨断利 王永胜 陈 辉 孙二东 王连增
(1.河北农业大学信息科学与技术学院, 保定 071001; 2.河北省农业大数据重点实验室, 保定 071001;3.河北农业大学动物科技学院, 保定 071001; 4.农业农村部肉蛋鸡养殖设施工程重点实验室, 保定 071001;5.河北桃木疙瘩农业科技股份有限公司, 保定 074300; 6.河北省蛋鸡产业技术研究院, 邯郸 056007)
鸡群数量清点是鸡场资产评估中一项重要的工作,饲养密度计算可为蛋鸡精准饲喂、提升蛋鸡生产性能[1-2]和生产效益[3]提供数据依据。实际鸡舍中,鸡只数量较多鸡体之间互相重叠遮挡、鸡只活泼好动位置瞬时变化、鸡舍光照条件有差异使鸡体轮廓不清晰、鸡舍复杂背景环境遮挡鸡只[4-5]等问题,使得传统的人工计数方法,不仅费时费力而且计数准确度较低。养殖企业迫切需要一种高精度、自动化蛋鸡识别与计数系统。
随着机器视觉和深度学习技术的不断发展,研究者开始尝试将数字图像处理技术、深度学习算法引入动物个体识别与计数领域。劳凤丹等[6]基于Lab颜色模型,利用极限腐蚀和凹点搜寻的方法,实现了对10只蛋鸡的识别与计数。SO-IN等[7]基于传统的图像处理方法,实现了蛋鸡个体的识别。杨硕[8]利用最大类间方差法结合R、G、B颜色分量,实现了粘连羊只图像的分割和计数。传统图像处理技术进行动物个体分割与计数,分割效果依赖于研究人员的经验。深度学习算法Faster R-CNN[9]、YOLO[10-14]等在目标检测领域有着良好的表现。CAO等[15]使用DenseFCN模型,对包含大概20只鸡的图像,进行了鸡只识别与计数。JIANG等[16]构建了MobileNetV2-SSD目标检测网络,在自建的数据集上,实现了对20只鸡的识别。黄小平[17]将DenseNet网络引入到 SSD 网络中,利用粒子与卡尔曼滤波融合算法实现了奶牛的计数。金耀[18]通过YOLO v3网络模型实现了生猪的识别与计数。深度学习识别个体与计数,可自动学习个体特征、提取个体高维特征[19],不仅避免了传统图像处理方法计数准确度不稳定的问题,同时还保证了计数精度,可实现计数的自动化。
虽然已经有学者基于数字图像处理[6]和深度学习技术开展了鸡只识别与计数方面的研究,但这些研究的鸡舍环境普遍简单且蛋鸡个体数量较少,不能满足实际生产的需求[15]。本文拟基于目前最为成熟的目标检测算法YOLO v5模型[20-21],对存在背景(产蛋箱、食槽、饮水管等设备)、鸡群个体数量较多、鸡群位置不断变化的复杂环境下的蛋鸡个体识别与计数问题加以研究。
2022年6月24日—7月31日在河北桃木疙瘩农业科技股份有限公司中庄养殖基地,采集了太行山蛋鸡日常活动视频图像,采集时间为每天07:00—17:00。此养殖基地蛋鸡为半散养模式,白天蛋鸡可以自由进出鸡舍活动。通过观察发现,07:10—07:40、12:00—12:30、16:00—16:30这3个时间段的光照强度、鸡只数量有明显差异,3个时间段的图像示例如图1所示。为了增强本研究模型的鲁棒性,选择这3个时间段的视频用于制作蛋鸡识别与计数数据集。此基地实验鸡舍长10 m,宽7 m,顶高6 m,檐高3.5 m,舍内共有6个食槽,1根长为9 m的引水管和3组产蛋箱,其中靠近窗户和墙的产蛋箱都是上下两排,每排有9个小箱子,靠近门一侧产蛋箱有上下两排,每排17个小箱子。本实验在鸡舍门口对面墙的墙角位置安装了1个海康威视型广角摄像机(DS-2CD3T56FWDV2-15型),摄像机安装高度为距地面4 m,俯视角约为80°(水平向下倾斜角度),摄像机焦距为2.8 mm,视频帧率为25 f/s,分辨率为2 560像素×1 920像素。图像采集环境示意图如图2a所示,为了清楚观察实验鸡舍的内部结构,将示意图中外侧墙设计成透明式,实际场景中为不透明墙体,现场采集环境如图2b所示。
图1 不同时间段数据集示例Fig.1 Example data sets for different time periods
图2 数据采集环境Fig.2 Data acquisition environment
摄像机视频通过网线传输到容量为2TB的海康威视DS-7804N-K1/4P(D)型网络硬盘录像机中,然后将数据从录像机输入到计算机进行处理。
选取不同时间段、不同蛋鸡数量和姿态的视频,利用OpenCV函数按照每隔100帧提取1帧的方式,进行图像帧提取,保存质量较好的573幅图像作为蛋鸡识别与计数的原始数据。为了增强模型的鲁棒性[22],随机选择亮度变换、旋转、加噪、缩放,以及镜像的方式对原始图像进行离线增强,最终获得含有2 292幅蛋鸡图像的数据集。利用LabelImg工具对原始图像数据进行标注,制作Pascal VOC[23]格式数据集。将数据集按照6∶2∶2的比例划分为训练集、验证集和测试集。数据集中蛋鸡个体实例数量及边界框分布如图3所示。
图3 蛋鸡数据集统计Fig.3 Statistical plots of laying hens dataset
从图3a可以看出,2 292幅蛋鸡图像经过标注后共得到了433 988个蛋鸡图像实例,平均每幅图像中包含189.35个蛋鸡实例,蛋鸡数量较多。由图3b可见,蛋鸡集中分布在300像素×300像素以内,利用300像素×300像素与采集的图像大小(2 560像素×1 920像素)进行相除,计算得到蛋鸡个体仅约占整幅图像像素的1.83%,表明蛋鸡个体较小,相较于猪、牛、羊等大个体,蛋鸡的识别难度更大。
YOLO v5s网络模型整体结构可以划分为输入端、Backbone部分、Neck部分和输出端4部分。输入端输入数据集图像,YOLO v5s网络模型在输入端通过Mosaic数据增强和自适应锚框计算方法对输入图像进行处理。Mosaic数据增强过程如下:首先通过随机缩放、随机裁剪、随机排布的方法对图像进行变换,然后对变换后的图像进行拼接,用于丰富图像的背景。在网络训练过程中,网络在初始锚框的基础上,通过自适应锚框的计算,输出预测框,预测框与真实框进行比对,计算两者差距,再进行反向更新,迭代网络参数,进行模型参数优化。Backbone部分,YOLO v5s模型中主要采用CSPNet网络中的CSP1_X结构,用来提取输入端传来的数据中的有效特征。Neck部分,YOLO v5s模型采用FPN和PAN结构,利用这两种结构,对Backbone部分提取到的有效特征进行融合。输出端的作用是对目标对象生成边界框并预测目标所属类别。YOLO v5s模型的输出端利用CIOU_Loss作为Bounding box的损失函数,并采用加权NMS(非极大值抑制)运算的方法,在目标检测后处理过程中,对多个目标框进行筛选[24]。
2.1.1SimAM注意力机制添加
在真实场景中,产蛋箱、引水管、食槽等设备的存在会对蛋鸡的个体识别造成一定的干扰,并且由于蛋鸡个体较小、光照变化等因素的存在,导致特征提取时容易将背景因素与蛋鸡特征相混淆。Attention-YOLO[25]在主干网络中引入了非3D的带参数注意力机制,可以很好地提升模型的特征表示能力。基于此,本研究提出在YOLO v5s模型的Neck结构中引入SimAM[26]注意力机制的方法,对YOLO v5s模型的Neck部分进行优化,通过端到端的方式削弱产蛋箱、食槽等背景对检测效果的干扰,以提升模型的鲁棒性。
深度学习领域中,现有的通道注意力模块和空间注意力模块,都需要生成一维通道或二维空间权重,并扩展通道或空间注意的权值,扩展过程中会产生大量参数,而SimAM注意力机制通过在某一层中直接对特征图推导出3D关注权重,减少了扩展过程,无需向原始网络中添加参数[27]。并且SimAM注意力模块的大多数算子,是根据定义的能量函数的解来进行选择的,在对SimAM注意力模块中算子的调整上节省了大量时间。SimAM注意力机制通过3D权重,对特征中的每一个点都赋予一个单独的标量,使得特征更具有全局性。SimAM注意力机制过程为
(1)
(2)
⊙——点积运算符号
E——每个通道上的能量函数,整个过程通过sigmoid函数限制E中可能出现的较大值
t——输入的特征值,t∈X
λ——常数,取10-4
μ——X中每个通道上的均值
σ2——X中每个通道上的方差
2.1.2空间金字塔池化模块改进
由于蛋鸡个体目标较小,为了进一步扩大模型对小目标个体的感受野,增强模型对不同尺度特征的融合能力,使得模型可以学习到更多的蛋鸡个体特征,本研究利用SPPCSPC结构[14]代替YOLO v5s原模型的SPPF结构,对YOLO v5s模型进行优化,以期提取到更深层次的蛋鸡有效特征。
SPPCSPC模块主要包括SPP结构(空间金字塔池化)[28]和并联的CSP结构。SPP结构如图4所示,SPPCSPC结构如图5所示。
图4 SPP结构图Fig.4 SPP structure diagram
图5 SPPCSPC结构图Fig.5 SPPCSPC structure diagram
从图4可以看出,SPP结构内部有4个并行的分支,这4个并行的分支包括3个最大池化操作和1个跳跃连接操作。SPP首先经过CBL结构(Conv+Batch Normalization+Leaky ReLU),然后经过3个并行的,池化核大小分别为5×5、9×9和13×13的最大池化操作,和1个从CBL结构之后不进行任何操作的跳跃连接分支。然后,利用Concat操作对4个分支结果进行拼接,最后再经过1次CBL结构。
从图5可以看到,SPPCSPC结构输入包括2个分支:分支1和分支2。分支1首先依次经过卷积核大小为1×1、3×3和1×1的3次卷积操作,然后将3次卷积操作后的结果分别进行池化核大小为5×5、9×9和13×13的3次最大池化操作。再将3次最大池化操作后的结果进行Concat操作,再依次进行卷积核大小分别为1×1和3×3的2次卷积操作,作为分支1的最终结果。分支1进行操作的同时,分支2进行卷积核大小为1×1的卷积操作,分支2卷积操作结果与分支1的最终结果进行Concat操作,操作结果最后再进行1次卷积核大小为1×1的卷积操作。
2.1.3特征融合网络改进
YOLO v5s模型的特征融合部分采用FPN[29]和PAN[30]结构。FPN和PAN结构只是将Backbone部分获得的不同尺寸特征图,调整为统一尺度后进行累加,没有对不同尺寸特征图特征进行融合,由于特征图尺寸的不一致,容易导致特征图的噪声变大,识别效果变差[31]。
为了解决上述问题,本研究在YOLO v5s原模型的Neck结构后引入自适应特征融合模块ASFF[32]。ASFF结构能够自适应地学习不同尺度特征的空间权重,并利用学习权重参数的方式将不同层之间的特征融合在一起[33],加强了不同特征的融合,提升了蛋鸡个体的识别效果。ASFF结构如图6所示。
图6 ASFF结构图Fig.6 ASFF structure diagram
图6中Level 1、Level 2和Level 3分别为3个不同尺寸的特征图,ASFF-1、ASFF-2和ASFF-3分别表示特征融合的过程。如ASFF-1,用Level 1、Level 2和Level 3共3层的特征与α(1)、β(2)和γ(3)权重相乘并相加,得到融合后的ASFF-1。
由于在计算过程中采用了相加的方式,所以Level 1、Level 2和Level 3的通道数与特征大小需要保持一致。首先,通过对不同层级进行下采样或上采样方式来调整尺寸,然后将Level 1、 Level 2和Level 3特征图经过一个卷积核大小为1×1的卷积操作,得到权重参数α、β和γ,再将权重参数进行拼接并通过Softmax函数进行归一化,最终将输入映射到[0,1]范围内,且三者的总和为1。
2.1.4改进后的YOLO v5s网络结构
改进后的YOLO v5s网络整体结构如图7所示。从图7可以看到,为了扩大模型的感受野,解决蛋鸡个体较小、识别困难的问题,将YOLO v5s模型Backbone部分中的第9层SPPF(空间金字塔池化模块)更改为SPPCSPC模块。为了消除真实复杂环境下产蛋箱、食槽等设施对蛋鸡个体识别带来的干扰,在YOLO v5s模型的Neck部分的第18、22、26层引入SimAM注意力机制。为了获得更丰富的蛋鸡特征信息,提升模型的识别精度,在YOLO v5s的Neck结构后,添加自适应特征融合模块ASFF,将不同尺度的蛋鸡成像特征信息进行融合。
图7 改进后的YOLO v5s网络结构图Fig.7 Structure diagram of improved YOLO v5s network
由于YOLO v5s本身只实现目标的检测,不具备计数功能,因此本研究使用Python语言在改进模型的detect.py文件run函数内部,添加相应代码,对模型识别出的蛋鸡数量进行统计,实现了计数功能,并将计数结果显示在预测图像的左上角。
本研究采用的运行平台是Intel Core i7-9700 CPU,主频为3.0 GHz,运行内存为16 GB,显卡为NVIDIA GeForce RTX 3060,开发环境为Python 3.8,Pytorch版本为1.8,Windows 10操作系统。本研究输入的蛋鸡图像尺寸为768像素×768像素,迭代次数设置为300,训练批量大小(Batch size)设置为8。每次训练结束后保存最后一轮权重和最好权重。试验中超参数设置如下:初始学习率设置为0.01,采用余弦退火算法进行学习率衰减,优化器为SGD,Momentum为0.937。
本研究利用精准率(Precision)表示模型正确识别蛋鸡的占比,召回率(Recall)表示识别图像中蛋鸡个体的完全程度。利用精度均值(Average precision, AP)表示每类目标识别的精度。利用平均精度均值(Mean average precision, mAP)表示所有类别蛋鸡的平均识别精度,本研究由于只包括蛋鸡一个类别,因此,AP值与mAP值相同。利用图像传输速率(Frames per second, FPS)来评价模型实际识别蛋鸡个体的速度。利用计数准确率(Accuracy)和计数平均准确率(mAcc)来评价模型对蛋鸡的计数精度。
为了对所提出的3种改进方法的有效性进行评价,以YOLO v5s原模型为基础模型,利用精准率、召回率和平均精度均值作为评价指标,通过消融实验进行验证。各模型的改进结果如表1所示,表1中“√”表示使用此改进策略,“×”表示未使用此改进策略。
表1 消融实验结果对比Tab.1 Comparison of results of ablation experiments %
通过表1发现,单独增加SimAM注意力机制、SPPCSPC模块和ASFF模块后的模型2、3、4,对蛋鸡识别的精准率、召回率和平均精度均值均有提升,说明在增加SimAM注意力机制、SPPCSPC模块和ASFF模块后,模型能够解决产蛋箱、食槽和饮水管等因素给蛋鸡个体识别带来的影响,能够扩大模型感受野,解决蛋鸡个体较小、模型识别较困难的问题,能够融合不同尺度蛋鸡特征,提升蛋鸡个体识别的精度。
在模型5、6、7中,将SimAM注意力机制模块、SPPCSPC模块和ASFF模块,分别进行两两组合,加入到YOLO v5s原模型中,对蛋鸡个体进行识别,所得结果相比于Baseline模型均有所提高,且3个评价指标均高于单独添加SimAM注意力机制模块、SPPCSPC模块和ASFF模块的模型2、3、4。表明,将SimAM注意力机制模块、SPPCSPC模块和ASFF模块分别进行两两组合,对模型识别蛋鸡个体均有一定的促进作用。
模型8为本研究提出的模型,将3种改进方法进行融合后,精准率、召回率和平均精度均值相比于模型1分别提高2.37、2.55、2.20个百分点。表明三者融合后仍然会起到一定的促进作用,能够有效提升模型对蛋鸡个体的识别效果。
为了验证本文模型在不同时间段下对蛋鸡个体的识别效果,将本研究测试集中的537幅图像按照时间段07:10—07:40、12:00—12:30、16:00—16:30分类,并利用改进后的YOLO v5s模型进行测试,通过精准率、召回率和平均精度均值评价指标进行模型性能评估。不同时间段检测结果如表2所示。
表2 不同时间段检测结果对比Tab.2 Comparison of detection results in different time periods
通过对比表2可以发现,在07:10—07:40时间段,本文模型对蛋鸡个体检测的精准率、召回率和平均精度均值均高于其他两个时间段,其中平均精度均值为89.02%。在12:00—12:30时间段,本文模型对蛋鸡个体检测的精准率和平均精度均值最低,其中平均精度均值为86.95%。07:10—07:40时间段对蛋鸡检测的平均精度均值比12:00—12:30时间段的平均精度均值高2.07个百分点,分析原因为,在12:00—12:30时间段,光照强度高于其他两个时间段,光照导致鸡体轮廓不清晰,蛋鸡特征不明显,不易于模型对特征的学习,致使模型对蛋鸡个体检测精度较其他两个时间段低。
为了检验改进的YOLO v5s模型对蛋鸡个体识别的性能,利用本研究制作的蛋鸡数据集,分别对YOLO v3-tiny、YOLO v4-tiny、YOLO v5s、PPYOLOE-s、YOLO v7-tiny和本文模型进行训练,并利用相同的测试集,通过精准率、召回率、平均精度均值、图像传输速率作为指标评估模型的检测精度和运算速度。各模型结果对比如表3所示。
表3 不同模型性能对比Tab.3 Performance comparison of different models
通过表3可知,在模型检测精度方面,本文模型的精准率、召回率和平均精度均值明显高于YOLO v3-tiny和YOLO v4-tiny模型,与YOLO v5s模型相比,分别高2.37、2.55、2.20个百分点,与PPYOLOE-s模型相比,分别高4.01、9.04、6.43个百分点,与YOLO v7-tiny模型相比,分别高6.33、0.95、4.77个百分点。在模型检测速度方面,本文模型的图像传输速率高出YOLO v7-tiny模型16.54 f/s,与YOLO v5s几乎相同。综合考虑模型识别精度和检测速度,本文模型识别效果更优,能够胜任真实复杂环境下对蛋鸡个体进行识别的任务。
随机选择一幅图像,各模型检测效果如图8所示。通过观察图8b、8c中黄色框发现,由于位于摄像头远端的蛋鸡目标更小,有效特征也非常少,YOLO v3-tiny和YOLO v4-tiny模型中出现了大量的漏检现象。观察图8d、8f中蓝框位置发现,由于饮水管对蛋鸡造成了遮挡,导致蛋鸡部分有效特征丢失,致使YOLO v5s和YOLO v7-tiny模型出现误识别现象,将一只蛋鸡识别为多只。通过对比图8e、8g中绿框处发现,虽然PPYOLOE-s与本文模型均能正确识别出蛋鸡,但是PPYOLOE-s模型识别出的置信度低于本文模型。通过实际图像对比发现,本文模型对真实环境下蛋鸡的个体识别效果更优。综合考虑模型检测精度、运算速度和实际识别效果,本文模型具有更优的性能。
图8 各模型检测效果Fig.8 Test effect diagrams of each model
本研究537幅测试集中的蛋鸡数量最少为120只,最多为247只。为了检验改进的YOLO v5s模型在不同蛋鸡数量下的计数精度,将测试集按照鸡只数量划分为120~180只、181~210只、211~247只3个区间,分别利用YOLO v5s模型、本文模型对3个区间图像中的蛋鸡进行识别,并通过计数平均准确率指标评估计数性能。改进前后模型计数平均准确率对比如表4所示,改进前后模型对每幅图像误识别数量对比如图9所示。计数效果如图10所示。
表4 改进前后模型计数准确率对比Tab.4 Comparison of model counting accuracy before and after improvement
图9 改进前后模型对每幅图像误识别数量对比Fig.9 Comparison of number of misrecognition of each image by model before and after improvement
图10 蛋鸡计数效果Fig.10 Renderings of laying hens counting
由表4可知,在鸡只数量为120~180只区间时,本文模型计数准确率最高,为95.42%,较YOLO v5s模型高2.15个百分点。随着蛋鸡数量的不断增多,鸡体间的遮挡现象也逐渐严重,模型计数准确率有所下降。在鸡只数量为211~247只区间时,本文模型计数准确率最低,为94.16%,较YOLO v5s模型高2.86个百分点。本文模型在120~247只区间的计数平均准确率为94.77%,较YOLO v5s模型提升2.49个百分点。结果表明,本研究所提出的方法能够为饲养者提供一个自动化、高精度的蛋鸡计数方法。
从图9中可发现,在同一幅蛋鸡图像上,YOLO v5s模型的误识别数量大部分都高于改进后的YOLO v5s模型的误识别数量,表明本文模型对蛋鸡的计数效果更优。
由图10可知,计数结果显示在图像左上角。图10左上角显示的146,为置信度阈值为0.40时,利用改进后的YOLO v5s模型识别蛋鸡个体并获得的计数结果。
PyQt是一种用于可视化界面开发的工具,是Python编程语言和Qt程序开发库的结合,它不仅具有Python编程语言的易用性,又具有Qt程序开发库的高效性,可以将PyQt理解成Qt框架的Python实现[34]。本研究运用PyQt5进行蛋鸡识别与计数系统设计。
为了提升系统的实用性,本研究拟设计一种页面简介、功能齐全且易于操作的系统。用户只需进行简单的操作,就可实现自动计数,同时会自动计算出饲养密度。蛋鸡识别与计数系统的总体框架如图11所示。整个系统主要由5个模块组成。
图11 蛋鸡识别计数系统总体框图Fig.11 General framework of laying hens identification and counting system
蛋鸡识别与计数系统的总体流程为:用户输入正确的用户名和密码进入蛋鸡识别与计数系统,然后选择本地蛋鸡图像、视频或者调用摄像头,蛋鸡识别模块利用网络模型对图像、视频或者摄像头数据进行识别并计数。在参数设置模块中,可对模型的置信度阈值和NMS阈值进行调整,也可以输入蛋鸡鸡舍的长度和宽度,用于蛋鸡饲养密度计算。最后通过结果显示模块对识别效果、计数结果以及蛋鸡饲养密度进行输出。
登录界面主要包括“用户名”、“密码”文本框和“登录”按钮;操作主界面如图12所示,主要包括:“图片检测”、“视频检测”、“摄像头检测”以及对应的“打开图片、视频、摄像头”按钮和“检测结果”按钮,在主界面最上方可以手动输入置信度阈值、NMS阈值、鸡舍长度和宽度;主界面中间显示输入的图像、视频或摄像头数据以及对应的检测效果;在主界面最下方显示检测出的蛋鸡数量以及蛋鸡饲养密度。
图12 蛋鸡识别与计数系统操作主界面Fig.12 Main interface of operation of laying hens identification and counting system
蛋鸡识别与计数系统计数效果如图13所示。当系统软件启动以后,先输入用户名和密码进行登录,进入主界面;如果点击了界面左侧“图片检测”、“视频检测”和“摄像头检测”按钮,在右侧分别会有一个按钮用来打开图像、视频或者是调用摄像头,然后点击“检测结果”按钮,在界面中部可以显示检测效果图,并在最下方显示识别出蛋鸡个数和蛋鸡饲养密度。整个系统只需要用户输入用来计数的蛋鸡数据和鸡舍长度和宽度,系统能够自动实现蛋鸡个体的识别与计数功能,并能够显示蛋鸡饲养密度。
图13 蛋鸡识别与计数系统计数效果图Fig.13 Laying hens identification and counting system counting effect picture
设计的蛋鸡识别与计数系统可以利用本地存储的图像、视频进行蛋鸡个体识别与计数,也可以通过直接调用摄像头,进行实时的蛋鸡个体识别与计数。本文基于机器视觉技术研发的蛋鸡个体识别与计数系统,可以实现实时计数,即使鸡只位置发生了瞬时变动,也可以立即获得任一时刻的计数结果,解决了由于蛋鸡位置随机瞬时变动,致使人工计数容易产生视觉错乱,计数结果偏差较大的问题。并且此系统能够实时显示蛋鸡的饲养密度,可以为养殖户合理控制蛋鸡数量,维持最佳饲养密度,获得最佳的蛋鸡生产性能提供数据依据,具有很高的实用价值。
(1)提出了一种基于改进的YOLO v5s模型识别真实环境下蛋鸡个体的方法。在YOLO v5s模型的Neck中引入SimAM注意力机制,有效解决了真实环境下产蛋箱、食槽、饮水管等物体给蛋鸡的识别带来的干扰。将YOLO v5s模型的SPPF(空间金字塔池化模块)改进为SPPCSPC模块,扩大了模型的感受野,解决了蛋鸡个体较小、识别较困难的问题。在YOLO v5s的Neck结构后添加自适应特征融合模块ASFF,更好地融合了蛋鸡不同尺度的特征信息,提升了模型的识别效果。
(2)改进后的YOLO v5s模型对蛋鸡个体识别的平均精度均值为87.53%,较YOLO v5s模型提高2.20个百分点,图像传输速率为58.14 f/s。当蛋鸡数量在120~247只范围内,计数平均准确率为94.77%,较YOLO v5s模型提升2.49个百分点。
(3)在改进的模型中通过调用检测接口,增加计数函数,实现了蛋鸡个体的计数。最后,对算法进行封装,开发了蛋鸡个体识别与计数系统,并能根据计数结果进行饲养密度的自动计算,为蛋鸡养殖者对蛋鸡数量的自动清点,合理控制饲养密度提供了有效的技术支持。