Слияние нескольких классификаторов Хаара для обнаружения лица

Я пытаюсь сегментировать видео на передний план и фон. Предполагая, что мое видео имеет в основном лицо, я начинаю с детектора лица и использую все пиксели внутри детектора лица как вероятное начальное зерно для GrabCut.

Проблема в том, что иногда (в нескольких кадрах) детектор лица не обнаруживает лицо, хотя лицо определенно присутствует. Особенно, когда пользователь отводит взгляд от экрана и виден боковой профиль лица.

Есть ли этому решение?

Очевидный ответ, который мне пришёл в голову, также заключался в использовании бокового профиля Haar Classifier, но как мне их объединить? В том смысле, что в любой момент времени у меня должен быть либо передний профиль лица, либо боковой профиль (или его вообще нет).

Мне было интересно, есть ли какие-либо связанные значения достоверности с обнаруженными лицами, и поэтому я могу использовать обнаружение от каскада, которое дает более уверенное обнаружение.

1

Решение

есть (недокументированная) перегрузка для CascadeClassifier :: detectMultiScale ():

virtual void detectMultiScale( InputArray image,
CV_OUT std::vector<Rect>& objects,
CV_OUT std::vector<int>& rejectLevels,
CV_OUT std::vector<double>& levelWeights,
double scaleFactor,
int minNeighbors, int flags,
Size minSize, Size maxSize,
bool outputRejectLevels ) = 0;

rejectLevels должны быть значениями доверия, которые вы ищете

0

Другие решения


По вопросам рекламы [email protected]