2017-07-06 90 views
0

我想使用哈尔分类器来检测车辆在场景中的存在(尝试仅使用汽车到目前为止)。由于我没有在网上找到许多训练有素的XML文件,因此我决定自己创建。OpenCV由我培训的哈尔分类器性能不佳

我发现了一些用于类似目的的车辆图像集(训练计算机视觉算法),并使用它们来创建我自己的XML文件。已经差不多一个星期了,其中一些已经完成了,所以我尝试使用它们,但结果很糟糕。我在网上找到的分类器工作得很好,至少看起来他们正在试图检测车辆并为实时应用工作足够快(可能为5-10 FPS左右)。

虽然我可能需要花费几分钟的时间来使用detectMultiScale()使用相同的参数来分析帧,并且如果我传递不同的参数(例如增加最小尺寸,减小最大尺寸,增加缩放因子),它将工作得更快FPS),但完全没有发现任何重要信息,从未检测到任何车辆,并随机检测到某些沥青点作为车辆。

我在生成我的文件时出错了?我有时间完成这项任务,这些分类器可能需要整整一周的时间才能完成,因此我只剩下很少的尝试。作为参考,我的方法是(以下this教程):

- 获取所有正面和负面图像;如果没有提供负像,采取负像从另一数据集,至少一样多的底片作为阳性

- 生成尽可能多的样本作为阳性

- 使用相同的参数的数目的建议,除图像尺寸(设置为给定数据集中图像的大小)以及nstages(设置为10,因为20需要太长时间)

- 对于npos参数,我使用1/10样本数,使用完整数的样本在几个小时后导致“断言失败”,显然样本数量不能与根据this的npos相同,所以我给了自己一个安全余量。

TL;我训练自己的DR Haar分类器性能比网上找到的要差得多(在时间和准确性方面),需要关于如何改进它的建议,而不是浪费另一周的时间来训练它。

+1

npos应该是20个阶段的90%的阳性样本,0.995的minHitRate。该yozr分​​类器需要太多的时间来检测,这是一个提示,因为过采样太complrx。你可以张贴一些正面的样品吗? – Micka

+0

我在Github上找到了一个[项目](https://github.com/andrewssobral/vehicle_detection_haarcascades),它似乎正是基于这个[post](https://www.behance。净/画廊/ 4057777 /车辆检测,跟踪,和计数)。显然,它提供了用于训练算法的'cars.xml'文件。 – KelvinS

回答

0

这里有两个问题。其一,分类器的准确度很低。另一方面,分类器运行速度太慢。

您使用的引用似乎没有问题。这些步骤似乎是准确的,我已经按照这个顺序亲自尝试过,并且设法取得了很好的结果。

正如@Micka所提到的,nPos大约90%的原始样本数量足够好。 minHitRate是一个可以更改的参数。你观察训练时显示的数字吗?准确度如何提高,分类器是否停止了训练(或者在学习结束之前是否使用了训练过的参数?)?

对于低速检测,最可能的原因是您的训练数据没有简单的功能来快速学习。您是否尝试检测用于培训的数据?这种情况的结果如何?编译器设置或高图像分辨率也可能是一个问题,但如果您尝试使用与其他分类器相同的输入和设置,这不太可能。如果你喜欢尝试不同的方法(并有一个GPU),YOLO V2应该更快,更准确地完成这项任务。