一种基于YOLOv4的羊舍内羊群个体身份识别方法及系统

    专利查询2024-12-10  57


    一种基于yolov4的羊舍内羊群个体身份识别方法及系统
    技术领域
    1.本发明涉及现代化智能畜牧业领域,具体涉及一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法及系统。


    背景技术:

    2.近年来,国内外畜牧业正在由传统模式向智能化、精准化、规模化发展。羊只作为一种重要家畜,是当今畜牧业重要的组成部分。羊只个体的身份识别作为规模化、精准化养羊业的重要方面得到了广泛重视。当前养羊业中主要的羊只身份识别方法为接触式识别方法,即人工标号或打耳标的方法。成规模的大型养殖场内运用最普遍的羊只识别方法为基于无线射频的耳标方法。随着养殖规模的增加,耳标因羊只之间相互摩擦撕咬而出现的掉标现象显著增加,同时打耳标会使羊只出现应激反应,标孔发炎也会对羊只身体健康造成一定影响,加之掉标现象会增加养殖户羊只饲养的成本。因此近些年来在养殖业中,非接触式的个体识别方法也逐渐被人们所重视,其中基于计算机视觉的非接触式的方法可以有效节约劳动成本,提高工作效率,尤其在成规模养殖环境下,可以全天候高效地替代人工对牲畜成长情况的监督,极大减轻养殖户、牧场的人工成本,提高养殖效率。张宇等发表专利《一种基于ssd卷积神经网络的奶牛反刍行为识别方法》提供了一种对牛的身份识别方法,但相对于牛群,羊群的数据集采集难度更大。牛群居住密度小,活动范围较小,且相互遮挡情况少,而羊舍内养殖密度高,且活动量大,相互遮挡现象严重;刘冰等发表专利《一种基于yolov4的养鸡场饲养鸡识别算法》提出了一种养殖场内以养殖鸡为目标的检测方法,但未对每个鸡个体进行身份识别。
    3.因此,如何以非接触方式实现羊群个体身份识别成为一个亟待解决的问题。


    技术实现要素:

    4.为了解决上述技术问题,本发明提供一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法及系统。
    5.本发明技术解决方案为:一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,包括:
    6.步骤s1:采集羊群中每只羊只的面部信息,对面部图片进行预处理,用标注框对羊脸进行标注,得到数据集,并划分为训练集和测试集;
    7.步骤s2:构建基于yolov4的羊只面部识别神经网络模型,其中,所述基于羊只面部识别神经网络模型包括:input、backbone、neck和head:backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,并采用mish激活函数;neck作为加强特征提取网络,采用ssp与panet分别用于提取上下文特征和参数聚合;head根据所述标注框,使用kmeans++算法重新计算锚框大小,基于neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,计算最终的目标检测框;
    8.步骤s3:构建损失函数,使用羊脸面部数据进行预训练,将预训练后得到模型参数
    作为所述羊只面部识别神经网络模型的初始参数,使用所述训练集对其进行训练,得到训练好的羊只面部识别神经网络模型;最终将所述测试集输入所述训练好的羊只面部识别神经网络模型,对其性能进行评估。
    9.本发明与现有技术相比,具有以下优点:
    10.本发明公开了一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,多源视频流融合技术,能有效解决数据集采集过程中羊舍内羊群之间互相遮挡的问题。本发明提供的方法为非接触式的识别方法,不会让羊只有应激反应。与传统特征点提取与分类方法不同,本发明提供的方法基于卷积神经网络的目标检测方法无需人工提取特征,它可以通过反复的特征提取和堆叠,获得目标更本质更丰富的本质特征,而且本发明提供的方法所需的系统规模较小、结构较为简单,因此具有较高的稳定性与较强的抗干扰能力,通用性强,对于被检测目标的形变,遮挡有较强的识别精度。
    附图说明
    11.图1为本发明实施例中一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法的流程图;
    12.图2为本发明实施例中cspdarknet53模块结构示意图;
    13.图3为本发明实施例中csp的结构示意图;
    14.图4为本发明实施例中mish函数图像;
    15.图5为本发明实施例中一种基于yolov4的羊只面部识别神经网络模型结构示意图;
    16.图6为本发明实施例中的基于yolov4的羊只面部识别神经网络模型的整体流程示意图;
    17.图7为本发明实施例中测试结果map指标;
    18.图8为本发明实施例中一种基于yolov4神经网络模型的羊舍内羊群个体身份识别系统的结构框图。
    具体实施方式
    19.本发明提供了一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,采用非接触式识别方法,成本低、精度高且安全有效,从而避免现有的接触式技术中掉标以及羊只容易产生应激的问题,同时还解决了现有非接触式技术中羊只易遮挡、无法精准身份识别的问题。
    20.为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
    21.实施例一
    22.如图1所示,本发明实施例提供的一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,包括下述步骤:
    23.步骤s1:采集羊群中每只羊只的面部信息,对面部图片进行预处理,用标注框对羊脸进行标注,得到数据集,并划分为训练集和测试集;
    24.步骤s2:构建基于yolov4的羊只面部识别神经网络模型,其中,基于羊只面部识别
    神经网络模型包括:input、backbone、neck和head:backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,并采用mish激活函数;neck作为加强特征提取网络,采用ssp与panet分别用于提取上下文特征和参数聚合;head根据标注框,使用kmeans++算法重新计算锚框大小,基于neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,计算最终的目标检测框;
    25.步骤s3:构建损失函数,使用羊脸面部数据进行预训练,将预训练后得到模型参数作为羊只面部识别神经网络模型的初始参数,使用训练集对其进行训练,得到训练好的羊只面部识别神经网络模型;最终将测试集输入训练好的羊只面部识别神经网络模型,对其性能进行评估。
    26.在一个实施例中,上述步骤s1:采集羊群中每只羊只的面部信息,对面部图片进行预处理,用标注框对羊脸进行手工标注,得到数据集,并划分为训练集和测试集,具体包括:
    27.步骤s11:在不同时段采集羊群中羊只的视频信息;
    28.首先,在羊只身上进行编号,以便后续对羊只的数据集进行分类。其次,将多部摄像机置于高于羊只身高10-20cm上方,距离在围栏外1-2m,摄像头视野内羊只数量控制在20只以内为佳。在晴天、阴天等不同时段拍摄羊群24小时视频,利用网线、wifi技术等方法将视频文件传至服务器。
    29.步骤s12:按照预设截帧频率对视频信息进行截取,获取羊只图片,并进行特征点提取与匹配,对每只羊的面部数据进行融合,得到包含每只羊完整面部数据的图片;
    30.对采集到的视频文件利用adobepremierepro2019软件剪切掉摄像头采集到视频中的无效数据并保存,再利用python中opencv开源软件库将保存到的有效视频进行视频帧提取,截帧频率设为30,保存为jpg格式。
    31.利用多源视频流融合技术,将视频帧提取得到图片进行特征点提取点,根据各个摄像头摆放位置,利用立体视觉原理进行多组摄像机间的坐标变换与统一,结合拍摄视频数据的时间关联特性,实现多源视频数据的特征点匹配,将包含羊只面部信息的图片进行有效融合,实现多源视频数据的有效融合,最终得到包含羊只完整的面部信息图片。
    32.根据羊只身上的身份标签将同一只羊的所有的图片存入同一文件夹,文件夹名与羊只标签名相同。若图片中有多只羊,则将图片存入多个文件夹中,然后对数据集进行清洗,去除文件夹中模糊以及相似度过高的照片,每只羊保留600张照片。
    33.步骤s13:对文件夹中每只羊完整面部数据的图片进行平移、旋转增广操作,再对羊脸进行标注,得到数据集,按预设比例将其分成训练集和测试集。
    34.使用labelimg可视化图像标定工具对文件夹内照片中的羊脸进行标注,得到标注框,生成voc格式的数据集,如果类别较多,可将voc格式转换成coco数据集格式,由此得到最终的数据,并按照4:1的比例划分为训练集和测试集。
    35.在一个实施例中,上述步骤s2:构建基于yolov4的羊只面部识别神经网络模型,其中,基于羊只面部识别神经网络模型包括:input、backbone、neck和head:backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,并采用mish激活函数;neck作为加强特征提取网络,采用ssp与panet分别用于提取上下文特征和参数聚合;head根据标注框,使用kmeans++算法重新计算锚框大小,基于neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,计算最终的目标检测框,具体包括:
    36.步骤s21:构建backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,其中,cspdarknet53包括:1个卷积层以及5个resblock_body模块,其中resblock_body模块包括:2个卷积块、标准化和mish激活函数;
    37.构建backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,其结构如图2所示,该网络共有53层结构,输入input为416
    ×
    416
    ×
    3的图片,经过第一层卷积后特征层变为416
    ×
    416
    ×
    32,之后又有5个有一系列卷积、激活函数以及标准化构成的resblock_body大的卷积块,resblock_body会不断对图片进行下采样,图片的宽和高不断得到压缩,通道数不断得到扩张。其中,第一个resblock_body中包含一个resblock残差网络,输入会变为208
    ×
    208
    ×
    64的特征层。第二个resblock_body中包含两个resblock残差网络,输入会变为104
    ×
    104
    ×
    128的特征层。第三个resblock_body中包含八个resblock残差网络,输入会变为52
    ×
    52
    ×
    256的特征层。第四个resblock_body中包含八个resblock残差网络,输入会变为26
    ×
    26
    ×
    512的特征层。第五个resblock_body中包含四个resblock残差网络,输入会变为13
    ×
    13
    ×
    1024的特征层。
    38.resblock_body是构建cspdarknet53网络的核心,其中csp的结构如图3所示,图中part2为主干部分,由一系列残差网络的堆叠后对输入进行特征提取,另外一边part1部分类似于一个大的残差边结构,它可以跳过part2部分减少梯度的重复计算,将输入进行少量处理后直接与输出相堆叠。resblock_body本质上是由一次下采样和多次残差网络构成的大卷积块。首先利用零填充和一个步长为2x2的卷积块进行高和宽的压缩,然后建立一个大的残差边,这个大残差边可以绕过很多的残差结构,主干部分会进行循环,循环内部是残差结构。对于整个cspdarknet的结构块,就是一个大残差块+内部多个小残差块。resblock_body基础的残差网络由resblock构成。resblock由卷积、标准化加激活函数构成,resblock有两个卷积块,第一个卷积快卷积核大小为1
    ×
    1,第二个卷积快卷积核大小为3
    ×
    3,残差网络forward时,残差块由输入与两次卷积后的输出相加构成。resblock的激活函数由mish激活函数构成,公式如下所示:
    39.mish=x
    ×
    tanh(ln1+e
    x
    )
    40.其中,x为网络参数;
    41.mish函数图像如图4所示。本发明实施例采用mish激活函数,与relu相比较,mish函数无界,避免了由于封顶而导致的饱和。而且mish函数梯度更加平滑,平滑的激活函数允许信息更好的深入神经网络,从而得到更好的准确性和泛化能力。
    42.如图5所示,输入图片经过backbone主干特征提取网络之后,最后会获得三个有效特征层,即c3:(52
    ×
    52
    ×
    256)的有效特征层、c4:(26
    ×
    26
    ×
    512)的有效特征层、c5:(13
    ×
    13
    ×
    1024)的有效特征层,将这三个有效特征层输入neck加强特征提取网络,进行后续操作。
    43.步骤s22:构建neck作为加强特征提取网络,采用ssp用于增加感受野并分离出最重要的上下文和panet用于对ssp和不同backbone特征层的参数聚合,基于yolov4现有结构进行调整,通过将ssp的输出进行卷积并堆叠得到的s1,再经过卷积和上采样后与panet的一路输出p3进行5次卷积并堆叠后输出p5。p5与panet的另外两路输出p1和p3,共同作为后续head的输入;
    44.首先对主干特征提取网络中的第五个resblock_body输出的有效特征层c5:(13
    ×
    13
    ×
    1024)进行3次卷积,然后利用spp中池化核大小为5
    ×
    5,9
    ×
    9,13
    ×
    13池化层进行最大
    池化然后堆叠,得到池化的输出后进行3次卷积输入到panet结构中。
    45.panet是一种实例分割网络,可以反复提取特征。在yolov4网络中,对spp结构的最终输出s1以及主干特征提取网络中输出的第三个有效特征层c3:(52
    ×
    52
    ×
    256)和第四个有效特征层c4:(26
    ×
    26
    ×
    512)有效特征层使用了panet结构。
    46.spp结构中的最终输出s1进入panet中进行卷积+上采样操作,主干特征提取网络第四个输出的有效特征层c4:(26
    ×
    26
    ×
    512)进行一次卷积然后输入panet中,以上两个有效特征层s1和c4在panet中堆叠后进行1
    ×
    1、3
    ×
    3、1
    ×
    1、3
    ×
    3、1
    ×
    1五次卷积后得到有效特征层p2;主干特征提取网络第三个输出的有效特征层c3:(52
    ×
    52
    ×
    256)经过一次卷积后输入到panet中进行1
    ×
    1、3
    ×
    3、1
    ×
    1、3
    ×
    3、1
    ×
    1五次卷积,同时p2进行卷积+上采样,之后两个有效特征层进行堆叠得到有效特征层p1,对p1进行两个操作,分别是输出到yolo head和进行下采样,下采样之后与p2进行1
    ×
    1、3
    ×
    3、1
    ×
    1、3
    ×
    3、1
    ×
    1五次卷积并且堆叠得到p3,p3输出到head。对p3进行下采样,然后与s1进行1
    ×
    1、3
    ×
    3、1
    ×
    1、3
    ×
    3、1
    ×
    1五次卷积并堆叠后得到p4输出到head。
    47.步骤s23:构建head,包括若干个1
    ×
    1的卷积与3
    ×
    3的卷积的整合,并根据手工标注框,使用kmeans++算法重新计算多个不同大小的锚框大小,按照从小到大分配给head的输入p1、p3、p5所对应的特征层,每个特征层分配3个锚框,输出预测框,对预测框经过非极大抑制后,计算最终的目标检测框。
    48.yolov4采用同yolov3同样的head部分,为一系列1
    ×
    1的卷积与3
    ×
    3的卷积的整合,3x3卷积的作用是特征整合,1x1卷积的作用是调整通道数。
    49.如图5中yolohead部分所示,分别将backbone输出的c3层、c4层和c5层即形状分别为(52,52,256)、(26,26,512)、(13,13,1024)的三个特征层经过加强特征提取网络neck后接入yolohead,得到的特征图大小分别为13
    ×
    13,26
    ×
    26,52
    ×
    52。若使用的是20个类别的voc格式数据集,维度为(5+20)
    ×
    3=75;当类别较多的时候使用coco数据集共80个类,维度则为(5+80)
    ×
    3=255。其中的5代表5个参数:位置x,y,宽高w,h及置信度confidence。
    50.head内的得到的检测框进行锚框匹配时,锚框的大小是往往通过kmeans算法折中选取的检测框,对于一些特定问题中不同尺寸的物体检测效果并不理想,会产生误检、漏检或重复检测的问题。所以本发明实施例采用kmeans++算法重新训练锚框的大小。
    51.在一个实施例中,上述步骤s23中使用kmeans++算法重新计算多个不同大小的锚框大小,按照从小到大分配给head的输入p1、p3、p5所对应的特征层,每个特征层分配3个锚框,输出预测框,对预测框经过非极大抑制后,计算最终的目标检测框,具体包括:
    52.步骤s231:随机选取一个标注框作为初始的聚类中心c1;
    53.计算所有标注框的长和宽,长=右下角横坐标-左上角横坐标、宽=右下角纵坐标-左上角纵坐标,随机选取一个标注框作为初始的聚类中心c1;
    54.步骤s232:对每个样本点xi,分别求取xi与目前已存在的所有聚类中心之间的最短距离,用d(x表示,接着利用求取每个样本成为下一个聚类中心的概率,最后根据轮盘法选出下一个聚类中心;
    55.步骤s233:重复步骤s232,当得到k个聚类中心时则停止,找到与xi距离最小的聚类中心,将xi划分为该中心对应的类别之中;
    56.步骤s234:对每一个类别ci,利用重新计算该类别的中心;
    57.步骤s235:循环步骤s232~s233,当求取的聚类中心不再发生变化则停止;
    58.经过以上步骤,锚框得到重新训练,将训练好的锚框作为新的先验框,可以提高检测精度。
    59.步骤s236:根据锚框,对neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,得到最终的目标检测框。
    60.在一个实施例中,上述步骤s3:将中构建损失函数,使用羊脸面部数据进行预训练,将预训练后得到模型参数作为羊只面部识别神经网络模型的初始参数,具体包括:
    61.步骤s31:构建如公式(1)所示的均方差损失mse,模型训练过程中,在置信度损失函数与分类损失函数部分,用所构建的均方差损失mse代替原有yolov4模型中的交叉熵损失bce,以提高羊只面部识别神经网络模型训练时在复杂环境中对小目标的检测识别能力:
    [0062][0063]
    其中,ym为真实数据,为拟合数据,m为样本数目;
    [0064]
    步骤s32:使用羊脸面部数据对羊只面部识别神经网络模型进行预训练,使其能较好地提取羊只面部的本质特征,利用yolo模型中训练时的迁移学习思想,把预训练的结果作为羊只面部识别模型训练时的初始参数,使用训练集对其进行训练,以加快模型的收敛速度,得到训练好的羊只面部识别神经网络模型。
    [0065]
    为了加速模型的收敛速度,本发明实施例对于羊脸面部数据首先进行预训练,本发明采集了100只不同大小、性别、毛色的羊只面部图像共29000张,进行了100世代训练。模型经过大量羊只面部图片的预训练后,此时的模型能较好地提取羊只面部的本质特征。利用yolo中训练时的迁移学习思想,把预训练的结果作为羊只面部识别模型训练时的初始参数,这样在训练羊只面部识别神经网络模型时,能有效加快模型的收敛速度、提高模型性能。
    [0066]
    如图6所示,为本发明实施例中的基于yolov4的羊只面部识别神经网络模型,从数据集的构建、模型构建以及训练到最终的模型验证的整体流程示意图。
    [0067]
    本发明实施例对16只羊只采集,将15000张照片构成测试集,对羊只面部识别神经网络模型进行测试,得到结果如图7所示,其中,纵坐标表示不同的羊只,横坐标表示map指标,最终的平均map值为92.01%。
    [0068]
    本发明公开了一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,多源视频流融合技术,能有效解决数据集采集过程中羊舍内羊群之间互相遮挡的问题。本发明提供的方法为非接触式的识别方法,不会让羊只有应激反应。与传统特征点提取与分类方法不同,本发明提供的方法基于卷积神经网络的目标检测方法无需人工提取特征,它可以通过反复的特征提取和堆叠,获得目标更本质更丰富的本质特征,而且本发明提供的方法所需的系统规模较小、结构较为简单,因此具有较高的稳定性与较强的抗干扰能力,通用性强,对于被检测目标的形变,遮挡有较强的识别精度。
    [0069]
    实施例二
    [0070]
    如图8所示,本发明实施例提供了一种基于yolov4神经网络模型的羊舍内羊群个体身份识别系统,包括下述模块:
    [0071]
    获取数据集模块41,用于采集羊群中每只羊只的面部信息,对面部图片进行预处理,用标注框对羊脸进行标注,得到数据集,并划分为训练集和测试集;
    [0072]
    构建模型模块42,用于构建基于yolov4的羊只面部识别神经网络模型,其中,基于羊只面部识别神经网络模型包括:input、backbone、neck和head:backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,并采用mish激活函数;neck作为加强特征提取网络,采用ssp与panet分别用于提取上下文特征和参数聚合;head根据标注框,使用kmeans++算法重新计算锚框大小,基于neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,计算最终的目标检测框;
    [0073]
    训练模型模块43,用于建损失函数,使用羊脸面部数据进行预训练,将预训练后得到模型参数作为羊只面部识别神经网络模型的初始参数,使用训练集对其进行训练,得到训练好的羊只面部识别神经网络模型;最终将测试集输入训练好的羊只面部识别神经网络模型,对其性能进行评估。
    [0074]
    提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

    技术特征:
    1.一种基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,其特征在于,包括:步骤s1:采集羊群中每只羊只的面部信息,对面部图片进行预处理,用标注框对羊脸进行标注,得到数据集,并划分为训练集和测试集;步骤s2:构建基于yolov4的羊只面部识别神经网络模型,其中,所述基于羊只面部识别神经网络模型包括:input、backbone、neck和head:backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,并采用mish激活函数;neck作为加强特征提取网络,采用ssp与panet分别用于提取上下文特征和参数聚合;head根据所述标注框,使用k means++算法重新计算锚框大小,基于neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,计算最终的目标检测框;步骤s3:构建损失函数,使用羊脸面部数据进行预训练,将预训练后得到模型参数作为所述羊只面部识别神经网络模型的初始参数,使用所述训练集对其进行训练,得到训练好的羊只面部识别神经网络模型;最终将所述测试集输入所述训练好的羊只面部识别神经网络模型,对其性能进行评估。2.根据权利要求1所述的基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,其特征在于,所述步骤s1:采集羊群中每只羊只的面部信息,对面部图片进行预处理,用标注框对羊脸进行手工标注,得到数据集,并划分为训练集和测试集,具体包括:步骤s11:在不同时段采集羊群中羊只的视频信息;步骤s12:按照预设截帧频率对所述视频信息进行截取,获取羊只图片,并进行特征点提取与匹配,对每只羊的面部数据进行融合,得到包含每只羊完整面部数据的图片;步骤s13:对所述每只羊完整面部数据的图片进行平移、旋转增广操作,再对羊脸进行手工标注,得到数据集,按预设比例将其分成训练集和测试集。3.根据权利要求1所述的基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,其特征在于,所述步骤s2:构建基于yolov4的羊只面部识别神经网络模型,其中,所述基于羊只面部识别神经网络模型包括:input、backbone、neck和head:backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,并采用mish激活函数;neck作为加强特征提取网络,采用ssp与panet分别用于提取上下文特征和参数聚合;head根据所述标注框,使用k means++算法重新计算锚框大小,基于neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,计算最终的目标检测框,具体包括:步骤s21:构建backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,其中,所述cspdarknet53包括:1个卷积层以及5个resblock_body模块,其中resblock_body模块包括:2个卷积块、标准化和mish激活函数;步骤s22:构建neck作为加强特征提取网络,采用ssp用于增加感受野并分离出最重要的上下文和panet用于对ssp和不同backbone特征层的参数聚合,基于yolov4现有结构进行调整,通过将ssp的输出进行卷积并堆叠得到的s1,再经过卷积和上采样后与panet的一路输出p3进行5次卷积并堆叠后输出p5。p5与panet的另外两路输出p1和p3,共同作为后续head的输入;步骤s23:构建head,包括若干个1
    ×
    1的卷积与3
    ×
    3的卷积的整合,并根据所述手工标注框,使用k means++算法重新计算多个不同大小的锚框大小,按照从小到大分配给head的输入p1、p3、p5所对应的特征层,每个所述特征层分配3个锚框,输出预测框,对所述预测框
    经过非极大抑制后,计算最终的目标检测框。4.根据权利要求3所述的基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,其特征在于,所述步骤s23中使用k means++算法重新计算多个不同大小的锚框大小,按照从小到大分配给head的输入p1、p3、p5所对应的特征层,每个所述特征层分配3个锚框,输出预测框,对所述预测框经过非极大抑制后,计算最终的目标检测框,具体包括:步骤s231:随机选取一个所述标注框作为初始的聚类中心c1;步骤s232:对每个样本点x
    i
    ,分别求取x
    i
    与目前已存在的所有聚类中心之间的最短距离,用d(x)表示,接着利用求取每个样本成为下一个聚类中心的概率,最后根据轮盘法选出下一个聚类中心;步骤s233:重复步骤s232,当得到k个聚类中心时则停止,找到与x
    i
    距离最小的聚类中心,将x
    i
    划分为该中心对应的类别之中;步骤s234:对每一个类别c
    i
    ,利用重新计算该类别的中心;步骤s235:循环步骤s232~s233,当求取的聚类中心不再发生变化则停止;步骤s236:根据所述锚框,对neck的输出特征进行预测,对所生成的预测框经过非极大抑制后,计算最终的目标检测框。5.根据权利要求1所述的基于yolov4神经网络模型的羊舍内羊群个体身份识别方法,其特征在于,所述步骤s3中构建损失函数,使用羊脸面部数据进行预训练,将预训练后得到模型参数作为所述羊只面部识别神经网络模型的初始参数,具体包括:步骤s31:构建如公式(1)所示的均方差损失mse,模型训练过程中,在置信度损失函数与分类损失函数部分,用所构建的均方差损失mse代替原有yolov4模型中的交叉熵损失bce,以提高所述羊只面部识别神经网络模型训练时在复杂环境中对小目标的检测识别能力:其中,y
    m
    为真实数据,为拟合数据,m为样本数目;步骤s32:使用羊脸面部数据对所述羊只面部识别神经网络模型进行预训练,使其能较好地提取羊只面部的本质特征,利用yolo模型中训练时的迁移学习思想,把预训练的结果作为所述羊只面部识别模型训练时的初始参数,使用所述训练集对其进行训练,以加快模型的收敛速度,得到训练好的羊只面部识别神经网络模型。6.一种基于yolov4神经网络模型的羊舍内羊群个体身份识别系统,其特征在于,包括下述模块:获取数据集模块,采集羊群中每只羊只的面部信息,对面部图片进行预处理,用标注框对羊脸进行标注,得到数据集,并划分为训练集和测试集;构建模型模块,构建基于yolov4的羊只面部识别神经网络模型,其中,所述基于羊只面部识别神经网络模型包括:input、backbone、neck和head:backbone作为主干特征提取网络,在darknet53基础上加入cspnet构建cspdarknet53,并采用mish激活函数;neck作为加强特征提取网络,采用ssp与panet分别用于提取上下文特征和参数聚合;head根据所述标注框,使用k means++算法重新计算锚框大小,基于neck的输出特征进行预测,对所生成的
    预测框经过非极大抑制后,计算最终的目标检测框;训练模型模块:用于构建损失函数,使用羊脸面部数据进行预训练,将预训练后得到模型参数作为所述羊只面部识别神经网络模型的初始参数,使用所述训练集对其进行训练,得到训练好的羊只面部识别神经网络模型;最终将所述测试集输入所述训练好的羊只面部识别神经网络模型,对其性能进行评估。

    技术总结
    本发明涉及一种基于YOLOv4神经网络模型的羊舍内羊群个体身份识别方法及系统,其方法包括:S1:采集羊只面部信息,对面部图片进行预处理,用标注框对羊脸进行标注,得到数据集,并划分为训练集和测试集;S2:构建基于YOLOv4的羊只面部识别神经网络模型,包括:Input、Backbone、Neck和Head;S3:构建损失函数,使用羊脸面部数据进行预训练,使用训练集对其进行训练,将预训练后得到模型参数作为所述羊只面部识别神经网络模型的初始参数,使用训练集对其进行训练;将测试集输入训练好的YOLOv4的神经网络模型,对其性能进行评估。本发明提供的方法采用非接触式识别方法,成本低、精度高且安全有效,从而避免掉标以及羊只容易产生应激的问题。的问题。的问题。


    技术研发人员:于文波 穆昕钰 张春慧 宣传忠 张永安 马彦华 姬振生 武佩
    受保护的技术使用者:内蒙古农业大学
    技术研发日:2022.01.28
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-25306.html

    最新回复(0)