分享最近做运动目标跟踪的经历

    运动目标的分类(给团块标上ID)不仅仅只是考虑运动跟踪算法,同时它也涉及到新团块的分析、团块的交叉与重叠等问题,单纯的运动跟踪算法并不解决这些问题。

 

    opencv2.1自带的跟踪算法有如下几个:

  1. CCMSPF - connected component tracking and MSPF resolver for collision
  2. CC - Simple connected component tracking
  3. MS - Mean shift algorithm
  4. MSFG - Mean shift algorithm with FG mask using
  5. MSPF - Particle filtering based on MS weight

    第一个是CC与MSPF算法的结合,第二个不太了解,第三个meanshift的原始算法,第四个是meanshift的改进算法,第五个是粒子滤波算法。

 

   针对项目目前使用的跟踪dll ,在实际的监控环境中, 通过观察,我们可以看出:一旦有团块相互交叉的时候,跟踪的时候就特别慢,交叉的团块数量越多,算法速度越慢;在没有团块交叉重叠的情况下,即使跟踪的运动目标数量比较多,算法的速度也没有明显的变慢。

    为了发现原因所在,查看分析了目前项目的使用的跟踪dll的源码。不难看出,目前的跟踪算法其实使用的就是opencv2.1自带的跟踪算法,只是因为项目需要,由小组成员封成了规范的接口。源码中很清晰的显示我们用的跟踪算法用的是CCMSPF,该算法能够有效处理团块的交叉重叠问题,跟踪的正确性也相比其他几个要好,但是与此同时,因为引入了交叉重叠问题的处理机制,在监控时,如果图像中有目标相互交叉重叠,势必会引起计算量的大幅增加,导致了算法速度下降,不能很好满足监控的实时性。

   通过算法效果对比观察, 相比CCMSPF,MSFG算法中没有包含处理团块的交叉重叠问题,因此MSFG在算法速度上比较稳定,不会受到团块交叉重叠的影响,但是这种算法会将重叠后分开的团块都认为是新的团块,导致跟踪的不正确性(对于视频摘要,这是极不可取的)。

 

   通过以上叙述,目前有两种选择:

1 选择CCMSPF算法,优点:跟踪准确性高,缺点:重叠交叉时算法无法达到实时性的要求;

2 选择MSFG算法,优点:能够满足实时性要求,缺点:跟踪准确性较低。

 

   两种算法都不能做到即能准确跟踪又能做到跟踪的实时性,那么我们考虑以下几种解决办法:

1 改进算法(短时间不太可能);

2 修改CCMSPF中处理团块交叉重叠的机制或是或是优化该段代码;

3 利用其他的算法代替opencv中的算法。

     对于第一种解决办法,尝试仔细看过了mean-shift跟踪算法的原始论文后,从算法原理来看,该算法是基于颜色直方图的距离最小化实现的,个人认为即使有再好的改进方法,也无法做到突破性的效果改善。

    第二种解决办法还未尝试。

    第三种解决办法尝试了CamShift算法(号称meanshift的改进版本),从网上download源码后,调试运行,跟踪效果其实与mean-shift相差无几,对于内容复杂的视频文件,基本上跟踪不上,比压缩传感算法效果差。

 

    无奈只有到网上搜索资料,其中有几个好的参考资料与想法:

1 http://www.roborealm.com/help/Blob_Tracking.php,国外的RoboRealm的开源项目

2 http://nuigroup.com/forums/viewthread/2219/,stackoverflow和opencv官网论坛中也有提到,目标分类的方法为:首先对图像进行目标检测,求取团块;然后对于前一帧和当前帧图像中的团块,直接用团块的中心坐标距离来做判断,如果距离在一个阈值内,则认为两个团块具有相同的ID。个人分析,该方法对团块的提取具有苛刻的要求,一旦前景检测效果不好,算法就无法使用;

3 openTLD,中文名称为捕食者算法,csdn首页之前对算法做过介绍,资料见:http://www.csdn.net/article/2011-04-15/295938,Predator:比微软Kinect更强的视频追踪算法-来自捷克博士论文。从网上下载到源码后和demo可执行程序,配置好运行环境后,运行demo,从效果来看,比压缩传感方法效果还要好,不过可惜提供的为matlab代码,无从下手。尝试到网上下载C++版本的源代码,下载速度过慢,暂时未成功。

 

    下阶段很迷茫,求高人指点。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值