2016-07-19 9 views
-1

я использовал те же параметры, используемые в этом руководстве .. т.е. http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.htmlHaar- Каскад OpenCV обнаружения объектов - файл .xml классификатор не обнаруживает правильно

Perl bin/createsamples.pl positives.txt образцов negatives.txt 1500 \ "opencv_createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1,1 \ -maxyangle 1,1 maxzangle 0,5 -maxidev 40 -w 80 -h 40"

НО изменил параметр numPos, как он дал мне ошибку недостаточных положительных образов ,

ТАКЖЕ уменьшило этапы, поскольку это было ниже желаемой скорости (должно быть меньше 0,0004), а мое было 0,0002. Используются эти параметры.

opencv_traincascade -data классификатор -vec samples.vec -bg negatives.txt -numStages 16 -minHitRate 0,999 -maxFalseAlarmRate 0,5 -numPos 880 -numNeg 600 -w 80 -h 40 -mode ВСЕ -precalcValBufSize 1024 -precalcIdxBufSize 1024

Получил мой файл cascade.xml, но все еще не обнаружил должным образом. Файл cascade.xml занял 3 дня для обработки. (Изображение прилагается) Вы использовали Opencv3.1.0 Пожалуйста, помогите !!!

IMAGE detected by classifier(Click to see)

ответ

0

Что является причиной для использования параметра -bgthresh 0. Из того, что я знаю, стандартная настройка - 80, нет причин менять параметры, если вы не знаете, что они делают. Читайте об этом.

BUT изменил параметр numPos, так как он дал мне ошибку недостаточных положительных изображений.

Вы проверили, что у вас действительно есть 1500 положительных элементов, проверьте это вместе со строками в файле positives.txt.

-numPos 880 -numNeg 600

Разные мнения здесь, я рекомендую количество отр = позитивы * 2.

, но до сих пор не обнаруживает правильно

Что вы имеете в виду? Что вы определяете как «правильно»? В примере, который вы предоставляете, я вижу правильное обнаружение с возможным ложным положительным (прямоугольник посередине). Увеличьте minNeighbors (в вашем коде) - Параметр, указывающий, сколько соседей каждого прямоугольника кандидата должно будет его сохранить.