本发明涉及人工智能、智慧畜牧、bim、计算机视觉技术领域,具体涉及一种基于枪球联动的牛反刍行为检测方法。
背景技术:
牛的反刍行为通常有一定规律性,如果出现患病、过度疲劳和外来刺激等情况,可能引起反刍行为的减弱或完全停止。反刍的停止会导致食物滞留在瘤胃内,往往由于发酵所产生的气体排不出去,而引起瘤胃膨胀。因此,对牛反刍行为进行监测十分重要。
对于牛反刍行为的监测技术中,一些方法给牛佩戴相应设备的方法,通过监测牛嘴部动作,并进行一定的后处理,基于其动作重复的时序特征得到牛反刍行为的监测结果。该方法的缺陷在于,设备的佩戴会导致牛的应激反应,而且为所有牛佩戴设备成本非常大。
一些方法提出了通过采集牛反刍和进食时的声音信号,通过对声音信号的处理,得以区分牛的反刍行为和进食行为。该方法的缺点在于采集的声音中噪声难以处理,监测精度不高。
还有一些方法提出了通过图像处理对摄像头采集的图像,只采集牛脸部分进行分类。这些方法的缺点在于对环境及场景要求较高,需要大量高分辨率摄像头,并要求牛的位姿一直处于相对静止的状态,这些要求显然过于理想,因此方案实用性较差,而且这些方法仅提出粗略的进行分类的思想从而判断是否正在反刍,其监测精度难以保证。
技术实现要素:
本发明的目的在于针对上述现有技术存在的缺陷,提出一种基于枪球联动的牛反刍行为检测方法,提高了牛反刍行为的检测效率和检测精度。
一种基于枪球联动的牛反刍行为检测方法,该方法包括:
结合牛养殖舍三维空间信息,构建牛养殖舍建筑信息模型;
将枪机摄像头实时采集的养殖舍图像输入牛长时停留检测网络,得到牛关键点热力图;
对时序上连续的多帧牛关键点热力图进行基于遗忘系数的热图叠加,得到叠加后的牛停留热度图;
设定停留热度阈值,当存在像素点值大于停留热度阈值,则该像素位置判断为长时停留位置,根据单应性矩阵计算出该像素点在牛养殖舍建筑信息模型地面坐标系的坐标作为目标坐标,判断目标坐标是否位于食槽感兴趣区域,若否,则向球机发送调用指令;
球机采用rgb-d摄像头,接收到调用指令以及目标坐标后,调整位姿,将图像中心调整到目标坐标并自动调整焦距,采集目标区域图像;
将球机摄像头实时采集的目标区域图像输入牛面部检测网络,得到牛面部关键点热力图;
对牛面部关键点热力图进行后处理得到牛面部关键点坐标,结合深度信息,将关键点投影到三维牛面部模型中,根据下嘴唇运动变化判断是否正在进行咀嚼行为,若正在进行咀嚼行为,则判定牛正在进行反刍行为;
持续进行监测,统计牛反刍行为的持续时间;
结合webgis技术对牛养殖舍建筑信息模型进行可视化,并实时更新养殖舍图像以及牛反刍行为检测结果。
牛面部关键点包括左眼中心点、右眼中心点、鼻子中心点以及下嘴唇中心点。
根据下嘴唇运动变化判断是否正在进行咀嚼行为具体为:
将左眼中心点指向右眼中心点的向量设为向量
设置角度阈值m,当夹角大于等于阈值m时,判断该帧图像为嘴部张开动作,统计嘴部张合动作规律交替出现的时间,若统计时间大于时间阈值t,则判断牛正在进行咀嚼行为。
牛长时停留检测网络包括:
停留检测编码器,对养殖舍图像进行编码提取特征,输出第一特征图;
停留检测解码器,对第一特征图进行解码,输出牛关键点热力图。
基于遗忘系数的热图叠加的具体方法为:
x=αx+(1-α)x′,
其中x为当前帧牛关键点热力图结果,x′为之前帧累加结果,x为累加计算结果,即牛停留热度图,(1-α)为遗忘系数。
调整位姿以及自动调整焦距的方法为:
计算旋转前相机中心到图像中心点的向量
根据目标位置的深度信息得到距离信息,进行自动调焦。
牛面部检测网络的训练方法为:
使用模拟器模拟不同的牛和相机位姿组合拍摄的图像,构建训练数据集;
对训练集进行人工标注,以牛面部关键点为中心,通过高斯核卷积生成的一个热斑进行标注;
损失函数采取均方差损失函数,利用随机梯度下降法进行网络的训练。
牛面部关键点检测网络包括:
面部识别编码器对图像进行特征提取,得到第二特征图;
面部识别解码器对第二特征图进行上采样重构,得到牛面部关键点热力图。
本发明与现有技术相比,具有以下有益效果:
1.反刍行为一般发生在静止休息时,本发明根据牛长时停留检测结果调用球机进行反刍行为监测,不仅更贴合实际,而且避免了无效检测,降低了计算量。
2.本发明结合枪球联动技术,对枪机采集的图像对牛长时停留进行检测,并调用球机对获取的更加细节的目标位置牛图像进行面部姿态检测,仅使用少量枪机、球机不仅可以实现大范围牛舍内牛反刍行为检测,而且提高了牛反刍行为检测精度。
3.本发明基于深度学习技术设计了牛停留检测网络,对牛身体中心点进行检测,相比于传统的基于包围框的分析方法,不仅抗遮挡效果好,而且能够得到更加准确的牛停留位置,减少建筑信息模型中数据存储量。
4.本发明对牛关键点热力图进行基于时序上的遗忘叠加分析,从而得到牛停留热度,计算方法简单,表征效果好,能从时序上反映一段时间内牛停留时长,另一方面基于遗忘系数方法,能够有效防止停留统计结果出现大范围震荡。
5.本发明以牛两只眼睛中心点、鼻子中心点构成的平面的法向量作为参考向量,该向量在牛进行咀嚼动作时几乎是不发生变化的,以此法向量为参考向量计算下嘴唇中心点的变化角度,能够准确地记录唇部角度变化。
6.本发明基于计算机视觉技术,对摄像头采集的图像进行分析得到牛反刍行为的检测结果,相比于传统的佩戴设备,不仅成本低而且能够避免牛的应激反应。
7.本发明结合建筑信息模型技术,构建牛养殖舍建筑信息模型,能够整合各种建筑信息、检测信息,提高了智慧畜牧模型信息集成能力。
8.本发明结合建筑信息模型技术与webgis技术,对养殖舍以及实时监测结果进行可视化,不仅方便监管人员监控,而且可视化效果好。
附图说明
图1为本发明方法框架图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于枪球联动的牛反刍行为检测方法。图1为本发明方法框架图。下面通过具体实施例来进行说明。
实施例1:
bim即建筑信息模型,能够整合各种建筑信息,实现全方位立体的建筑监管。建筑信息模型技术信息整合能力强,而且可以结合webgis技术实现良好的可视化效果。本发明结合建筑信息模型技术,对牛养殖舍图像进行分析。
结合养殖舍各种建筑信息,建立三维建筑空间模型,构建牛养殖舍建筑信息模型。养殖舍各种建筑信息包括围栏信息、过道信息、食槽信息等用于养殖舍三维空间建模所需的信息。养殖舍bim还包括枪机的位姿信息、球机位姿信息,以便将实时拍摄的图像投影至养殖舍bim。
牛养殖舍bim可以通过信息交换模块进行bim信息处理和数据交换。通过信息交换模块,养殖舍区域建筑信息模型可以获得实时的相机感知信息即相机图像,其他处理计算单元可以获得养殖舍相关信息以便进行数据计算,例如获得食槽感兴趣区域信息。
本发明的主要目的为实现牛反刍行为的检测,输出的结果为牛反刍行为检测结果。枪机可以获得大范围图像,球机可以获得小范围细节图像,为了提高牛反刍行为的检测准确率,本发明基于枪球联动技术进行检测。在本实施例中,枪机设置在舍区入口棚顶处,以斜俯视视角拍摄舍区内图像,且能够拍摄到整个养殖舍区;球机设置在两侧牛栏中心点的棚顶处,其位置固定,但可以旋转,而且可以调节焦距。
枪机为固定位姿,将枪机摄像头实时采集的养殖舍图像输入牛长时停留检测网络,经停留检测编码器、停留检测解码器进行分析,得到牛关键点热力图。停留检测编码器对枪机采集的养殖舍图像进行编码提取特征,输出第一特征图;停留检测解码器对第一特征图进行解码,输出牛关键点热力图,与原图等大。牛长时停留检测网络的关键点为牛身体的中心点,以该点代表一头牛。
牛长时停留检测网络的训练方法为:以枪机采集的牛养殖舍区域内多帧图像作为训练数据集。对训练集进行人工标注,具体为对以关键点为中心,通过高斯核卷积生成的一个热斑进行标注。关键点具体为牛身体中心点一类。损失函数采取均方差损失函数,利用随机梯度下降法进行网络的训练。
对时序上连续的多帧牛关键点热力图进行基于遗忘系数的热图叠加,得到叠加后的牛停留热度图。
对多帧牛关键点热力图进行时序上的热度叠加,在本发明中按时序一秒一帧选取牛关键点热力图进行叠加,实施者可结合实际情况采用合适的选帧方式,但需保证是按照时间序列选取的。热度叠加的方法具体为通过遗忘系数进行叠加,利用遗忘系数进行热度叠加操作的计算公式具体为:
x=αx+(1-α)x′
其中x为当前帧牛关键点热力图结果,x′为之前帧累加结果,x为累加计算结果,即牛停留热度图,(1-α)为遗忘系数。本发明中α取0.05。
设定停留热度阈值,当存在像素点值大于停留热度阈值,则该位置判断为长时停留位置,根据单应性矩阵计算出该像素点在牛养殖舍建筑信息模型地面坐标系的坐标作为目标坐标,判断目标坐标是否位于食槽感兴趣区域,若是则向球机发送调用指令。对叠加后的牛停留热度图进行阈值化操作,设定一个阈值,当某一像素点的值超过该阈值时,该位置判断为长时停留。当判断为长时停留时,结合bim信息得到停留位置的bim地面平面坐标,判断目标坐标是否位于食槽感兴趣区域,若是,对球机发送调用指令。因此,牛养殖舍bim中存储有食槽感兴趣区域信息,通过食槽区域的地面坐标点集划定。
枪机位姿固定,因此,可以假设枪机的相机矩阵已知,通过常规的标定方法,例如棋盘标定法即可得到。由此得到枪机图像平面和bim地面平面间的单应性矩阵。基于该单应性矩阵,可通过图像坐标点得到bim地面平面坐标点。
球机采用rgb-d摄像头,接收到调用指令以及目标坐标后,调整位姿,将图像中心调整到目标坐标并自动调整焦距,采集目标区域图像。
球机位置固定,因此,对于外参矩阵的求解,仅需要求得旋转矩阵。设球机起始位姿已知,旋转后以目标点作为图像中心点,也即光心。通过旋转前相机中心到图像中心点(已知)的向量
球机自动调焦的方法可根据深度信息得到距离信息并据此自动调焦,其方法是公知的,现已应用到各类相机、手机摄像头中,在此不作赘述。
将球机摄像头实时采集的目标牛图像输入牛面部检测网络,经面部识别编码器、面部识别解码器进行分析,得到牛面部关键点热力图。面部识别编码器对球机采集的图像进行特征提取,得到第二特征图;面部识别解码器对第二特征图进行上采样重构,得到牛面部关键点热力图。其中,关键点为左眼中心点、右眼中心点、鼻子中心点以及下嘴唇中心点四类,以四个通道的形式输出。
牛面部检测网络的训练方法如下。在模拟场景下,不同牛的位姿、相机的不同位姿,由于相机可自动调焦,因此无需考虑图像内近大远小的情况,以不同的牛和相机位姿组合拍摄的图像作为训练数据集。上述模拟器和对于模拟场景下牛的三维建模,实施者可自行选择,在此不作限制。模拟器可选择opengl、unity3d、虚幻等模拟引擎;三维建模的方法可选择3dmax、maya、ug等建模方法。对训练集进行人工标注,具体为对以关键点为中心,通过高斯核卷积生成的一个热斑进行标注。关键点类别为四类,分别是左眼中心点、右眼中心点、鼻子中心点以及下嘴唇中心点。其中,对于遮挡的关键点,按照经验信息对其进行手工标注,不在图像范围内的点不需要标注。需要说明的是,本发明实施的目的为牛反刍行为的检测,牛咀嚼动作的下嘴唇移动足够大,因此标注时的精度控制在一定范围即可,不要求过高的精度。损失函数采取均方差损失函数,利用随机梯度下降法进行网络的训练。
将牛面部关键点热力图经过后处理,得到关键点坐标,后处理的方法是通过softargmax得到关键点的图像坐标。结合深度depth信息,将关键点投影到三维的牛模型中。得到模型中的四个关键点的三维坐标信息。根据下嘴唇运动变化判断是否正在进行咀嚼行为。
将左眼中心点指向右眼中心点的向量设为向量
需要说明的是,牛的面部在咀嚼状态与静止状态的嘴部姿态差别足够大,因此采用向量
设定一个阈值m,m为角度阈值,当某帧图像处理后的θ≥m时,判断该帧图像为嘴部张开动作。为了防止误检测,可以以三帧为一个单位,对单位内每帧图像处理后输出的θ作均值处理,再与阈值比较。采集连续时间序列的多帧图像处理后,当面部的张合动作按时序有规律交替出现时,设定一个时间阈值t,重复时间超过阈值t时,判断牛正在进行咀嚼行为。具体在统计时,可以统计张合频率从而判断是否规律出现张合动作。
以停留位置不在食槽区域作为事件a,以停留位置牛正在进行咀嚼行为作为事件b,当事件a和事件b同时发生,则判定为牛正在进行反刍行为。前面已经判断过是否在食槽区域,因此如果判断结果为牛正在进行咀嚼,则判定为反刍行为。
持续进行监测,统计牛反刍行为的持续时间。为了直观的呈现出系统输出的信息,本发明通过webgis技术对模型中的多种信息进行可视化处理,并实时更新养殖舍图像以及牛反刍行为检测结果。牛反刍行为检测结果包括反刍行为持续时间。将结果利用webgis进行可视化处理,将网络输出结果作为信息上传到webgis中,监管人员可在web上进行检索、查询和分析,便于监管人员了解牛反刍行为的出现情况,可以辅助养殖者决策,决定何时让牛运动、清洗牛圈等。
以上实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。