Я пытаюсь обучить некоторые филиалы с haar_cascade. Я сделал это, я взял 2500 квадратов снимков 500 х 500, чтобы заполнить образцы для opencv_createsamples
. Тогда я произвожу их:Смуты на тренировке Каскад Хаара с LBP
opencv_createsamples -info 'logo.info' -vec '../logo.vec' -bg '../Negatives/bg.txt' -w 24 -h 24 -num 2500
в моих logo.info
я получил линий, которые соответствуют относительному пути каждого изображения, с 1 0 0 500 500
означающего «есть один объект между (0,0) и (500, 500)»
потом поезд каскад как:
opencv_traincascade -data 'cascade/' -vec '../logo.vec' -bg '../Negatives/bg.txt' -numPos 2500 -numNeg 3019 -numStages 25 -featureType LBP -w 24 -h 24
с этими параметрами:
PARAMETERS:
cascadeDirName: cascade/
vecFileName: ../logo.vec
bgFileName: ../Negatives/bg.txt
numPos: 2500
numNeg: 3019
numStages: 25
precalcValBufSize[Mb] : 256
precalcIdxBufSize[Mb] : 256
stageType: BOOST
featureType: LBP
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
И у меня есть 2 вида ошибок:
- OpenCV Error: Одно из значений аргументов находится вне диапазона (! Нет компоненты/input_variables не выбран) в cvPreprocessIndexArray, файл/TMP/buildd/opencv- 2.3.1/modules/ml/src/internal_functions.cpp, строка 432 завершение вызова после вызова экземпляра 'cv :: Exception' what(): /tmp/buildd/opencv-2.3.1/modules/ml/ src/inner_functions.cpp: 432: error: (-211) Не выбрано никаких компонентов/input_variables! в функции cvPreprocessIndexArray
...
это ошибки используется, чтобы случиться, когда вы не дают существенной разницы между NUM изображений и ваш -num
параметр. Итак, давайте попробуем дать меньше 100!
хорошо, когда я скорректировал параметры не выходить из массива, я получаю один и тот же тип продукции, чем изображения, но я получаю эту ошибку:
OpenCV Error: Assertion failed (tempNode->left) in write, file /tmp/buildd/opencv-2.3.1/modules/traincascade/boost.cpp, line 628 terminate called after throwing an instance of 'cv::Exception' what(): /tmp/buildd/opencv-2.3.1/modules/traincascade/boost.cpp:628: error: (-215) tempNode->left in function write
Aborted
Я пробовал:
- Изменение размера судьбы изображений (24x24, 36x36 ...)
- Изменение параметра
-mode
. - Попытка поставить #positiveSamples < #negativeSamples и #positiveSamples> #negativeSamples
Что я должен сделать, это обучение обязательно с БНС (не HAAR). У кого-нибудь есть ключ?
Заранее спасибо.