【问题标题】:How to improve Haar Cascade accuracy in OpenCV?如何提高 OpenCV 中的 Haar Cascade 精度?
【发布时间】:2016-10-06 20:39:30
【问题描述】:

我已经收集了 1000 张正(50*50)图像和 1000 张负(50*50)图像,并在 OpenCV 中训练了 Haar Cascade。我正在尝试检测手机。 训练代码:

opencv_traincascade -data data -vec crop1.vec -bg mob_neg.txt -numPos 900 -numNeg 900 -numStages 15 -w 50 -h 50 bgcolor 255 -bgthresh 100

cascade 无法准确检测移动设备(它正在检测移动设备以及许多其他对象,如鼠标、钥匙、钱包、手等) 你能帮我解决这个问题吗 我使用连拍模式通过相机拍摄手机图像。通过不同的角度和不同的旋转拍摄正像 负片取自网络。

我应该怎么做才能提高级联精度??

我应该改变正片或负片的尺寸吗? 提前致谢

【问题讨论】:

  • 这似乎不是一个编程问题。也许尝试交叉验证?
  • 增加样本数量和阶段数量是提高准确率的唯一方法,但肯定会花费很多时间。

标签: python opencv haar-classifier


【解决方案1】:

我是个新手,但发现这篇文章很有帮助:

https://pythonprogramming.net/haar-cascade-object-detection-python-opencv-tutorial/

作者在其中提到了使用两倍于负数的正数的经验法则。他还讨论了一种通过使用opencv_createsamples(也为您旋转正图像)将正图像覆盖在负图像上来生成正图像的方法。

他还在正图像样本生成和训练之前缩放负片并将它们转换为灰度。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我认为你需要在训练你的 haar 级联时稍微压缩你的标准:

    -miniHitRate
    -maxFalseAlarmRate
    

    默认设置为 1,将它们压缩到 0.5 甚至更低以获得更准确的级联。 试试:

    opencv_traincascade -data data -vec crop1.vec -bg mob_neg.txt -numPos 850 -numNeg 900 -numStages 15 -miniHitRate 0.5 -maxFalseAlarmRate 0.5 -w 50 -h 50 bgcolor 255 -bgthresh 100 
    

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 2013-03-02
      • 2014-02-16
      • 1970-01-01
      • 2017-12-02
      • 2011-01-01
      • 2013-12-16
      • 1970-01-01
      • 2019-05-13
      相关资源
      最近更新 更多