0

Я работаю для распознавания лиц с несколькими видами. У меня два шага в развивающемся обнаружении лица,Извлечение функций с использованием MB-LBP для распознавания лиц с несколькими видами зрения

(1) дерево принятия решений принимает решение о каком классификаторе для запуска и

(2) работает выбранный классификатор для определения конкретной ориентации лица.

У меня есть 9 классификаторов, обученных с помощью алгоритма Ada-boost для 9 видов лиц.

Теперь моя проблема заключается в обучении дерева решений с помощью функции MB-LBP (многомасштабный локальный двоичный шаблон). Я выбрал 100 прямоугольников для разных положений x, y и разных размеров прямоугольника. Мне нравится использовать эти прямоугольники для извлечения функции с помощью MB-LBP. Я понял, что мы можем иметь метку 0-255 для прямоугольника, если мы используем концепцию MB-LBP. В OpenCV, он реализуется как (в строке 217, cascadedetect.hpp)

inline int Feature :: calc(int _offset) const 
{ 
    int cval = CALC_SUM_(p[5], p[6], p[9], p[10], _offset); 
    return (CALC_SUM_(p[0], p[1], p[4], p[5], _offset) >= cval ? 128 : 0) | // 0 
      (CALC_SUM_(p[1], p[2], p[5], p[6], _offset) >= cval ? 64 : 0) | // 1 
      (CALC_SUM_(p[2], p[3], p[6], p[7], _offset) >= cval ? 32 : 0) | // 2 
      (CALC_SUM_(p[6], p[7], p[10], p[11], _offset) >= cval ? 16 : 0) | // 5 
      (CALC_SUM_(p[10], p[11], p[14], p[15], _offset) >= cval ? 8 : 0)| // 8 
      (CALC_SUM_(p[9], p[10], p[13], p[14], _offset) >= cval ? 4 : 0)| // 7 
      (CALC_SUM_(p[8], p[9], p[12], p[13], _offset) >= cval ? 2 : 0)| // 6 
      (CALC_SUM_(p[4], p[5], p[8], p[9], _offset) >= cval ? 1 : 0); 
} 

Этот код может извлечь метку. Оттуда я не могу понять, как перейти к созданию значимой функции для каждого прямоугольника. Я проверил код OpenCV на CascadeTraining. Это действительно сложно. Могу ли я понять, как создать полезную функцию с использованием MB-LBP? Thanks

ответ

0

После прочтения this paper и this paper, я понял, что могу использовать функции MB-LBP напрямую. Если мы используем функции MB-LBP, для каждого прямоугольника мы можем иметь значения от 0 до 255. Эти значения являются функциями и могут использоваться для распознавания изображений. В каскадном классификаторе каждый шаг сильного классификатора представляет собой суммирование слабых классификаторов. Каждый слабый классификатор получен из этих функций MB-LBP и как он получен, мы можем узнать от this paper. Thanks