OpenCV 训练自定义 Haar 级联

OpenCV Training Custom Haar Cascade

我正在尝试在脸上训练 haar 级联。我已经设置了所有内容,包括正数、负数、vec 文件等。但是当我 运行 和 opencv_traincascade 时,它给了我一个 terminate called after throwing an instance of 'std::bad_alloc' 错误。然后我将这一行添加到我的参数 -nonsym -mem 512 中,它给了我这个错误:terminate called after throwing an instance of 'std::logic_error'.

这是我的命令 运行ning:

opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt\
>    -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000\
>    -numNeg 600 -w 80 -h 40 -mode ALL -precalcValBufSize 1024\
>    -precalcIdxBufSize 1024\
>    -nonsym\
>    -mem 512\

如有任何帮助,我们将不胜感激!

您必须去掉 -nonsym -mem 512 并输入 -mode ALL。新命令如下所示:

opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt\
>    -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000\
>    -numNeg 600 -w 80 -h 40 -mode ALL -precalcValBufSize 1024\
>    -precalcIdxBufSize 1024\
>    -mode ALL

-nonsym -mem512 命令实际上并不存在。