APP下载

基于SEEC-YOLO v5s的散养蛋鸡日常行为识别与统计系统

2023-09-23杨断利王永胜孙二东王连增

农业机械学报 2023年9期
关键词:日常行为持续时间蛋鸡

杨断利 王永胜 陈 辉 孙二东 王连增 宁 炜

(1.河北农业大学信息科学与技术学院,保定 071001; 2.河北省农业大数据重点实验室,保定 071001;3.河北农业大学动物科技学院,保定 071001; 4.农业农村部肉蛋鸡养殖设施工程重点实验室,保定 071001;5.河北桃木疙瘩农业科技股份有限公司,保定 074300; 6.河北省蛋鸡产业技术研究院,邯郸 056007;7.成都小巨人畜牧设备有限公司,成都 611435)

0 引言

我国蛋鸡养殖业发展迅速,目前已经成为鸡蛋产量最多的国家[1-2]。随着物质生活的提高,人们对优质蛋白的市场需求也在不断扩大,食品安全需要养殖业减抗、无抗生产[3]。健康养殖是实现无抗养殖的前提,家禽的行为信息与其生理健康状况密切相关[4-5]。目前,对蛋鸡健康状况的监测主要采用人工观察的方式,此方法不仅需要大量的劳动力、效率低下,而且易受主观因素影响。

近年来,国内外学者在机器视觉技术识别动物行为研究领域开展了大量研究。李丽华等[6]通过K-means聚类算法实现了对本交笼种鸡的采食、饮水、打斗、交配和振翅行为的识别。RIDDLE等[7]手动识别了图像中的蛋鸡站立、躺卧、栖息、拍打翅膀、沐浴灰尘等行为。劳凤丹等[8]通过对蛋鸡图像的分割、形态学处理提取参数、利用贝叶斯分类的方法,实现了对单只蛋鸡的运动、饮水、采食、修饰、抖动、休息、拍翅膀、探索、举翅膀行为的识别。刘修林[9]利用最大类间方差法实现了复杂背景下的鸡体分割,然后根据位置信息实现了啄食、饮水、运动、静止行为的识别。XIAO等[10]通过改进活动轮廓模型,分割出笼养鸡的图像技术,提出了一种利用双目视觉系统获取行为信息的检测方法。ZHUANG等[11]首先从复杂背景中提取家禽目标,然后计算家禽骨架结构、建立特征向量,对家禽是否处于啄食状态进行了分析,同时利用支持向量机方法对家禽的健康状况进行了评估。上述文献在动物行为识别方面取得了相应的进展,但这些研究方法均具有人工图像分割、手动提取参数或特征的特点,分割效果依赖于人的主观经验,无法保证分割精度的稳定性。

随着深度学习技术的发展,越来越多的学者开始尝试将深度学习技术应用于动物行为识别。王凯[12]提出了改进YOLO v3模型(TD-YOLO v3),实现了对蛋鸡的采食、躺、站立、探索和修饰行为的检测。WANG等[13]采用YOLO v3模型和迁移学习的方法,实现了对笼内20只蛋鸡的交配、站立、喂食、散步、打架和饮水6种行为的识别。MBELWA等[14]通过改进的卷积神经网络(CNN),并采用迁移学习的方法,通过对鸡粪便的识别,实现了对患有疾病鸡的检测。ZHANG等[15]通过改进的ResNet模型(ResNet-FPN),实现了对病鸡的检测。WANG等[16]应用RPN+ResNet模型根据粪便种类,实现对消化疾病的检测,从而对鸡的健康状况进行预测。LIN等[17]利用Faster R-CNN模型实现了鸡只运动和饮水行为的识别。不仅站立、采食、饮水、探索和梳羽行为能够反映蛋鸡的健康状况,啄羽行为也能反映蛋鸡的健康状况[18]。上述文献在蛋鸡健康状态的行为识别中,鸡舍背景简单且缺少对蛋鸡啄羽行为的关注。

利用深度学习技术识别蛋鸡行为,具有网络模型自动提取行为特征、不需人工参与的特点,不仅能够解决人工观察法耗费大量劳动力的弊端,而且还能够解决图像处理法的分割效果依赖于人的主观性、分割精度不稳定的问题[19]。因此,本研究基于深度学习技术,选用YOLO v5模型,通过引入SEAM注意力模块和显式视觉中心模块(EVCBlock),对YOLO v5模型进行优化,实现遮挡情况下的小个体蛋鸡站立、采食、饮水、探索、啄羽和梳羽6种日常行为的自动识别,提升模型的识别精度。在行为识别的基础上,进一步对蛋鸡群体行为的变化规律进行统计分析。

1 数据采集与预处理

1.1 数据采集

本试验于2022年9月7—24日在河北桃木疙瘩农业科技股份有限公司中庄养殖基地长3 m、宽2 m、柱高1.2 m、顶高2 m的移动式鸡舍内饲养了20只健康状态良好的太行山蛋鸡,鸡舍内部放置一个食槽、一个饮水桶和一个产蛋箱,于每日09:00和15:00喂食、拾取鸡蛋。试验采用焦距为 2.8 mm、帧率为25 f/s、分辨率为2 560像素×1 920像素的海康威视(DS-2CD3T56FWDV2-15)广角摄像头对蛋鸡每日09:00—18:00间的日常行为进行录制,并通过网线将数据传输到容量为4TB的海康威视网络硬盘录像机(DS-7804N-K1/4P(D))中。摄像头安装在鸡舍内部中间顶部,距地面2 m,垂直向下拍摄[20]。采集环境如图1所示。

图1 采集环境

1.2 数据预处理

本文选择蛋鸡站立、采食、饮水、探索、啄羽和梳羽共6种与蛋鸡健康状况评估相关的行为作为研究对象,蛋鸡行为判定标准如表1所示,各行为示例如图2所示。

表1 蛋鸡行为判定标准

图2 各行为示例图

利用帧提取的方法每隔30帧提取1幅图像,随机选择不同时间下的图像作为蛋鸡日常行为识别数据集。数据集中图像的质量会显著影响模型的训练效果[21],因此,需要对提取出的图像进行数据清洗,去除模糊图像。最后利用LabelImg工具对蛋鸡日常行为识别数据集进行标注,制作成Pascal VOC[22]格式数据集,并按照7∶2∶1的比例划分为训练集、验证集和测试集。

为了避免模型过拟合,增强算法的鲁棒性[23],本文采用离线增强方式,随机选择旋转、缩放、镜像的方式对训练集中的图像进行数据增强。数据增强后的样本如图3所示。

图3 数据增强效果图

经过数据预处理后,蛋鸡日常行为识别数据集共包括3 019幅图像。如图3所示,同时对原图像进行了镜像、旋转和缩放操作,增加了图像的多样性。试验总体流程图如图4所示。

如图4所示,整个试验首先进行数据采集,获得蛋鸡日常行为图像,其次对图像进行预处理操作,为模型训练做准备。经模型训练后,进行性能测试和结果分析。

2 蛋鸡日常行为识别方法

2.1 YOLO v5s网络结构

YOLO v5模型兼顾了推理速度和检测精度[24],根据网络结构的深度和宽度的不同,将YOLO v5模型分为YOLO v5n、YOLO v5s、YOLO v5m、YOLO v5l和YOLO v5x共5个版本。为了选取合适的版本,使用本试验的蛋鸡日常行为识别数据集分别训练上述5个模型,利用测试集进行识别效果评估,不同版本的YOLO v5模型检测精度对比如表2所示。

表2 不同版本的YOLO v5模型检测精度对比

从表2可知,YOLO v5s模型对蛋鸡日常行为识别的精确率为81.55%,召回率为76.52%,F1值为78.95%,平均精度均值为82.31%,参数量为7.03×106。与YOLO v5n模型相比,精确率、召回率、F1值和平均精度均值分别提升10.73、6.50、8.53、10.25个百分点,参数量仅增加 5.26×106,与YOLO v5m、YOLO v5l以及YOLO v5x模型相比,虽然平均精度均值降低了0.58、1.26、1.83个百分点,但是参数量分别减少 1.384×107、3.911×107、7.918×107。综合模型检测精度和模型复杂度,本文选取YOLO v5s模型作为蛋鸡日常行为识别基本模型。YOLO v5s模型结构如图5 所示。

