我目前正致力于车辆排队,我需要在python opencv中设计一个代码,用于根据分类计算车辆数量。输入是一个实时交通视频。 目的是找到平均尺寸" x"对于边界框而言,对于汽车来说,它是" x",对于公共汽车而言,它是" 3x"等等。基于" x"的大小或者" x"的倍数,确定分类。有什么方法可以解决这个问题陈述吗?
答案 0 :(得分:2)
我已经解决了几乎类似的问题。
最简单的方法是在类似大小的车辆上训练Haar-cascade
。
您必须根据类别数量训练多个级联。
可以使用某些浏览器插件从任何二手车销售网站下载级联数据。
负面集很大程度上取决于使用此解决方案的上下文。
这也带来了一个问题,如果你计划在繁忙的街道上这样做,那么将会出现许多无法预料的情况。例如,行人在FoV中行走。此外,需要修复FoV,尤其是观察物体的距离。如果有的话,追踪和错误是获得阈值的唯一途径。
现在我要提出你所问的问题范围之外的事情。
虽然这是纯粹的基于图像处理的方法,但您可以将问题从表面上解决,并提出问题'为什么'需要分类吗?根据用例,通常可以训练深度强化学习代理。它将解决问题而不需要进行大量的手工操作。
如有特定问题,请告诉我。
答案 1 :(得分:0)
Haar-cascades 是一种很好的方法,但训练它们需要花费大量的时间和精力。 您可以在线获得大量训练有素的级联文件。 第二种方法可能是从图像中获取轮廓,然后继续前进。
- Original image
- Smooth the image so that you will get an image without edges.
- (Original image- Smooth image) to get the edges
- Get Contours from image