本发明涉及生物识别领域,具体涉及一种复杂牛场环境牛只检测方法。
背景技术:
1、我国畜牧业养殖正向规模化、信息化、精细化发展,集约化养牛逐步取代小规模养殖模式,确保养殖过程的精细化管理是精准养殖领域中的热点问题。为了实现基于机器视觉的牛只数量精准盘点,牛只目标检测是首先要解决的问题,如何实现复杂环境下牛只目标的准确检测是其关键。
2、传统动物目标检测常使用手工标记与肉眼识别的方法,工作强度大且识别计数效率低、错误率高,难以全面、准确地掌握动物群体的生产水平和个体状态,不能满足现代化农场管理的要求。有研究人员提出了一种相关滤波融合边缘检测的奶牛目标提取,结果表明,算法提取的目标与真实结果平均重叠率达到92.93%,但是在拥挤遮挡情况下目标提取结果仍有较大误差。还有一种利用高斯金字塔lk光流法实现对奶牛的目标定位及运动跟踪,提出改进的harris特征点检测算法,显著提升特征点提取效率,但此算法仅提取了像素级的特征点且算法会随着检测尺度的变化而改变,无法准确检测局部牛只。因此,上述传统方法在实际的复杂养殖场景中难以应用。
3、随着深度学习发展,深度学习的算法通过学习不同领域、场景、尺度的特征,实现了端对端的检测,具有良好的特征提取能力和泛化能力。有研究人员提出了一种基于浅层特征网络的改进ssd算法进行奶牛目标检测,将原始ssd算法的主干网络由vgg16替换为mobilenetv2,明显降低了网络的运算量,并改善了算法检测的实时性,但是这种基于cnn的网络只关注牛只局部特征之间的联系导致未能准确关注牛只全局特征点。还有一种基于e-dcn-cascade rcnn的牛群目标检测算法,提取牛身纹理特征以增大了牛身与周围背景的区分度,实现牛只多目标检测,但相较于yolov5s检测精度下降了3.17%,在拥挤局部情况下检测精度大幅下降。还有研究人员提出了一种基于lsrcem-yolo算法的肉牛多目标检测,实现了无遮挡情况下的肉牛多目标检测,该检测方法只选择了3个不同尺度的特征进行融合,由于其局部感受野的局限性,在拥挤遮挡及检测个体不完整的情况时无法准确进行目标检测。
4、在感受野方面,研究员们也开始着重解决感受野的局限性。基于cnn网络的牛只目标检测方法,由于其局部感受野的局限性,提取牛只特征时往往忽略了牛只图像的全局上下文信息,并不能很好的表征牛只个体。此类方法在牛只拥挤导致的遮挡以及牛只处于摄像头边缘位置导致的牛只个体不完整的情况下检测效果较差。transformer由于本身的全局感受野特性在检测分类网络中广泛使用,但是transformer缺乏对局部特征的关注。
技术实现思路
1、针对在复杂牛场环境下由于牛群拥挤,牛群遮挡、以及边缘局部个体无法准确检测等问题引起的牛只检测精度不高的难题。本发明公开了一种基于swin-transoformer(swt)-yolov5s的复杂牛场环境牛只检测算法。
2、本发明提供一种复杂牛场环境牛只检测方法,包括以下步骤:
3、s1、采集牛只的图片数据,对所述图片数据进行标注,得到训练集;
4、s2、建立基于swt-yolov5的复杂牛场环境牛只检测模型;
5、s3、使用步骤s1中得到的所述训练集,对所述步骤s2中基于swt-yolov5的复杂牛场环境牛只检测模型进行训练,得到训练好的牛只检测模型;
6、s4、获取待检测的牛只图片,输入训练好的牛只检测模型中进行牛只目标检测。
7、优选的,所述s3中,当总损失下降到不大于0.01时结束训练,所述总损失函数采用ciou_loss的回归方式,计算公式如下:
8、
9、其中iou表示真实框和预测框的交并比,b表示真实框的中心点,bgt表示预测框的中心点,ρ(b,bgt)表示真实框和预测框中心点之间的欧式距离,c表示真实框和预测框最小外接矩形的对角线距离,α为权重函数,v为度量长宽比相似性的参数;α和v的计算公式分别如下:
10、
11、
12、其中w、h表示真实框的宽和高,wgt和hgt表示预测框的宽和高。
13、优选的,所述s2中,所述基于swt-yolov5的复杂牛场环境牛只检测模型,包括特征提取骨干网络,记为swt-backbone、特征融合目标检测头,记为swt-head;所述swt-backbone用于牛只局部和全局特征提取;所述swt-head用于利用swt-backbone中得到的特征图提取牛只位置,生成检测框;
14、所述swt-backbone的结构从下到上包括:5层步长为2的conv模块和2层含残差的c3模块,双层sc-swt模块,一层sppf模块;
15、所述sc-swt模块由单层conv、wta模块、包括全连接层的mlp模块、双层ln及两块残差结构组成;所述sc-swt模块通过conv模块卷积融合牛只特征,得到特征图一,然后对特征图一进行layernorm归一化;通过wta模块实现局部注意力计算机制w-msa与全局注意力计算机制sw-msa交替进行,将归一化的特征图一分为不重叠的窗口进行信息交互,所述特征图经所述wta模块处理后,提取得到牛只特征a;将所述特征图一和牛只特征a进行第一次残差连接,再次归一化后输入mlp模块中处理,利用mlp模块中的全连接层提取得到牛只的全局与局部特征,作为牛只特征c,将牛只特征c输入第一块残差结构进行连接处理后,得到牛只特征d;用第二块残差结构将所述牛只特征d与牛只特征c进行残差连接,进一步增加网络深度;
16、所述swt-head包括1层nsc-swt模块,3层不含残差的c3模块和金字塔网络级联的目标检测头;
17、所述nsc-swt模块由单层conv、wta模块、包括全连接层的mlp模块、双层ln及两块残差结构组成;所述nsc-swt模块通过conv模块卷积融合牛只特征,得到特征图二,然后进行layernorm归一化;通过wta模块实现局部注意力计算机制w-msa与全局注意力计算机制sw-msa交替进行,将归一化的特征图二分为不重叠的窗口windows进行信息交互,所述特征图经所述wta模块处理后,提取得到牛只特征a’。将牛只特征a’再次进行归一化后输入mlp模块中处理,利用mlp模块中的全连接层提取得到牛只的全局与局部特征,得到牛只特征b。
18、由于swt-backbone骨干网络已尽可能加深网络完成了牛只主要特征信息的提取,于是nsc-swt采用不带残差结构的方式,不追求进一步加深网络而是回归关注swt-backbone骨干网络所提取特征中属于牛只的高语义层次全局特征与表征细节的局部特征,利用cnn的局部感受野和transformer的全局感受野,在检测筛选得到更全面、更精准的牛只特征的同时,筛除背景等干扰特征类。
19、所述金字塔网络由特征叠加结构和像素聚合结构组成,特征叠加结构记为fpn,像素聚合结构记为pan;
20、所述fpn通过2层步长为1的conv模块和两个上采样级联进行卷积,利用2层concat模块基于通道数进行自顶向下的特征图叠加融合;pan通过两层步长为2的conv模块进行下采样和卷积,利用2层concat模块基于通道数进行自底向上特征图叠加融合,使得顶层特征图包含牛只位置信息;将经fpn和pan处理后的结果进行融合,以此将swt-backbone骨干网络所提取的全局特征与局部特征进行多级特征融合,生成多尺度的特征金字塔;
21、swt-head通过nsc-swt模块的子模块wta高效交替进行w-msa/sw-msa,3层未含残差的c3模块利用局部感受野进行多层卷积融合,以此结合全局感受野和局部感受野特性,进一步检测筛选特征金字塔中属于牛只的高语义层次全局特征及表征细节的局部特征,生成更加精准的牛只特征图。特征图通过conv层进行通道数降维和特征图缩放后进入detect检测层,detect模块使用锚点法,在每个网络单元格上预测出多个预测框,同时预测每个预测框中包含的目标的类别和置信度。对于nsc-swt模块生成的精检特征图,detect层通过sigmoid激活函数生成一组位置信息、预测类别及对应置信度更加精准的预测框。
22、优选的,所述通过wta模块实现局部注意力计算机制w-msa与全局注意力计算机制sw-msa交替进行,具体包括:通过设置shfit_size参数的值来决定采用的注意力计算机制,将shfit_size大小设置为0/1交替,输入wta模块的特征图先进行w-msa再进行sw-msa,w-msa将特征图分成互不重叠的windows,每块windows内部单独做自注意力计算,利用局部感受野提取每块windows中的牛只特征,即牛只局部特征。
23、所述特征图的大小为2m×2m,sw-msa对特征图进行窗口划分,在所述特征图的正中间划分出大小为m×m的1组窗口,所述特征图的4个顶点处各划分出大小为的4组窗口,所述特征图上除前5组窗口所在区域之外,在特征图的4个边缘部分,还存在相同大小为的4个区域,各划分为一组窗口,在所述特征图上划分得到9组互不重叠窗口,将所述特征图通过9组窗口完全覆盖,并为各所述窗口内的patchs按如下方式设置pid,9组窗口内的patchs的pid,按从上到下,从左到右的窗口排列顺序依次为0、1、2、3、4、5、6、7、8;
24、通过循环移位cyclic shift将特征图pid为0、1、2、3、6的patchs移动到右下位置,重新组合成3个大小为m×m的窗口,此时共有4个大小为m×m的窗口,此时pid从上到下,从左到右的顺序依次为4、5、3、7、8、6、1、2、0;新组成窗口中不同pid的patchs通过mask矩阵进行自注意力计算,最后恢复窗口在特征图中的原始位置;通过交替进行w-msa和sw-msa将特征图中不同位置的牛只特征进行信息交互,以实现充分提取牛只全局特征和局部特征。
25、优选的,所述s1中,所述采集牛只的图片数据,具体包括:在不同的光照条件下和同一拍摄高度下拍摄得到牛只视频,利用摄像头流实时截取,对所述牛只视频进行逐帧截取,得到牛只的图片数据,为了实现牛只的多角度检测,在拍摄牛只视频时,对同一只被拍摄视频的牛,保证同一拍摄高度下,在通道和牛棚两种不同的场景下进行视频拍摄。
26、本发明有益效果如下:
27、本发明提出一种swin-transoformer(swt)-yolov5s网络,利用sc-swt模块关注全局特征的特点,结合关注局部特征的含残差多层卷积模块增加网络的深度和感受野,使模型充分提取牛只的全局特征与局部特征。然后提出了基于not shortcut(nsc)-swt与金字塔网络级联的特征融合目标检测头swt-head,使模型更准确的检测判别特征金字塔中高语义层次的牛只全局特征及表征牛只细节的局部特征,同时高效去除背景环境的特征干扰,提升牛只目标检测精度,解决复杂环境下牛只拥挤及边缘局部个体无法准确检测问题,以期得到一种复杂场景下检测精度较高的牛只检测模型,为精细化牧场牛只养殖提供技术支持。
1.一种复杂牛场环境牛只检测方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种复杂牛场环境牛只检测方法,其特征在于,所述s3中,当总损失下降到不大于0.01时结束训练,所述总损失函数采用ciou_loss的回归方式,计算公式如下:
3.如权利要求1所述的一种复杂牛场环境牛只检测方法,其特征在于,所述s2中,所述基于swt-yolov5的复杂牛场环境牛只检测模型,包括特征提取骨干网络,记为swt-backbone、特征融合目标检测头,记为swt-head;所述swt-backbone用于牛只局部和全局特征提取;所述swt-head用于利用swt-backbone中得到的特征图提取牛只位置,生成检测框;
4.如权利要求3所述的一种复杂牛场环境牛只检测方法,其特征在于,所述通过wta模块实现局部注意力计算机制w-msa与全局注意力计算机制sw-msa交替进行,具体包括:通过设置shfit_size参数的值来决定采用的注意力计算机制,将shfit_size大小设置为0/1交替,输入wta模块的特征图先进行w-msa再进行sw-msa,w-msa将特征图分成互不重叠的windows,每块windows内部单独做自注意力计算,利用局部感受野提取每块windows中的牛只特征,即牛只局部特征;
5.如权利要求1所述的一种复杂牛场环境牛只检测方法,其特征在于,所述s1中,
