活畜在圈状态确定方法、系统、设备及介质与流程

文档序号:28744140发布日期:2022-02-07 22:58阅读:54来源:国知局
活畜在圈状态确定方法、系统、设备及介质与流程

1.本发明涉及畜牧技术领域,尤其涉及一种活畜在圈状态确定方法、系统、设备及介质。


背景技术:

2.在畜牧养殖行业中,“散养”是一种较为常见的饲养方式,通过将活畜放出圈,让其去圈外觅食等,当达到一定时间或相关工作人员认为合适的条件,则需要将活畜收归回圈。此外,活畜进出档口也是畜牧市场运转中的核心环节之一。
3.目标活畜进出圈往往采用人工管理的方式,由人工在活畜进圈或出圈时进行活畜数量统计,但由于有时活畜数量庞大,且移动速度较快,人工确定活畜是否在圈难度高,成本高,在圈状态的标准由于不同人员的认知可能存在误差,不能实现畜牧业的高效运转。


技术实现要素:

4.鉴于以上所述现有技术的缺点,本发明提供一种活畜在圈状态确定方法、系统、设备及介质,以解决上述技术问题。
5.本发明提供的一种活畜在圈状态确定方法,包括:
6.获取多张包括样本活畜的样本图像,并对所述样本图像中的样本活畜进行位置标注,构建数据集;
7.将所述数据集输入预设基础模型,并进行训练,得到训练后的活畜位置检测模型;
8.获取包括目标活畜第一时刻的初始待识别图像,并输入到训练后的所述活畜位置检测模型,得到所述目标活畜的初始目标位置;
9.根据预设档口位置和所述初始目标位置确定所述目标活畜第一时刻的第一在圈状态。
10.可选的,所述根据预设档口位置和所述初始目标位置确定所述目标活畜第一时刻的第一在圈状态包括:
11.获取预设档口识别区间;
12.若所述目标活畜位于所述预设档口识别区间内,且所述初始目标位置超出所述预设档口位置,所述第一在圈状态包括圈内;
13.若所述目标活畜位于所述预设档口识别区间外,或所述初始目标位置未超出所述预设档口位置,所述第一在圈状态包括圈外。
14.可选的,获取包括所述目标活畜第二时刻的后续待识别图像,并输入到训练后的所述活畜位置检测模型,得到所述目标活畜的后续目标位置,所述第二时刻晚于所述第一时刻;
15.根据所述后续目标位置和预设档口位置确定所述目标活畜第二时刻的第二在圈状态;
16.根据所述初始目标位置和后续目标位置确定所目标活畜的运动方向。
17.可选的,所述根据所述初始目标位置和后续目标位置确定所述目标活畜的运动方向包括以下任意之一:
18.若所述初始目标位置和后续目标位置均超出所述预设档口位置,分别获取初始距离和后续距离,若所述初始距离大于后续距离,所述运动方向包括出圈方向,若所述初始距离小于后续距离,所述运动方向包括入圈方向,所述初始距离包括所述初始目标位置与所述预设档口位置之间的距离,所述后续距离包括所述后续目标位置与所述预设档口位置之间的距离;
19.若所述初始目标位置超出所述预设档口位置,且所述后续目标位置未超出所述预设档口位置,所述运动方向包括出圈方向;
20.若所述初始目标位置未超出所述预设档口位置,且所述后续目标位置超出所述预设档口位置,所述运动方向包括入圈方向;
21.分别获取初始坐标和后续坐标,若所述初始坐标大于后续坐标,所述运动方向包括出圈方向,若所述初始坐标小于或等于后续坐标,所述运动方向包括入圈方向,所述初始坐标为所述初始目标位置的坐标,所述后续坐标为所述后续目标位置的坐标,所述坐标值沿所述入圈方向增大。
22.可选的,所述方法还包括:
23.根据所述第一在圈状态和第二在圈状态确定所述目标活畜的进出圈状态。
24.可选的,若所述初始待识别图像和后续待识别图像中至少之一包括至少两个目标活畜,所述初始待识别图像和后续待识别图像中同一目标活畜的确定方式包括:
25.对所述初始待识被图像中的各所述目标活畜进行身份识别信息标识;
26.分别获取所述初始待识别图像中各所述目标活畜的初始运动轨迹,以及所述后续待识别图像中各所述目标活畜的后续运动轨迹;
27.根据所述初始运动轨迹和后续运动轨迹确定所述后续待识别图像中所述目标活畜与所述初始待识别图像中各所述目标活畜之间的匹配度;
28.将所述匹配度高于预设匹配度的所述初始待识别图像中所述目标活畜的所述身份识别信息标识赋予所述后续待识别图像中所述目标活畜;
29.在所述初始待识别图像和后续待识别图像中具有相同所述身份识别信息标识两个目标活畜为同一目标活畜。
30.可选的,所述方法还包括:
31.获取历史在圈活畜数量;
32.根据所述进出圈状态和历史在圈活畜数量确定当前在圈活畜数量。
33.本发明还提供了一种活畜在圈状态确定系统,包括:
34.样本图像获取模块,用于获取多张包括样本活畜的样本图像,并对所述样本图像中的样本活畜进行位置标注,构建数据集;
35.训练模块,用于将所述数据集输入预设基础模型,并进行训练,得到训练后的活畜位置检测模型;
36.初始目标位置确定模块,用于获取包括目标活畜第一时刻的初始待识别图像,并输入到训练后的所述活畜位置检测模型,得到所述目标活畜的初始目标位置;
37.在圈状态确定模块,用于根据预设档口位置和所述初始目标位置确定所述目标活
畜第一时刻的第一在圈状态。
38.本发明还提供了一种电子设备,包括处理器、存储器和通信总线;
39.所述通信总线用于将所述处理器和存储器连接;
40.所述处理器用于执行所述存储器中存储的计算机程序,以实现如上述中任一项实施例所述的方法。
41.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,
42.所述计算机程序用于使所述计算机执行如上述任一项实施例所述的方法。
43.本发明的有益效果:本发明提出的一种活畜在圈状态确定方法、系统、设备及介质,该方法通过获取多张包括样本活畜的样本图像,对该样本图像中的样本活畜进行位置标注,构建数据集,以该数据集训练预设基础模型,得到训练后的活畜位置检测模型,基于该训练后的活畜位置检测模型可以实现对给定图像中活畜的在圈状态进行检测,实现了通过机器的方式自动对活畜是否在圈进行检测,即便活畜数量大、运动速度快,也能准确的检测活畜的位置信息及在圈状态,降低了成本,统一了在圈状态确定的标准,有利于实现畜牧业的高效运转。
附图说明
44.图1是本发明实施例一中提供的活畜在圈状态确定方法的一种流程示意图;
45.图2是本发明实施例一中提供的一种档口的示意图;
46.图3是本发明实施例一中提供的一种预设档口识别区间以及预设档口位置的示意图;
47.图4是本发明实施例一中提供的一种活畜在圈状态确定方法的一种具体的流程示意图;
48.图5是本发明实施例二提供的活畜在圈状态确定系统的一种结构示意图;
49.图6是本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
50.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
51.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
52.在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
53.实施例一
54.如图1所示,本实施例提供了一种活畜在圈状态确定方法,该方法包括:
55.步骤s101:获取多张包括样本活畜的样本图像,并对样本图像中的样本活畜进行位置标注,构建数据集。
56.可选的,对样本活畜进行位置标注可以采用矩形目标识别框实现,如标注样本活畜的左上角点与右下角点。又如标注样本活畜的中心点(该中心点可以是横向最长线段的中心点与纵向最长线段的中心点,也可以是本领域技术人员所设定的位置)。又如,标注样本活畜的左下角点和右上角点。
57.样本活畜可以是同一物种,也可以是不同物种。
58.对样本活畜进行位置标注,可以通过人工进行标注和/或通过机器的目标检测的方式进行标注,如采用实例分割等技术实现。
59.在一个实施例中,可以预先在圈(档口)正上方设置图像采集装置,并设定图像采集区域,该图像采集装置也可以用于采集初始待识别图像和后续待识别图像。当然,初始待识别图像和后续待识别图像的图像采集装置也可以与样本图像的图像采集装置不同。图像采集区域可以由本领域技术人员进行设定。
60.步骤s102:将数据集输入预设基础模型,并进行训练,得到训练后的活畜位置检测模型。
61.其中,预设基础模型可以是预设神经网络模型等本领域技术人员预先设定的模型。
62.通过数据集对预设基础模型进行训练的方式可以采用现有的训练方式实现,在此不做限定。
63.步骤s103:获取包括目标活畜第一时刻的初始待识别图像,并输入到训练后的活畜位置检测模型,得到目标活畜的初始目标位置。
64.此时,初始目标位置包括但不限于初始待识别图像中的位置坐标信息,该位置坐标信息可以为目标活畜的检测框的位置点信息。
65.当初始待识别图像中包括多个目标活畜时,则可以通过训练后的活畜位置检测模型得到各个目标活畜的初始目标位置。
66.可选的,也可以预先设定预设档口识别区间,在将初始待识别图像输入训练后的活畜位置检测模型前,根据预设档口识别区间将初始待识别图像进行裁剪,保留预设档口识别区间内的图像,将裁剪后的图像输入到训练后的活畜位置检测模型。
67.步骤s104:根据预设档口位置和初始目标位置确定目标活畜第一时刻的第一在圈状态。
68.其中,预设档口位置可以根据当前档口在初始待识别图像中的位置确定。
69.若初始待识别图像和后续待识别图像均为同一位置同一角度的图像采集装置所采集的,此时可以直接设定一个预设档口位置,不需要每次均识别预设档口位置。
70.初始待识别图像和后续待识别图像可以由不同位置和/或不同角度的图像采集装置所采集,此时,针对于每一个图像采集装置均设定一个对应的预设档口位置。
71.在一个实施例中,根据预设档口位置和初始目标位置确定目标活畜第一时刻的第一在圈状态包括:
72.获取预设档口识别区间;
73.若目标活畜位于预设档口识别区间内,且初始目标位置超出预设档口位置,第一在圈状态包括在圈;
74.若目标活畜位于预设档口识别区间外,或初始目标位置未超出预设档口位置,第一在圈状态包括未在圈。
75.其中,预设档口识别区间可以位于初始待识别图像的图像采集装置的图像采集区域内,也可以就是图像采集区域。
76.有时为了控制活畜进出圈的速度,档口的宽度可能较小,此时,将存在较多的活畜在档口周围活动,为减少这部分在档口周围活动的活畜的影响,可以通过设置预设档口识别区间的位置,提升预设档口识别区间与档口所在位置的重合度,以减少活动在档口周围的活畜的影响。
77.需要说明的是,预设档口识别区间至少包括档口所在的位置。
78.参见图2和图3,图2给出了一种档口的示例,图3给出了一种预设档口识别区间(图示的识别区)以及预设档口位置(图示的预设判别位置)的示例。需要说明的是,预设档口识别区间及预设档口位置还可以是本领域技术人员所设定的其他位置,图中仅是一种示例。
79.图2还给出了一种图像采集装置(图中的相机)的位置示例。当然,图像采集装置还可以设置于本领域技术人员认为合适的其他位置。图像采集装置的拍摄区域应当包括档口。
80.在进出档口正上方设置相机,能够使图像采集区域完整涵盖档口区域。
81.可选的,初始目标位置是否超出预设档口位置的判定可以通过判断初始目标位置与预设档口位置与圈后部的垂直距离来确定,其中圈后部为档口相对的圈的一面。初始目标位置的垂直距离大于预设档口位置的垂直距离,则说明初始目标位置未超出预设档口位置,否则,则说明初始目标位置超出了预设档口位置。
82.可选的,初始目标位置是否超出预设档口位置的判定可以通过初始坐标和预设档口坐标来确定,通过设定从圈外到卷内方向的坐标值依次增大,则可以根据坐标大小来确定初始目标位置是否超出预设档口位置。
83.在一个实施例中,初始目标位置的一种表示方式如下:
84.livestock(n)=[y
n1
,x
n1
,y
n2
,x
n2
]
ꢀꢀꢀ
公式(1);
[0085]
其中,livestock(n)为识别的第n个活畜位置;(x
n1
,y
n1
)为该活畜位置识别框的左下角坐标,(x
n2
,y
n2
)为其右上角坐标。
[0086]
在本实施例的中,根据档口实际位置设置识别区域得到预设档口识别区间,通过目标活畜的初始目标位置与预设档口识别区间进行对比,判断目标活畜是否在预设档口识别区间内,其逻辑判别式为:
[0087]
roi=[y
min
,x
min
,y
max
,x
max
]
ꢀꢀꢀ
公式(2);
[0088][0089]
其中,roi为设置完成的预设档口识别区间,坐标(x
min
,y
min
)为预设档口识别区间的识别框的左下角坐标,(x
max
,y
max
)为预设档口识别区间的识别框的右上角坐标,enter_roi(n)为目标活畜是否在预设档口识别区间内的判定。
[0090]
在本实施例的中,根据预设档口位置和初始目标位置确定目标活畜第一时刻的第一在圈状态的逻辑判别式为:
[0091][0092]
其中,y
threshold
为设定的判别阈值。enter_region为目标活畜是否进在圈内的判定(在圈状态),其判定依据为,仅当目标活畜位置框的坐标值完全超过y
threshold
,判定为true,否则为false。
[0093]
在一个实施例中,该方法还包括:
[0094]
获取包括目标活畜第二时刻的后续待识别图像,并输入到训练后的活畜位置检测模型,得到目标活畜的后续目标位置,第二时刻晚于第一时刻;
[0095]
根据后续目标位置和预设档口位置确定目标活畜第二时刻的第二在圈状态;
[0096]
根据初始目标位置和后续目标位置确定所目标活畜的运动方向。
[0097]
其中,第二时刻与第一时刻之间的时间差可以由本领域技术人员进行设定,时间差的设定可以参考活畜的运动速度、活畜的平均长度等因素,换句话说,可以根据活畜的平均长度、运动速度来确定第一时刻与第二时刻之间的时间差。通过时间差的准确调控,既能减少图像处理量,又能保证活畜的识别准确。
[0098]
第二在圈状态的确定可以采用与上述实施例中第一在圈状态的确定方式类似,在此不做限定。
[0099]
在一个实施例中,根据初始目标位置和后续目标位置确定目标活畜的运动方向包括以下任意之一:
[0100]
若初始目标位置和后续目标位置均超出预设档口位置,分别获取初始距离和后续距离,若初始距离大于后续距离,运动方向包括出圈方向,若初始距离小于后续距离,运动方向包括在圈方向,初始距离包括初始目标位置与预设档口位置之间的距离,后续距离包括后续目标位置与预设档口位置之间的距离;
[0101]
若初始目标位置超出预设档口位置,且后续目标位置未超出预设档口位置,运动方向包括出圈方向;
[0102]
若初始目标位置未超出预设档口位置,且后续目标位置超出预设档口位置,运动方向包括在圈方向;
[0103]
分别获取初始坐标和后续坐标,若初始坐标大于后续坐标,运动方向包括出圈方向,若初始坐标小于或等于后续坐标,运动方向包括在圈方向,初始坐标为初始目标位置的坐标,后续坐标为后续目标位置的坐标,坐标值沿在圈方向增大。
[0104]
在一个实施例中,运动方向的确定方式包括:
[0105]
(u,υ,t)=[υ
n1,t
,u
n1,t
]
ꢀꢀꢀ
公式(5);
[0106]
(u,υ,t+1)=[υ
n1,t+1
,u
n1,t+1
]
ꢀꢀꢀ
公式(6);
[0107][0108]
其中,(u,υ,t)为第n个目标活畜在第t时间的位置坐标,(u,υ,t+1)为第n个目标活畜在第t+1时间的位置坐标。
[0109]
在一个实施例中,该方法还包括:
[0110]
根据第一在圈状态和第二在圈状态确定目标活畜的进出圈状态。
[0111]
其中,进出圈状态的确定方式包括:
[0112]
若第一在圈状态为圈内,第二在圈状态为为圈外,进出圈状态为出圈;
[0113]
若第一在圈状态为圈外,第二在圈状态为为圈内,进出圈状态为入圈;
[0114]
若第一在圈状态为圈内,第二在圈状态为为圈内,进出圈状态为在圈;
[0115]
若第一在圈状态为圈外,第二在圈状态为为圈外,进出圈状态为圈外徘徊。
[0116]
可选的,还可以根据运动方向对进出圈状态为出圈和入圈的目标活畜的进出圈状态进行进一步验证,若运动方向为入圈方向且进出圈状态为入圈则正常;若运动方向为出圈方向且进出圈状态为入圈则异常;若运动方向为出圈方向且进出圈方向为出圈则正常;若运动方向为出圈方向,且进出圈方向为入圈则异常。
[0117]
在一个实施例中,若初始待识别图像和后续待识别图像中至少之一包括至少两个目标活畜,初始待识别图像和后续待识别图像中同一目标活畜的确定方式包括:
[0118]
对初始待识被图像中的各目标活畜进行身份识别信息标识;
[0119]
分别获取初始待识别图像中各目标活畜的初始运动轨迹,以及后续待识别图像中各目标活畜的后续运动轨迹;
[0120]
根据初始运动轨迹和后续运动轨迹确定后续待识别图像中目标活畜与初始待识别图像中各目标活畜之间的匹配度;
[0121]
将匹配度高于预设匹配度的初始待识别图像中目标活畜的身份识别信息标识赋予后续待识别图像中目标活畜;
[0122]
在初始待识别图像和后续待识别图像中具有相同身份识别信息标识两个目标活畜为同一目标活畜。
[0123]
在一个实施例中,运动轨迹包括如下特征中至少之一:
[0124]
(u,υ,γ,h,u,y,υ,h)
ꢀꢀꢀ
公式(8);
[0125]
其中,(u,υ)是活畜当前识别框的中心坐标,γ是长宽比,h表示高度。(u,y)为(u,υ)在图像坐标系中的速度信息,γ为(u,υ)在图像坐标系中的长宽比,h为(u,υ)在图像坐标系中的高度。
[0126]
有时初始待识别图像和后续待识别图像中均可能包括多个目标活畜,此时由于对于运动状态和进出圈状态的判断是基于同一个目标活畜来进行的,对于如何确定两个图像中的同一个目标活畜时较为重要的。此时,一个可选的方式是可以预先训练一个同一目标活畜的识别模型,基于前后两个图像中目标活畜的位置以确定两个目标活畜是否为同一目标活畜,该同一目标活畜的识别模型可以是通过预先标注好运动轨迹的若干对目标活畜图像进行训练。另一个可选的方式可以是通过分别获取后续待识别图像中一个目标活畜m与初始待识别图像中的每一个目标活畜的移动距离,该移动距离可以是欧式距离,取移动距离最小的初始待识别图像中的一个目标活畜作为该目标活畜m的同一目标活畜。
[0127]
在一个实施例中,初始待识别图像为通过相机采集的初始相机图像,后续待识别图像为通过相机采集的下一张相机图像,对目标活畜进行个体追踪的一个示例性的方式为:
[0128]
采集初始相机图像,对位于预设档口识别区间内的活畜个体,获取其识别框作为初始识别框;
[0129]
对各目标活畜的初始识别框进行标号;
[0130]
采集下一张相机图像,对于各下一张相机图像中的目标活畜与初始识别框中的目标活畜距离在预设范围内的下一识别框,将其设为候选识别框,对候选识别框进行特征提取并确定同一目标活畜,实现对于两张图像中同一目标活畜的确定。
[0131]
从候选识别框中确定同一目标活畜的一种可选的方式包括,分别提取初始相机图像中目标活畜的初始特征,以及各候选识别框中的下一相机图像中目标活畜的下一特征,将初始特征与下一特征进行特征对比,确定一个相似度最高的下一相机图像中目标活畜作为初始相机图像中目标活畜的同一目标活畜。
[0132]
在一个实施例中,该方法还包括:
[0133]
获取历史在圈活畜数量;
[0134]
根据进出圈状态和历史在圈活畜数量确定当前在圈活畜数量。
[0135]
其中,历史在圈活畜数量可以是之前所测得的活畜数量,当初始状态下,没有活畜入圈时,该数值可以是0或常规在圈活畜数量。
[0136]
历史在圈活畜数量是实时更新的,只要发生一次进出圈状态变化,就可以前一次所确定的利用当前在圈活畜数量作为本次的历史在圈活畜数量。
[0137]
根据进出圈状态和历史在圈活畜数量确定当前在圈活畜数量一种方式为,只要确定到一个目标活畜的进出圈状态为入圈,则在历史在圈活畜数量的基础上加一,只要确定到一个目标活畜的进出圈状态为出圈,则在历史在圈活畜数量的基础上减一。
[0138]
在一个实施例中,可以根据在圈状态和运动方向来确定目标活畜是否进入档口,当目标活畜进入档口,则累加进入档口的活畜数量。
[0139]
在一个实施例中,活畜往往会有身份标识,如牛羊的耳朵会设置有标牌上会有标号等表征其身份的字符,还可以结合图像识别,通过对初始待识别图像和后续待识别图像中识别设置在目标活畜上的身份识别信息进行识别,进而可以实现在统计入圈或出圈的活畜数量的同时,有确定具体是哪一个活畜入圈或出圈。对于活畜的统计管理、资产盘点更加便利。
[0140]
上述实施例提供了一种活畜在圈状态确定方法,通过获取多张包括样本活畜的样本图像,对该样本图像中的样本活畜进行位置标注,构建数据集,以该数据集训练预设基础模型,得到训练后的活畜位置检测模型,基于该训练后的活畜位置检测模型可以实现对给定图像中活畜的在圈状态进行检测,实现了通过机器的方式自动对活畜是否在圈进行检测,即便活畜数量大、运动速度快,也能准确的检测活畜的位置信息及在圈状态,降低了成本,统一了在圈状态确定的标准,有利于实现畜牧业的高效运转。
[0141]
可选的,还可以通过对目标活畜的运动状态、进出圈状态进行确定,能够实现对活畜进出口数量盘点,通过在畜牧圈档口设置相机等图像采集设备,划定图像采集区域(预设档口识别区间),获取图像数据集(数据集),根据数据集训练得到活畜位置检测模型,调用模型识别目标活畜位置的位置信息,设置进入圈内的判别区域(预设档口位置),对识别区域内的活畜进行个体追踪,判断其运动方向,并累加进入档口的活畜数量。能够较好的盘点在复杂情况下实际进入档口的活畜数量,提高工作效率,降低成本。
[0142]
下面通过一个具体的实施例,示例性的说明上述提供的活畜在圈状态确定方法,参见图4,该方法包括:
[0143]
s401:在档口正上方设置数据采集装置,划定图像采集区域。
[0144]
需要说明的是,也可以在档口的其他位置设置该数据采集装置。
[0145]
s402:采集活畜进出圈的多张图像制作数据集,并对预设基础模型进行训练得到活畜位置检测模型。
[0146]
s403:设置档口识别区域。
[0147]
该档口识别区域也即预设档口识别区间,用于识别活畜位置是否位于识别区域内。
[0148]
s404:设置预设档口位置。
[0149]
该预设档口位置用于对活畜进行位置判定。
[0150]
s405:对目标活畜进行个体追踪,得到其运动信息。
[0151]
s406:判断目标活畜的运动方向及是否超过预设档口位置,更新当前在圈活畜数量。
[0152]
在本实施例的步骤s401中,通过在进出档口正上方设置相机,使图像采集区域完整涵盖档口区域,以实现采集活畜进出档口图像数据集。
[0153]
可选的,架设相机的方位如图2所示。
[0154]
在本实施例的步骤s402中,根据图像数据集坐标,训练得到活畜位置检测模型。调用活畜位置检测模型,实时获取进出档口目标活畜的识别框,其中一种识别框坐标的内容与格式表示为:
[0155]
livestock(n)=[y
n1
,x
n1
,y
n2
,x
n2
]
ꢀꢀꢀ
公式(9);
[0156]
其中livestock(n)为识别的第n个活畜位置;(x
n1
,y
n1
)为该活畜位置识别框的左下角坐标,(x
n2
,y
n2
)为其右上角坐标。
[0157]
在本实施例的步骤s403中,根据档口实际位置设置档口识别区域后,通过目标活畜位置与档口识别区域对比,判断目标活畜是否在档口识别区域内,其逻辑判别式为:
[0158]
roi=[y
min
,x
min
,y
max
,x
max
]
ꢀꢀꢀ
公式(10);
[0159][0160]
其中roi为设置完成的档口识别区域,坐标(x
min
,y
min
)为该识别框的左下角坐标,(x
max
,y
max
)为其右上角坐标,enter_roi(n)为目标活畜是否位于识别区域内的判定。
[0161]
在本实施例的步骤s404中,在识别框区域设置进入圈内的预设档口位置,对于越过预设档口位置的目标活畜计为进入圈内;判断活畜超过位置预设档口位置的逻辑判别式为:
[0162][0163]
其中y
threshold
为设定的预设档口位置。enter_region为目标活畜是否进入圈内的位置判定结果(在圈状态),其判定依据为,仅当目标活畜的识别框完全超过y
threshold
,判定为true圈内,否则为false圈外。
[0164]
在本实施中,对目标活畜进行个体追踪,对每个目标活畜个体,其追踪的主要方式为:
[0165]
采集初始相机图像,对位于档口识别区域内的目标活畜,获取其位置作为初始识
别框;
[0166]
对相应目标活畜的初始识别框进行标号;
[0167]
采集下一张相机图像,对于所有与初始识别框的距离在预设范围内的识别框,将其设为候选识别框,对识别框进行特征提取并选择目标,以实现前后两张图像同一目标活畜的判定。
[0168]
在本实施例的步骤s405中,对所有候选识别框进行特征提取,通过将其特征与初始识别框模板匹配计算取匹配度最高为预测目标,并选用既有标号。
[0169]
获取当前标号个体的运动轨迹。其运动特征参数表示如下:
[0170]
(u,υ,γ,h,u,y,υ,h)
ꢀꢀꢀ
公式(13);
[0171]
其中,(u,υ)是目标活畜当前识别框的中心坐标,γ是长宽比,h表示高度。(u,y)为(u,υ)在图像坐标系中的速度信息,υ为当前识别框在图像坐标系中的长宽比,h为当前识别框在图像坐标系中的高度。
[0172]
在本实施例的步骤s505中,通过运动信息判断其运动方向是否向上(以图3为例,入圈方向为向上,其他情形可参照该方式进行确定),基本逻辑为:
[0173]
(u,υ,t)=[υ
n1,t
,u
n1,t
]
ꢀꢀꢀ
公式(14);
[0174]
(u,υ,t+1)=[υ
n1,t+1
,u
n1,t+1
]
ꢀꢀꢀ
公式(15);
[0175][0176]
其中(u,υ,t)为第n个活畜在第t时间的位置坐标,(u,υ,t+1)为第n个活畜在第t+1时间的位置坐标。
[0177]
在本实施例s406中,根据位置判别结果enter_region及方向判别结果enter_barrier(运动方向)判定活畜是否进入档口,当以上判别结果均成立时,累加进入档口的活畜数量。
[0178]
其中,预设识别区域、预设档口位置、目标活畜的运动方向判断如图3所示。
[0179]
上述实施例,基于目标检测和个体追踪可以实现活畜进出圈数量盘点,通过在畜牧圈档口设置相机,划定图像采集区域,获取图像数据集,根据数据集训练得到活畜位置检测模型,调用该活畜位置检测模型识别目标活畜位置,设置进入圈内的判别区域(预设档口位置),对预设识别区域内的目标活畜进行个体追踪,判断其运动方向,并累加进入档口的活畜数量。能够实现较好的盘点在复杂情况下实际进入档口的活畜数量,提高工作效率,降低成本。
[0180]
实施例二
[0181]
请参阅图5,本实施例提供了一种活畜在圈状态确定系统500,包括:
[0182]
样本图像获取模块501,用于获取多张包括样本活畜的样本图像,并对样本图像中的样本活畜进行位置标注,构建数据集;
[0183]
训练模块502,用于将数据集输入预设基础模型,并进行训练,得到训练后的活畜位置检测模型;
[0184]
初始目标位置确定模块503,用于获取包括目标活畜第一时刻的初始待识别图像,并输入到训练后的活畜位置检测模型,得到目标活畜的初始目标位置;
[0185]
在圈状态确定模块504,用于根据预设档口位置和初始目标位置确定目标活畜第
一时刻的第一在圈状态。
[0186]
在本实施例中,该活畜在圈状态确定系统实质上是设置了多个模块用以执行上述实施例中的方法,具体功能和技术效果参照上述实施例一即可,此处不再赘述。
[0187]
参见图6,本发明实施例还提供了一种电子设备600,包括处理器601、存储器602和通信总线603;
[0188]
通信总线603用于将处理器601和存储器连接602;
[0189]
处理器601用于执行存储器602中存储的计算机程序,以实现如上述实施例一中的一个或多个所述的方法。
[0190]
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,
[0191]
计算机程序用于使计算机执行如上述实施例一中的任一项所述的方法。
[0192]
本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例的实施例一所包含步骤的指令(instructions)。
[0193]
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0194]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0195]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0196]
附图中的流程图和框图,图示了按照本公开各种实施例的方法和计算机程序产品
的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0197]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1