图5 YOLO v5s模型结构图

YOLO v5s模型包括输入、特征提取、特征融合和输出4部分。输入部分用于向模型输入预先处理好的蛋鸡图像;特征提取部分采用了CSPDarknet53结构,用于提取目标的语义信息;特征融合部分使用了PAN结构,用于对特征提取部分提取到的特征进行处理[25],融合不同尺度信息,增强特征的表达;输出部分共包括3个分支,特征图尺寸分别为80像素×80像素、40像素×40像素和 20像素×20像素,分别用于识别小、中、大目标,并进行输出。

2.2 SEEC-YOLO v5s蛋鸡日常行为识别模型

针对鸡只个体目标较小、蛋鸡之间重叠遮挡导致的有效特征不足、丢失、遗漏、行为识别效果不理想的问题,本文以YOLO v5s模型为基础,通过引入SEAM注意力模块和显式视觉中心模块,构建改进YOLO v5s模型(SEEC-YOLO v5s),增强模型特征提取能力,提升行为识别精度。优化后的SEEC-YOLO v5s模型结构如图6所示。

在图6中的输出部分加入SEAM注意力模块[26](图6中的改进1),将特征融合部分的3个不同尺度输出层与输出部分的3个检测头进行连接,解决蛋鸡之间因为遮挡导致的有效特征丢失问题。在特征融合部分的特征金字塔网络(FPN)结构中加入显式视觉中心模块(EVCBlock)[27](图6中的改进2),解决鸡只目标较小、有效特征不足、容易被遗漏的问题。

2.2.1SEAM注意力模块

蛋鸡个体间的遮挡会导致鸡体局部混叠、重要特征缺失[26]。利用SEAM模块,将YOLO v5s模型特征融合部分的3个不同尺度输出层与输出部分的3个检测头进行连接,可突出图像中的蛋鸡区域,弱化背景区域,实现多尺度下的蛋鸡日常行为检测。SEAM模块结构图如图7所示。

SEAM模块的第1部分是带有残差连接的深度可分离卷积。深度可分离卷积不仅能减少模型的参数量,而且还可以利用逐通道运算,学习多个不同通道的重要特征,提升模型的特征提取能力。但是深度可分离卷积在学习不同通道的重要特征时,由于没有考虑通道之间的特征联系,所以对不同通道的特征提取并不充分。因此,为了弥补深度可分离卷积的不足,SEAM模块在不同深度可分离卷积的输出后进行了逐点卷积操作,最后通过一个两层的全连接网络融合各通道的特征,实现了所有通道之间的连接。第2部分是将全连接层的输出结果通过指数函数进行处理,并将取值范围从[0,1]扩大到[1,e],使得上一步学习到的被遮挡蛋鸡的有效特征与无遮挡的有效特征相互联系,最后将SEAM模块的输出作为特征与原始特征相乘,使模型能够有效地解决蛋鸡个体间遮挡带来的有效特征丢失的问题。

2.2.2显式视觉中心模块

蛋鸡个体目标较小,有效特征不足且容易产生遗漏,致使模型识别精度较低。为了尽可能多地提取蛋鸡个体有效特征,本文在特征融合部分的FPN结构中加入了显式视觉中心模块(EVCBlock)。EVCBlock模块结构如图8所示。

图8 EVCBlock模块结构图

EVCBlock模块主要包括轻量级MLP和可学习的视觉中心机制,轻量级的MLP用来获取模型中EVCBlock模块上一层传入特征X4的全局特征信息,可学习的视觉中心机制用于聚合模型中EVCBlock模块上一层传入特征X4的局部区域特征信息。EVCBlock模块将获得的全局特征信息和局部区域特征信息沿着通道维度进行拼接,生成最后的特征。由于EVCBlock模块学习的特征中不仅包括全局的特征信息,还包括局部区域的特征信息,特征信息较丰富,因此,能够解决蛋鸡个体目标较小、特征遗漏的问题。

