技术领域
[0001] 本发明涉及姿态识别技术领域,尤其涉及一种猪只姿态识别方法。
相关背景技术
[0002] 集约化、规模化、标准化生猪养殖是当前养殖业发展趋势。随着养殖密度的提高,养殖场的管理面临极大的挑战。特别是猪群防疫工作,工作难度和工作强度挑战养殖场工作人员的经验技术和体力耐力,决定养殖场的经济效益,甚至生死存亡。传统人工监测猪只健康状态的方法已经无法满足当前集约化、规模化生猪养殖的需求,而猪只姿态在很大程度上能反映猪只的健康状况,故此一些研究人员研究猪只姿态自动识别方法和技术。
[0003] 现有技术中的猪只姿态自动识别方法有很多,主要分为两类:一类基于图像处理的姿态识别方法,如申请号为CN201410055221.9(申请公布号为CN103824056 A)的中国发明专利《一种基于Zernike矩及支持向量机的猪的姿态识别方法》,又如申请号为CN202111367034.0(申请公布号为CN114220162 A)的中国发明专利《一种猪只姿态识别方法及装置》;另一类是基于传感器数据采集的猪只姿态识别方法,例如:采用加速度传感器、陀螺仪以及地磁传感器检测猪只姿态。
[0004] 虽然上述的方法均能识别猪只姿态,但现有技术中存在如下使用局限性:其一,近年来随着深度学习的人工智能方法快速发展,图像处理技术的准确度越来越高,但在集约化生猪养殖的环境下,养殖密度的增加造成采集图像中很多猪只堆积或重叠在一起,这对猪只目标分割和姿态识别造成很大阻碍;其二,基于传感器数据采集的猪只姿态识别需要在猪只身体上绑定传感器,一方面增加系统成本,另一方面对猪只日常活动带来过重负担。为此需要对现有技术作进一步的改进。
具体实施方式
[0039] 以下结合附图实施例对本发明作进一步详细描述。
[0040] 实施例一:
[0041] 本实施例中的猪只姿态识别方法包括如下步骤:
[0042] 在猪舍地面铺满RFID天线线圈,RFID天线线圈连接有RFID读写器,并将位于猪舍内的猪只身体上的N个预设位置点安装RFID标签,N为大于等于1的正整数,每个预设位置点上安装一个RFID标签;
[0043] 通过RFID读写器读取猪只身体上所有RFID标签的标签数据和对应的RSSI数据,该RSSI数据为接收信号强度指示数据;RFID标签的标签数据记为标识身份猪只的数据,可以为编号等数据;
[0044] 事先对猪舍内不同姿态的猪只进行实验,即:对猪舍内不同姿态的猪只身体上所有RFID标签的RSSI数据进行分析,获得猪只不同姿态与所有RFID标签的RSSI数据之间的关系;再利用猪只不同姿态与所有RFID标签的RSSI数据之间的关系,得到待识别猪只身体上的所有RFID标签的RSSI数据所对应的姿态识别结果。
[0045] 本实施例中的RFID标签为低频RFID,而非超高频RFID,其原因是由于超高频RFID识别距离远,RSSI数据受多路径效应影响严重,RSSI数据与读写器到标签间距离相关性差;另一方面超高频RFID信号频率高,容易被导体吸收,而猪只是有机生命体,属导体,RSSI数据更容易受猪只身体影响与距离呈不相关性。而低频RFID识别距离近,RSSI数据的多路径效应不明显,且载波频率低,不容易被导体吸收,故RSSI数据与距离的相关性好。
[0046] 本实施例中RFID读写器为低频RFID读写器,现有技术中的低频RFID读写器基本不具备接收信号强度测量功能,为了实现低频RFID读写器的接收信号强度测量,本发明中低频RFID读写器包括微控制器(MCU)、天线、RFID射频模块、接收信号强度测量模块和电源模块。其中RFID射频模块与微控制器和天线电连接;本实施例中的RFID射频模块包括信号发送模块和信号接收模块,信号发送模块与微控制器和天线电连接,信号接收模块也与微控制器和天线电连接。如图2所示,本实施例中的接收信号强度测量模块包括依次相连接的隔离放大电路、峰值检波电路、检波释放电路和第一数字化电路,隔离放大电路与天线电连接,用于放大天线接收的交流信号和隔离天线发射信号进入接收信号强度测量模块;峰值检波电路,与隔离放大电路电连接,用于从隔离放大电路放大后的天线接收交流信号中获取载波峰值,以用于计算接收信号强度;检波释放电路用于释放峰值检波电路产生的峰值电压,以防前一时刻的峰值检波电压对后一时刻接收信号强度测量的影响;第一数字化电路与峰值检波电路和微控制器电连接,用于将从峰值检波电路获取的载波峰值进行模数转换,并将转换后的数字信号传给微控制器。上述隔离放大电路、峰值检波电路、检波释放电路和第一数字化电路均可以采用现有的电路,本实施例中隔离放大电路优选地具体电路图如图3所示,峰值检波电路优选地具体电路如图4所示,检波释放电路优选地具体电路如图5所示,第一数字化电路优选地具体电路如图6所示,在此不再一一展开赘述。
[0047] 本实施例中若第一数字化电路输出的峰值电压为Um,则接收信号强度dBm为:
[0048]
[0049] 其中,R为负载电阻,默认情况为50Ω。
[0050] 预设位置点主要集中在猪耳朵和猪腿上,本实施例中N的取值为4,预设位置点为猪左耳、猪右耳、左前腿和右后腿,或预设位置点为猪左耳、猪右耳、右前腿和左后腿;如图1所示,在猪舍地面铺满1米×1米的RFID天线线圈(图1中猪舍面积为3米×6米,则铺设18个RFID天线线圈),各个RFID读写器通过RS485总线连接并接入计算机(图1中应该有18个RFID读写器,每个RFID读写器用于读取对应的RFID天线线圈,图1中只示意出0#RFID读写器、1#RFID读写器、2#RFID读写器、5#RFID读写器和8#RFID读写器,其他剩余的13个RFID读写器未示出)。
[0051] 低频RFID的信号与能量传输不同于超高频和微波RFID的电磁反向散射,而是采用电感耦合方式,信号接收端接收功率如公式(1‑1)所示。
[0052]
[0053] 其中,Pr为接收功率;Pt为发射功率;M为两天线线圈(读写器天线与标签天线)的互感系数;L2为接收线圈自感;η为系统效率,包括天线和电路的效率。其中互感系数M如公式(1‑2)所示:
[0054]
[0055] 其中,L1和L2为两天线线圈的自感;K为耦合系数,取决于线圈的相对位置和方向;d为两天线线圈之间的距离;将公式(1‑2)代入公式(1‑1)得公式(1‑3)
[0056]
[0057] 由公式(1‑3)可以看出接收功率Pr与两天线线圈间距离d的平方成反比,如公式(1‑4)所示:
[0058]
[0059] 本实施例中,猪只身体携带4个RFID标签,可读取4个RSSI数据组成向量S,s=(s0,s1,s2,s3),其中,s0、s1、s2和s3分别为猪左耳、猪右耳、左前腿和右后腿上RFID标签的RSSI数据;每个RFID标签的RSSI数据均为一个数值;
[0060] 猪只的姿态分为坐、趴、躺、正常站立、抬头站立和低头站立,上述不同大小的猪只上所有RFID标签的RSSI数据均满足下述条件,故同一头猪上所有RFID标签的RSSI数据所满足的条件跟猪只的大小无关,故根据对猪舍内不同姿态的猪只进行实验,得到猪只不同姿态与所有RFID标签的RSSI数据之间的关系具体为:
[0061] 坐:s0≈s1<s2<s3 (公式1)[0062] 趴:s0≈s1<s2≈s3 (公式2)[0063] 躺:s0≈s2<s1≈s3或s0≈s2>s1≈s3 (公式3)
[0064] 正常站立:s0≈s1<s2≈s3 (公式4)
[0065] 抬头站立:s0≈s1<<s2≈s3 (公式5)
[0066] 低头站立:s0≈s1≈s2≈s3 (公式6)
[0067] 上述公式中的≈为约等于符号,>为大于符号,<为小于符号,<<为远小于符号(即:公式5中s1与s2之间的差值大于预设阈值,该预设阈值根据实验确认或经验确认),上述公式1~公式6中的约等于即对应为两个数值之间的差值小于某个阈值,该阈值接近于0。
[0068] 由于上述公式2和公式4相同,即:猪只处于趴姿态和正常站立姿态的向量S中各个分量(s0、s1、s2、s3)的数值比例关系相似,但猪只处于正常站立姿态下耳标RFID标签到RFID读写器天线距离约为腿环RFID标签到RFID读写器天线距离的2倍,而猪只处于趴姿态下耳标RFID标签到RFID读写器天线距离约为腿环RFID标签到RFID读写器天线距离的3倍,由于接收功率Pr与两天线线圈间距离d的平方成反比,当猪只处于趴姿态,耳标s0和s1的接收信号强度约为脚环s2和s3的9倍;当猪只处于正常站立,耳标s0和s1的接收信号强度约为脚环s2和s3的4倍,取其中间值6.5为阈值;故通过下述的关系式进一步区分猪只处于趴姿态或正常站立姿态;
[0069] 若sa>q*sb,则当前猪只处于趴姿态;
[0070] 若sa≤q*sb,则当前猪只处于正常站立姿态;
[0071] 其中,sa为猪只猪左耳和猪右耳上的RFID标签的RSSI数据平均值,即:s0和s1的平均值;q为预设阈值;sb为猪只左前腿和右后腿上的RFID标签的RSSI数据平均值,即:s2和s3的平均值。上述q的取值根据经验确认,本实施例中的q=6.5;
[0072] 另外在RFID读写器读取待识别猪只身体上的所有RFID标签的RSSI数据后,还包括如下步骤:对待识别猪只身体上的所有RFID标签的RSSI数据进行滤波处理。本实施例中的滤波处理包括狄克逊检验滤波和均值滤波,对待识别猪只身体上的所有RFID标签的RSSI数据进行滤波处理具体过程为:对待识别猪只身体上的所有RFID标签的RSSI数据进行多次采样,先使用狄克逊检验滤波滤除异常数据,并使用均值滤波计算得到滤波结果。
[0073] 本实施例还涉及一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的猪只姿态识别方法。
[0074] 实施例二:
[0075] 与实施例一不同的是,本实施例中对猪舍内不同姿态的猪只进行实验的具体过程为:
[0076] 构建神经网络,将所述猪只身体上所有RFID标签的RSSI数据和该猪只所对应的姿态构成训练集,并使用训练集对构建的神经网络进行训练,得到训练完成后的神经网络;
[0077] 其中神经网络的训练过程为:将猪只身体上所有RFID标签的RSSI数据输入至神经网络中,得到当前猪只的预测输出结果,并计算当前猪只的预测输出结果与当前猪只所对应的实际姿态之间的误差,使用误差反向更新神经网络的网络参数,即得到一次训练后的神经网络。
[0078] 将待识别猪只身体上的所有RFID标签的RSSI数据输入到训练完成后的神经网络中,即输出待识别猪只的姿态识别结果。
[0079] 本实施例中神经网络为BP神经网络,借助BP神经网络非线性映射能力强的特点,以获得准确的猪只姿态识别,如图7所示,本实施例中BP神经网络的输入层为4个节点,BP神经网络输出层为6个节点,隐含层1层,隐含层节点根据公式7计算得到;
[0080]
[0081] 其中,n为BP神经网络的输入层节点个数,m为BP神经网络的输出层节点个数,a为1到10之间的常数,n1为隐含层节点数;根据公式7计算得到n1取值范围4~13,本实施例中n1取值为11。
[0082] BP神经网络输入层的激活函数为purelin函数,隐含层的激活函数为tansig函数,输出层的激活函数为logsig函数,BP神经网络预测猪只属于6种姿态的概率,即:BP神经网络输出的g0,g1,g2,g3,g4,g5分别表示坐、趴、躺、正常站立、抬头站立和低头站立6种姿态的概率,由于输出层激活函数采用logsig函数,故g0,g1,g2,g3,g4,g5的取值范围均为0~1,取6个分量中最大值所对应的姿态即为BP神经网络预测的猪只姿态。
[0083] 上述BP神经网络为现有技术中常用的神经网络,故该BP神经网络的训练过程为本领域技术人员所公知的现有技术,在此不再展开赘述;
[0084] 当然也可以选择其他的神经网络,例如:卷积神经网络CNN等神经网络结构识别猪只姿态,在此不再一一列举。
[0085] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。