在OpenCV中使用Haar级联分类器对停车场航拍图像中的汽车进行计数



我想计算停车场航拍图像中的汽车数量。经过一些研究,我相信Haar级联分类器可能是一个选择。我将使用的图像的一个例子是类似于从谷歌地图上放大的停车场图像。

我目前的计划是使用汽车来训练一个自定义Haar分类器,我只在一个方向(上下)裁剪图像,然后在以15度增量旋转图像时多次尝试识别。我的具体问题是:

  1. 在这里使用Haar分类器是一个好方法还是有更好的方法?
  2. 假设这是一个很好的方法,当从更大的图像中裁剪汽车用于训练数据时,是否最好裁剪一个更大的区域,可能包含相邻停车位中的一小部分汽车(尽管一些训练图像显然包括单独的汽车,旁边只有一辆汽车的汽车等),或者最好裁剪汽车尽可能接近它们的轮廓?
  3. 再次假设我采用这种方法,我如何避免重复计算汽车?如果一辆车在一个方向上被识别出来,我不希望它再次被计算在内。有没有一种方法可以让我把一辆车标记为已计数,然后忽略它?

我认为在你的情况下,我不会选择Haar特征,你应该寻找一些旋转不变的东西。

我建议按照以下顺序处理这个任务:创建一个可靠的训练/测试数据集,并仔细阅读有关获得良好负样本的论文。根据我的经验,好的负样本对分类器的最终质量有很大的影响。如果所有的样本都具有相同的图像大小,这将使您的工作变得容易得多。添加不同类型的负样本,半车,只是人行道,草,树,人等…

在开始搜索分类器之前,请确保您的评估管道井然有序,使用最简单的Haar分类器进行10倍交叉评估。现在你有了一个基线。在你发现你的数据集需要调整的情况下,尽量让你测试的所有功能的软件都能正常工作。理想情况下,你可以只执行一个脚本,并在新数据集上自动重新运行整个评估。

当你能找到一个旋转不变量的特征时,多次计数汽车的问题就不那么重要了。但非最大抑制将是有序的,因为你可能不会得到一个很好的识别与简单的阈值。

作为提示,您可以考虑HOG功能,我确实在使用它们的汽车上取得了一些不错的结果。

最新更新