EVCBlock模块并未直接对模型中EVCBlock模块上一层的传入特征X4进行操作,而是先将上一层的传入特征X4通过Stem模块进行操作,然后再对经过Stem模块处理后的特征进行操作。

Stem模块依次通过卷积核为7×7、输出通道数为256的卷积操作、批归一化(Batch normalization)操作,并使用ReLU作为激活函数。Stem模块主要用于对模型中EVCBlock模块上一层的传入特征X4进行特征平滑。

EVCBlock模块的计算公式为

X=Concat(MLP(Xin);LVC(Xin))

(1)

其中

Xin=σ(BN(Conv7×7(X4)))

(2)

式中X——EVCBlock模块的输出

Concat()——沿channel维度的特征图拼接操作

MLP(Xin)——使用轻量级MLP的输出特征

LVC(Xin)——使用可学习的视觉中心机制的输出特征

Xin——Stem模块的输出

σ()——ReLU激活函数

当谈到医养结合的现实问题,才40岁出头的张振美捋了捋头上的白头发,“就是为了办个社区医疗机构的手续,我都不知道咨询了多少人,跑了多少腿了。”开始时,张振美想在养老服务中心开设个医务室或诊所,这样可以解决入住老人的基本医护问题。普通人会认为,我只需聘请持证的专业医护人员就可以了,但实际没这么简单:“医疗机构的负责人必须由专人担任,比如我想从某家知名大医院聘请一位退休医疗专家来担任医疗机构负责人,按审批相关规定,所聘请的这位专家必须先解除与大医院的身份关系,再把关系转至我们这家内设医疗机构才符合要求,如此这样一来,我们想聘请有经验的老专家显然是比较困难的。”

BN()——批归一化层操作

Conv7×7——卷积核为7×7、步幅为1、输出通道数为256的卷积操作

2.3 试验参数设置

本研究所用的硬件配置和试验环境如表3所示。使用相同的蛋鸡日常行为数据集分别对YOLO v5的5个版本模型、Faster R-CNN、YOLO X-s、YOLO v4-tiny、YOLO v7-tiny以及SEEC-YOLO v5s模型进行训练。试验所采用的超参数:输入图像尺寸为640像素×640像素,训练批量大小(Batch size)为8,迭代周期(Epoch)为100,线程数(num workers)为8,初始学习率(Initial learning rate)为0.01,动量因子(Momentum)为0.937,优化器为随机梯度(SGD),利用最优权重对模型进行评价。

表3 硬件配置和试验环境

2.4 模型评估

本文利用精确率(Precision,P)、召回率(Recall,R)、平均精度(Average precision,AP)、F1值、平均精度均值(Mean average precision,mAP)和参数量对模型性能进行评估。

精确率表示正确检测出的目标与识别出的所有目标的比值,召回率表示检测出为正类且真实类别也为正类的目标数量与真实类别为正类的所有目标总数的比值,平均精度表示对每个类检测的结果,F1值表示精确率和召回率的调和平均值,平均精度均值表示对所有类别的检测结果。

2.5 蛋鸡日常行为持续时间统计方法

在日常生活中,可以对蛋鸡群体进行各种行为的持续时间统计,从而判断蛋鸡的生活习性,并分析其健康状况,为蛋鸡福利养殖提供借鉴[28]。

通过对帧速率计算公式的变换,可以实现对蛋鸡日常行为持续时间的统计,即利用SEEC-YOLO v5s模型对蛋鸡的日常活动视频进行识别,并对各种行为的识别结果进行统计,通过检测出的各行为视频帧数与视频帧率的比值,获得各种日常行为的持续时间T(单位为min)。

3 结果与分析

3.1 不同模型识别结果分析

为了验证不同模型对蛋鸡日常行为识别的效果,采用相同的蛋鸡日常行为识别数据集分别对Faster R-CNN模型、YOLO X-s模型、YOLO v4-tiny模型、YOLO v7-tiny模型、YOLO v5s模型以及本文模型(SEEC-YOLO v5s)进行训练,利用精确率、召回率、F1值、平均精度均值和参数量进行效果评估,试验结果如表4所示。

表4 不同模型识别结果对比

从表4可以看出,SEEC-YOLO v5s模型对蛋鸡日常行为识别的精确率、召回率、F1 值、平均精度均值以及参数量分别为82.34%、81.30%、81.82%、84.65%和1.279×107。在检测精度方面,精确率、F1值和平均精度均值比Faster R-CNN模型分别高17.54、9.49、4.30个百分点,比YOLO X-s模型分别高6.60、2.83、3.06个百分点,比YOLO v4-tiny模型分别高5.61、8.39、7.11个百分点,比YOLO v7-tiny 模型分别高5.61、3.93、2.99个百分点,比YOLO v5s模型分别高0.79、2.87、2.34个百分点。SEEC-YOLO v5s模型的召回率略低于Faster R-CNN模型和YOLO X-s模型,与YOLO v4-tiny模型、YOLO v7-tiny模型和YOLO v5s模型相比分别高7.65、2.21、4.78个百分点。在模型复杂度方面,SEEC-YOLO v5s模型参数量与其他模型相近,仅为Faster R-CNN模型参数量的10.70%。因此,从检测精度和模型复杂度两方面综合来看,SEEC-YOLO v5s模型在蛋鸡日常行为检测方面更有优势。

从表5中可以看出,SEEC-YOLO v5s模型对蛋鸡的采食行为的识别精度最高,达到98.46%,对啄羽行为的识别精度最低,仅为67.52%,分析原因可能是啄羽行为在所有行为中属于少数异常行为,采集得到的数据集中啄羽行为占比只有3.68%,因此基于深度学习算法对啄羽行为的识别精度普遍偏低,可通过长时间采集大量啄羽行为训练模型来提升啄羽行为的识别精度。SEEC-YOLO v5s模型对采食、探索、啄羽和梳羽4种行为的识别精度均高于其他模型,SEEC-YOLO v5s模型对4种行为的识别精度最少提高1.23个百分点,最高提高13.37个百分点。SEEC-YOLO v5s模型对站立行为的识别精度比YOLO X-s和YOLO v5s模型低0.47、1.21个百分点,对饮水行为的识别精度比Faster R-CNN和YOLO X-s模型低3.80、0.79个百分点。总体而言,SEEC-YOLO v5s模型对蛋鸡日常行为的识别具有一定的优势。

随机从本试验的蛋鸡日常行为识别数据集中选择1幅图像,分别利用Faster R-CNN、YOLO X-s、YOLO v4-tiny、YOLO v7-tiny、YOLO v5s和本文模型(SEEC-YOLO v5s)对此图像进行识别,识别效果如图9所示。

通过对比发现,如图9a中的红色箭头所示,Faster R-CNN模型误将1只蛋鸡行为识别为2种行为,如绿色箭头所示,也误识别出了鸡舍外部不属于本试验的蛋鸡。如图9b中红色箭头所示,YOLO X-s模型虽然正确识别了蛋鸡的行为,但是与图9f本文模型相比,识别的置信度较低。如图9c中红色箭头所示,YOLO v4-tiny模型存在多处漏检行为,如蓝色箭头所示,误将探索和站立的蛋鸡识别为了站立和梳羽行为。如图9d中红色箭头所示,当蛋鸡被遮挡时,YOLO v7-tiny模型的目标置信度较SEEC-YOLO v5s模型更低;如图9e中红色箭头所示,YOLO v5s模型对蛋鸡日常行为识别存在多处漏检行为;图9f中的SEEC-YOLO v5s模型能够准确识别出鸡舍内部每只蛋鸡的行为。

综上所述,Faster R-CNN模型对蛋鸡日常行为识别存在多处将1只蛋鸡误识别为2种行为的情况,表明Faster R-CNN模型对蛋鸡日常行为识别能力较差;YOLO X-s和YOLO v7-tiny模型在蛋鸡存在遮挡情况下置信度较低,表明YOLO X-s和YOLO v7-tiny模型在遮挡情况下,对目标特征的学习能力较弱;YOLO v4-tiny和YOLO v5s模型存在多处漏检情况,表明YOLO v4-tiny和YOLO v5s模型对较小目标的识别能力不足。因此,从检测精度、模型复杂度和识别效果3方面来看,SEEC-YOLO v5s模型对蛋鸡日常行为识别的总体效果最好。

