5

对于我的一个项目,我需要使用 OpenCV 处理图像差异。目标是检测区域中的入侵。

为了更清楚一点,这里是输入和输出:

输入:

  • 参考图像
  • 从大致相同的角度拍摄的第二张图像(可能是误差范围)

输出:

  • 检测场景中的新对象。

奖金:

  • 识别那些对象。

对我来说,最困难的部分是消除微小的差异(亮度、相机位置边距误差、树木的移动......)

我已经阅读了很多关于 OpenCV 图像处理(减法、腐蚀、阈值、SIFT、SURF...)的内容,并取得了一些不错的结果。

我想要的是您认为最好的步骤列表(人类,汽车......),以及执行每个步骤的算法。

非常感谢您的帮助。

4

3 回答 3

3

Track-by-Detect,人类跟踪器:

  1. 您应用Hog 检测器来检测人类。
  2. 您在前景蒙版上绘制一个相应的矩形作为前景区域。
  3. 您将此掩码传递给“ OpenCV Video Surveillance / Blob Tracker Facility”

现在,您可以根据经过的人的 blob.{x,y} 值将其分组到公共/受限区域。

于 2013-03-15T09:04:08.480 回答
2

去年我不得不处理这个问题。我建议使用一种自适应背景-前景估计算法来生成前景蒙版。

最重要的是,您添加一个斑点检测器和跟踪器,然后计算斑点和您的入侵区域之间是否发生交叉。

Opencv 在遗留代码中包含所有这些示例。当然,如果您愿意,您也可以使用您自己的或其他版本的这些。

链接: http: //opencv.willowgarage.com/wiki/VideoSurveillance http://experienceopencv.blogspot.gr/2011/03/blob-tracking-video-surveillance-demo.html

于 2013-03-15T04:11:26.223 回答
0

如果相机是静态的,我肯定会从运行平均背景减法开始。然后您可以使用 findContours() 来查找入侵对象的位置和大小。如果您想检测在场景中四处走动的人,我建议您使用内置的 haar 分类器:

http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html#cascade-classifier

您只需将 xml 替换为上半身分类器。

于 2013-02-05T18:24:50.937 回答