视频中的车辆计数


10

免责声明:我在StackOverFlow上发布了此问题,但了解到它更适合此处。

我对图像处理有点陌生,所以我想问您有关为我的问题找到最佳解决方案的方法,而对代码没有帮助。我还没有想到一个好主意,所以想问一下您的建议。

我正在使用OpenCV进行一个项目,该项目用于从视频文件或实时摄像机中计算车辆的数量。从事此类项目的其他人通常会跟踪移动的物体,然后对其进行计数,但与此相反,我想使用不同的观点;要求用户在视频窗口上设置一个ROI(感兴趣的区域),并且仅在该区域内工作(由于某些原因,比如不处理整个帧并提高性能),如下所示。(用户可以设置一个以上的ROI,并要求用户通过比例感来设置ROI的高度大约是普通汽车的两倍。)

图片1

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

图片2

完成这些操作后,我尝试对最终的阈值前景帧中的白色像素进行计数,并通过检查总的白色像素数量来估计它是否是汽车(我通过了解ROI的高度通过静态计算设置了下限) 。为了说明,我画了一个示例图形:

图片3

如您所见,很容易计算出白色像素并检查它是否按时间绘制曲线并确定是汽车还是类似噪音的东西。

问题

在两辆汽车同时通过我的投资回报率之前,我一直非常成功。我的算法错误地将其视为一辆汽车。我针对此问题尝试了不同的方法,类似于长车,但没有找到令人满意的解决方案。

是否可以通过这种像素值计数方法来处理此任务?如果没有,您有什么建议?


您的问题是人们使用跟踪的原因。另外,您是否希望将一起移动的汽车(例如带拖车的汽车)计为一两辆车?
Emre

首先,感谢版本。我不希望%100的准确性,带拖车的汽车可以忽略。但是,如果是两辆彼此相距很近的独立汽车,我需要使程序区分两者,但是我不知道。
Horizo​​n1710 2012年

Answers:


5

您可以跟踪最近的10-15帧,并计算这些帧的白色像素数。您可以区分它是否是车辆,因为该图表在10-15帧中会很高,因此您可以说它是车辆,否则就是噪音。

要计算多条并排车道中的多辆车,您可以逐列检查像素,我的意思是垂直。目前,您必须水平检查像素中的白色像素。


是的,您检查垂直线是正确的,但是如何?我可以通过检查投资回报率的第一行来确定车辆的进入点吗?
Horizo​​n1710 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.