привет, я пытаюсь разработать каскадные классификаторы хаара, мне удалось запустить базовый пример с обнаружением автомобилей, поэтому я попытался идентифицировать фрукт, я загружаю несколько изображений груш, а затем создаю позитивный файл, а затем векторный файл , до этого момента все в порядке, я протестировал векторный файл командой:
opencv_createsamples -vec vector.vec
поэтому я попытался создать классификатор каскада xml с помощью следующей команды и параметров:
opencv_traincascade -data images/cascade -vec vector.vec -bg bg.info -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numPos 24 -numNeg 450 -numStages 10 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -w 24 -h 24
Получаю следующую ошибку:
PARAMETERS:
cascadeDirName: images/cascade
vecFileName: vector.vec
bgFileName: bg.info
numPos: 24
numNeg: 450
numStages: 10
precalcValBufSize[Mb] : 2048
precalcIdxBufSize[Mb] : 2048
stageType: BOOST
featureType: HAAR
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.999
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 24 : 24
Train dataset for temp stage can not be filled. Branch training terminated.
Cascade classifier can't be trained. Check the used training parameters.
Я не смог найти ошибку ... есть ли гуру opencv, который может мне помочь?





Это старый, но я только что решил:
Вы должны указать для -numPos и -numNeg число, немного меньшее, чем общее количество положительных и отрицательных образцов, около 80% от этого числа.
Например. если у вас 24 положительных изображения, укажите -numPos 18.
Кроме того, 24 положительных образца - это слишком мало. Попробуйте увеличить его хотя бы до 200.