Я пытаюсь понять, как работают классификаторы хара. Я читаю документацию opencv здесь: http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html, и кажется, что вы в основном обучаете набор данных, чтобы получить что-то вроде шаблона. Затем вы кладете шаблон поверх фактического изображения, которое вы хотите проверить, и вы проходите проверку и проверяете каждый пиксель, чтобы убедиться, что он вероятен или вряд ли будет тем, что вы ищете. Поэтому, полагая, что это правильно, я дошел до того момента, когда я смотрел на фотографию ниже, и я не понимал. Являются ли блоки предполагаемыми регионами «вероятными» и «маловероятными»? Заранее спасибоУточнение классификатора HAAR
ответ
Эти модели являются признаки, которые оцениваются для обучения изображения. Например, для функции 1a учебный процесс находит квадратные области во всех ваших учебных изображениях, где левая половина обычно ярче правой (или наоборот). Для функции 3a тренировка находит квадратные области, где центр темнее окружающего.
Эти особенности, которые вы изобразили, были выбраны для харасного каскада не потому, что они особенно хороши, а главным образом потому, что они являются extremely fast to evaluate.
Более конкретно, обучение каскаду хара обнаруживает одну особенность, которая помогает лучше всего дифференцировать ваши положительные и отрицательные изображения обучения (примерно такая функция чаще всего верна для положительных изображений и чаще всего ошибочна для негативных изображений). Эта функция будет первой ступенью результирующего каскада хара. Вторая лучшая функция - вторая ступень и так далее.
После тренировки Хаара каскад состоит из ряда правил, или этапов, как это:
- оценки функции 1a для области (x1, y1) - (x2, y2). Является ли результат больше порога z1?
(что означает: есть левая половина этой области ярче, чем в правой половине на определенную сумму?)
- если да, то вернуть «не матч»
- если нет, то выполнить на следующем этапе
В классическом Хаара каскада, каждое такое правило, с участием только одной функции в одном месте с одним порогом, представляет собой стадию каскада. OpenCV фактически использует каскад , что означает, что каждый этап состоит из нескольких из этих простых функций.
Принцип остается следующим: каждый этап - очень слабый классификатор, который сам по себе едва лучше, чем дикие предположения. Порог для каждого этапа выбирается так, чтобы вероятность ложных негативов была очень низкой (так что сцена почти никогда не ошибочно отвергает хороший матч, но довольно часто ошибочно принимает плохой матч).
Когда каскад хара выполняется, все этапы выполняются по порядку; только изображение, которое пройдет первый И второй И третий ... этап будет принят.
Во время обучение первый этап также обучен первым. Затем второй этап тренируется только с образовательными изображениями, которые пройдут на первом этапе, и так далее.
- 1. Описание таблицы результатов классификатора OpenCV Haar
- 2. распознавание лиц с использованием классификатора HAAR
- 3. Управление клавиатурой с использованием классификатора Haar в OpenCV?
- 4. haar training Ошибка OpenCV
- 5. преобразование haar на изображении
- 6. Очистка обнаружения Haar
- 7. Haar Схема подъема
- 8. классификаторы haar exchange
- 9. Метод классификатора классов классификатора NLTK 2.0
- 10. Расчетные весовые коэффициенты в выводе классификатора классификатора
- 11. ошибки классификатора
- 12. Неисправность частоты обнаружения каскадного классификатора
- 13. Непрерывный Haar Wavelet для Python
- 14. Вейвлет Haar - Реконструкция частичного сигнала
- 15. обнаружение людей с haar cascade
- 16. Каскадный классификатор HAAR LBP Advice
- 17. Haar Object Detection issue issue
- 18. Обнаружение лица (Haar) без opencv
- 19. сжимающее зондирование и вейвлет Haar
- 20. Матричная нормализация для Haar Decomposition
- 21. Классификатор OpenCV Haar - это SVM
- 22. OpenCV Haar Cascade xml format
- 23. Haar- Каскадное распознавание лица OpenCv
- 24. Выполнение Matlab извлечения функции Haar
- 25. Пояснение cascade.xml в классификаторе haar
- 26. Optical Flow vs. Haar Cascade
- 27. Что находится внутри XML, созданного функцией OpenCv Haar.
- 28. Уточнение AutoResetEvent
- 29. Требуемое уточнение
- 30. Уточнение StringComparison.InvariantCulture?
спасибо. Это имеет больший смысл. – JustBlossom
Просто, чтобы уточнить, когда вы говорите первый этап, второй этап и так далее, вы имеете в виду этапы, на которых он построен? – JustBlossom
@ LearnLanguages96 каскад хара состоит из многих подобных этапов, которые выполняются и обучаются в определенном порядке. Первый этап сначала тренируется, а затем выполняется первым. Второй этап выполняется только для изображений, которые проходят первый этап, а во время обучения тренируется только с изображениями, которые проходят первый этап. Я добавил некоторые детали в ответ на это. Отказ от ответственности: вся эта информация в основном из моей памяти о классическом каскаде хара. OpenCV может выполнять некоторые отклонения, такие как * boosting *, о которых я мало что знаю. – HugoRune