3.2 SEEC-YOLO v5s模型消融试验

利用本文数据集,使用平均精度均值和各类别的平均精度指标,对YOLO v5s、YOLO v5s+SEAM、YOLO v5s+EVCBlock和 SEEC-YOLO v5s模型,通过消融试验进行识别效果对比,进一步验证SEEC-YOLO v5s模型的性能,试验结果如表6所示。

表6 消融试验结果对比

通过表6可以发现,YOLO v5s+SEAM模型和YOLO v5s+EVCBlock模型对蛋鸡6种行为识别的平均精度均值与YOLO v5s模型相比,分别提高0.75、1.91个百分点。其中,YOLO v5s+SEAM模型对站立、采食、饮水和探索行为识别的平均精度较YOLO v5s模型分别提高0.07、0.11、2.69、0.08个百分点;YOLO v5s+EVCBlock模型对站立、采食、饮水、啄羽和梳羽行为识别的平均精度较YOLO v5s模型分别提高1.67、0.97、4.52、1.29、3.60个百分点,表明添加SEAM注意力模块和EVCBlock模块后均能对蛋鸡日常行为的识别有一定的促进作用。

与YOLO v5s模型相比,SEEC-YOLO v5s模型对站立行为识别的平均精度有所降低,分析原因在于,蛋鸡个体间存在遮挡,在视觉上腿部呈现不明显,致使区分站立行为的有效特征变少,因此,对站立行为识别结果有所降低。对采食、饮水、探索、啄羽和梳羽行为识别结果均有所提升,表明SEEC-YOLO v5s模型对蛋鸡日常行为识别效果有明显提升。

Gard-CAM可以将模型对蛋鸡行为特征的学习程度以热力图的方式显示[29-30],特征图可视化也可以直接显示出模型对重要信息的学习能力。因此,为了进一步检验本文模型(SEEC-YOLO v5s)对蛋鸡日常行为识别的有效性,随机选择1幅图像,分别利用YOLO v5s模型和SEEC-YOLO v5s模型对输出部分的3种不同尺度的输出层进行特征图可视化和热力图显示,结果分别如图10、11所示。

图10 特征图可视化结果对比

图10a~10c为YOLO v5s模型在输出层P3、P4、P5的可视化结果,图10d~10f为本文模型在输出层P3、P4、P5的可视化结果。通过对比两个模型在P3输出层的可视化结果发现,本文模型对蛋鸡小目标特征的识别效果更明显,学习的特征更丰富,在输出层P4、P5中,本文模型的可视化效果也均优于YOLO v5s模型。

图11a~11c为YOLO v5s模型在上述随机选择的图像上通过Gard-CAM对P3、P4、P5输出层进行热力图显示的结果,图11d~11f为本文模型在上述随机选择的图像上通过Gard-CAM对输出层P3、P4、P5进行热力图显示的结果。通过对比两模型在输出层P3和P4的热力图发现,本文模型对蛋鸡目标区域的热力较高,对无关区域的热力较低,能够更好地学习蛋鸡日常行为特征。综上所述,从识别精度和特征图可视化以及热力图显示的效果分析,再一次证明了本文模型对蛋鸡日常行为识别的效果更优。

图11 热力图效果对比

3.3 小个体蛋鸡不同遮挡情况下检测性能分析

为了验证本文模型对不同遮挡情况下小个体蛋鸡行为的检测性能,从测试集中随机选取2幅不同遮挡情况下的蛋鸡图像,并利用YOLO v5s和本文模型(SEEC-YOLO v5s)进行检测。结果如图12所示。

图12 不同遮挡情况下检测效果

