OpenCV Traincascade.exe вылетает без вывода

Это моя первая попытка использовать механизм каскадного обучения opencv. Я пытаюсь это на основе небольшого набора изображений из одного положительного и 3 отрицательных изображений. Я следовал за инструкции официальной документации opencv.

На негативные изображения ссылается файл описания bg.txt:

Negative/t1.jpg
Negative/t2.jpg
Negative/t3.jpg

Негативные изображения имеют разные размеры (все в диапазоне пикселей «1920 x что-то»).

Положительное изображение было использовано для создания векторного файла с

opencv_createsamples.exe -img Positive/p1.jpg -num 5000 -w 100 -h 60 -show -vec vecFile.vec

Пока все работает без ошибок. Я думаю, это нормально, что векторный файл vecFile.vec не читается, так как хранит 5000 изображений.

Когда я теперь хочу применить каскадное обучение с помощью

opencv_traincascade.exe -data TrainData/ -vec vecFile.vec -bg bg.txt -w 100 -h 60 -npos 10 -nneg 10

Программа вылетает без вывода («программа перестала работать»). Есть идеи, почему это происходит? Я забыл некоторые важные параметры?

Я использую Windows 10 и OpenCV 3.

1

Решение

Когда в прошлом году я пытался тренировать каскад, у меня была такая же проблема. Я обнаружил, что он очень требователен к памяти, поэтому, если вы использовали 5000 изображений, сэмплированных с размерами, которые вы написали (-w 100 -h 60), ваш компьютер, вероятно, исчерпал память (или другие вещи, например, ограничение размера кучи) , Мне кажется, что traincascade помещает все образцы данных в оперативную память для обучения.

Вам, вероятно, придется попробовать гораздо меньшие размеры, такие как пример документации, которую вы упомянули, -w 24 -h 24, и увеличивать в небольших количествах, пока вы не получите хороший размер, но без сбоев.

0

Другие решения

Других решений пока нет …