Обучение каскадного классификатора - Исследование алгоритмов

В OpenCV есть два приложения для тренировки каскадов URL: http://docs. opencv. org/modules/objdetect/doc/cascade_classification. html? highlight=cascade%20classifier: Opencv_haartraining и Opencv_traincascade (новая версия, написанная на C++). Предпочтение отдается использованию Opencv_traincascade, так как эта утилита хранит обученные каскады в новом формате. Для наилучшей оценки итогового результата, решено обучить два каскадных классификатора: основанный на признаках Хаара и основанный на локальных бинарных шаблонах. Библиотека OpenCV и, в частности, утилита Opencv_traincascade дает возможность обучить оба классификатора путем установки значения параметра -FeatureType: Haar или LBP. Оба каскадных классификатора были обучены по одной и той же выборке, описанной в п.2.2.

Главной задачей на этапе тренировки каскадов является корректное определение параметров обучения. В таблице 2.2 показаны параметры, переданные приложению при первом запуске и оптимальные параметры, вычисленные опытным путем.

Таблица 2.2

Экспериментальный подбор оптимальных параметров для обучения каскадов

Параметр

Изнач. значение

Оптим. значение

Обоснование

- minHitRate

0,95

0,996

Изначально делалась скидка на сложность детектируемых объектов, вероятность смешения объекта с фоном и ложных тревог, поэтому процент "правильных" обнаружений устанавливался не максимально высоким. Однако свойства хорошей выборки позволили увеличить значение

-numPos

17256

15000

Указывается не все количество позитивных образцов, так как процент правильных обнаружений не равен 100%, и некоторая часть изображений будет признана непригодной, а значит, высока вероятность невозможности обучения каскадов до конца

-numNeg

10000

10000

Точное количество негативных образцов

-numStages

15

31

Большее число уровней, которые будут обучаться, обеспечит большую точность последующего детектирования

-precalcValBufSize

1024

1024

Под процесс выделяется большое количество памяти для ускорения обучения классификатора

-precalcIdxBufSize

1024

1024

-featureType

HAAR/

LBP

HAAR/

LBP

Обучается классификатор, использующий признаки Хаара или LBP

-w

8

8

Параметры в точности должны совпадать с размером сгенерированных на предыдущем шаге примитивов

-h

32

32

-maxFalseAlarmRate

0,5

0,7

Изначально выставлялось среднее значение параметра, однако при обучении на хорошей выборке уровень ложной тревоги достигался слишком быстро

-mode

ALL

ALL

Предполагается использование полного комплекта Хаар-признаков, чтобы достигнуть максимально возможной точности

В общей сложности, каскадный классификатор, использующий признаки Хаара, обучался 3360 минут; в свою очередь, классификатор, использующий локальные бинарные шаблоны, обучался 339 минут.

Итак, результатом работы на этапе тренировки стали 2 каскада в формате xml-файлов: обученный на признаках Хаара и обученный по локальным бинарным шаблонам.

Похожие статьи




Обучение каскадного классификатора - Исследование алгоритмов

Предыдущая | Следующая