我正在尝试使用 opencv 3.1.0 中的 opencv_traincascade 可执行文件来训练 haar 级联。
目前,即使结果不一致,我也想只使用一个正数来执行此操作,以确保我将正确的参数传递给 opencv_createsamples 和 opencv_traincascade。
bg.txt 内容:
negatives/img_04436_c1.pgm
negatives/img_04437_c1.pgm
负片分辨率:宽度:1176 高度:640
正片分辨率:宽度:40 高度:70
我正在使用以下命令参数:
对于opencv_createsamples:
./opencv_createsamples -img img_04569_c1.pgm -vec samples -bg bg.txt -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1 -w 40 -h 70 -num 30
Info file name: (NULL)
Img file name: img_04569_c1.pgm
Vec file name: samples.vec
BG file name: bg.txt
Num: 30
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 0.1
Max y angle: 0.1
Max z angle: 0.1
Show samples: FALSE
Width: 40
Height: 70
Create training samples from single image applying distortions...
Open background image: negatives/img_04436_c1.pgm
Done
对于opencv_traincascade:
./opencv_traincascade -data cascade -vec samples -bg bg.txt -w 40 -h 70 -numPos 30 -numStages 1 -numNeg 2
PARAMETERS:
cascadeDirName: cascade
vecFileName: samples.vec
bgFileName: bg.txt
numPos: 30
numNeg: 2
numStages: 2
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 40
sampleHeight: 70
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 28 : 28
*** Error in `./opencv_traincascade': double free or corruption (out): 0x00000000016749b0 ***
Aborted (core dumped)
我的问题如下:
我能够创建 sample.vec 文件。
当我运行 opencv_traincascade 时,出现以下错误:
*** Error in `./opencv_traincascade': double free or corruption (out): 0x0000000001e0e9b0 ***
有时我也会收到分段错误错误。
我尝试将底片的大小调整为较低的分辨率,并且能够生成 xml 文件,但是当我尝试使用它时没有任何反应。(分类器卡住并连续运行,不返回任何矩形)
我想使用我原来的底片尺寸。
有人可以帮我解决这个问题吗?
如果需要更多详细信息,请发表评论,我会更新我的问题。