一种基于多目标追踪的生猪健康状态判断方法及相关设备与流程



1.本发明涉及目标追踪技术领域,特别涉及一种基于多目标追踪的生猪健康状态判断方法及相关设备。


背景技术:



2.过去,规模性生猪养殖场中多依靠人工观测生猪行为、定期测量生猪体温等方式判断生猪的健康状况,这种方式具有实时性差、主观性高、误检率高的特点,而随着物联网技术和机器学习技术的不断发展,目前越来越多的规模性生猪养殖场开始采用智能硬件实时监测生猪的各项身体数据。相比于生猪rfid(rfid:radio frequency identification,中文名为无线射频识别即射频识别技术,是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,利用无线射频方式对记录媒体(电子标签或射频卡)进行读写,从而达到识别目标和数据交换的目的)耳标这种接触式传感器监测方法,利用计算机视觉技术对摄像头获取的生猪图像数据进行处理从而实现对生猪运动量、生猪行为实时监测的非接触式方法对于生猪生活习性影响更小,同时成本更为低廉。
3.目前通过深度学习技术实现对于生猪个体的多目标追踪已经取得了良好效果,然而,以上工作对于如何通过多目标追踪技术获取的生猪运动信息实现对于生猪健康状态的检测并没有提及,或者只是简单的人为选定一个生猪活动量的阈值判断生猪健康情况,即导出生猪的运动距离量后,根据文献资料和饲养员养殖经验人为选定生猪运动距离阈值,对生猪健康进行评级打分;这种方式不仅在生猪品种不同、生猪年龄、养殖地域不同或者养殖季节不同时,误差极大;同时,由于患病生猪的相关数据集非常少,有监督学习技术同样无法应用生猪健康状态检测领域中。
4.因而现有技术还有待改进和提高。


技术实现要素:



5.本发明的主要目的在于提供一种基于多目标追踪的生猪健康状态判断方法及相关设备,旨在解决现有技术中无法通过多目标追踪技术获取的生猪运动信息实现对于生猪异常健康进行检测的问题。
6.为了达到上述目的,本发明采取了以下技术方案:
7.一种基于多目标追踪的生猪健康状态判断方法,所述基于多目标追踪的生猪健康状态判断方法包括以下步骤:
8.将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理;
9.将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据;其中,所述检测数据包括:物体种类、物体位置和置信度数据;
10.将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检
测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息;
11.根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵;其中,所述运动指标包括:运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度;
12.利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态。
13.所述基于多目标追踪的生猪健康状态判断方法中,所述将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理的步骤包括:
14.利用摄像头对一个栏位内多头待检测生猪采集多段rgb视频数据;
15.将所述rgb视频数据拆分为预设时长的视频序列,并利用所述中值滤波算法和所述视频掩模操作对所述视频序列进行预处理。
16.所述基于多目标追踪的生猪健康状态判断方法中,所述将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据的步骤具体包括:
17.将经过预处理后的视频序列输入到初始目标检测模型中,并调整模型参数直至误差值低于设定阈值,得到预先训练后的目标检测模型;
18.将经过增强处理后的视频序列输入到预先训练后的目标检测模型中,输出所述检测数据。
19.所述基于多目标追踪的生猪健康状态判断方法中,所述将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息的步骤具体包括:
20.对初始帧检测数据创建对应的追踪框,将卡尔曼滤波器的运动变量初始化,利用所述卡尔曼滤波器预测下一帧检测数据的追踪框后,计算下一帧检测数据的目标检测框和下一帧检测数据的追踪框的马氏距离;
21.将所述目标检测框中rgb图像输入到预先训练的表观特征提取模型中,计算余弦距离,根据所述余弦距离、所述马氏距离和预设门限矩阵阈值计算出代价矩阵;
22.将所述代价矩阵输入到匈牙利算法中,对上一帧卡尔曼滤波器预测的追踪框和下一帧的目标检测框进行匹配,得到匹配成功的第一追踪框、匹配失败的第一检测框和匹配失败的第二追踪框;
23.将匹配成功的第一追踪框的位置信息输入到卡尔曼滤波器中,分别计算匹配失败的第一检测框和匹配失败的第二追踪框的iou阈值,并利用匈牙利算法进行匹配,得到匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框;
24.分别对匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框进行相应地处理;
25.利用卡尔曼滤波器更新均值和协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息。
26.所述基于多目标追踪的生猪健康状态判断方法中,所述根据所述帧编号、所述待
检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵的步骤具体包括:
27.根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标;
28.将n只待检测生猪的相同类的运动指标分别提取出来组成五类第一运动指标特征向量后,利用五类第一运动指标特征向量组成五个第一数据矩阵;其中,每一个第一数据矩阵的长度为n个。
29.所述基于多目标追踪的生猪健康状态判断方法中,所述利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态的步骤具体包括:
30.分别计算每类所有第一运动指标特征向量的均值,并分别计算在同一类中每个第一运动指标特征向量与所在类第一运动指标特征向量的均值之间的差值;
31.由五类差值组成五类第二运动指标特征向量后,利用五类第二运动指标特征向量组成五个第三数据矩阵;其中,每一个第三数据矩阵的长度为n个;
32.求解所述第三数据矩阵的协方差矩阵,使用特征值分解方法计算所述协方差矩阵的特征值和特征向量;其中,所述特征向量为新坐标轴方向、数据的旋转方向或者新的主成分方向;所述特征值为所述检测数据在对应新坐标轴上投影的方差大小,或者所述检测数据对应特征向量上包含的信息量;
33.将所述特征值按从大到小进行排序,取排序后的特征值前两大的特征向量组成第四数据矩阵,并将所述第一数据矩阵和所述第四数据矩阵进行矩阵乘法,得到所述第二数据矩阵;
34.将所述第二数据矩阵进行拆分得到数据集,将预设比例的数据集作为训练数据集输入到经过训练后的异常检测模型中进行预测,输出所述待检测生猪的异常健康状态。
35.所述基于多目标追踪的生猪健康状态判断方法中,所述分别对匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框进行相应地处理的步骤具体包括:
36.将匹配成功的第三追踪框的位置信息输入到所述卡尔曼滤波器中,对匹配失败的第二检测框新增追踪框;
37.若所述第四追踪框未与其他任何帧检测数据的目标检测框匹配成功,则所述第四追踪框进入不确定态;
38.若所述第四追踪框在连续三帧检测数据内均分别未与当前检测框匹配到且超过最大等待时间,则删除所述第四追踪框;
39.若所述所述第四追踪框与其他任何帧检测数据的目标检测框匹配成功过,则所述第四追踪框进入确定态。
40.所述基于多目标追踪的生猪健康状态判断方法中,所述利用卡尔曼滤波器更新均值和协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息的步骤具体包括:
41.根据匹配成功的第一追踪框的位置信息和匹配成功的第三追踪框的位置信息更新均值和协方差矩阵;
42.进入不确定态的第四追踪框在连续三帧检测数据内与新增的追踪框匹配到,则不
确定态的第四追踪框转变为确定态;
43.直至对所有检测数据进行关联操作完毕,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,并以包含按行组织的文本形式保存。
44.一种基于多目标追踪的生猪健康状态判断系统,所述基于多目标追踪的生猪健康状态判断系统包括:
45.拆分和预处理模块,用于将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理;
46.检测数据输出模块,用于将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据;其中,所述检测数据包括:物体种类、物体位置和置信度数据;
47.数据关联模块,用于将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息;
48.运动指标计算模块,用于根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵;其中,所述运动指标包括:运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度;
49.异常健康状态输出模块,用于利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态。
50.一种计算机可读存储介质,所述计算机可读存储介质存储有基于多目标追踪的生猪健康状态判断程序,所述基于多目标追踪的生猪健康状态判断程序被处理器执行时实现如上所述的基于多目标追踪的生猪健康状态判断方法的步骤。
51.相较于现有技术,本发明提供的一种基于多目标追踪的生猪健康状态判断方法及相关设备,所述方法包括:将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列后,进行预处理操作;将预处理后的视频序列输入到预先训练后的目标检测模型中;将得到的检测数据输入到deepsort追踪模型后进行逐帧的数据关联操作,根据输出的每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标后组成五个第一数据矩阵;对第一数据矩阵进行降维处理后,将得到的第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态,从而利用多目标追踪技术获取的五类运动指标等生猪运动信息,实现对于生猪异常健康进行检测。
附图说明
52.图1为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例的流程图;
53.图2为本发明提供的基于多目标追踪的待检测生猪健康状态判断方法的整体流程图;
54.图3为本发明提供的视频掩膜操的效果图;
55.图4为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例中步
骤s100的流程图;
56.图5为本发明提供的目标检测模型的训练示意图;
57.图6为本发明提供的一个待检测生猪数据视频在不同6帧数据上标注的展示结果;
58.图7为本发明提供的对90%的数据增强后的目标检测原始图像数据集进行第二次标注的效果图;
59.图8为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例中步骤s200的流程图;
60.图9为本发明提供的deepsort追踪模型的具体结构示意图;
61.图10为本发明提供的表观特征模型计算和数据关联的流程图;
62.图11为本发明提供的经过训练后的表观特征提取模型的训练损失下降图;
63.图12为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例中步骤s300的流程图;
64.图13为本发明提供的目标追踪模型训练过程示意图;
65.图14为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例中步骤s350的流程图;
66.图15为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例中步骤s360的流程图;
67.图16为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例中步骤s400的流程图;
68.图17为本发明提供的8只待检测生猪的运动轨迹图;
69.图18为本发明提供的8只待检测生猪的运动轨迹的追踪效果图;
70.图19为本发明提供的8只待检测生猪移动距离的对比直方图;
71.图20为本发明提供的id号为7的待检测生猪的运动速度折线图;
72.图21为本发明提供的id号为7的待检测生猪的运动加速度折线图;
73.图22为本发明提供的单只待检测生猪在一个视频帧中的运动平均速度的示意图;
74.图23为本发明提供的单只待检测生猪在一个视频帧中的运动平均加速度的示意图;
75.图24为本发明提供的单只待检测生猪在一个视频帧中的最大加速度的示意图;
76.图25为本发明提供的单只待检测生猪在一个视频帧中的最大速度的示意图;
77.图26为本发明提供的运动数据提取部分的流程图;
78.图27为本发明提供的基于多目标追踪的生猪健康状态判断方法的较佳实施例中步骤s500的流程图;
79.图28为本发明提供的使用pca方法进行降维和重新组合后的运动特征的二维散点图;
80.图29为本发明提供的pac数据降维和异常检测模型训练过程的流程图;
81.图30为本发明提供的奇异值检测结果示意图;
82.图31为本发明提供的预测结果的混淆矩阵示意图;
83.图32为本发明提供的基于多目标追踪的生猪健康状态判断系统的架构关系图。
具体实施方式
84.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
85.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
86.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
87.当生猪感染如非洲猪瘟等传染性疾病时,往往会出现运动量减少、扎堆聚集、饮食减少、肤变红等现象。本发明提出一种基于多目标追踪的生猪健康状态判断方法,属于一种结合生猪运动信息和外观特征的生猪异常健康判断方法,首先利用改进后的deepsort追踪算法,提取生猪每帧的中心点坐标,在剔除由于deepsort追踪算法抖动而出现的异常点后,将相邻两帧之间的运动近似为匀速直线运动,计算出生猪的运动距离、运动瞬时速度、运动瞬时加速度、平均运动速度和平均加速度,对其使用主成分分析方法进行数据降维。同时将每一帧中每个生猪个体的rgb图像抠出,利用一个6层的卷积神经网络对其进行特征提取,提取出6维的特征向量。最后,将生猪个体外观特征向量和运动数据进行数据归一化后,输入到训练好的异常网络模型中,判定生猪健康是否处于异常状态。
88.那么,本发明提供了一种基于多目标追踪的生猪健康状态判断方法及相关设备。本发明中通过首先对有关待检测生猪的视频数据拆分为预设时长的视频序列进行预处理后,输入到deepsort追踪模型中进行逐帧的数据关联操作,然后,根据输出的每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,最后,利用运动指标组成五个第一数据矩阵后进行降维处理,并将得到的第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态,从而实现了通过多目标追踪技术获取的生猪运动信息实现对于生猪异常健康进行检测。
89.下面通过具体示例性的实施例对基于多目标追踪的生猪健康状态判断方法设计方案进行描述,需要说明的是,下列实施例只用于对发明的技术方案进行解释说明,并不做具体限定:
90.请参阅图1,本发明提供的一种基于多目标追踪的待检测生猪健康状态判断方法,所述基于多目标追踪的待检测生猪健康状态判断方法包括以下步骤:
91.s100、将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理。
92.具体地,本发明中整个基于多目标追踪的待检测生猪健康状态判断方法可以分为三大部分:第一、目标检测部分;第二、目标追踪部分;第三、异常检测部分,所述基于多目标追踪的待检测生猪健康状态判断方法的整体流程图如图2所示。
93.其中,所述目标检测部分包括目标检测模型训练部分和目标检测模型预测部分,在对目标检测模型进行预测前,需要获取预测输入数据并对输入数据进行预处理操作,具体为:
94.在对所述待检测生猪的生理健康进行检查时,首先需要采集到的有关待检测生猪的视频数据,并拆分为预设时长的视频序列,再对所述视频序列进行中值滤波算法和视频掩模操作等预处理操作,从而方便了对视频序列进行处理。
95.其中,所述中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点;中值滤波算法的作用是为了减少图像噪声对待检测生猪目标检测和追踪的影响,把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点,在尽可能保留图像边缘特征的期刊下滤去图像中的随机噪声,本实施例中选择的核尺寸为5。
96.而视频掩膜操作则是通过手动标注出待监测的待检测生猪栏位外区域,将其全部替换完黑,以分离出待监测的待检测生猪栏位区域,防止其他栏位的待检测生猪对多目标追踪产生影响,作用主要是对待观测的猪圈进行保留,对其他猪圈进行屏蔽,以防其他猪圈中的非待检测生猪对待检测生猪产生影响,视频掩膜操的效果图如图3所示,本实施例中以8只待检测生猪为待检测目标为例。
97.更进一步地,请参阅图4,所述s100、将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理的步骤包括:
98.s110、利用摄像头对一个栏位内多头待检测生猪采集多段rgb视频数据;
99.s120、将所述rgb视频数据拆分为预设时长的视频序列,并利用所述中值滤波算法和所述视频掩模操作对所述视频序列进行预处理。
100.具体地,在对所述待检测生猪的生理健康进行检查时,首先需要采集到的有关待检测生猪的视频数据:使用usb单目摄像头对一个栏位内多头待检测生猪采集多段rgb视频数据,并将视频以avi格式进行保留,分辨率为1280
×
720。这里usb摄像头安装在距地面h米高的地方,最大可视范围为w*l米,摄像头近乎垂直于地面,采集图像正好可以覆盖整个待检测生猪栏位。
101.然后,将所述rgb视频数据拆分为预设时长(例如5min)的视频序列,并利用所述中值滤波算法和所述视频掩模操作对所述视频序列进行预处理操作。
102.进一步地,请继续参阅图1,s200、将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据;其中,所述检测数据包括:物体种类、物体位置和置信度数据。
103.具体地,在目标检测部分的目标检测模型训练部分中,在对目标检测模型进行预先训练前,需要先获得目标检测模型的数据集,以便进行目标检测模型进行预先训练,步骤如下,目标检测模型的训练示意图如图5所示:
104.在采集得到多段rgb视频数据后,同时使用darklabel软件对rgb视频数据进行第一次标注,darklabel是一款用于多目标追踪数据集标注的轻量级软件,这里为了保证追踪数据集的准确性,可以采用手动对每一帧中待检测生猪进行标注,如图6为一个待检测生猪数据视频在30frame(帧)、60frame、160frame、220frame、300frame和500frame上数据标注的展示结果,最后将标注文件以mot16格式进行导出。在这里总共标注了20段视频,单个视频时长为5min、包含1800帧图像数据,用于对追踪模型进行模型评估。
105.然后,在对得到预先训练后的目标检测模型前,需要进行目标检测数据集制作:将原始rgb视频数据按帧拆分为图像数据,这里考虑到待检测生猪运动较为缓慢,相邻几帧之间待检测生猪运动变化量很小因此可以选定30帧为抽取间隔,单个视频抽取60张图片,总共抽取了1440张图片做为目标检测原始图像数据集。
106.其次,为了提高模型的泛化能力,增强模型的鲁棒性,这里使用开源的imgaug库对目标检测原始图像数据集通过平移、旋转、加入噪声等方式进行数据增强。这里,将目标检测原始图像数据集扩增到了4320张,得到数据增强后的目标检测原始图像数据集,其中百分之90,即3888张用于模型训练,百分之10的图像数据,即432张用于测试。之后,对90%的数据增强后的目标检测原始图像数据集使用labelimg软件对其进行第二次标注,如图7为第二次标注效果图。
107.那么,在对所述目标检测模型进行预先训练结束后,将预处理后的视频序列输入到预先训练后的目标检测模型中,就能直接输出检测数据(物体种类、物体位置和置信度数据),即直接输出图2中目标检测部分中的预测结果。
108.其中,以mot16格式对标注文件中存储的图片的检测框的信息(检测得到的信息文件),部分内容展示如下:
109.1,-1,1359.1,413.27,128.26,362.77,2.3092,-1,-1,-1
110.1,-1,571.03,402.13,104.56,315.68,1.5828,-1,-1,-1
111.1,-1,650.8,455.86,63.98,193.94,8.33276,-1,-1,-1
112.1,-1,721.23,446.86,41.871,127.61,0.27401,-1,-1,-1
113.2,-1,468.48,442.1,98.896,274.69,6.26749,-1,-1,-1
114.2,-1,643.66,461.78,59.629,180.89,0.18023,-1,-1,-1
115.2,-1,1494.4,408.29,112.14,338.41,8.16075,-1,-1,-1
116.2,-1,572.83,364.89,128.96,388.88,-0.011851,-1,-1,-1
117.3,-1,1359.1,413.27,120.26,362.77,2.3387,-1,-1,-1
118.3,-1,571.03,402.13,104.56,315.68,0.79923,-1,-1,-1
119.3,-1,1482.5,390.88,128.96,388.88,0.35271,-1,-1,-1
120....
121.600,-1,788.37,476.87,20.435,63.306,-0.1483,-1,-1,-1
122.600,-1,421.14,446.86,41.871,127.61,-6.19971,-1,-1,-1
123.600,-1,613.25,412.69,51.78,157.34,-0.38627,-1,-1,-1
124.600,-1,375.27,454.66,48.246,146.74,-8.42444,-1,-1,-1。
125.更进一步地,请参阅图8,所述s200、将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据的步骤具体包括:
126.s210、将经过预处理后的视频序列输入到初始目标检测模型中,并调整模型参数直至误差值低于设定阈值,得到预先训练后的目标检测模型;
127.s220、将经过增强处理后的视频序列输入到预先训练后的目标检测模型中,输出所述检测数据。
128.具体地,在利用中值滤波算法和视频掩模操作对所述视频序列进行预处理后,将经过预处理后的视频序列输入到初始目标检测模型中,并利用误差反向传播方法不断调整模型参数,直到误差值降低到设定阈值之下,从而得到预先训练后的目标检测模型。这里,图片输入尺寸可以设置为416x416,优化器可以选择sgdm(sgdm:stochastic gradient descent withmomentum,中文名为:随机梯度下降算法,每次选择一个mini-batch,而不是全部样本,使用梯度下降来更新模型参数。它解决了随机小批量样本的问题),模型的最大学习率设置为0.01,动量系数设置为0.937,并且配合余弦退火算法对学习率进行调整。
129.其中,优化器为在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数让损失函数(目标函数)值不断逼近全局最小。sgdm:stochastic gradientdescent with momentum,中文名为:为带动量的随机梯度下降法,相比于原来的随机梯度下降方法,sgdm在计算当前梯度时,会将以往的梯度值进行指数加权平均,将以往的经过指数加权平均后的梯度结果与当前计算出的梯度分别赋不同权重后求和得到本次最终的梯度。
130.当使用梯度下降算法来优化目标函数的时候,当越来越接近损失值的全局最小值时,学习率应该变得更小来使得目标检测模型尽可能接近这一点,而余弦退火(cosine annealing)可以通过余弦函数来降低学习率。余弦函数中随着x的增加余弦值首先缓慢下降,然后加速下降,再次缓慢下降。这种下降模式能和学习率配合,以一种十分有效的计算方式来产生很好的效果。学习率:将输出误差反向传播给网络参数,以此来拟合样本的输出。本质上是最优化的一个过程,逐步趋向于最优解。但是每一次更新参数利用多少误差,就需要通过一个参数来控制,这个参数就是学习率(learning rate),也称为步长。
131.其次,为了加快模型训练速度同时防止过拟合,在yolov4预训练权重模型(初始目标检测模型)基础上进行训练,yolov4预训练预训练权重模型中的主干网络已经在imagenet数据集上进行过训练。同时整个模型训练过程分为冻结(freeze)阶段和解冻(unfrezee)阶段,其中冻结(freeze)阶段对主干网络特征提取部分进行冻结,对其他部分参数进行微调,这里训练轮次(epoch)设置为50,批尺寸(batch size)设置为2;解冻阶段对整个网络进行训练,这里训练轮次(epoch)设置为300,批尺寸(batch size)设置为2,目标检测模型的训练示意图继续参阅图5。
132.最后,将经过增强处理后的视频序列输入到预先训练后的目标检测模型中,输出所述检测数据(物体种类、物体位置和置信度数据)。
133.进一步地,请继续参阅图1,s300、将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息。
134.具体地,所述目标追踪部分同样包括目标追踪模型训练部分和目标追踪模型预测部分;在目标追踪模型训练部分中,在将所述检测数据输入到deepsort追踪模型前,需要先
训练得到表观特征提取模型,具体如下:
135.表观特征这部分借用了行人重识别领域的网络模型,这部分的网络是需要提前离线学习好,其功能是提取出目标物体具有区分度的特征。deepsort追踪模型中用的是wide residual network即宽残差网络(初始表观特征提取模型),deepsort追踪模型的具体结构如图9所示。
136.然后,利用wrn网络,对目标检测框和预测的追踪框进行卷积、池化和残差后提取特征向量,计算目标检测框和追踪框之间的特征向量之间的余弦相似度来进行外观特征度量。wrn网络最后的输出是一个128维的向量用于代表该部分表观特征(一般维度越高区分度越高带来的计算量越大)。最后,使用了l2归一化来将特征映射到单位超球面上,以便进一步使用余弦表观来度量相似度。如图10为表观特征模型计算和数据关联的流程图。其中,l2归一化为对向量的每一个值都除以向量的平方和的开方。
137.这里对待检测生猪表观特征提取模型进行训练,其中输入图片尺寸设置为128x64,训练轮次为40,优化器选择sgd,学习率设置为0.001。最终训练后的表观特征提取模型在测试集上分类准确率为99.91%,如图11为经过训练后的表观特征提取模型的训练损失下降图,其中,横坐标为训练epoch,纵坐标为损失函数,从图中可以看到经过训练后的表观特征提取模型在训练数据集和训练测试集上表现都十分良好。
138.那么,在得到经过训练后的表观特征提取模型后,将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、经过训练后的表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息。
139.更进一步地,请参阅图12,所述s300、将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息的步骤具体包括:
140.s310、对初始帧检测数据创建对应的追踪框,将卡尔曼滤波器的运动变量初始化,利用所述卡尔曼滤波器预测下一帧检测数据的追踪框后,计算下一帧检测数据的目标检测框和下一帧检测数据的追踪框的马氏距离;
141.s320、将所述目标检测框中rgb图像输入到预先训练的表观特征提取模型中,计算余弦距离,根据所述余弦距离、所述马氏距离和预设门限矩阵阈值计算出代价矩阵;
142.s330、将所述代价矩阵输入到匈牙利算法中,对上一帧卡尔曼滤波器预测的追踪框和下一帧的目标检测框进行匹配,得到匹配成功的第一追踪框、匹配失败的第一检测框和匹配失败的第二追踪框;
143.s340、将匹配成功的第一追踪框的位置信息输入到卡尔曼滤波器中,分别计算匹配失败的第一检测框和匹配失败的第二追踪框的iou阈值,并利用匈牙利算法进行匹配,得到匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框;
144.s350、分别对匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框进行相应地处理;
145.s360、利用卡尔曼滤波器更新均值和协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信
息。
146.具体地,将预先训练后的目标检测模型预测输出的检测数据中的物体位置和置信度信息(置信度数据)输入到deepsort追踪算法中,deepsort算法主要包括卡尔曼滤波器、级联匹配和表观特征提取网络三部分。它在deepsort算法中具体流程如下:
147.开始进入目标追踪部分的目标追踪模型预测部分:
148.一、进行卡尔曼滤波器初始化:对初始帧检测数据创建对应的追踪框,将卡尔曼滤波器的运动变量初始化,通过卡尔曼滤波器预测其下一帧检测数据的追踪框,此时,追踪框的状态为unconfirmed(不确定态的追踪框);
149.二、进行级联匹配:计算下一帧的目标检测框和上一帧卡尔曼滤波器预测的追踪框的马氏距离,同时对目标检测框中rgb图像输入到表观特征提取模型中,计算其余弦距离,根据所述余弦距离和所述马氏距离以及所述预设门限矩阵阈值计算出代价矩阵。再将代价矩阵输入到匈牙利算法中,对上一帧卡尔曼滤波器预测的追踪框和下一帧的目标检测框进行匹配,得到三种状态的追踪框:matched tracks(匹配成功的第一追踪框)、unmatcheddetections(匹配失败的第一检测框)、unmatched tracks(匹配失败的第二追踪框)。
150.三、对于三种状态的追踪框,分别处理:
151.1、对于匹配成功的第一追踪框(matched tracks),将匹配成功的第一追踪框的位置信息输入到卡尔曼滤波器中;
152.2、对于检测框匹配失败的第一检测框(unmatched detections)和匹配失败的第二追踪框(unmatched tracks)计算iou阈值,并使用匈牙利算法进行匹配,得到再次处理后的新的三种状态的追踪框:matched tracks(匹配成功的第三追踪框)、unmatched detections(匹配失败的第二检测框)、unmatched tracks(匹配失败的第四追踪框);
153.3、对于iou阈值处理后的新的三种状态的追踪框,分别进行相应地处理。
154.最后,利用所述卡尔曼滤波器更新所述均值和所述协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,那么,目标追踪模型训练过程示意图如图13所示,其中,deepsort追踪模型中包括reid模型。
155.更进一步地,请参阅图14,所述s350、分别对匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框进行相应地处理的步骤具体包括:
156.s351、将匹配成功的第三追踪框的位置信息输入到所述卡尔曼滤波器中,对匹配失败的第二检测框新增追踪框;
157.s352、若所述第四追踪框未与其他任何帧检测数据的目标检测框匹配成功,则所述第四追踪框进入不确定态;
158.s353、若所述第四追踪框在连续三帧检测数据内均分别未与当前检测框匹配到且超过最大等待时间,则删除所述第四追踪框;
159.s354、若所述所述第四追踪框与其他任何帧检测数据的目标检测框匹配成功过,则所述第四追踪框进入确定态。
160.具体地,在对检测框匹配失败的第一检测框(unmatched detections)和匹配失败的第二追踪框(unmatched tracks)计算iou阈值,并使用匈牙利算法进行匹配,得到再次处
理后的新的三种状态的追踪框后,对于iou阈值处理后的新的三种状态的追踪框,分别进行相应地处理:
161.(1)、对于匹配成功的第三追踪框(matched tracks),将匹配成功的第三追踪框的位置信息输入到卡尔曼滤波器中;
162.(2)、对于追踪框匹配失败的第二检测框(unmatched detections)新增追踪框;因为新进入级联匹配的检测数据只有检测框信息,没有追踪框,进来后就会匹配一个新增追踪框,此时新增追踪框为不确定态(unconfirmed状态),只有连续三帧与当前检测框匹配到,则新增追踪框转为确定态(confirmed状态);
163.(3)、对于检测框匹配失败的第四追踪框(unmatched tracks),如果之前没有与任何一个检测框匹配成功,则进入unconfirmed状态,这种情况说明检测框匹配失败的第四追踪框为新进入级联匹配的追踪框;而若所述第四追踪框在连续三帧检测数据内均分别未与当前检测框匹配到,并且,超过最大等待时间后,则删除所述第四追踪框;如果所述所述第四追踪框与其他任何帧检测数据的目标检测框匹配成功过,即说明待检测生猪离开了视野,则所述第四追踪框进入确定态(confirmed状态);其中,确定态和不确定态之间的区别在是否存在与检测框匹配过,若匹配过则进入确定态,否则不确定态。
164.更进一步地,请参阅图15,所述s360、利用卡尔曼滤波器更新均值和协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息的步骤具体包括:
165.s361、根据匹配成功的第一追踪框的位置信息和匹配成功的第三追踪框的位置信息更新均值和协方差矩阵;
166.s362、进入不确定态的第四追踪框在连续三帧检测数据内与新增的追踪框匹配到,则不确定态的第四追踪框转变为确定态;
167.s363、直至对所有检测数据进行关联操作完毕,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,并以包含按行组织的文本形式保存。
168.具体地,在分别对匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框进行相应地处理后,利用卡尔曼滤波器更新均值和协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,具体步骤如下:
169.首先,卡尔曼滤波器更新均值和协方差矩阵:
170.根据匹配成功的第一追踪框(matched tracks)的位置信息和iou阈值再次处理后的匹配成功的追踪框matched tracks的位置信息,即匹配成功的第三追踪框的位置信息一起更新均值和协方差矩阵;
171.其次,判断追踪器状态是否为confirmed状态:
172.成为unconfirmed状态的第四追踪框在连续三帧检测数据内与新增的追踪框匹配到,不确定态的第四追踪框可以转变为成为confirmed状态。
173.最后,重复以上步骤,直至对所有检测数据进行关联操作完毕,输出每一帧检测数据中匹配成功的追踪框的帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,并以txt(行组织)文件形式保存。
174.进一步地,请继续参阅图1,s400、根据所述帧编号、所述待检测生猪id号和所述对
应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵;其中,所述运动指标包括:运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度。
175.具体地,在目标追踪模型预测部分中还包括运动数据提取小节,以便获得所述运动指标,即:在利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息后,根据每一帧检测数据中所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算出每一个待检测生猪的五类运动指标(运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度),即计算出图2中目标追踪部分中的运动信息。
176.而所述异常检测部分同样包括异常检测模型训练部分和异常检测模型预测部分;在对所述异常检测模型进行训练前需要对异常检测模型输入数据(每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息)进行pac数据降维处理操作,所述pac数据降维处理的第一步就是利用五类运动指标对应组成五个第一数据矩阵。
177.更进一步地,请参阅图16,所述s400、根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵的步骤具体包括:
178.s410、根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标;
179.s420、将n只待检测生猪的相同类的运动指标分别提取出来组成五类第一运动指标特征向量后,利用五类第一运动指标特征向量组成五个第一数据矩阵;其中,每一个第一数据矩阵的长度为n个。
180.具体地,在运动数据提取小节中,根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标(运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度)的具体步骤如下:
181.首先,需要进行对待检测生猪的运动轨迹的提取:
182.这里为了避免追踪器偶尔的抖动对待检测生猪的速度和加速度的计算产生影响,可以选择每隔6帧对待检测生猪的运动轨迹进行提取,如图17为8只待检测生猪的运动轨迹图,其中,将8只待检测生猪分别标号为id1、id2、id3、id4、id5、id6、id7和id8,id为这个检测框分配的身份信息,这里将运动轨迹点在原图的rgb背景图用黑点进行标注;如图18为8只待检测生猪的运动轨迹的追踪效果图,这里选取在1s、10s、30s、50s、120s、180s、250s、300s、350s、400s、450s和500s的时间点上的追踪效果图。
183.其次,计算每一个待检测生猪的五类运动指标:
184.第一、运动距离计算:
185.这里,首先计算待检测生猪的移动距离,由于相邻两帧检测数据的时间间隔为毫秒级别,因此相邻两帧检测数据间待检测生猪可以近似为直线运动,通过累加相邻两帧检测数据间待检测生猪的移动距离,便可得到待检测生猪的总移动距离。如图19为8只待检测生猪移动距离的对比直方图。这里,由于是根据摄像机的可视范围和视频画面大小计算出待检测生猪移动的实际距离,并且检测框的长宽比及大小会随着待检测生猪旋转、移动发
生变化,所以这里只能计算待检测生猪移动的近似距离。
186.第二、运动平均速度和运动平均加速度的计算:
187.先进行瞬时速度和瞬时加速度的计算,根据两点之间时间-运动距离公式计算出每一头在每一黑点的瞬时速度,根据时间间隔-速度差值公式计算出每一头待检测生猪在每一黑点的瞬时加速度,这里需要对计算出的瞬时速度和瞬时加速度取其绝对值,如图20和图21分别为id号为7的待检测生猪的运动速度和运动加速度折线图。之后,根据总移动距离和总时间,计算待检测生猪的运动平均速度,并根据每一头待检测生猪在每一黑点的瞬时速度和瞬时加速度计算每一头待检测生猪的运动平均加速度,以及根据每一黑点上的运动平均加速度计算出加速度平均值,其中,单只待检测生猪在一个视频帧中的运动平均速度和运动平均加速度的示意图分别如图22和图23所示。
188.第三、最大加速度和最大速度的提取:
189.这里对于单只待检测生猪在一个视频帧中加速度序列和速度序列使用冒泡排序算法,提取最大加速度和最大速度,单只待检测生猪在一个视频帧中的最大加速度和最大速度的示意图分别如图24和图25所示。
190.在计算出每一个待检测生猪的五类运动指标后,将n只待检测生猪的相同类的运动指标分别提取出来组成五类第一运动指标特征向量,并利用五类第一运动指标特征向量组成五个第一数据矩阵,即将n只生猪的运动距离特征向量、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度提取出来,组成运动距离、运动最大速度特征向量、运动最大加速度特征向量、运动平均速度特征向量和运动平均加速度特征向量五个特征向量(第一运动指标特征向量),将五个长度为n的特征向量组成n x 5的数据矩阵(第一数据矩阵),其中,每一个第一数据矩阵的长度为n个。
191.其中,所述目标检测模型预测部分、所述目标追踪模型预测部分和所述运动数据提取小节组成运动数据提取部分,所述运动数据提取部分的流程图如图26所示。
192.进一步地,请继续参阅图1,s500、利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态。
193.具体地,继续进行所述pac数据降维处理操作:在利用所述运动指标组成五个第一数据矩阵后,利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,开始进入异常检测模型训练部分,以便输出待检测生猪的异常健康状态,即输出图2中异常检测部分中的预测结果,从而实现了根据多目标追踪技术获取的生猪运动信息对生猪异常健康进行检测。
194.本实施例中主要是运用pca(主成分分析方法)方法进行数据降维,通过析取主成分显出的最大的个别差异,发现更便于人类理解的特征。也可以用来削减回归分析和聚类分析中变量的数目。其中,pca的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征,本实施例中将原五维特征向量使用pca方法组成新的两维特征向量。
195.更进一步地,请参阅图27,所述s500利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态的步骤具体包括:
196.s510、分别计算每类所有第一运动指标特征向量的均值,并分别计算在同一类中每个第一运动指标特征向量与所在类第一运动指标特征向量的均值之间的差值;
197.s520、由五类差值组成五类第二运动指标特征向量后,利用五类第二运动指标特征向量组成五个第三数据矩阵;其中,每一个第三数据矩阵的长度为n个;
198.s530、求解所述第三数据矩阵的协方差矩阵,使用特征值分解方法计算所述协方差矩阵的特征值和特征向量;其中,所述特征向量为新坐标轴方向、数据的旋转方向或者新的主成分方向;所述特征值为所述检测数据在对应新坐标轴上投影的方差大小,或者所述检测数据对应特征向量上包含的信息量;
199.s540、将所述特征值按从大到小进行排序,取排序后的特征值前两大的特征向量组成第四数据矩阵,并将所述第一数据矩阵和所述第四数据矩阵进行矩阵乘法,得到所述第二数据矩阵;
200.s550、将所述第二数据矩阵进行拆分得到数据集,将预设比例的数据集作为训练数据集输入到经过训练后的异常检测模型中进行预测,输出所述待检测生猪的异常健康状态。
201.具体地,在利用所述运动指标组成五个第一数据矩阵后,首先,进行数据中心化操作:
202.第一,分别计算每类所有第一运动指标特征向量的均值,并分别计算在同一类中每个第一运动指标特征向量与所在类第一运动指标特征向量的均值之间的差值,组成新的特制向量,即五类第二运动指标特征向量。第二、利用五类第二运动指标特征向量组成五个第三数据矩阵,即新的特征向量构成新的数据矩阵。其中,每一个第三数据矩阵的长度为n个。
203.其次,进行协方差矩阵及其特征值和特征向量求解:
204.求解所述第三数据矩阵的协方差矩阵,使用特征值分解方法计算所述协方差矩阵的特征值和特征向量,这里协方差矩阵求出来的特征向量,就是新坐标轴方向、数据的旋转方向或者说是新的主成分方向;协方差矩阵求出来的特征值,就是数据在对应新坐标轴上投影的方差大小,或者说是其对应特征向量上包含的信息量。
205.再者,将得到的协方差矩阵中特征值从大到小排序,取排序后的特征值前两大的特征向量作为第一个主成分和第二个主成分,将两个主成分组成所述第四数据矩阵,将所述第四数据矩阵与所述第一数据矩阵进行矩阵乘法,得到新的n x 2的数据矩阵(第二数据矩阵),其中,每一个第二数据矩阵的长度同样为n个。其中,如图28为使用pca方法进行降维和重新组合后的运动特征的二维散点图。
206.最后,将所述第二数据矩阵进行拆分得到数据集,将预设比例的数据集作为训练数据集输入到经过训练后的异常检测模型中进行预测,输出所述待检测生猪的异常健康状态,即:
207.将经过pca降维后的第二数据矩阵进行拆分得到所述数据集,取所述数据集的80%(预设比例的数据集)作为训练数据集输入到异常检测模型中,对输入的训练数据集进行训练,输出所述待检测生猪的异常健康状态,而所述数据集的20%则作为测试数据集。
208.在生成所述第二数据矩阵后,将所述第二数据矩阵输入到所述异常检测模型中,并对所述异常检测模型进行训练。所述异常检测模型训练的算法原理为:这里使用单分类
支持向量机ocsvm实现异常检测功能,svm又称为支持向量机,是一种二分类的模型,其主要思想为到空间中的一个更够将所有数据样本划开的超平面,并且使得数据集中所有数据到这个超平面的距离最短。
209.对所述异常检测模型进行训练的过程为:将零点作为负样本点,其他数据作为正样本点,来训练支持向量机,得到超平面方程。训练策略是使用核函数将数据映射到与内核相对应的特征空间,在数据与零点间构建超平面,利用kkt条件求解超平面方程,使得该超平面与零点呈最大距离。
210.所述异常检测模型训练的参数选择:选择的核函数为rbf核函数,对训练数据集使用交叉验证法选择最好的参数c(高斯函数的中心轴)和gamma(高斯函数的方差)值;其中,rbf核函数又叫高斯函数,这里c指的是期望,决定了高斯函数的中心对称轴;gamma决定了高斯函数的方差。
211.其中,主要衡量异常检测模型的技术指标是f1分数,f1分数概念如下:
[0212][0213][0214][0215]
其中,所述交叉验证法就是在一定范围内改变高斯函数的中心轴c和高斯函数的方差gamma的值,求解f1分数,当f1分数最大时,表示模型效果最好,选取此时c和gamma的值。
[0216]
所述异常检测模型的模型输出:所述异常检测模型经过训练后得到模型参数(即分类决策函数的系数)和支持向量,将训练好的模型保存到xml文件中。其中,pac数据降维和异常检测模型训练过程的流程图如图29所示,其中,所述异常检测模型为单类持支向量集模型。
[0217]
所述异常检测模型的模型评估(模型预测):这里使用经过训练好的异常检测模型对待检测生猪的健康状态进行评估,得到的奇异值检测结果如图30所示,其中,白点表示为训练使用的数据,黑点表示为数据集中测试集数据,灰点表示为收集到的异常生猪运动数据,从图30中可以看出随机生成了25个运动速度、运动距离和运动加速度均明显异常的生猪运动数据。而如图31所示的为预测结果的混淆矩阵,其中,纵坐标表示真实值,横坐标表示预测值,-1代表异常,表示没有id信息(id信息为给目标检测框分配的地址信息),1代表正常,从图31中可以看到几乎所有的异常点都被检测出来了。
[0218]
更进一步地,请参阅图32,一种基于多目标追踪的待检测生猪健康状态判断系统,
所述基于多目标追踪的待检测生猪健康状态判断系统包括:
[0219]
拆分和预处理模块10,用于将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理;
[0220]
检测数据输出模块20,用于将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据;其中,所述检测数据包括:物体种类、物体位置和置信度数据;
[0221]
数据关联模块30,用于将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息;
[0222]
运动指标计算模块40,用于根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵;其中,所述运动指标包括:运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度;
[0223]
异常健康状态输出模块50,用于利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态。
[0224]
具体的,本实施例中,上述基于多目标追踪的生猪健康状态判断方法的基于多目标追踪的生猪健康状态判断系统的各模块的具体功能可以参照上述基于多目标追踪的生猪健康状态判断方法中的对应描述,在此不再赘述。
[0225]
更进一步地,一种计算机可读存储介质,所述计算机可读存储介质存储有基于多目标追踪的待检测生猪健康状态判断程序,所述基于多目标追踪的待检测生猪健康状态判断程序被处理器执行时实现如上所述的基于多目标追踪的待检测生猪健康状态判断方法的步骤;由于上述对该所述基于多目标追踪的待检测生猪健康状态判断方法的步骤进行了详细的描述,在此不再赘述。
[0226]
综上所述,本发明提供的一种基于多目标追踪的生猪健康状态判断方法及相关设备,所述方法包括:将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列后,进行预处理操作;将预处理后的视频序列输入到预先训练后的目标检测模型中;将得到的检测数据输入到deepsort追踪模型后进行逐帧的数据关联操作,根据输出的每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标后组成五个第一数据矩阵;对第一数据矩阵进行降维处理后,将得到的第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态,从而利用多目标追踪技术获取的五类运动指标等生猪运动信息,实现对于生猪异常健康进行检测。
[0227]
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

