我正在尝试为面孔训练一个新的haar-cascade。
我有一个积极的2000个裁剪脸部图像(只是脸)和3321个负面随机图像的数据集。
我使用以下命令创建了正面列表:
opencv_createsamples.exe -info info.txt -vec vector.vec -num 2000 -w 10 -h 10
文件info.txt包含以下行:
AJ_Cook_0001.ppm 1 0 0 64 64
AJ_Lamas_0001.ppm 1 0 0 64 64
Aaron_Eckhart_0001.ppm 1 0 0 64 64
Aaron_Guiel_0001.ppm 1 0 0 64 64
Aaron_Patterson_0001.ppm 1 0 0 64 64
Aaron_Peirsol_0001.ppm 1 0 0 64 64
后来,我使用以下命令运行haar_training:
opencv_haartraining.exe -data harrcascade -vec vector.vec -bg infofile.txt -nstages 20 -minhitrate 0.9999 -maxfalsealarm 0.5 -npos 2000 -nneg 3321 -w 10 -h 10 -nonsym -mem 1024
文件infofile.txt包含背景图像的名称:
Bing_000527adc064a067a7f7986f00b140fe.jpg
Bing_002744f85b0bee37f489f43fad5f613f.jpg
Bing_0048e7e5e487203dedba9feb03696b1e.jpg
Bing_00513e8879f4f544717df2c8ea0494b1.jpg
Bing_00543a6cf117f559a05f0fb7e10bd361.jpg
培训只用了两个小时,没有生成xml文件。文件夹harrcascade包含20个文件夹,其中包含名为“AdaBoostCARTHaarClassifier.txt”的txt文件,但未生成xml。
我有两个问题:
为什么培训时间很短?
为什么没有生成xml文件?
我在这里缺少什么?
谢谢,
吉尔。
答案 0 :(得分:1)
请参阅我对your other question的回答。如果没有生成xml文件,很可能是你的正样本用完了。尝试使用1500而不是2000.
更好的是,查看trainCascadeObjectDetector,这是Matlab的计算机视觉系统工具箱中的一个功能,它允许您生成与OpenCV兼容的xml文件。