本发明属于畜禽业动物健康状况监测
技术领域:
,特别涉及一种基于BP神经网络的生猪行为分类方法。
背景技术:
:动物行为是动物生理健康状况的外在表现,能一定程度反应动物机体对环境的适应情况,影响动物质量、出栏率以及发情、疾病监控,是评价动物福利的重要指标之一。随着规模化养殖的发展,依靠传统方法监测个体生猪行为效率低,饲养人员无法及时发现异常生猪个体,从而未能做出科学合理的养殖决策,导致猪场养殖效益低。因此,为了实现自动化管理、节省人力成本,自动监测生猪相关生理指标数据已经成为现代养猪业发展趋势。综合运用传感器技术、无线通信技术、嵌入式技术等相关知识,可实现生猪养殖的自动监测,并根据个体信息实现精细化管理,推动生猪养殖自动化和智能化发展,并对畜禽养殖具有一定的指导性意义。动物行为判别模型可为进一步分析动物健康状况提供理论依据,在建模方法方面得到了广泛研究,相关研究多采用机器视觉和传感器网络技术等方法识别动物日常行为。综上,上述研究均为部分识别,未能实现个体全天行为的监测统计,且模型分析过程繁琐、准确率低、设备成本高。技术实现要素:为了克服上述现有技术的缺点,本发明的目的在于提供一种基于BP神经网络的生猪行为分类方法,通过在生猪颈部佩戴监测模块,采集生猪日常行为对应的加速度、角速度信息,通过BP神经网络建立生猪日常行为判别模型,使用该模型对生猪日常行为进行统计,为生猪健康状况提供参考依据,以期提高生猪福利和产品质量,具有准确率高、普适性强,可自动监测生猪全天运动信息的优点,是一种低成本、高准确率的生猪个体行为识别方法,可为判别生猪健康状况提供依据。为了实现上述目的,本发明采用的技术方案是:一种基于BP神经网络的生猪行为分类方法,包括:实时采集生猪加速度、角速度和姿态角信息为输入,根据以下模型公式得到分类结果:M=0.5505×y1+1.0154×y2+1.0528×y3-0.2362;当M取值小于0.5时,对应生猪行为站,当M取值为0.5-1.5时,对应生猪行为走,当M取值为1.5-2.5时,对应生猪行为卧,当M取值为2.5-3.5时,对应生猪行为躺;当M取值大于3.5时,说明判别失败,重新采集数据。在具体操作中,对M结果进行四舍五入,取整判断,即输出小于0.5,取0,0.5-1.5取1,1.5-2.5取2,2.5-3.5取3,分别对应相应的行为,便于计算机处理。其中,y1、y2、y3是为了简化公式表达所采用的参量,x1、x2、x3是为了简化公式表达所采用的参量:x1=-0.2728Vx-0.3570Vy-0.4871Vz+0.5738ωx-0.1512ωy+05286ωz-1.6763θx-1.7141θy+0.7166θz+0.8859x2=-1.3617Vx+4.4043Vy+0.6649Vz+5.1408ωx-1.3846ωy-3.4281ωz-0.6854θx-0.1508θy-0.6796θz+1.0415x3=1.0844Vx-4.3527Vy-0.7629Vz-6.6953ωx+1.0044ωy+4.5358ωz-0.1438θx-1.5785θy-0.1466θz-2.8115其中,Vx、Vy、Vz分别是x、y、z三个方向的加速度值,ωx、ωy、ωz分别是x、y、z三个方向的角速度值,θx、θy、θz分别是x、y、z三个方向的姿态角值。本发明中模型公式是基于BP神经网络构建而成,其中,隐层阈值为(0.88591.0415-2.8115),输出层权值(0.55051.01541.0528),输出层阈值(-0.2362)。本发明通过设置在生猪身体上的微惯性传感器模块实时动态获取生猪运动产生的加速度和角速度,通过磁力计传感器获取地磁强度信息,将采集数据进行融合滤波得到姿态角。所述微惯性传感器模块为采样频率为10Hz的微惯性传感器MPU-6050,磁力计传感器为HMC5833磁力计传感器,内置于防水密封盒中,佩戴在生猪颈部,同时采用HC-05蓝牙模块向上位机发送数据。采用四阶龙格库塔优化算法,迭代解算姿态四元数和俯仰角、滚转角、航偏角实时值,利用动态Kalman滤波算法,结合HMC磁力计传感器输出的磁场强度信息,对三轴角度信息的累积误差进行补偿和校准,得到生猪运动时的姿态角。所述模型公式通过如下过程建立:1)样本采集采集站、走、卧、躺,四类生猪行为下对应的加速度、角速度、姿态角信息,作为模型训练数据;2)数据处理对模型训练数据进行归一化处理,使经过处理的数据符合标准正态分布,以提高网络收敛速率;3)模型构建采用单隐层结构BP网络构建模型,将归一化处理后的加速度、角速度和姿态角数组作为网络的输入矢量,对应行为站、走、卧、躺,为网络输出期望信号,根据预设的目标误差和训练最大步数,选用S型正切函数Tansig为隐含层神经元传递函数,线性激活函数Purelin为输出层传递函数,利用LM训练法对网络进行训练得到模型。所述模型训练数据共采集两个生猪4800组,每10组进行一次处理,即剔除3组最大值和3组最小值,中间4组求平均值,以减少漂移信号的影响。所述归一化处理采用Z-score归一化,转化函数如下:Xk=xk-xmeanxvar]]>其中,xk为所采集的9维原始数据,即x、y、z三个方向的加速度值、角速度值和姿态角值;xmean为所有数据样本的均值;xvar为所有样本数据的标准差;Xk为归一化后的样本数据。所述模型构建中,最优隐含层节点数N的计算公式为式中,l为输入层节点数,m为输出层节点数,c为1~10之间的常数;网络训练的目标误差为0.001,训练最大步数设为1000。训练过程中,BP神经网络程序运行时,初始化网络的权值矩阵W、V,将样本模式计数p和训练次数计数q置为1,网络训练后的精度Emin即目标误差取0.001;输入归一化处理后的训练集样本,计算各层输出Yi,进行以下流程:其中,系统输出均方根误差公式为RMSE=1PΣp=1PΣi=1k(dip-hip)2]]>式中,为训练样本真实值,为训练样本网络期望值,P为训练样本个数,k为输出层个数。训练过程中,输出层期望输出d与实际输出h比较得到误差信号误差信号通过隐层各节点权向量反传至隐层,得到隐层误差信号计算公式为:δkh=(dk-hk)hk(1-hk)]]>δjy=(Σk=1pδkhwjk)yj(1-yj)]]>式中,wjk为隐含层到输出层的权值向量,yj为隐含层第j个输出分量,hk为网络第k次循环时对应的输出层分量,dk为网络第k次循环对应的期望输出量。与现有技术相比,本发明的有益效果是:本发明提出的基于LM训练法构建生猪行为判别模型,有效提高了模型的分类精度和收敛速度,验证结果表明,加入姿态角信息作为BP神经网络输入量可有效避免网络陷入到局部极小值,满足实时性要求,误差函数为0.001844达到了期望的误差水平,构建的生猪行为判别模型与实际行为高度线性相关,其相关系数为0.992,整体判别准确率为92.64%,为进一步分析生猪健康状况提供数据支持。附图说明图1是本发明总体流程图。图2是本发明BP网络梯度训练过程图。图3是本发明加入姿态角后的网络训练结果图。图4是本发明未考虑姿态角得到的网络训练结果图。图5是本发明考虑姿态角时实际行为对应的分类值与期望值相关性分析示意图。图6是本发明未考虑姿态角时实际行为对应的分类值与期望值相关性分析示意图。具体实施方式下面结合附图和实施例详细说明本发明的实施方式。本发明总体设计如图1所示,由数据采集、数据处理、数据发送与接收、模型建立与分类4部分组成。其中数据采集端利用采样频率为10Hz的微惯性传感器MPU-6050模块实时动态获取生猪运动产生的加速度、角速度信息,利用磁力计传感器HMC5833实时动态获取地磁强度信息。在数据处理部分,STC12C5A60S2单片机对数据进行融合滤波后准确输出姿态角信息,这为生猪不同行为分类提供了重要参考依据。数据发送与接收部分,HC-05蓝牙模块将单片机输出信息传输至电脑上位机。在模型建立与分类部分,生猪日常行为对应的运动信息特征值作为模型输入参数,调用Matlab软件中BP神经网络工具箱构建模型,目的是对生猪的日常行为进行准确的分类判别。本实施例验证试验于2016年6月在杨凌本香养猪场封闭进行,为使模型具有普适性,选取相同生长期的生猪2头,通过松紧布带将监测模块绑到生猪颈部相同位置,即Z轴均与地面垂直。将录像机架设在生猪前方位置,保证录像机能够准确获取生猪当天不同行为视频片段,加以人工标注,通过视频片段信息匹配上位机该段时间生猪行为数据。试验过程中监测模块分别采集站、走、卧、躺,四类生猪行为下对应的加速度、角速度、姿态角信息。前一头生猪每种行为采集时间20min,间隔重复操作一次,共计4800组数据,作为模型训练数据。第二头生猪每种行为采集时间5min,共计1200组数据,作为模型的验证数据。为了获得生猪日常行为信息,本试验设计并开发了行为信息采集与分析系统,主要由便于佩戴在生猪颈部的防水密封盒,里面包括1节5V干电池,处理器STC12C5A60S2单片机,采集生猪运动产生的加速度、角速度信息的MPU-6050模块,对姿态角进行矫正的HMC5833磁力计传感器,以及用于发送数据的HC-05蓝牙模块,接收数据的电脑上位机等组成。其中,防水密封盒由3D打印机制做而成,大小为75mm×25mm×30mm,两端通过松紧布带绑在生猪颈部位置。密封盒底面与水平面平行,确保每头生猪的佩戴位置相同。电脑蓝牙与HC-05蓝牙模块配对成功后,将串口数据导入到Matlab2010a(MathWorks公司)进行数据分析处理。STC12C5A60S2单片机根据I2C协议获取MPU-6050微惯性传感器采集的生猪运动产生加速度和角速度信息以及地磁传感器HMC5833输出的三轴磁场强度信息。采用四阶龙格库塔优化算法,迭代解算姿态四元数和俯仰角、滚转角、航偏角实时值。由于陀螺仪传感器存在随机漂移误差,利用动态Kalman滤波算法,结合HMC磁力计传感器输出的磁场强度信息,对三轴角度信息的累积误差进行补偿和校准,得到生猪运动时的姿态角信息。每10组进行一次处理,即剔除3组最大值和3组最小值,中间4组求平均值,有效减少了漂移信号的影响。上述9维数据间量纲不同,为了避免数值大的变量在网络训练过程中所占权重过高,而其他有效数据未能参与模型的训练中,导致网络训练误差大收敛速度慢。因此需要对数据进行归一化处理,以提高网络收敛速率。Z-score归一化是给原始数据的均值和标准差进行标准化处理。经过处理的数据符合高斯分布,即均值为0,标准差为1,转化函数如公式(1)所示。Xk=xk-xmeanxvar---(1)]]>式中,xk为所采集的9维原始数据,即x、y、z三个方向的加速度值、角速度值和姿态角值;xmean为所有数据样本的均值;xvar为所有样本数据的标准差;Xk为归一化后的样本数据。根据归一化后的样本数据,建立行为分类模型。BP(backpropagation)神经网络是一种按误差反向传播算法训练的多层前馈网络,当输出层实际输出与期望输出不符,则输出误差通过隐层反向传递到输入层,通过不断修正各层权值,直至实际输出满足期望要求,或输出误差不再减小,则网络训练结束。为使网络具有很好的泛化能力和通用性,本发明采用单隐层结构BP网络构建模型,将归一化处理后的数组(加速度、角速度,姿态角)作为网络的输入矢量,对应行为站、走、卧、躺,为网络输出期望信号。通过经验公式,并结合试凑法确定最优隐含层节点数计算公式为N=l+m+c---(2)]]>式中,l为输入层节点数,m为输出层节点数,c为1~10之间的常数。由于双曲正切函数分类区域为一个非线性超平面,具有划分精度高,容错性好的优点,因此隐含层神经元传递函数选用S型正切函数Tansig,输出层传递函数为线性激活函数Purelin,非线性最小二乘算法(LM)是介于牛顿法与梯度下降法之间的一种非线性优化算法,具有收敛速度快、有效处理冗余参数的优点,因此选用LM训练法对网络进行训练。网络训练的目标误差为0.001,训练最大步数设为1000。为了对比分析加入姿态角对模型分类精度和实时性的影响,模型建立时采用相同的方法,试验样本集1加入了三轴姿态角信息,样本集2仅考虑加速度和角速度信息,建立基于BP网络的生猪行为识别模型。其中,样本集1的输入矢量为X=[x1,x2,…,x9]T,样本集2的输入矢量为X=[x1,x2,…x6]T,x1,x2,x3,x4,x5,x6,x7,x8,x9分别为X、Y、Z三轴加速度、三轴角速度、三轴姿态角。输出层输出向量信号H=(h1,h2,h3,…,hi)T表示网络计算得到的分类数,利用round函数进行四舍五入取整处理。期望输出向量信号D=(d1,d2,d3,…di)T为每组对应实际行为,分别用0、1、2、3表示生猪站、走、卧、躺四类行为方式,部分实验数据如表1所示。表1生猪不同行为产生的运动信息猪编号加速度(x,y,z)角速度(x,y,z)姿态角(x,y,z)对应行为10.07-0.011.10-0.060.070.06-1.76-4.68-168.89站10.06-0.021.10-0.020.120.18-1.79-4.52-169.05站10.04-0.021.11-0.030.180.24-1.77-4.54-169.04站10.06-0.121.09-18.56-9.83-4.94-4.09-2.17-165.34走10.03-0.091.11-21.36-11.53-3.79-4.73-3.09-164.90走10.05-0.111.09-23.62-16.59-5.12-3.48-3.02-165.48走1-0.970.020.12-0.120.06013.0783.02156.95卧1-0.960.030.12-0.0600.113.0983.02157.12卧1-0.970.050.070.020.060.069.4985.92151.31卧20.06-0.021.11-0.0900.03-0.83-3.41-170.04站20.10-0.151.07-19.74-15.99-3.28-5.80-6.30-163.38走2-0.970.050.060-0.060.0320.5785.04177.44卧采用BP梯度下降算法(即LM训练法)训练建立生猪行为分类模型,如图2所示。BP神经网络程序运行时,初始化网络的权值矩阵W、V,将样本模式计数器p和训练次数计数q置为1,网络训练后的精度Emin取0.001;输入归一化处理后的训练集样本,计算各层输出Yi,进行以下流程:其中,系统输出均方根误差公式为RMSE=1PΣp=1PΣi=1k(dip-hip)2---(3)]]>式中,为训练样本真实值,为训练样本网络期望值,P为训练样本个数,k为输出层个数。BP算法运行原理是信号的前向计算和误差的反向传播,输出层期望输出d与实际输出h比较得到误差信号误差信号通过隐层各节点权向量反传至隐层,得到隐层误差信号计算公式为δkh=(dk-hk)hk(1-hk)]]>δjy=(Σk=1pδkhwjk)yj(1-yj)]]>式中,wjk为隐含层到输出层的权值向量,yj为隐含层第j个输出分量,hk为网络第k次循环时对应的输出层分量,dk为网络第k次循环对应的期望输出量。采用LM训练法对上述试验样本集进行训练,训练结果如图3和4所示。图3中,融合姿态角信息的生猪行为分类模型收敛速度快,截至到25步,网络训练的误差函数为0.001844,达到了期望的误差水平,满足实时性要求。而图4中,网络训练过程出现震荡陷入到局部极小值,训练误差函数为0.01516,未能达到网络训练的目标误差。为了增加模型的通用性和泛化能力,试验训练集来自成年期生猪站、走、卧、躺,四类行为4800组数据,测试集来自第2头生猪共1200组,约占总体样本的20%,采用异校验方法进行验证,实际行为对应的分类值与期望值相关性分析如图5和图6所示。从图5中得出,考虑姿态角的基于LM训练法的模型预测值与期望值相关性分析的决定系数为0.992,直线斜率为0.95,截距为0.32;图6中未考虑姿态角的基于LM训练法的模型预测值与期望值相关性分析的决定系数为0.872,直线斜率为0.88,截距为0.42,考虑姿态角信息建立模型的线性度明显更好,分类判别程度更高。进一步分析模型误差,其中考虑姿态角和加速度、角速度参数建立判别模型的最大相对误差仅为8.05%;仅考虑加速度和角速度参数建立模型的最大相对误差为15.62%,未考虑加速度建立模型的最大相对误差为13.46%,未考虑角速度建立模型的最大相对误差为10.17%。通过分析最大相对误差可知,姿态角对生猪行为判别模型影响明显超出其他运动参数。所以考虑姿态角的基于LM训练法构建的生猪行为判别模型与实际行为相关性高,且误差小。综上,本发明采用多次重复试验获得6000组数据,并进行Z-score归一化处理,输入量纲根据有无姿态角分成两类,并采用LM训练法进行判别模型训练,考虑姿态角作为BP神经网络输入矢量可有效越过局部平坦区,训练过程中没有出现反复震荡,收敛迅速。验证结果表明,考虑姿态角的基于LM训练法构建判别模型的生猪行为与实际行为高度线性相关,其相关系数为0.992,最大相对误差不超过8.05%,仅考虑加速度和角速度数据基于LM训练法构建模型的最大相对误差为15.62%。上述结果表明基于姿态角构建的生猪行为判别模型可为生猪健康状况提供数据支持。本发明通过视频片段信息匹配生猪站、走、卧躺四种行为方式,共获得6000组数据,并进行Z-score归一化处理,选择LM训练法对判别模型训练,考虑姿态角作为BP神经网络输入变量,网络收敛速度快,满足实时性要求,且训练过程可有效越过局部平坦区,达到了期望的误差水平,模型分类精度高。验证结果表明,考虑姿态角构建的生猪行为判别模型与实际行为高度线性相关,其相关系数为0.992,整体判别准确率为92.64%,仅考虑加速度和角速度数据构建的判别模型准确率为86.38%。上述结果表明基于姿态角构建的生猪行为判别模型可为生猪健康状况提供数据支持。同时,基于以上方法,本发明自行设计的生猪行为信息采集装置,体积小,稳定性高,成本低,系统成本仅为60元,可为研制小型化、高准确率的生猪个体行为识别系统提供基础数据。当前第1页1 2 3