gpt4 book ai didi

python - OpenCV:跟踪在 2D 平面中移动的 3D 对象

转载 作者:太空狗 更新时间:2023-10-29 21:59:57 25 4
gpt4 key购买 nike

我最近一直在研究对象跟踪问题的解决方案。我需要做的是识别和跟踪可能在 2D 平面上移动的 3D 对象,即 x 和 y 的平移,以及围绕 z 的旋转。要跟踪的对象是事先已知的,并且可以从中提取任何所需的信息。还假设照明条件不会发生任何剧烈变化,并且背景将保持相对静止。要跟踪的对象通常不会是单一颜色,因此按颜色跟踪不是一种选择。

我已经成功地实现了使用背景减除和动态模板匹配来跟踪多个 2D 对象的原型(prototype)。我现在想扩展到跟踪 3D 对象,但到目前为止我对我发现/实现的东西感到失望。我将列出我所做的一些尝试,希望有人能有所启发。

1.) 动态 Template matching :我会让用户选择视频帧中的对象,然后在对象周围定义一个搜索区域。然后将在该区域内搜索该对象。 This clip最初给了我这个想法。不幸的是,这对我来说并没有真正起作用,因为物体在旋转时会丢失(背对着相机)。我还尝试在找到对象时不断更新模板,但这会导致模板在目标对象变为 occluded 时变为另一个(外部)对象。 .

2.) Lucas-Kanade光流:我使用 OpenCV 的 goodFeaturesToTrack 找到了一些好的跟踪点,并尝试使用 calcOpticalFlowPyrLK 通过多个帧跟踪这些点。然而,该算法的性能有点令人失望。我将它应用于 Oxford Corridor数据集,但我最初检测到的点很快就会丢失。

3.) SURF :我尝试使用 SURF 检测特征,但这里的问题是很难将其应用于可能因不同视角而有很大差异的 3D 对象。我希望找到关于 cv2 的 SURF 的文档,因为这似乎提供了为 SURF 特征提取器提供关键点的功能(可能来自 goodFeaturesToTrack)。不幸的是,我还没有找到一种方法来做到这一点。我关于 S.O. 的问题:OpenCV: Extract SURF Features from user-defined keypoints

背景:我有一个固定的网络摄像头,所有处理都是在台式计算机上完成的。我在 Windows 7 上使用 OpenCV 的 Python 包装器和 Eclipse 的 PyDev 插件。

如果有人可以建议尝试任何其他技术,或者甚至可以提出一些建议来提高已经提到的技术的性能,我将不胜感激。

最佳答案

如果没有看到您想要跟踪的对象,就很难提出一些有用的建议。如果您拍几张照片向我们展示问题,那肯定有助于讨论。这里的人有时也会实现他们的建议/想法并与您分享。

关于python - OpenCV:跟踪在 2D 平面中移动的 3D 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11766357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com