【发布时间】:2016-09-26 17:13:37
【问题描述】:
我使用 OSX 10.11。我是 opencv 的新手,我正在尝试训练一个简单(而且肯定很弱)的级联分类器来检测对象。我已经阅读了几个关于级联分类器的答案、帖子、指南、文档和教程,但我遇到了一些问题。我参考了这个指南:
遵循 opencv 文档。现在我有 8 个 jpg 和我感兴趣的对象和 249 个背景图像(我知道这是一个糟糕的数据集,但这只是一种尝试)。
当我调用 opencv_createsamples 时,我注意到指南的作者生成了 1500 个样本,我也这样做了。这意味着从我的 8 张正面图像中生成 1500 个样本?
perl bin/createsamples.pl positives.txt negatives.txt samples 1500 "opencv_createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1 -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 80 -h 40"
请注意,在示例文件夹中,我只有 7 个 img*.jpg.vec 文件。他们不会是1500?当我打电话后:
g++ `pkg-config --libs --cflags opencv` -I. -o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp cvhaartraining.cpp -lopencv_core -lopencv_calib3d -lopencv_imgproc -lopencv_highgui -lopencv_objdetect
我有一些错误,因为缺少“OpenCL”“AppKit”“QuartzCore”“QTKit”“Cocoa”。我在哪里可以检索这些?但是我试图继续并生成 samples.vec 文件。
find ./samples -name '*.vec' > samples.txt ./mergevec samples.txt samples.vec
最后我用这段代码训练我的分类器:
opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000 -numNeg 249 -featureType LBP -w 80 -h 40 -precalcValBufSize 2048 -precalcIdxBufSize 4096
在阅读了一些帖子后,我选择了 -numPos 小于之前生成的 1500 个样本(但它们在哪里?)。当我开始训练时,陷入这种情况的人:
【问题讨论】: