1

我正在尝试使用 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 文件,但是当我尝试使用它时没有任何反应。(分类器卡住并连续运行,不返回任何矩形)

我想使用我原来的底片尺寸。

有人可以帮我解决这个问题吗?

如果需要更多详细信息,请发表评论,我会更新我的问题。

4

0 回答 0