hjw*_*ide 7 python opencv tracking computer-vision surf
我最近一直致力于解决对象跟踪问题.我需要做的是识别和跟踪可能在2D平面上移动的3D对象,即x和y的平移,以及z周围的旋转.要跟踪的对象是预先知道的,并且可以从中提取任何所需信息.还假设照明条件不会发生任何严重变化,并且背景将保持相对静止.要跟踪的对象通常不是单一颜色,因此不能选择按颜色跟踪.
我已经使用背景减法和动态模板匹配成功实现了跟踪多个2D对象的原型.我现在想扩展到跟踪3D对象,但到目前为止,我对我发现/实现的内容感到失望.我将列出我所做的一些尝试,希望有人可以解释一下.
1.)动态模板匹配:我希望用户在视频框架中选择对象,然后在对象周围定义搜索区域.然后在该区域内搜索该对象. 这个片段最初给了我这个想法.不幸的是,这对我来说并不适用,因为物体在旋转时会丢失(将其转回相机).我还尝试在找到对象时不断更新模板,但这会导致模板在目标对象被遮挡时成为另一个(外部)对象.
2.)Lucas-Kanade光流:我使用OpenCV的goodFeaturesToTrack来找到一些跟踪的好点,并尝试使用calcOpticalFlowPyrLK通过多个帧跟踪这些点.但是,这种算法的性能有点令人失望.我将它应用于牛津走廊数据集,但我最初检测到的点很快就会丢失.
3.)SURF:我试图用SURF检测特征,但问题在于很难将其应用于可能因不同视角而有很大差异的3D对象.我希望找到有关cv2的SURF的文档,因为这似乎提供了为SURF Feature提取器提供关键点的功能(可能来自goodFeaturesToTrack).不幸的是,我还没有办法做到这一点.关于SO的问题:OpenCV:从用户定义的关键点提取SURF功能
背景:我有一个固定的摄像头,我在台式电脑上完成所有处理.我在Windows 7上使用OpenCV的Python包装器和Eclipse的PyDev插件.
如果有人可以提出任何其他技术来尝试,甚至一些指针来提高已经提到的技术的性能,我将非常感激.