Я пытаюсь обучить каскадный классификатор для обнаружения людей. У меня 779 положительных изображений w=190xh=510
и 311 негативных изображений w=1280xh=720
,
./ createamples -img ../cascade_data/6.jpg -num 11 -bg bg.dat -vec
vec_data / 6.vec -maxxangle 0.6 -максимальный угол 0 -maxzangle 0.3 -maxidev 100
-bgcolor 0 -bgthresh 0 -w 190 -h 510
Это работало без каких-либо проблем.
-data cascade_trained / -vec ../data/merged_data.vec -bg ../data/bg.txt -numPos 779 -numNeg 311 -numStages 21 -numThreads 4-этапный тип BOOST -featureType LBP -w 190 -h 510 -min5HitRate -maxFalseAlarmRate 0.25 -maxDepth 1 -maxWeakCount 100
Я получаю сообщение об ошибке:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted (core dumped)
После просмотра похожих вопросов, опубликованных на SO, я обнаружил, что это проблема с размером изображений, но я не нашел ни одного правильного ответа, который помог бы решить проблему.
У меня есть следующие вопросы: я пытаюсь обнаружить людей. Из 1280×720 фоновых изображений моя рентабельность инвестиций в среднем составляет 190×510. Теперь для того, чтобы обучить мой классификатор
1. Каким должен быть размер моих положительных и отрицательных образцов?
2. Как -w -h
параметры повлияют на мой классификатор?
Задача ещё не решена.
Других решений пока нет …