Открыть сервис

HOG

HOG (акроним от англ. Histogram of Oriented Gradients — гистограмма ориентированных градиентов) — это дескриптор признаков, используемый в компьютерном зрении и обработке изображений для обнаружения объектов. Метод основан на подсчёте направлений градиентов (изменений яркости) в локальных областях изображения и построении гистограмм, которые описывают форму объекта. HOG является одним из ключевых алгоритмов в задачах распознавания образов, особенно в контексте обнаружения пешеходов, транспортных средств и других объектов с характерными контурами.

История

Метод HOG был впервые предложен в 2005 году группой исследователей из французского Национального института исследований в области информатики и автоматики (INRIA) под руководством Наваль Дхавал и Билла Триггса. В своей работе «Histograms of Oriented Gradients for Human Detection» авторы продемонстрировали, что локальные гистограммы градиентов, нормированные по контрасту, обеспечивают высокую точность обнаружения пешеходов на изображениях. Алгоритм стал развитием идей, заложенных в дескрипторах Scale-Invariant Feature Transform (SIFT) и дескрипторах формы, но с акцентом на вычислительную эффективность и инвариантность к изменениям освещения.

В последующие годы HOG получил широкое распространение в системах видеонаблюдения, автономных транспортных средствах и робототехнике. С развитием глубокого обучения, особенно с появлением свёрточных нейронных сетей (CNN), популярность HOG снизилась, однако он остаётся востребованным в задачах с ограниченными вычислительными ресурсами или при необходимости интерпретируемости модели.

Принцип работы

Вычисление градиентов

На первом этапе изображение преобразуется в оттенки серого, и для каждого пикселя вычисляются градиенты по осям X и Y. Обычно используются простые фильтры Собеля или Превитта, которые дают производные яркости по горизонтали и вертикали. Для каждого пикселя определяется магнитуда (амплитуда) градиента и его ориентация (угол наклона).

Разбиение на ячейки

Изображение делится на небольшие прямоугольные области — ячейки (cells), размером, как правило, 8×8 пикселей. Для каждой ячейки строится гистограмма, в которой по оси X откладываются бины (диапазоны углов ориентации), а по оси Y — сумма магнитуд градиентов, попавших в соответствующий бин. Обычно используется 9 бинов, равномерно распределённых от 0 до 180 градусов (беззнаковые градиенты) или от 0 до 360 градусов (знаковые градиенты).

Формирование блоков и нормализация

Для повышения устойчивости к изменениям освещения и контраста ячейки объединяются в блоки (blocks) — например, по 2×2 ячейки. Внутри каждого блока гистограммы всех ячеек конкатенируются и нормируются. Нормализация (например, L2-норма или L1-норма) позволяет уменьшить влияние локальных перепадов яркости, таких как тени или блики. Блоки перекрываются, что обеспечивает плавность дескриптора и снижает эффект «ступенчатости» на границах объектов.

Построение дескриптора

Итоговый дескриптор HOG для всего изображения или его части представляет собой вектор, состоящий из нормированных гистограмм всех блоков. Длина вектора зависит от размера изображения, размера ячейки и количества блоков. Например, для изображения 64×128 пикселей с ячейками 8×8 и блоками 2×2 (с перекрытием в 1 ячейку) получается вектор длиной 3780 элементов.

Применение

Обнаружение пешеходов

Первоначально HOG был разработан именно для этой задачи. В сочетании с классификатором на основе метода опорных векторов (SVM) алгоритм позволяет с высокой точностью выделять силуэты людей на изображениях, даже при частичном перекрытии или изменении позы. В 2005 году на тестовом наборе INRIA Person Dataset метод показал точность около 89% при низком уровне ложных срабатываний.

Распознавание транспортных средств

HOG применяется для обнаружения автомобилей, мотоциклов и велосипедов в системах помощи водителю (ADAS) и автономного вождения. Алгоритм устойчив к изменениям ракурса и масштаба, что делает его полезным для детекции на дорогах.

Анализ жестов и действий

В системах распознавания жестов HOG используется для выделения контуров рук и тела. Например, в приложениях для управления компьютером без мыши или в виртуальной реальности.

Медицинская диагностика

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

Робототехника

В мобильных роботах HOG используется для навигации и избегания препятствий. Алгоритм помогает распознавать людей, животных и другие объекты в реальном времени.

Преимущества и недостатки

Преимущества

Недостатки

Сравнение с другими методами

HOG и SIFT

Оба метода основаны на градиентах, но SIFT дополнительно включает этап обнаружения ключевых точек и построения инвариантных к масштабу дескрипторов. HOG проще и быстрее, но менее устойчив к поворотам и масштабированию. SIFT часто используется для сопоставления изображений, а HOG — для обнаружения объектов.

HOG и CNN

Свёрточные нейронные сети (CNN) автоматически обучаются выделять признаки, включая градиенты, но на более высоких уровнях абстракции. CNN превосходят HOG по точности, особенно на сложных данных, но требуют больших вычислительных мощностей и обучающих наборов. HOG остаётся актуальным для задач с ограниченными ресурсами или при необходимости быстрого прототипирования.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →