与LBP一起训练Haar级联的麻烦

时间:2015-06-25 15:16:27

标签: c++ opencv haar-classifier cascade-classifier lbph-algorithm

我试图用haar_cascade训练一些分支标识。我所做的是,我已经拍摄了2500张500 x 500的平方图片来填充opencv_createsamples的样本。然后我将它们生成为:

  

opencv_createsamples -info' logo.info' -vec' ../ logo.vec' -bg' ../ Negatives / bg.txt' -w 24 -h 24 -num 2500

在我的logo.info中,我得到了与每张图片的相对路径相对应的行,其中1 0 0 500 500含义为"其间有一个对象(0, 0)和(500,500)"

然后我训练级联为:

  

opencv_traincascade -data' cascade /' -vec' ../ logo.vec' -bg' ../ Negatives / bg.txt' -numPos 2500 -numNeg 3019 -numStages 25 -featureType LBP -w 24 -h 24

使用以下参数:

  

参数:

     

cascadeDirName:cascade /

     

vecFileName:../ logo.vec

     

bgFileName:../ Negatives / bg.txt

     

numPos:2500

     

numNeg:3019

     

numStages:25

     

precalcValBufSize [Mb]:256

     

precalcIdxBufSize [Mb]:256

     

stageType:BOOST

     

featureType:LBP

     

sampleWidth:24

     

sampleHeight:24

     

boostType:GAB

     

minHitRate:0.995

     

maxFalseAlarmRate:0.5

     

weightTrimRate:0.95

     

maxDepth:1

     

maxWeakCount:100

我有两种错误:

  1. OpenCV错误:其中一个参数'值超出范围(没有选择组件/ input_variables!)在cvPreprocessIndexArray中,文件/tmp/buildd/opencv-2.3.1/modules/ml/src/inner_functions.cpp,第432行 在抛出' cv :: Exception'的实例后终止调用 what():/ tmp/buildd/opencv-2.3.1/modules/ml/src/inner_functions.cpp:432:错误:( - 211)没有选择components / input_variables!在函数cvPreprocessIndexArray
  2. enter image description here

    ...

    enter image description here

    如果您的图像数-num参数之间没有显着差异,则会发生此错误。所以,让我们试着减少100 !!

    好吧,当我调整参数不要从数组中输出时,我得到的输出类型与图像相同,但是我收到了这个错误:

      

    OpenCV错误:写入中的断言失败(tempNode-> gt;左),文件/tmp/buildd/opencv-2.3.1/modules/traincascade/boost.cpp,第628行   在抛出' cv :: Exception'的实例后终止调用     what():/ tmp/buildd/opencv-2.3.1/modules/traincascade/boost.cpp:628:错误:(-215)tempNode->函数写入

         

    中止

    我试过了:

    • 更改图像的命运大小(24x24,36x36 ......)
    • 更改-mode参数。
    • 尝试放置#positiveSamples< #negativeSamples和#positiveSamples> #negativeSamples

    我必须做的是训练必须使用LBP(不是HAAR)。有人有任何线索吗?

    提前谢谢。

1 个答案:

答案 0 :(得分:0)

卸载和重建OpenCV解决了这个问题。

相关问题