您的位置:首页 > 其它

目标检测+光流跟踪

2016-11-16 19:13 183 查看
 最近学习了LK光流法,主要用于运动目标的跟踪,于是想着和之前codebook运动目标检测结合起来,实现先检测再跟踪。


下面介绍目标检测跟踪流程:
(1)使用codebook进行背景学习
(2)使用codebook不断进行运动目标检测
(3)若发现运动目标,则对运动目标所在区域进行跟踪
(4)若丢失目标,则重新使用codebook进行运动检测
 
下面介绍操作中的一些细节:
(1)codebook检测结果可能包含噪声,由于和后续跟踪息息相关,因此需要去除噪声,经实验结果,发现通过计算轮廓长度来去除噪声是比较有效的,当然假设是需要被检测的目标是有一定大小的。
(2)codebook检测出目标后,可以利用findcontour找到目标的轮廓信息,再利用boundingRect找到包含运动目标的最小长方形,这个长方形可以作为一个mask,用来输入goodFeaturesToTrack,即只在目标检测的区域寻找特征点或添加特征点,避免了无用特征点的使用。
(3)承接(2),当目标被检测到时,会计算出一个mask,但由于此时进入了跟踪程序,因此如果不更新mask的话,该区域永远对着初始区域,不能为后续视频帧寻找特征点做帮助。因此,我的做法是,计算特征点群的质心坐标,以此作为mask的中心位置,即mask的运动趋势与运动目标一致。当特征点数量不足时,会使用goodFeaturesToTrack进行补点操作,但若由于目标被全部遮挡导致此区域无特征点,则会再次进行codebook背景运动目标检测环节。

PS:
具体两部分实现可参考两位大牛: (1) codebook:http://blog.csdn.net/zcube/article/details/7353941
                                                       (2) LK光流:http://blog.csdn.net/yang_xian521/article/details/6987447

下面为实验结果:





 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: