Андрей_Андрей 0 Жалоба Опубликовано March 23, 2016 Пробую учить каскад хаара. Изучил https://habrahabr.ru/post/208092/ Запускаю opencv_traincascade.exe -data haar -vec samples.vec -bg Bad.dat -minhitrate 0.990 -maxFalseAlarmRate 0.5 -numPos 68 -numNeg 49 -numStages 16 -w 30 -h 10 -featureType LBP -acceptanceRatioBreakValue 10e-5 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numThreads 4 из opencv версий 2.4.10 и 2.4.11 и 3.1. примеров 450, контрпримеров 98. на opencv 2.4.10 останавливается на 5-й минуте обсчета, параметры запуска такие: C:\cars>opencv_traincascade.exe -data haar -vec samples.vec -bg Bad.dat -minhitrate 0.990 -maxFalseAlarmRate 0.5 -numPos 68 -numNeg 49 -numStages 16 -w 30 -h 10 -featureType LBP -acceptanceRatioBreakV alue 10e-5 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numThreads 4 Training parameters are loaded from the parameter file in data folder! Please empty the data folder if you want to use your own set of parameters. PARAMETERS: cascadeDirName: haar vecFileName: samples.vec bgFileName: Bad.dat numPos: 68 numNeg: 49 numStages: 16 precalcValBufSize[Mb] : 2048 precalcIdxBufSize[Mb] : 2048 stageType: BOOST featureType: LBP sampleWidth: 30 sampleHeight: 10 boostType: GAB minHitRate: 0.995 maxFalseAlarmRate: 0.5 weightTrimRate: 0.95 maxDepth: 1 maxWeakCount: 100 ===== TRAINING 0-stage ===== <BEGIN POS count : consumed 68 : 68 NEG count : acceptanceRatio 49 : 1 Precalculation time: 0.006 +----+---------+---------+ | N | HR | FA | +----+---------+---------+ | 1| 1| 0| +----+---------+---------+ END> Training until now has taken 0 days 0 hours 0 minutes 0 seconds. ===== TRAINING 1-stage ===== <BEGIN POS count : consumed 68 : 68 Train dataset for temp stage can not be filled. Branch training terminated. C:\cars>pause Для продолжения нажмите любую клавишу . . . Собственно вопрос - что не так? Почему он останавливается с ошибкой через 5 минут учебы? Спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано March 24, 2016 Маленькая обучающая выборка. Надо больше и позитив и негатив сэмплов. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано March 24, 2016 https://github.com/Itseez/opencv/blob/fd1b66b37d260aea97403c5ff500f694e1f5ba57/apps/traincascade/cascadeclassifier.cpp if ( !updateTrainingSet( requiredLeafFARate, tempLeafFARate ) ) { cout << "Train dataset for temp stage can not be filled. " "Branch training terminated." << endl; break; } Похоже еще можно поиграться с false acceptance rate. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Андрей_Андрей 0 Жалоба Опубликовано March 24, 2016 огромное спасибо за советы, каскад хотя-бы начал учиться. Параметры такие: opencv_traincascade.exe -data haar -vec samples.vec -bg Bad.dat -minhitrate 0.990 -maxFalseAlarmRate 0.4 -numPos 689 -numNeg 800 -numStages 16 -w 30 -h 10 -featureType LBP -acceptanceRatioBreakValue -1 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numThreads 4 доходит до 12 stage и потом та-же ошибка : POS count : consumed 689 : 707Train dataset for temp stage can not be filled. Branch training terminated. Опять ему мало примеров? каскад обучаю на поиск номерных знаков. то, что обучилось на картинке находит следующее: см. вложение. Скажите - почему столько ложных обнаружений? плохая выборка контрпримеров? В какую сторону копать дальше? Спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
iskees 32 Жалоба Опубликовано March 24, 2016 ну 700 примеров это совсем не серьезно, десяток тысяч хотя бы Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах