无法训练级联分类器。检查使用的训练参数
Cascade classifier can't be trained. Check the used training parameters
我需要检测扫描文档中的特殊图像(类似于符号 +)。我将使用 opencv_traincascade 程序 (opencv 3.0)
训练级联
这是我的文件结构:
C:\imgs\learn1
Bad
1.bmp
....
Good
1.bmp
....
Bad.dat
Good.dat
这是我的 Bad.dat:
Bad.bmp
...
Bad.bmp
Bad\img001.jpg
...
Bad\img146.jpg
这是我的 Good.dat(每个好文件都完全包含特殊图像,仅此而已)
Good.bmp 1 0 0 60 59
...
Good0.bmp 1 0 0 27 28
我已经成功创建了 vec 文件。
C:\opencv\build\x64\vc12\bin>opencv_createsamples.exe
-info C:\imgs\learn1\Good.dat
-vec samples.vec
-w 10 -h 10
Info file name: C:\imgs\learn1\Good.dat
Img file name: (NULL)
Vec file name: samples.vec
BG file name: (NULL)
Num: 1000
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 10
Height: 10
Create training samples from images collection...
C:\imgs\learn1\Good.dat(101) : parse errorDone. Created 100 samples
这是 opencv_traincascade
的调用和结果
C:\opencv\build\x64\vc12\bin>
-opencv_traincascade.exe
-data haarcascade
-vec C:\opencv\build\x64\vc12\bin\samples.vec
-bg C:\imgs\learn1\Bad.dat
-numStages 16
-minhiteate 0.99
-maxFalseAlarmRate 0.5
-numPos 80
-numNeg 199
-w 10
-h 10
-mode ALL
-precalcValBufSize 1024
-precalcIdxBufSize 1024
PARAMETERS:
cascadeDirName: haarcascade
vecFileName: C:\opencv\build\x64\vc12\bin\samples.vec
bgFileName: C:\imgs\learn1\Bad.dat
numPos: 80
numNeg: 199
numStages: 16
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 10
sampleHeight: 10
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: ALL
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 80 : 80
Train dataset for temp stage can not be filled. Branch training terminated.
Cascade classifier can't be trained. Check the used training parameters.
如您所见,出现了一些错误。你能帮我看看到底出了什么问题吗? "Check the used training parameters" 是很笼统的短语。
(文件夹 C:\opencv\build\x64\vc12\bin\haarcascade 存在)
我不知道哪里出了问题,但我已经做到了。
1)我已经将正例数量增加到 400
2)我已经将负面例子的数量增加到 398
3)我发现如果图片尺寸为 61 x 60,我应该写成 Good.dat
Good.bmp 1 0 0 60 59
(图片坐标从0开始到width-1和height-1值结束)
4)我发现类型错误:minhiteate -> minHitRate
没有任何帮助...
5)我尝试在 openvc 2.4 中进行训练,我已经得到了我的 cascade.xml 文件
但现在由于其他错误我无法使用它,但它是题外话。 (现在我正在谷歌搜索)
我需要检测扫描文档中的特殊图像(类似于符号 +)。我将使用 opencv_traincascade 程序 (opencv 3.0)
训练级联这是我的文件结构:
C:\imgs\learn1
Bad
1.bmp
....
Good
1.bmp
....
Bad.dat
Good.dat
这是我的 Bad.dat:
Bad.bmp
...
Bad.bmp
Bad\img001.jpg
...
Bad\img146.jpg
这是我的 Good.dat(每个好文件都完全包含特殊图像,仅此而已)
Good.bmp 1 0 0 60 59
...
Good0.bmp 1 0 0 27 28
我已经成功创建了 vec 文件。
C:\opencv\build\x64\vc12\bin>opencv_createsamples.exe
-info C:\imgs\learn1\Good.dat
-vec samples.vec
-w 10 -h 10
Info file name: C:\imgs\learn1\Good.dat
Img file name: (NULL)
Vec file name: samples.vec
BG file name: (NULL)
Num: 1000
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 10
Height: 10
Create training samples from images collection...
C:\imgs\learn1\Good.dat(101) : parse errorDone. Created 100 samples
这是 opencv_traincascade
的调用和结果 C:\opencv\build\x64\vc12\bin>
-opencv_traincascade.exe
-data haarcascade
-vec C:\opencv\build\x64\vc12\bin\samples.vec
-bg C:\imgs\learn1\Bad.dat
-numStages 16
-minhiteate 0.99
-maxFalseAlarmRate 0.5
-numPos 80
-numNeg 199
-w 10
-h 10
-mode ALL
-precalcValBufSize 1024
-precalcIdxBufSize 1024
PARAMETERS:
cascadeDirName: haarcascade
vecFileName: C:\opencv\build\x64\vc12\bin\samples.vec
bgFileName: C:\imgs\learn1\Bad.dat
numPos: 80
numNeg: 199
numStages: 16
precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 10
sampleHeight: 10
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: ALL
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 80 : 80
Train dataset for temp stage can not be filled. Branch training terminated.
Cascade classifier can't be trained. Check the used training parameters.
如您所见,出现了一些错误。你能帮我看看到底出了什么问题吗? "Check the used training parameters" 是很笼统的短语。
(文件夹 C:\opencv\build\x64\vc12\bin\haarcascade 存在)
我不知道哪里出了问题,但我已经做到了。
1)我已经将正例数量增加到 400
2)我已经将负面例子的数量增加到 398
3)我发现如果图片尺寸为 61 x 60,我应该写成 Good.dat
Good.bmp 1 0 0 60 59
(图片坐标从0开始到width-1和height-1值结束)
4)我发现类型错误:minhiteate -> minHitRate
没有任何帮助...
5)我尝试在 openvc 2.4 中进行训练,我已经得到了我的 cascade.xml 文件
但现在由于其他错误我无法使用它,但它是题外话。 (现在我正在谷歌搜索)