技术特征:


1.一种基于多目标追踪的生猪健康状态判断方法,其特征在于,所述基于多目标追踪的生猪健康状态判断方法包括以下步骤:将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理;将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据;其中,所述检测数据包括:物体种类、物体位置和置信度数据;将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息;根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵;其中,所述运动指标包括:运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度;利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态。2.根据权利要求1所述的基于多目标追踪的生猪健康状态判断方法,其特征在于,所述将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理的步骤包括:利用摄像头对一个栏位内多头待检测生猪采集多段rgb视频数据;将所述rgb视频数据拆分为预设时长的视频序列,并利用所述中值滤波算法和所述视频掩模操作对所述视频序列进行预处理。3.根据权利要求1所述的基于多目标追踪的生猪健康状态判断方法,其特征在于,所述将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据的步骤具体包括:将经过预处理后的视频序列输入到初始目标检测模型中,并调整模型参数直至误差值低于设定阈值,得到预先训练后的目标检测模型;将经过增强处理后的视频序列输入到预先训练后的目标检测模型中,输出所述检测数据。4.根据权利要求1所述的基于多目标追踪的生猪健康状态判断方法,其特征在于,所述将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息的步骤具体包括:对初始帧检测数据创建对应的追踪框,将卡尔曼滤波器的运动变量初始化,利用所述卡尔曼滤波器预测下一帧检测数据的追踪框后,计算下一帧检测数据的目标检测框和下一帧检测数据的追踪框的马氏距离;将所述目标检测框中rgb图像输入到预先训练的表观特征提取模型中,计算余弦距离,根据所述余弦距离、所述马氏距离和预设门限矩阵阈值计算出代价矩阵;将所述代价矩阵输入到匈牙利算法中,对上一帧卡尔曼滤波器预测的追踪框和下一帧的目标检测框进行匹配,得到匹配成功的第一追踪框、匹配失败的第一检测框和匹配失败
的第二追踪框;将匹配成功的第一追踪框的位置信息输入到卡尔曼滤波器中,分别计算匹配失败的第一检测框和匹配失败的第二追踪框的iou阈值,并利用匈牙利算法进行匹配,得到匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框;分别对匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框进行相应地处理;利用卡尔曼滤波器更新均值和协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息。5.根据权利要求1所述的基于多目标追踪的生猪健康状态判断方法,其特征在于,所述根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵的步骤具体包括:根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标;将n只待检测生猪的相同类的运动指标分别提取出来组成五类第一运动指标特征向量后,利用五类第一运动指标特征向量组成五个第一数据矩阵;其中,每一个第一数据矩阵的长度为n个。6.根据权利要求5所述的基于多目标追踪的生猪健康状态判断方法,其特征在于,所述利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态的步骤具体包括:分别计算每类所有第一运动指标特征向量的均值,并分别计算在同一类中每个第一运动指标特征向量与所在类第一运动指标特征向量的均值之间的差值;由五类差值组成五类第二运动指标特征向量后,利用五类第二运动指标特征向量组成五个第三数据矩阵;其中,每一个第三数据矩阵的长度为n个;求解所述第三数据矩阵的协方差矩阵,使用特征值分解方法计算所述协方差矩阵的特征值和特征向量;其中,所述特征向量为新坐标轴方向、数据的旋转方向或者新的主成分方向;所述特征值为所述检测数据在对应新坐标轴上投影的方差大小,或者所述检测数据对应特征向量上包含的信息量;将所述特征值按从大到小进行排序,取排序后的特征值前两大的特征向量组成第四数据矩阵,并将所述第一数据矩阵和所述第四数据矩阵进行矩阵乘法,得到所述第二数据矩阵;将所述第二数据矩阵进行拆分得到数据集,将预设比例的数据集作为训练数据集输入到经过训练后的异常检测模型中进行预测,输出所述待检测生猪的异常健康状态。7.根据权利要求4所述的基于多目标追踪的生猪健康状态判断方法,其特征在于,所述分别对匹配成功的第三追踪框、匹配失败的第二检测框和匹配失败的第四追踪框进行相应地处理的步骤具体包括:将匹配成功的第三追踪框的位置信息输入到所述卡尔曼滤波器中,对匹配失败的第二检测框新增追踪框;若所述第四追踪框未与其他任何帧检测数据的目标检测框匹配成功,则所述第四追踪
框进入不确定态;若所述第四追踪框在连续三帧检测数据内均分别未与当前检测框匹配到且超过最大等待时间,则删除所述第四追踪框;若所述所述第四追踪框与其他任何帧检测数据的目标检测框匹配成功过,则所述第四追踪框进入确定态。8.根据权利要求7所述的基于多目标追踪的生猪健康状态判断方法,其特征在于,所述利用卡尔曼滤波器更新均值和协方差矩阵,并判断追踪器的状态是否为确定态后,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息的步骤具体包括:根据匹配成功的第一追踪框的位置信息和匹配成功的第三追踪框的位置信息更新均值和协方差矩阵;进入不确定态的第四追踪框在连续三帧检测数据内与新增的追踪框匹配到,则不确定态的第四追踪框转变为确定态;直至对所有检测数据进行关联操作完毕,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息,并以包含按行组织的文本形式保存。9.一种基于多目标追踪的生猪健康状态判断系统,其特征在于,所述基于多目标追踪的生猪健康状态判断系统包括:拆分和预处理模块,用于将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列,并利用中值滤波算法和视频掩模操作对所述视频序列进行预处理;检测数据输出模块,用于将预处理后的视频序列输入到预先训练后的目标检测模型中,输出检测数据;其中,所述检测数据包括:物体种类、物体位置和置信度数据;数据关联模块,用于将所述检测数据输入到deepsort追踪模型中,利用所述deepsort追踪模型中卡尔曼滤波器、表观特征提取模型和匈牙利匹配算法进行逐帧的数据关联操作,输出每一帧检测数据中帧编号、待检测生猪id号和对应id号待检测生猪的位置信息;运动指标计算模块,用于根据所述帧编号、所述待检测生猪id号和所述对应id号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标,并利用所述运动指标组成五个第一数据矩阵;其中,所述运动指标包括:运动距离、运动最大速度、运动最大加速度、运动平均速度和运动平均加速度;异常健康状态输出模块,用于利用主成分分析方法对所述第一数据矩阵进行降维处理,组成第二数据矩阵,并将所述第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有基于多目标追踪的生猪健康状态判断程序,所述基于多目标追踪的生猪健康状态判断程序被处理器执行时实现如权利要求1-8任一项所述的基于多目标追踪的生猪健康状态判断方法的步骤。

