基于改进粒子滤波算法的农业物联网养殖跟踪研究
2021-08-16陈勇孙娟
陈勇 孙娟
(盐城生物工程高等职业技术学校,江苏 盐城 224051)
由于猪是一种社会性动物,猪通过打架来分出社会地位,由于猪只运动的复杂性,普通的车辆跟踪算法无法对多猪只进行轨迹跟踪,本文从猪只检测和猪只跟踪两方面进性改进,一方面利用图像信息融合算法实现了猪只的精确检测,另一方面利用重样性粒子滤波的序列化对猪只的运动轨迹进性跟踪,解决了猪只重叠等问题。
1 结合粒子滤波的猪只跟踪算法
将粒子滤波器根据当前位置预测下一位置的结果,来修正猪只跟踪时两头猪因为距离太近而跟踪失败的问题和两只猪交错跟踪的问题。
1.1 粒子滤波算法[3-4]
假设D为n维空间Rn的一个子集,p(x)是概率密度函数,则p(x)满足∫RnP(x)dx=1且p(x)≥0定义:
式中,如果D是有界,则I为g(x)的数学期望,即I=E[g(x)]。
假设后验概率密度为p(x0:k|z1:k),其转态序列为x0,x1,x2…xk,记为x0:k,对应数学期望[5]:
式(4)中g(x0:k)为x0:k对应的数学期望,期望的估计值为:
1.2 引入重要性采样的粒子滤波
由于p(x0:k|z1:k)的存在,人们往往无法在实际中应用。为了解决这一问题,引入重要性采样函数,q(x0:k|z1:k)然后进行相应的粒子滤波[6-7]。
因此期望公式可表示为:
1.3 对重要性采样粒子滤波结果的序列化
序列化粒子滤波的原理是基于状态独立性的假设,即任意状态之间互相独立。根据重要性权重的计算公式[8-9]结合递归的方法,进行如下计算:
定义如下的递归计算形式:
可以得出:
1.4 实验与结果
我们在matlab上进性了验证性实验,并导出相关处理结果,图1为提取的视频图像中第12帧、21帧、34帧、67帧的图片,图2为高斯混合建模检测结果,猪的部分形状存在缺失现象,原因是猪存在运动缓慢或者静止现象。
图1 猪只养殖原始图像
图2 高斯混合建模处理结果
图3为均值分割算法的结果,很明显检测精确度不高。图4经过信息融合的结果。可以看出经过改进,起到很好的目标检测效果,改进的算法具备很好的检测效果。
图3 均值分割算法处理结果
图4 二者信息融合的处理结果
2 结论
随着农业信息化不断地发展,智能化养殖是养殖产业转型升级的推进器,本研究主要针对猪的运动轨迹跟踪展开,在精确提取目标的前提下,我们针对猪只重叠的情况进行运动跟踪。发现传统粒子滤波算法并不能解决该问题,但是我们对重要性粒子滤波结果进行序列化,并将其结果利用kNN算法进行轨迹跟踪,最后通过matlab进行了处理实验,实验中的跟踪结果图可以看出,算法真实有效,可以完成多猪只的跟踪任务。