2

我对图像处理有点陌生,所以我想问你如何为我的问题找到最佳解决方案,而不是帮助代码。我想不出一个好主意,所以想征求你的意见。希望你能帮忙。

我正在开发 OpenCV 下的一个项目,该项目是关于从视频文件或实时摄像头中计算车辆数量。从事此类项目的其他人通常会跟踪移动的物体,然后对其进行计数,但我不想使用它,而是想从不同的角度进行工作;要求用户在视频窗口上设置一个 ROI(感兴趣区域)并仅针对该区域工作(出于某些原因,例如不处理整个帧和一些性能提升),如下所示。(顺便说一句,用户可以设置一个以上的 ROI 并且要求用户通过比例感将 ROI 的高度设置为普通汽车的 2 倍左右)

1..

到目前为止,我已经取得了一些基本进展,例如背景更新、形态过滤器、阈值化以及将移动对象作为二值图像获取,如下所示。

2.

完成之后,我尝试计算最终阈值前景帧的白色像素,并通过检查总白色像素数来估计它是否是汽车(我通过知道 ROI 的高度通过静态计算设置了下限) . 为了说明,我画了一个示例图形:

3.

从图中可以看出,很容易计算白色像素并检查它是否按时间绘制曲线并确定是汽车还是噪音之类的东西。

我非常成功,直到两辆车同时通过我的投资回报率。我的算法通过将它们算作一辆车而崩溃,你可以猜到:/我尝试了不同的方法来解决这个问题,就像长车一样,但我到目前为止还没有得到最佳解决方案。

我的问题是:通过这种像素值计数方法是否无法处理这项任务?如果可能,您的建议是什么?我希望您以前也遇到过类似的事情并且可以帮助我。

欢迎所有想法,提前感谢朋友。

4

2 回答 2

2

将流量与背景隔离 - 拍摄两张图像,对其中一张运行高通滤波器,将另一张转换为二值图像 - 使用二值图像屏蔽过滤后的图像,您应该能够使用边缘检测来识别屋顶将每辆车作为四边形,然后您应该能够计算出它的相对度量。

然后你有四种情况:

  1. 没有四边形 - 没有汽车
  2. 大四边形 - 卡车
  3. 多个小四边形 - 几辆车
  4. 单四边形 - 一辆车
于 2012-05-19T01:26:34.513 回答
2

回答您的问题“是否可以使用像素计数来做到这一点?” 简短的回答是“不”,因为您引用的原因是:仅对静态图像进行像素计数是不够的。

如果您仅限于像素计数,您可以尝试查看像素计数速度(成功帧之间像素计数的变化),当 1 辆汽车、2 辆汽车或卡车经过时,您可能会挑选出不同的“速度”形状。

但只是简单的像素计数?不,您还需要形状(几何)信息。

如果您应用任何类型的阈值算法(例如用于背景减法),请不要忘记在光照水平发生变化时(例如白天和黑夜)更新背景。还要考虑当它是部分多云时的悲伤,并且在您的图像上移动时有尖锐的云阴影。

于 2013-03-04T13:23:08.653 回答