4

我正在尝试提取视频帧中的几个移动对象,并将它们提取为前景。数据来自video frames

当前的问题是:光线在变化,所以有一些阴影,或者比实际背景更亮的部分。这导致通过OpenCV MoG背景分割方法提取错误的背景/前景。

为此,我没有任何直接的方法,但有这样的想法:如果我可以在前一帧中提取那些移动物体的边缘,那么也许我可以使用SIFT下一帧中的算法来跟踪它们,看看在哪里它们是,并将它们视为前景。

我认为在这种情况下,光线变化不会影响结果。如果我在这一点上是对的,那么我的问题是:

如何使用 OpenCV 有效地对这些移动物体进行边缘检测?如果我需要SIFT在 OpenCV 中使用算法,它可以免费获得吗?从网上,我看到它是非免费的,对吗?

的第二个问题是:有人对此有更好的想法吗?

谢谢你。

4

3 回答 3

4

如果您想进行人体检测/跟踪,您应该寻找与此相关的研究论文或项目。有很多,您甚至可以在 SOF 上找到有关该主题的一些问题:

如何使用 OpenCV 检测和跟踪人员? (可能已经过时)

来自视频序列的单人跟踪

如何使用视频对物体进行运动跟踪?

此外,还有几个问题涉及特征检测器/描述符,如 SIFT 及其最近的替代品(SURF、ORB、FREAK - 仅列举一些在 OpenCV 中实现的):

对于尺度不变的特征提取,SURF 和 SIFT 是否有任何快速的替代方案?

用于 ANDROID 图像比较的 OpenCV

简单地说,SIFT 不是一种跟踪运动物体的算法,它是检测图像区域,这些区域在某种程度上是独特的,并且对多种失真(平移、旋转、缩放......)具有鲁棒性。这意味着,稍后可以在不同的图像条件下检测到相同的特征。您确实可以使用类似 SIFT 的算法来识别对象,但对于人员跟踪,也许有更好的选择。然后,您可以对这些图像区域应用一些跟踪算法,例如光流 - 但还有更具体的用于人类跟踪的算法。

SIFT 和 SURF 在 OpenCV 中“免费”可用,但其中一部分已获得专利,因此人们避免使用它们,因此他们在未来不会因为这些专利而出现问题——这就是他们转向“非免费”OpenCV 模块的原因.

除了您提到的光线问题之外,您还会遇到的其他问题是对象遮挡和人员进出场景。

于 2012-10-10T18:06:55.060 回答
3

我可以建议您将图像标准化以进行照明。一种实用的方法是使用“直方图匹配”。

请查看matlab 中两个彩色图像的直方图匹配,了解如何使用直方图匹配。

希望这可以帮助

于 2012-10-26T15:08:44.223 回答
2

我知道您已经接受了 Rui 的回答,但经过一番谷歌搜索后,我找到了解决您问题的另一种方法——它是HOG Descriptor

不幸的是,我对这个描述符不熟悉,所以我无法帮助你实现,但是,在谷歌搜索之后,我再次发现这个描述符是用于行人检测的

看看这个人类检测代码。

于 2012-10-10T20:56:05.643 回答