在OpenCV和Python中计数汽车
我遇到了一个比较简单但又棘手的问题,我需要解决,但就是搞不定……
我想做的是在高速公路上统计汽车的数量,其实我能检测到移动的汽车,并且能在它们周围画出框框……但是当我尝试去统计它们的时候,我就是数不清。我试着创建一个变量(nCars),每当程序画出一个框的时候就加一,但这样加的次数似乎太多了……
我的问题是:有什么好的方法可以统计移动的汽车或物体吗?
PS:我不知道这是不是个傻问题,但我快要疯了……谢谢大家的帮助(:我刚来这里,但我之前就知道这个网站(:真不错!
2 个回答
0
你应该使用sqlite数据库来存储汽车的信息。
1
我想你是在每一帧中检测汽车,并且每次检测到汽车时都会创建一个新的边框。这就解释了你那个变量为什么会有很多增加。
你需要找到一种方法来判断在某一帧中检测到的汽车是否是上一帧中的同一辆车(如果你在上一帧中检测到了汽车)。你可以通过比较两帧之间的边框距离来实现这一点;如果这个距离小于某个设定的值,就可以认为它是上一帧中的同一辆车。这样你就可以跟踪这些汽车了。
当检测到的汽车离开摄像头的视野(也就是退出画面)时,你可以增加计数器的值。
我在这里提到的跟踪方法非常简单,你可以搜索一下“物体跟踪”,看看还有什么其他的方法可以使用(也许可以看看OpenCV的KLT跟踪)。