技术总结


本发明公开一种基于多目标追踪的生猪健康状态判断方法及相关设备,所述方法包括:将采集到的有关待检测生猪的视频数据拆分为预设时长的视频序列后,进行预处理操作;将预处理后的视频序列输入到预先训练后逐的目帧标的检数测据模关型联中操;作,将得根到据输的检出测的数每据一输帧入检到测数De据ep中SO帧RT编号追、踪待模检型测后生进行猪ID号和对应ID号待检测生猪的位置信息,计算每一个待检测生猪的五类运动指标后组成五个第一数据矩阵;对第一数据矩阵进行降维处理后,将得到的第二数据矩阵输入到异常检测模型中,输出待检测生猪的异常健康状态,从而利用多目标追踪技术获取的五类运动指标等生猪运动信息,实现对于生猪异常健康进行检测。于生猪异常健康进行检测。于生猪异常健康进行检测。


技术研发人员:

蔡文涛 李子圣 韩建宁 廉亚霖 杨宇超 杨凯 周泓宇 秦超 毕效乾 陈旭

受保护的技术使用者:

太原青禾之道科技有限公司

技术研发日:

2022.09.30

技术公布日:

2022/12/12

本文发布于:2024-09-20 14:19:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/34530.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:生猪   所述   数据   矩阵
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议