一种牲畜分娩检测方法和装置
技术领域
本发明涉及养殖技术领域,尤其涉及一种牲畜分娩检测方法和装置。
背景技术
目前,养牛是一些地区农户生成的一个重要部分,在内蒙古、黑龙江等地区,平原较多,有比较广阔的草原和场地,有大量的农户从事养牛。这些农户多的有几十几百头牛,少的有几头牛。他们主要采用散养方式,将牛驱赶到一个较为开放的场地进行放牧,晚间则将牛圈到一个较为封闭的场所过夜。养牛的一个重要环节是母牛分娩。由于农户养牛的具体情况,以及牛分娩的特点,事先无法得到母牛分娩的时间。因此母牛分娩前一段时间,由于散养的特点,要花费大量精力来进行看护。即使如此,也常常由于错过了分娩时间,由于天气或是母牛难产的原因,导致了一些不必要的损失。
母牛分娩检测装置就是判断母牛是否处于分娩状态的一个系统,其利用母牛分娩时候生理和行为和平时不同的特征,利用一些技术手段,如传感器获得这些数据,通过一个检测算法来进行判断。通过大量的经验可知,母牛分娩时,会出现一定程度的特殊运动特征,如反复卧倒站起、竖起尾巴、不停移动身体等,通过有经验的专业人士可以比较容易鉴别出来。基于这些特性,可以开发一个基于运动特征的母牛分娩检测装置。
由于母亲分娩的运动特征有一定复杂性,影响这些行为特征的因素很多,如不同的品种、年龄、季节、身体健康程度等等因素。仅仅根据一个经验规则或是统计方法,无法对各种不同情况作出正确判断,一旦遇到复杂状况,会导致很高的误报率。更关键的是,目前用于采集数据的运动传感器是一个多通道系统,包括想x,y,z三个方向的加速度数据以及陀螺仪对应的x,y,z三个方向数据,这6个通道数据数值变化规律有其自身的特点,具有很大独立性,对应分娩检测来说,不同情况下,6种通道数据其检测精度各不相同,如何判别那个通道数据有利于检测,是一个十分关键的问题。
目前牲畜分娩检测些方法都是通过加速度计或是陀螺仪等运动传感器采集牲畜的运动信号,或是全部或是只选择其中一类通道数据,然后根据经验或是统计方法得到一个的分类规则,根据规则进行判别目前当前是否处于分娩状态。这种方法明显有2大缺点,一是由于每个通道数据在某些特点情况下都是相对于其他通道更可靠,如果只选其中一类,显然在某些情况下会产生很大的误报率,如果全部选择,而基于目前已有的统计规则或是经验规则,不能自动区分给定条件下那种通道数据更好,比然降低检测精度。二是数据复制,简单规则方法误报率高。由于采用运动传感器获得的数据,其具有灵敏度高,频次高,同时包含了大量噪声,数据振幅上具有上下跳跃幅度大的特征,且由于牛的运动具有各种模式,如突发性,脉冲型,平缓运动,剧烈运动等等。目前已有的专利和相关方法没有给出的分娩检测采用的统计或是经验规则,无法兼顾各种复制情况,误报率高。
同时,通过实验和观察,我们发现,运动传感器获得的母牛运动数据,当母牛运动时,导致传感器的佩戴位置发生改变,获得的运动数据会在某些通道上会发生显著变化,即使是佩戴位置改变幅度很小的情况下,这种现象也会出现。而配戴位置改变这个情况是避免不了的。由这种情况导致的不同通道获得数据发生较大幅度改变时,就会发生只有一部分通道数据具有较好的是否分娩预测能力。直接利用利用现有的深度神经网络方法,对输入不同通道数据不加区分其分娩预测能力,会导致很多误报发生。
如何在各种复杂情况下,自动选取有利于检测的通道,且能够分析处理复杂数据,捕获其中关于分娩的独有的特殊规律,是开发灵敏高效的分娩检测装置的关键。
发明内容
本发明的目的在于解决上述现有技术存在的缺陷,提供一种能够提高分娩检测精度的牲畜分娩检测方法和装置。
一种牲畜分娩检测方法,包括以下步骤:
步骤1:采集牲畜分娩前后数据;
步骤2:利用采集的数据以及该数据对应的分娩结果来训练分娩检测模型,该分娩检测模型能够自动选取出有利于分娩判别的通道数据,并利用所述通道数据给出判别结果;
步骤3:输入新采集的未知答案的新数据,利用所述分娩检测模型进行判别,得到分娩结果;
其中,所述分娩检测模型的方法包括:
对采集的数据进行预处理,得到时序数列的训练样本xk;
给定一个随机序列P0,该随机序列P0的长度为通道的个数;将该随机序列P0与训练样本xk按照某一规则进行处理得到初步处理数据ZK;
利用所述初步处理数据ZK作为长短记忆神经网络模型的初次输入,并根据所述长短记忆神经网络模型得到初次输出结果h0;
以该初次输出结果h0作为第一前馈神经网模型的输入来预测每个通道分娩能力的相对大小,并根据所述前馈神经网模型得到一个和为1的正数列Pk;
将所述正数列Pk和训练样本Xk+1按照所述规则进行处理,得到处理后的数据ZK+1;
将所述处理后的数据ZK+1再次作为长短记忆神经网络模型的输入,并根据所述长短记忆神经网络模型得到本次输出结果hk+1以及上次输出结果hk;将所述上次输出结果hk再次作为第一前馈神经网模型的输入;
将所述输出结果hk+1作为第二前馈神经网络的输入,并利用所述第二前馈神经网络得到一个2维向量,2个元素是正数且和为1的数列ck;所述第二前馈神经网络为输出层包含一个2个节点的前馈神经网络;
利用所述数列ck和对应的分娩结果采用交叉熵来得到最终的分娩结果。
进一步地,如上所述的方法,所述预处理包括以下步骤:所述步骤1中采集的数据为:采用运动传感器获取的牲畜分娩前后数据和该数据对应的牲畜分娩状态;所述运动传感器获取的牲畜分娩前后数据包括:针对气候、天气、温度、地区、季节、类别、一天的时间段、以及各种运动模型采集的数据。
进一步地,如上所述的方法,所述预处理包括以下步骤:
(1)将采集到的数据按顺序拼接在一起,构成一个数据链;
(2)对所述数据链按照给定区间d进行分割,得到分割后的数据集合sk(u);k表示当前时间;
(3)对sk(u)进行平滑处理以去除偶尔出现的孤峰和噪声,最终得训练样本Xk=(xk,1,xk,2,...,xk,n),其中n是通道个数。
进一步地,如上所述的方法,所述孤峰的去除包括按以下公式去除数据集合sk(u)中偶尔出现的孤峰情况:
其中,a为选定的一个阈值;vk,m(u)为在一个数据单元上去除的结果,sk,m(u)表示第m个通道在[kd,(k+1)d]内获取的间隔毫秒级别的时序数列;
所述噪声的去除包括按以下公式去除数据集合sk(u)的噪声:
xk,m是vk,m(u)在区间[kd,(k+1)d]上的平滑结果,m是通道的编号,训练样本xk=(xk,1,xk,2,...,xk,n),其中n是通道个数。
进一步地,如上所述的方法,所述采用交叉熵来得到最终的分娩结果包括按照以下损失函数得到分娩结果:
一种牲畜分娩检测装置,包括:
数据采集模块,用于采集牲畜分娩前后数据;
训练模块,用于利用采集的数据以及该数据对应的分娩结果来训练分娩检测模型,该分娩检测模型能够自动选取出有利于分娩判别的通道数据,并利用所述通道数据给出判别结果;
判别模块,用于根据输入新采集的未知答案的新数据,利用所述分娩检测模型进行判别,得到分娩结果;
其中,所述训练模块包括:
预处理单元,用于对采集的数据进行预处理,得到时序数列的训练样本xk;
第一数据处理单元,用于通过给定的一个随机序列P0与训练样本xk按照某一规则进行处理得到初步处理数据ZK;
第一通道信息选择单元,用于利用所述初步处理数据ZK作为长短记忆神经网络模型的初次输入,并根据所述长短记忆神经网络模型得到初次输出结果h0;
通道决策单元,用于以该初次输出结果h0作为第一前馈神经网模型的输入来预测每个通道分娩能力的相对大小,并根据所述第一前馈神经网模型得到一个和为1的正数列Pk;
第二数据处理单元,用于将所述正数列Pk和训练样本Xk+1按照所述规则进行处理,得到处理后的数据ZK+1;
第二通道信息选择单元,用于将所述处理后的数据ZK+1再次作为长短记忆神经网络模型的输入,并根据所述长短记忆神经网络模型得到本次输出结果hk+1以及上次输出结果hk;将所述上次输出结果hk再次作为通道决策单元的输入,以供通道决策单元再次输出正数列Pk+1作为第二数据处理单元的输入;
通道决策单元,用于利用所述第二通道信息选择单元的输出结果hk+1作为输入第二前馈神经网络的输入,得到一个2维向量,2个元素是正数且和为1的数列ck;所述第二前馈神经网络为输出层包含一个2个节点的前馈神经网络;
判断单元,用于利用所述数列ck和对应的分娩结果采用交叉熵来得到最终的分娩结果。
进一步地,如上所述的牲畜分娩检测装置,还包括报警模块,用于根据判别模块判别的结果进行报警。
有益效果:
本发明提供的牲畜分娩检测方法,通过长短记忆神经网络模型和第一前馈神经网模型的配合能够自动选取有利于检测的通道,并利用第二前馈神经网络选择出数据分辨能力强的通道数据,然后根据所述分辨能力强的通道数据作为判断分娩结果的最终依据,从而提高了分娩检测的精度。具有适应范围广,适应各类复杂情况。本发明提供的牲畜分娩检测装置在母牛开始分娩时进行报警,既可以节省劳动力,也可以提高牛仔成活率。
附图说明
图1为本发明牲畜分娩检测方法流程图;
图2为本发明牲畜分娩检测装置结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通过大量的经验可知,母牛分娩时,会出现一定程度的特殊运动特征,如反复卧倒站起、竖起尾巴、不停移动身体等,通过有经验的专业人士可以比较容易鉴别出来。母牛分娩对于养殖户来说是一个重要事件。首先,看护劳动量大;其次由于看护不到位,牛仔损失时有发生,造成农户较大损失,因此开发一个精准的母牛分娩检测报警装置有较大价值。一种检测分娩的重要方式是基于运动传感器采集的数据进行检测,运动传感器数据是个多通道数据,不同条件下不同通道数据差异很大,导致每个通道数据对检测是否分娩的灵敏度不同。
图1为本发明牲畜分娩检测方法流程图,如图1所示,该方法包括以下步骤:
步骤1:采集牲畜分娩前后数据;
步骤2:利用采集的数据以及该数据对应的分娩结果来训练分娩检测模型,该分娩检测模型能够自动选取出有利于分娩判别的通道数据,并利用所述通道数据给出判别结果;
步骤3:输入新采集的未知答案的新数据,利用所述分娩检测模型进行判别,得到分娩结果。
本发明通过设计了一个深度神经检测模型,利用标注好的数据进行学习训练,得到的模型能够自主判断哪些通道有利于检测分娩,进而选择相应的通道数据进行分娩预测,获得了更高的检测精度。针对待产母牛,利用该模型设计的检测置安装在母牛身上指定的一些部位,实时采集母牛的运动信息,输入到该装置中,输出当前母牛是否开始分娩的判读,将结果发送到指定的手机等接受装置,进行实时监督。
为了获得更广泛的特征和数据类型,因此需要针对气候、天气、温度、地区、季节、类别、一天的时间段、以及各种运动模型,来有针对性地采集母牛分娩前后数据。采集数据的数量要保证数量充分。也就是对每种情况至少采集10分钟以上的数据。采集的数据需要一个统一的数据采集装置,放置母体身体上的位置固定,位置包括脖子下方或是后背中心部位,以保证设备的安全性。这样才可以保证采集的数据具有一致性,有利于训练分娩模型。采集的数据内容包括运动传感器数据和当时母牛的分娩状态。
在进行模型训练之前,需要对采集的数据进行预处理。预处理的方式包括去除噪声以及偶尔出现的孤峰。通过有效去除噪声的干扰来避免脉冲型数据产生的可能误报;同时通过对去除噪声后的数据进行处理,来适合深度神经网络模型的学习和训练。
具体地,对数据根据给定的区间长度进行分割:首先,为了表述方便,我们将采集到的数据按顺序拼接在一起。我们用n表示获得的数据的通道数。然后选择一个固定的区间长度d,例如对可以令d等于1分钟。然后根据d对采集到的数据进行分割,同时对该数据对应的人工标注,得到模型训练的答案数据,具体过程为给定数据对应的分娩状态是未开始分娩,则标注为0,处于分娩状态,则标注为1。设得到的数据集合为{(sk(u),yk)},分别是第k段区间内对应的运动传感器数据和对应的标注(答案)。注意,sk(u)表示n个通道在时间区间[kd,(k+1)d]采集到的所有数据构成的集合,我们sk,m(u)表示第m个通道在[kd,(k+1)d]内获取的间隔毫秒级别的时序数列。
对分割的数进行平滑处理:为了有效去掉噪声的影响,以及脉冲数据产生的危害,我们按下面方式对数据进行平滑处理,以获得更可靠的模型输入数据,同时把区间数据变成通道个数的离散点,大幅降低数据的计算量。
首先,优选地,我们选定一个阈值a,按下面方式减[kd,(k+1)d]缓数据中偶尔出现的孤峰情况:
然后,我们对vk,m(u)在区间上[kd,(k+1)d]进行平滑处理,既可以降低噪声影响,也可以大幅降低计算复杂度,平滑处理为:
xk,m是vk,m(u)在区间[kd,(k+1)d]上的平滑结果,可以有效降低噪声的影响。进而得到区间[kd,(k+1)d]对应的分娩模型输入向量xk=(xk,1,xk,2,...,xk,n),其中n是通道个数。
其中,所述分娩检测模型的方法包括:
步骤21:对采集的数据进行预处理,得到时序数列的训练样本xk;
步骤22:给定一个随机序列P0,该随机序列P0的长度为通道的个数;将该随机序列P0与训练样本xk按照某一规则进行处理得到初步处理数据ZK;
步骤23:利用所述初步处理数据ZK作为长短记忆神经网络模型的初次输入,并根据所述长短记忆神经网络模型得到初次输出结果h0;
步骤24:以该初次输出结果h0作为第一前馈神经网模型的输入来预测每个通道分娩能力的相对大小,并根据所述前馈神经网模型得到一个和为1的正数列Pk;
步骤25:将所述正数列Pk和训练样本Xk+1按照所述规则进行处理,得到处理后的数据ZK+1;
步骤26:将所述处理后的数据ZK+1再次作为长短记忆神经网络模型的输入,并根据所述长短记忆神经网络模型得到本次输出结果hk+1以及上次输出结果hk;将所述上次输出结果hk再次作为第一前馈神经网模型的输入;
步骤27:将所述输出结果hk+1作为第二前馈神经网络的输入,并利用所述第二前馈神经网络得到一个2维向量,2个元素是正数且和为1的数列ck;所述第二前馈神经网络为输出层包含一个2个节点的前馈神经网络;
步骤28:利用所述数列ck和对应的分娩答案yk采用交叉熵来得到最终的分娩结果。
具体的,由于各个通道在不同情况下对判别母牛是否分娩的能力有所差异,为了有效加以区分它们的分类能力,进而选出更有利于分娩判断的那些通道,我们在已有的神经网络框架的基础上,加入一个新的机制(模块),如图2所示,其可以自动地判别哪些通道分类能力更强,进而科学有效地利用不同通道数据进行分类。如何科学地构建新的神经网络结构,以达到这个目的,接下来按图2进行详细说明。
整个方案由4个模块构成,包含了3个神经网络net1,net2,net3。
神经网络net1,采用目前循环神经网中的一种常用模型---长短记忆神经网,用下面的公式来表示
hk=net1(hk-1,zk)
输入分别是k时刻的hk-1,zk,其中hk-1是该神经网的上一次输出,zk是输入向量xk经过通道决策模块变换后的结果,输出hk是一个n1维向量,n1是长短记忆神经网net1的输出层节点数。
由于net1是长短记忆神经网,作为历史信息的hk-1可以有效存储最近一段时间数据中包含的特征和模式,因此我们利用其作为判断各个通道对应分娩预测能力决策因素,也就是作为策通道决策模块的输入向量。通道决策函数我们也采用神经网络,用下面形式来表示
pk=net2(hk-1)
其中,net2网络我们选择是一个前馈神经网,包含1或2个中间隐层。输入向量是hk-1,输出层的节点数等于nx,也就是通道个数。输出层采用softmax函数,因此输出pk是一个和为1的正数列。用来预测每个通道预测分娩能力的相对大小,其预测能力来源于训练数据对图1介绍的模型的训练。
有了pt,我们用一个通道决策模块来确定如何处理通道数据xt,具体用下面公式来表示
zk=f(pk,xk)
通道数据决策模块f是根据数列pk来决定输入数据xt中各个通道的如何选择的,处理后的数据是zk。对于具体方法f,我们可以采用多种方案,例如f可以采用利用pt每个分量分别乘到xt的对应分量得到zk,即
zk,m=pk,mxk,m,m=1,2,...,n
m是通道的编号。这种方法,是根据pk,m的大小对相应的通道数据xk,m进行强化或是弱化。或者
其中zk,m是zk,m的第m个分量,θ是事先给定的阈值,本申请建议其取值结语之间,其中n是通道个数,这种处理方法就是直接选取那些分娩判断力强的通道数据,避免分类能力弱的通道数据带来的干扰。
net3是最终决策神经网,本申请采用一个前馈神经网,其输入是hk,输出层包含一个2个节点,采用softmax函数,得到的输出ck是一个2维向量,2个元素是正数且和为1,用来预测母牛当前是否处于分娩。根据输入的训练样本中的答案yk,我们采用交叉熵来得到模型训练的损失函数:
最后,我们利用已经处理好的数据,按上面的损失函数loss对设计好的的模型进行训练,得到用于检测母牛是否分娩的模型。最后,根据第一部分训练好的神经网络模型,可以构建一个检测装置,该装置读入运动传感器数据,输出检测结果,然后把结果输入到用户指定的装置中,如手机或是闹铃等报警装置。
本发明还提供一种牲畜分娩检测装置,如图2所示,包括:
数据采集模块,用于采集牲畜分娩前后数据;
训练模块,用于利用采集的数据以及该数据对应的分娩答案yk来训练分娩检测模型,该分娩检测模型能够自动选取出有利于分娩判别的通道数据,并利用所述通道数据给出判别结果;
判别模块,用于根据输入新采集的未知答案的新数据,利用所述分娩检测模型进行判别,得到分娩结果;
报警模块,用于根据判别模块判别的结果进行报警。
其中,所述训练模块包括:
预处理单元,用于对采集的数据进行预处理,得到时序数列的训练样本xk;
第一数据处理单元,用于通过给定的一个随机序列P0与训练样本xk按照某一规则进行处理得到初步处理数据ZK;
第一通道信息选择单元,用于利用所述初步处理数据ZK作为长短记忆神经网络模型的初次输入,并根据所述长短记忆神经网络模型得到初次输出结果h0;
通道决策单元,用于以该初次输出结果h0作为第一前馈神经网模型的输入来预测每个通道分娩能力的相对大小,并根据所述第一前馈神经网模型得到一个和为1的正数列Pk;
第二数据处理单元,用于将所述正数列Pk和训练样本Xk+1按照所述规则进行处理,得到处理后的数据ZK+1;
第二通道信息选择单元,用于将所述处理后的数据ZK+1再次作为长短记忆神经网络模型的输入,并根据所述长短记忆神经网络模型得到本次输出结果hk+1以及上次输出结果hk;将所述上次输出结果hk再次作为通道决策单元的输入,以供通道决策单元再次输出正数列Pk+1作为第二数据处理单元的输入;
通道决策单元,用于利用所述第二通道信息选择单元的输出结果hk+1作为输入第二前馈神经网络的输入,得到一个2维向量,2个元素是正数且和为1的数列ck;所述第二前馈神经网络为输出层包含一个2个节点的前馈神经网络;
判断单元,用于利用所述数列ck和对应的分娩答案yk采用交叉熵来得到最终的分娩结果。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。