对比图12a、12b中黄色圈所标注的蛋鸡检测结果可以发现,在无遮挡的情况下,YOLO v5s模型将处于站立行为的蛋鸡误识别为站立和探索两种行为,而本文模型准确识别出了蛋鸡的站立行为。对比图12a、12b中蓝色圈所标注的蛋鸡检测结果可以发现,当蛋鸡只显示出了头部和尾部,身体部分被另一只蛋鸡严重遮挡时,YOLO v5s模型虽然识别出了被遮挡蛋鸡的行为,但是对蛋鸡定位时只定位出了尾部,蛋鸡的头部被遗漏(如图12a中蓝色箭头处),影响最终的识别精度,本文模型不仅准确识别出了蛋鸡的行为,而且相较于YOLO v5s模型,对被严重遮挡的蛋鸡定位也更准确。

对比图12c、12d中粉色圈1所标注的蛋鸡检测结果可以发现,当某只蛋鸡的尾部被其他蛋鸡轻微遮挡时,虽然YOLO v5s模型和本文模型均识别出了被遮挡蛋鸡的行为,但是YOLO v5s模型识别的置信度(0.85)低于本文模型的置信度(0.87);对比粉色圈2所标注的蛋鸡检测结果可以发现,当蛋鸡的腹部被完全遮挡时,YOLO v5s模型出现了误识别现象,而本文模型准确识别出了蛋鸡所处的行为。

综上所述,在无遮挡、蛋鸡腹部或尾部被其他鸡只轻微遮挡或者是蛋鸡的身体被严重遮挡,只剩下头部和尾部情况下,本文模型均能够准确检测出蛋鸡的行为,而YOLO v5模型均出现了一定的误检现象,表明本文模型在不同遮挡情况下对蛋鸡日常行为的检测效果更优。

3.4 不同时间段各行为变化规律分析

试验期间鸡群视频录制时间为每日09:00—18:00,喂食时间为每日09:00和15:00。为了分析鸡群各行为不同时间段的变化规律,随机选取连续4 d的视频录像,并将每天录像每隔30 min划分1个时间段,共18个时间段。利用本文模型对划分后的蛋鸡视频录像进行识别,求得4 d内18个时间段的平均值,并按照2.5节所述的持续时间统计方法将识别出的帧数转换为持续时间并进行分析。结果如表7和图13所示。

表7 蛋鸡各行为的持续时间统计

图13 不同时间段蛋鸡各行为持续时间

观察表7和图13发现,蛋鸡的饮水、探索和啄羽行为在各时间段持续时间基本保持稳定。站立行为在11:00—15:30时间段持续时间高于其他时间段,推测可能与温度有关,温度较高的时间段,站立行为持续时间较其他时间段会更长。采食行为在11:00—15:00和16:30—18:00期间持续时间明显低于其他时间段。梳羽行为在11:30—16:00区间内持续时间明显较低。统计结果为依据行为规律判断蛋鸡健康状态奠定了基础。

3.5 全天内蛋鸡日常行为持续时间变化规律分析

为了分析每天09:00—18:00期间蛋鸡6种日常行为之间的变化规律,利用本文模型对选取的连续4 d视频录像进行行为识别,利用2.5节提出的持续时间统计方法分别对每天蛋鸡6种行为持续时间进行统计,结果如表8所示,全天内各行为持续时间对比如图14所示。

表8 全天内蛋鸡日常行为发生时间

图14 全天内各行为持续时间对比

通过观察图14可知,在这4 d中,每天每种蛋鸡日常行为持续时间基本保持相同,站立、采食、饮水、探索、啄羽和梳羽6种行为持续的平均时间分别为4 534.55、1 723.76、126.64、2 529.88、105.00、1 243.28 min,占蛋鸡整天活动时间的比值分别为44.18%、16.80%、1.23%、24.65%、1.02%、12.11%。一天当中,站立行为持续时间最长,饮水和啄羽行为持续时间最短。站立行为持续时间比其它5种行为持续时间分别长2 810.78、4 407.90、2 004.66、4 429.55、3 291.27 min。通过对比可知,在一天当中,蛋鸡大部分时间会处于站立和探索状态,这两种行为占每天活动时间的68.83%,上述统计结果为通过统计蛋鸡各行为持续时间评估蛋鸡健康状况提供了数据依据。

