在OpenCV中使用Haar Cascade Classifier来计算停车场航拍图像中的汽车

时间:2014-06-26 19:20:33

标签: opencv haar-classifier

我想计算停车场航拍图像中的汽车数量。经过一些研究后,我相信Haar Cascade Classifiers可能是一个选择。我将使用的图像示例类似于Google地图中停车场的放大图像。

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

  1. 在这里使用Haar分类器是一种好方法还是有更好的方法?
  2. 假设这是一个很好的方法,当从较大的图像中裁剪汽车用于训练数据时,最好裁剪一个可能在相邻停车位中包含一小部分汽车的较大区域(尽管一些训练图像显然会包括单人车,旁边只有一辆车的汽车等等,或者最好尽可能地将汽车剪裁成轮廓?
  3. 再次假设我采取这种方法,我怎么能避免重复计算汽车?如果汽车在一个方向被识别,我不希望它被再次计算。是否有某种方法可以将汽车标记为计数并忽略它?

1 个答案:

答案 0 :(得分:0)

我认为在你的情况下我不会选择Haar功能,你应该搜索旋转不变的东西。

我建议按以下顺序处理此任务: 创建一个可靠的培训/测试数据集,并仔细研究有关获得良好阴性样本的论文。根据我的经验,良好的阴性样本会对分类器的最终质量产生很大影响。如果您的所有样品具有相同的图像尺寸,它将使您的生活更轻松。添加不同类型的负样品,半车,只有路面,草,树木,人等...

在开始搜索分类器之前,请确保按顺序使用评估管道,使用最简单的Haar分类器进行10倍交叉评估。现在你有一个基线。如果您发现数据集需要调整,请尽量保留您测试的所有功能的软件。理想情况下,您只需执行脚本并自动重新运行对新数据集的整体评估。

当你找到一个旋转不变的特征时,多次计算汽车的问题就不那么重要了。由于简单的阈值处理可能无法获得良好的识别,因此仍然会进行非最大抑制。

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