我正在尝试实现一个单目标的跟踪,其中OpenCV是机器人的一部分,它跟踪一个在帧中被标记为矩形区域的对象。基于框架中定义的模板,机器人必须追逐该对象。对象不能是单一颜色的,而且对象的方向也会发生变化。机器人捕获的视频由笔记本电脑处理,移动命令作为处理的结果发送给机器人。
我对OpenCV很陌生。在阅读了一些关于运动跟踪的内容后,我发现通过动态更新模板,Lucas-Kanade方法适合于这一目的。
这个方法能满足我的要求吗?使用这种方法可以实现实时处理吗?我还想知道其他方法是否最适合我的目的?
如果我错了,请纠正我。
发布于 2012-10-29 22:09:26
跟踪是一个广泛研究的课题,目前还没有一个标准的(也没有普遍稳健的)解决方案。相当健壮的跟踪代码是多年来编写的,主要由PhD学生编写。
如果你被允许使用别人的代码,输入youtube:掠夺者:能学习的照相机。它是一种相当通用的快速跟踪算法(它是一种基于特征的高级类Haar树/级联分类器)。在视频中,你可以找到研究论文的参考资料,如果你用谷歌搜索发明家Zdanek的老大学主页,你可以下载并使用他的代码。
如果您必须自己编写代码,则需要使用一些非常简单的系统。如果您的跟踪对象没有太多的变化,并且没有剧烈的移动,我建议使用匹配的模板。一旦检测与原始模板有一些不同,您可以使用最近的检测更新模板。这会导致漂移。如果漂移太大,您可以回到原来的模板。
然而,注意:在跟踪方面修修补补没有什么可期待的.卢卡斯-卡纳德只在研究论文中表现强劲。;)
发布于 2011-11-13 20:38:01
发布于 2013-06-16 12:50:30
对这个问题的回答有点晚,但可能有助于今后的参考。
我开发了一个使用OpenCV C++ lib学习对象跟踪的项目。指向我的项目的链接是发展/。项目的wiki页面为您提供了问题陈述的所有细节和学习跟踪对象的各种指针。
我的主要解决方案链接是这里。我想在视频里追踪一只乌龟。为此,我使用了模板匹配openCV库的方法。
matchTemplate( frame,templ,result,match_method );
我从视频的一个帧中选择了海龟,并将其保存为*.png文件。然后,我使用png文件作为模板来匹配视频的每一帧。对我来说效果很好。但我必须承认,这不是一个很好的解决办法。如果您将此用于机器人视觉,我建议您使用"Haartraining“,这是OpenCV中给出的一种机器学习技术。您还可以查看我的try 这里。
希望这能帮上忙。
https://stackoverflow.com/questions/8106139
复制相似问题