【问题标题】:OpenCV: training a cascade classifierOpenCV:训练级联分类器
【发布时间】:2015-12-16 18:00:49
【问题描述】:

我正在尝试使用 OpenCV、a tutorialUIUC Image Database for Car Detection 训练一个级联分类器。但是,训练在第 0 阶段“挂起”并且永远不会生成任何文件;在本教程中,只需几分钟即可看到结果。

我在运行 Yosemite (10.10.5) 的 2015 MBP 上运行我使用 conda 安装的 OpenCV 2.4.8

步骤:

  1. 下载数据集并将正图像保存在 pos 文件夹中,将负图像保存在 neg 文件夹中
  2. 为正面图像生成一个 txt 文件

    find pos -iname "*.pgm" > cars.txt 
    sed -i '' 's/.pgm/.pgm 1 0 0 100 40/g' cars.txt 
    
  3. 为负片生成一个txt文件

    find neg -iname "*.pgm" > bg.txt
    
  4. 从 cars.txt 生成一个 vec 文件

    opencv_createsamples -info cars.txt -num 550 -w 48 -h 24 -vec cars.vec
    
  5. 创建一个data 目录

    mkdir data
    
  6. 火车级联

    opencv_traincascade -data data -vec cars.vec -bg bg.txt -numPos 500 -numNeg 500 -numStages 2 -w 48 -h 24 -featureType LBP
    

输出:

PARAMETERS:
cascadeDirName: data
vecFileName: cars.vec
bgFileName: bg.txt
numPos: 500
numNeg: 500
numStages: 2
precalcValBufSize[Mb] : 256
precalcIdxBufSize[Mb] : 256
stageType: BOOST
featureType: LBP
sampleWidth: 48
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100

===== TRAINING 0-stage =====
<BEGIN
POS count : consumed   500 : 500
NEG count : acceptanceRatio    500 : 1

我已经等了几个小时,但培训没有进展,也没有在我的data 目录中生成任何文件。是什么导致“挂起”?

【问题讨论】:

    标签: opencv computer-vision cascade-classifier


    【解决方案1】:

    不管怎样,我遇到了同样的症状,这让我发疯了。 卸载并重新安装 opencv 修复它。挂起的确切命令突然运行良好。可能你有一个旧版本的 opencv 像我一样在某个地方徘徊:

    $ brew uninstall opencv
    Uninstalling /usr/local/Cellar/opencv/2.4.12... (225 files, 36M)
    opencv 2.4.11_1 is still installed.
    Remove them all with `brew uninstall --force opencv`.
    
    $ brew uninstall --force opencv
    Uninstalling opencv... (222 files, 35M)
    
    $ brew install opencv --with-tbb
    

    无论如何,需要考虑的事情。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。事实证明,使用 haar 级联训练效果很好。您可以为其指定更多阶段以提高准确性。

      【讨论】:

      • 这不是一个答案...如果您有什么要补充或讨论的问题,请在问题上发表评论。
      【解决方案3】:

      我只是不明白你期望从两个训练阶段中获得什么好处。你应该训练直到你的-acceptanceRatioBreakValue 达到 10e-5。你从 OpenCV 订购了 10 个汉堡,但只买了 2 个就离开了。

      请看这里:http://docs.opencv.org/3.1.0/dc/d88/tutorial_traincascade.html#gsc.tab=0

      【讨论】:

        【解决方案4】:

        使用--use-tbb(来自自制软件)编译 OpenCV 为我解决了这个问题,我相信这是 OS X 上 GCD 实现的一个错误,如下所述:https://github.com/opencv/opencv/issues/4765

        【讨论】:

          猜你喜欢
          • 2017-11-21
          • 2015-09-21
          • 2019-01-21
          • 2012-12-05
          • 2012-03-05
          • 1970-01-01
          • 2015-10-15
          • 1970-01-01
          • 2014-04-20
          相关资源
          最近更新 更多