Открытый CV traincascade застревает со скоростью попадания 1 и ложной тревогой 0

0

Я хочу обучить классификатор LBP. У меня 103 положительных и 500 отрицательных образцов. Я использовал почти значения по умолчанию, кроме -featureType LBP и -numPos 88.

opencv_traincascade -data "$NAME"_Output \
                    -vec "$NAME".vec \
                    -bg "$NAME"_Negative.txt \
                    -numPos 88 \
                    -numNeg 500 \
                    -numStages 20 \
                    -stageType BOOST \
                    -featureType LBP \
                    -w 32 \
                    -h 48 \
                    -bt GAB \
                    -minHitRate 0.995 \
                    -maxFalseAlarmRate 0.5 \
                    -weightTrimRate 0.95 \
                    -maxDepth 1 \
                    -maxWeakCount 100

Классификатор застревает на этапе 2 после того, как 1-й этап получил полную скорость удара и нулевую ложную тревогу. Я пробовал играть с параметрами numPos, numNeg и bt, но он всегда получает примерно такой же результат.

===== TRAINING 0-stage =====
<BEGIN
POS count : consumed   88 : 88
NEG count : acceptanceRatio    500 : 1
Precalculation time: 1
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|    0.046|
+----+---------+---------+
END>

===== TRAINING 1-stage =====
<BEGIN
POS count : consumed   88 : 88
NEG count : acceptanceRatio    500 : 0.0456038
Precalculation time: 0
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        0|
+----+---------+---------+
END>

===== TRAINING 2-stage =====
<BEGIN
POS count : consumed   88 : 88

Я не знаю достаточно об этом, но я предполагаю, что его полный после первого этапа, но он все еще пытается создать еще 18 этапов. Мой набор данных довольно прост, положительный должен быть очень похожим, а отрицательные изображения одного размера.

  • Возможно ли иметь классификатор с двумя этапами? (этап 0 и этап 1)
  • Кто-нибудь получил классификатор LBP, который работал раньше, или я должен придерживаться HAAR?
  • Я сделал какие-либо ошибки с параметрами или входными данными?
Теги:
opencv
computer-vision

1 ответ

1
Лучший ответ

Зависит от ваших данных обучения. Если его действительно просто отличить положительные и отрицательные данные, то вполне возможно, что для выполнения этой работы достаточно двух этапов. Вопрос в том, как он выполняется на тестовых данных, т.е. Является вашим представителем учебных данных для теста, или вам нужны более (и более сложные) образцы обучения. Если нет, все готово. Поздравляю.

  • 0
    Да, мои данные довольно просты. Я думал, что это может быть хорошо обучено всего за 2 этапа, но я хочу быть достаточно уверенным в Open cv, чтобы точно знать, так ли это, или он сломался. Это расстраивает, что программа не признает, что это было сделано. Спасибо за ответ :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню