c – 在变化的光照条件下进行多个运动物体检测.
作者:互联网
我试图在视频帧中提取几个移动对象,并将它们提取为前景.数据来自视频帧.
目前的问题是:灯光正在变化,因此存在一些阴影,或者比实际背景更亮的部分.这导致OpenCV MoG背景分割方法的假背景/前景提取.
为此,我没有得到任何简单的方法,但有一个这样的想法:如果我可以在前一帧中提取那些移动对象的边缘,那么也许我可以在下一帧使用SIFT等算法跟踪它们,请参阅它们在哪里,并将它们视为前景.
我认为在这种情况下,光线变化不会影响结果.如果我在这一点上是正确的,那么我的问题是:
如何使用OpenCV有效地对这些移动物体进行边缘检测?如果我需要在OpenCV中使用SIFT算法,它是免费提供的吗?从网上看,我看到它是不自由的,对吗?
我的第二个问题是:有没有人对此有更好的想法?
谢谢.
解决方法:
如果您想进行人体检测/跟踪,您应该查找与此相关的研究论文或项目.有很多,你甚至可以在SOF上找到关于该主题的一些问题:
How can I detect and track people using OpenCV?(可能已过时)
single person tracking from video sequence
How to do motion tracking of an object using video?
此外,还有几个问题涉及特征检测器/描述符,如SIFT及其最近的替代品(SURF,ORB,FREAK – 仅举几例在OpenCV中实现的名称):
Are there any fast alternatives to SURF and SIFT for scale-invariant feature extraction?
OpenCV for ANDROID image compare
简单来说,SIFT不是一种跟踪移动物体的算法,它是检测图像区域,这些区域在某种程度上是独特的,并且对几种失真(平移,旋转,缩放……)具有鲁棒性.意思是,稍后可以在不同的图像条件下检测相同的特征.您确实可以使用类似SIFT的算法来识别对象,但是对于人物跟踪,可以有更好的选择.
然后,对于那些图像区域,您可以应用一些跟踪算法,例如光流 – 但是还有更具体的跟踪算法用于人类跟踪.
SIFT和SURF可以通过OpenCV“自由”使用,但部分内容已获得专利,因此人们不再使用它们,因此这些专利将来不会出现任何问题 – 这就是他们转移到“非自由”OpenCV模块的原因.
除了你提到的轻微问题之外,你将遇到的其他问题是物体遮挡和人们进入现场.
标签:edge-detection,image-segmentation,c,opencv,background 来源: https://codeday.me/bug/20190725/1537129.html