4 蛋鸡日常行为识别与统计系统设计

蛋鸡的健康状态影响着养殖户的经济效益,为了便于观察蛋鸡行为,本试验利用PyQt5对SEEC-YOLO v5s模型进行封装、打包,制作了蛋鸡日常行为识别与显示系统,实现了对蛋鸡行为的自动监测。

4.1 总体设计及各部分功能

蛋鸡日常行为识别与统计系统的总体框架如图15所示,主要包括数据获取、蛋鸡日常行为识别、参数设置和显示。

图15 蛋鸡日常行为识别与显示系统总体框架图

数据获取部分是用于选择数据获取的主要渠道,包括本地文件获取和摄像头调用2种方式。蛋鸡日常行为识别部分通过调用训练好的模型,对数据获取部分送入的数据进行识别,并对当前帧图像中识别出的各行为总持续时间进行统计;参数设置部分包括权重文件选择、IoU阈值、置信度阈值调整;显示部分是对原始数据、识别效果和当前帧图像中识别出的各行为持续时间的显示。

4.2 操作方法及效果显示

如图16所示,用户进入蛋鸡日常行为识别与显示系统主界面后,在数据获取部分选择获取识别数据的方式,在参数设置部分选择训练好的权重文件,并对置信度阈值和NMS阈值进行调整,通过点击播放按钮启动蛋鸡日常行为识别,识别效果会显示在显示部分,识别效果如图17所示。

图16 系统主界面

图17 识别效果图

如图17所示,当完成对蛋鸡日常行为识别后,会在系统页面最左端,“结果显示”下方显示出识别出的各种行为鸡只个数。此幅图像识别结果为:探索行为有7只蛋鸡,站立行为有7只蛋鸡,啄羽行为有2只蛋鸡,采食行为有2只蛋鸡,梳羽行为有1只蛋鸡。

5 结论

(1)提出了一种基于SEEC-YOLO v5s的蛋鸡日常行为识别方法。通过在YOLO v5s模型的输出部分引入SEAM结构,突出了图像中的蛋鸡区域,弱化了背景区域,改善了YOLO v5s模型对遮挡目标识别精度较低的问题,通过在特征融合部分加入EVCBlock模块,解决了蛋鸡目标较小,特征易被遗漏的问题。本文改进的SEEC-YOLO v5s模型对蛋鸡6种日常行为识别的平均精度均值为84.65%,其中对采食行为识别的平均精度达到98.46%。对比YOLO v5s、Faster R-CNN、YOLO X-s、YOLO v4-tiny 和YOLO v7-tiny模型,6种行为的平均精度均值分别提高2.34、4.30、3.06、7.11、2.99个百分点。

(2)提出了一种基于视频帧数与视频帧率比值计算蛋鸡日常行为持续时间的统计方法,并分析了一天当中不同时间段下的蛋鸡群体各行为和一整天内蛋鸡6种日常行为的变化规律。试验结果表明:每天每种日常行为持续时间基本保持相同,6种行为平均时间占蛋鸡整天活动时间的44.18%、16.80%、1.23%、24.65%、1.02%和12.11%。一天当中,站立行为持续时间最长,饮水和啄羽行为持续时间最短;蛋鸡站立和探索行为占每天活动时间的68.83%。利用PyQt5对本文模型进行了封装、打包,制作了蛋鸡日常行识别与统计系统,为蛋鸡的日常行为监测和健康状况评估提供了技术手段。

猜你喜欢

日常行为持续时间蛋鸡
蛋鸡多产蛋要过三道关
日常行为干预模式在糖尿病患者护理中的应用研究
春季蛋鸡养殖三防
3-6岁幼儿日常行为礼仪养成教育现状与对策研究——以南充市西充县东风路幼儿园为例
智能家居中的居民日常行为识别综述
农村幼儿日常行为习惯的培养
蛋鸡和肉鸡
蛋鸡和肉鸡
The 15—minute reading challenge
基于SVD的电压跌落持续时间检测新方法