HOG + SVM
HOG + SVM — это комбинация методов компьютерного зрения и машинного обучения, используемая для решения задачи детекции объектов на изображениях. Метод основан на вычислении дескриптора гистограммы ориентированных градиентов (HOG) и последующей классификации полученных признаков с помощью метода опорных векторов (SVM). Данный подход получил широкое распространение в начале 2010-х годов, в первую очередь благодаря эффективной реализации детектора пешеходов, предложенной исследователями Навнитом Даллом и Биллом Триггсом.
Принцип работы
Метод HOG + SVM состоит из двух последовательных этапов: извлечения признаков из изображения с помощью дескриптора HOG и классификации этих признаков с помощью обученной модели SVM.
Дескриптор HOG
Дескриптор HOG (Histogram of Oriented Gradients) — это дескриптор локальных признаков, который описывает распределение направлений градиентов интенсивности в локальных областях изображения. Основная идея заключается в том, что внешний вид и форма объекта на изображении могут быть охарактеризованы распределением локальных градиентов, даже без точного знания их положения.
Процесс вычисления дескриптора HOG включает несколько шагов:
- Вычисление градиентов: Для каждого пикселя изображения вычисляются градиенты по оси X и Y с помощью простых фильтров (например, ядер Собеля или Прюитт). Вычисляются магнитуда (величина) и направление градиента.
- Разбиение на ячейки: Изображение делится на небольшие связные области — ячейки (cells). Типичный размер ячейки — 8×8 пикселей.
- Построение гистограммы для каждой ячейки: Для каждой ячейки строится гистограмма направлений градиентов. Диапазон углов (обычно от 0 до 180 или 360 градусов) делится на фиксированное число бинов (например, 9 бинов). Каждый пиксель в ячейке добавляет значение, пропорциональное магнитуде его градиента, в соответствующий бин гистограммы.
- Нормализация в блоках: Для учёта изменений освещения и контраста ячейки объединяются в более крупные пространственные блоки (blocks). Гистограммы всех ячеек в блоке объединяются и нормализуются (например, по L2-норме). Типичный блок состоит из 2×2 ячеек. Нормализация делает дескриптор устойчивым к локальным изменениям освещённости.
- Формирование итогового вектора: Нормализованные гистограммы всех блоков в изображении конкатенируются в единый вектор признаков большой размерности.
Метод опорных векторов (SVM)
Метод опорных векторов (Support Vector Machine, SVM) — это алгоритм машинного обучения, используемый для задач классификации и регрессии. В контексте HOG + SVM, SVM обучается на размеченных данных: на положительных примерах (изображения, содержащие искомый объект, например, пешехода) и отрицательных примерах (изображения, не содержащие объекта).
SVM строит разделяющую гиперплоскость в пространстве признаков высокой размерности, которая максимизирует зазор (margin) между классами. Для нелинейно разделимых данных SVM использует функцию ядра (kernel trick), что позволяет отобразить данные в пространство большей размерности, где они становятся линейно разделимыми. В классическом детекторе Далла-Триггса использовался линейный SVM, который показал высокую эффективность и скорость.
История
Метод HOG + SVM был впервые представлен в 2005 году в работе Навнита Далла и Билла Триггса «Histograms of Oriented Gradients for Human Detection». До этого для детекции объектов, особенно пешеходов, использовались более сложные и менее эффективные методы, такие как детекторы на основе вейвлетов Хаара (Haar-like features) с каскадным классификатором (AdaBoost), предложенные Полом Виолой и Майклом Джонсом в 2001 году.
Далл и Триггс показали, что дескриптор HOG, по своей сути похожий на дескриптор SIFT (Scale-Invariant Feature Transform), но применяемый в плотной сетке, значительно превосходит существующие методы по точности детекции пешеходов. В своей работе они использовали линейный SVM, что обеспечило не только высокую точность, но и приемлемую скорость работы, позволяющую применять метод в реальном времени на оборудовании того времени.
Метод HOG + SVM стал стандартом де-факто для детекции пешеходов на протяжении нескольких лет. Он был реализован в популярных библиотеках компьютерного зрения, таких как OpenCV, что способствовало его широкому распространению.
Применение
Основное применение метода HOG + SVM — детекция объектов, в первую очередь пешеходов. Он использовался в системах помощи водителю (ADAS), системах видеонаблюдения, робототехнике и автономных транспортных средствах. Помимо пешеходов, метод применялся для обнаружения других объектов с характерной формой: автомобилей, велосипедов, животных, дорожных знаков.
Метод также использовался в качестве компонента в более сложных системах, например, для извлечения признаков в задачах распознавания объектов или для инициализации трекера.
Критика и ограничения
Несмотря на свою эффективность, метод HOG + SVM имеет ряд ограничений:
- Высокая вычислительная сложность: Вычисление дескриптора HOG для каждого окна в скользящем окне требует значительных вычислительных ресурсов, особенно при обработке видео высокого разрешения.
- Чувствительность к окклюзиям: Метод плохо работает при частичном перекрытии объекта.
- Чувствительность к значительным изменениям позы: Детектор, обученный на пешеходах в вертикальном положении, плохо распознаёт человека, сидящего или лежащего.
- Необходимость ручного подбора параметров: Размер ячейки, количество бинов гистограммы, размер блока — эти параметры требуют тщательной настройки для каждой задачи.
- Плохая работа с текстурами: Дескриптор HOG в основном реагирует на контуры, поэтому объекты с однородной текстурой могут быть плохо распознаны.
Сравнение с современными методами
Начиная с середины 2010-х годов, метод HOG + SVM был в значительной степени вытеснен методами глубокого обучения, в частности свёрточными нейронными сетями (CNN). Архитектуры, такие как R-CNN, Fast R-CNN, Faster R-CNN, YOLO (You Only Look Once) и SSD (Single Shot Detector), продемонстрировали значительно более высокую точность и скорость детекции, особенно в сложных сценах с большим количеством объектов, окклюзиями и изменениями масштаба.
Тем не менее, метод HOG + SVM не утратил своего значения. Он продолжает использоваться в задачах, где вычислительные ресурсы сильно ограничены (например, на встраиваемых системах), или когда требуется высокая скорость работы без использования GPU. Кроме того, он служит отличным учебным примером для понимания основ детекции объектов и извлечения признаков.
Источники
- Dalal, N., & Triggs, B. (2005). Histograms of oriented gradients for human detection. 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05).
- Viola, P., & Jones, M. (2001). Rapid object detection using a boosted cascade of simple features. Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. CVPR 2001.
- Lowe, D. G. (2004). Distinctive image features from scale-invariant keypoints. International Journal of Computer Vision.
- Bradski, G., & Kaehler, A. (2008). Learning OpenCV: Computer Vision with the OpenCV Library. O'Reilly Media, Inc.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →