卡尔曼滤波,matlab语言,可进行多目标跟踪。
0.如果你的视频是实际录得话,为防止检测到伪目标,首先要对输入的图像进行滤波,简单的有中值均值滤波。
1.对视频序列采用背景差分或帧间差分就可以得到运动区域了,这里重点就是背景建模,如果嫌麻烦也就别看什么单高斯或多高斯的了,直接找一个空帧(没有运动目标)当背景就OK了,差分后就有了运动区域,然后二值化方便以后的处理。然后视有没有阴影而进行阴影去除的工作。
2.上边这步也就是检测出了运动区域,按你的检测出来是要给边边画圈,这个在matlab上好好研究研究怎样提取目标边缘的点,在原位图图上把边缘的点改变成一个同像素值就行了,这样检测就完了。
3.跟踪,首先得找到目标的中心,因为目标不只是一个像素,必须有一个中心来表示它的坐标位置,这个方法自己想啦,什么取均值求外接矩形中心啊都可以的,然后每一帧都这么做就有一系列的中心坐标了。
4.Kalman,Kalman的作用还是以滤波为主,相当于把第三步的那些坐标都当成信号序列,用Kalman滤波,边检测边滤波,kalman主要记住那5个公式,知道它的递推过程就基本能编出来了,至于滤波器参数就在参考文献里找吧,编出来kalman部分的程序没多少行的,别怕。
5.如果是多目标跟踪的话就进行目标匹配的工作,相当于每帧都检测出两个目标,你要知道最新一帧中的每个分别对应的是前边帧的哪个目标。