#face-detection #adaboost #viola-jones
#распознавание лиц #adaboost #виола-Джонс
Вопрос:
Я прочитал быстрое обнаружение объектов с использованием расширенного каскада простых функций. В части 3 он определяет слабый классификатор следующим образом:
Мой вопрос: как указать порог theta_j
?
И для сильного классификатора мой вопрос выглядит так:
Ответ №1:
Параметр theta_j
рассчитывается для каждой функции слабым учеником. Подход Виолы и Джонса был лучше задокументирован в их версии 2004 года в их статье и, ИМХО, очень похож на анализ ROC. Вы должны протестировать каждый из ваших слабых классификаторов по сравнению с обучающим набором в поисках theta_j
того, который вызывает наименьшую взвешенную ошибку. Мы говорим «взвешенный», потому что мы используем w_t,i
значения, связанные с каждой обучающей выборкой, для взвешивания неправильной классификации.
Для интуитивного ответа о пороге сильного классификатора рассмотрим это все alpha_t = 1
. Это означает, что у вас должно быть не менее половины вывода слабых классификаторов 1 x
для вывода сильного классификатора 1 для x
. Помните, что слабые классификаторы выводят 1, если они считают, что x
это лицо, и 0
в противном случае.
В Adaboost alpha_t
его можно рассматривать как показатель качества слабого классификатора, т. Е. Чем меньше ошибок делает слабый классификатор, тем выше он alpha
будет. Поскольку некоторые слабые классификаторы лучше других, представляется хорошей идеей взвешивать их голоса в соответствии с их качеством. Правая часть неравенства сильного классификатора отражает, что если веса составляют не менее 50% от всех весов, классифицируйте x
как 1 (лицо).
Ответ №2:
Вам необходимо определить theta_j для каждой функции. Это шаг обучения для слабого классификатора. В общем, поиск наилучшего theta_j зависит от модели вашего слабого классификатора. В этом конкретном случае вам необходимо проверить все значения, которые эта конкретная функция принимает в ваших обучающих данных, и посмотреть, какое из этих значений приведет к наименьшей частоте ошибочной классификации. Это будет ваш theta_j.