ошибка bad_alloc() во время обучения каскаду хаара

мы уже неделю застряли на задаче по тренировке каскада хаара. На самом деле мы следуем этому руководству http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html для создания каскадного XML-файла. Но по последней команде

opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt
-numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 45
-numNeg 45 -w 90 -h 100 -mode ALL -precalcValBufSize 1024
-precalcIdxBufSize 1024

получаем ошибку:

terminate called after throwing an instance of 'std::bad_alloc'
what(): std:: bad_alloc
Aborted (core dumped)

Характеристики изображений: 45 позитивных и 45 негативных изображений (оба размера 90 X 100). Я убедился, что в той же папке существует файл sample.vec, а также попытался использовать 2048 для параметров precalcValBufSize. Пожалуйста помогите нам!


person user2538255    schedule 10.12.2014    source источник
comment
оба с размерами 90 X 100 - это, наверное, слишком много. попробуйте гораздо меньшее окно (например, каскады лиц были обучены на -w 24 -h 24)   -  person berak    schedule 10.12.2014
comment
У тебя нет памяти. Получите больше.   -  person Captain Obvlious    schedule 10.12.2014


Ответы (1)


У тебя закончилась память. У вас есть несколько вариантов:

  • Используйте 64-битный компьютер с большим объемом памяти
  • Используйте положительные обучающие изображения меньшего размера. Типично 24x24 или 32x32. 64x64 считается большим.
  • Используйте функции LBP или HOG вместо Haar. Функции Хаара требуют на несколько порядков больше памяти, чем другие.

Кстати, ваши негативные изображения не должны быть того же размера, что и ваши позитивные изображения. Негативные изображения должны быть большими сценами, содержащими фон, обычно связанный с интересующими вас объектами. opencv_traincascade автоматически сканирует их на наличие полезных отрицательных образцов.

person Dima    schedule 10.12.2014
comment
спасибо за ответ, мы уже работаем на 64-битном компьютере, мы сообщим о результатах - person user2538255; 10.12.2014