Я пытаюсь реализовать детектор Виолы Джонса. Поскольку у меня недостаточно изображений или времени для обучения классификаторов, я решил использовать эти OpenCV.
До сих пор я мог загружать все haarcascade_frontface_alt.xml
в структуры в памяти, создавать интегральное изображение для быстрой суммы площадей и создавать базовый алгоритм для детектора. Но он не работает так, как ожидалось, ну вообще.
Итак, если кто-нибудь знает, как работает детектор Виолы Джонса, и знает, как OpenCV использует свои структуры, подтвердите или опровергните мои предположения:
1, интегральное изображение вычисляется в значениях с плавающей запятой в диапазоне от 0->1 для белого цвета
2, для каждого объекта вы берете площадь в пределах его прямоугольников, умножаете на вес и суммируете со всеми прямоугольниками
3, если сумма > порог, значение left_val суммируется дальше, если не используется right_val
4, сумма для всех классификаторов на этапе > чем stage_threshold, может быть лицом, поэтому переходите к следующему этапу, если нет, то break
5, повторить для всех этапов, окон обнаружения и весов...
Пока я получаю все виды обнаруженных областей, кроме тех, которые содержат лица...
Пожалуйста, если мои предположения об использовании каскада openCV неверны, помогите. Спасибо.