Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Hough Transform

Преобразование Хафа — это основанный на голосовании метод компьютерного зрения, который обнаруживает линии, окружности и другие фигуры даже при разрывах или зашумлённых границах изображения.

Преобразование Хафа — это геометрический метод извлечения признаков, который обнаруживает линии, окружности и другие параметризованные фигуры, позволяя точкам изображения голосовать за возможные фигуры. Точки, принадлежащие одной структуре, усиливают голоса друг друга, создавая выраженный пик в таблице голосования. В компьютерном зрении это помогает восстанавливать фигуры с разрывами или зашумлёнными границами.

Пол В. К. Хаф представил этот метод в 1959 году в работе «Машинный анализ фотографий пузырьковой камеры», посвящённой следам частиц на физических снимках. Ричард Дуда и Питер Харт предложили широко используемое представление через угол и расстояние в своей работе 1972 года об обнаружении линий и кривых.

Как работает голосование Хафа#

Типичный рабочий процесс начинается с предобработки данных и обнаружения границ. Детектор границ выявляет локальные изменения яркости; преобразование Хафа группирует пиксели границ в геометрические структуры. Оператор Собеля оценивает градиенты яркости, а алгоритм Кэнни строит тонкую карту границ, подходящую для голосования за линии.

Каждая линия-кандидат представлена параметром rho — знаковым перпендикулярным расстоянием от начала координат изображения — и параметром theta — углом этого перпендикуляра относительно оси x. Такой способ позволяет работать с вертикальными линиями, не прибегая к бесконечному наклону. Каждый пиксель границы голосует за совместимые пары rho–theta в аккумуляторе — таблице, которая делит пространство параметров на дискретные ячейки. Коллинеарные пиксели попадают в одну ячейку, даже если на изображении они разделены. Пики указывают на линии, подтверждённые голосами.

Результат определяют геометрия и правила голосования. Детектор на основе глубокого обучения обучается распознавать визуальные закономерности на обучающих данных; обнаружение методом Хафа использует заданную модель фигуры и числовые пороги, а не обученные веса модели.

Стандартное, вероятностное и круговое преобразования#

Три распространённые реализации различаются способом поиска и результатом:

  • Стандартное преобразование линий: cv2.HoughLines() возвращает пары rho–theta, описывающие бесконечные линии. Чтобы получить конечные отрезки, нужна дополнительная обработка.
  • Вероятностное преобразование линий: cv2.HoughLinesP() сокращает вычисления при голосовании за счёт выборки точек и сразу возвращает конечные отрезки. minLineLength отбрасывает короткие отрезки; maxLineGap задаёт максимальное расстояние между выровненными фрагментами, которые можно соединить.
  • Круговое преобразование: для кандидатов на окружности нужны центр и радиус. cv2.HoughCircles() использует подход на основе градиентов, а ограничения на радиус сужают область поиска. На вход подаётся изображение в оттенках серого, тогда как функции для линий принимают бинарное изображение.

Обнаружение отрезков линий в Python#

Установи зависимости с помощью pip install opencv-python numpy. В этом примере используется OpenCV, чтобы обнаружить и нарисовать отрезки линий на тестовом изображении автобуса.

from urllib.request import urlopen

import cv2
import numpy as np

with urlopen("https://ultralytics.com/images/bus.jpg") as response:
    encoded = np.frombuffer(response.read(), dtype=np.uint8)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Извлеки границы для голосования.
edges = cv2.Canny(gray, 50, 150)
# Обнаружь конечные отрезки, подтверждённые голосами в аккумуляторе.
lines = cv2.HoughLinesP(
    edges,
    1,
    np.pi / 180,
    threshold=80,
    minLineLength=80,
    maxLineGap=10,
)
if lines is not None:
    for x1, y1, x2, y2 in lines[:, 0]:
        cv2.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2)
cv2.imwrite("hough_segments.jpg", image)

На сохранённом изображении возвращённые отрезки наложены красным цветом. Ширина ячеек rho составляет один пиксель, шаг ячеек theta — один градус, а threshold=80 задаёт порог голосования в аккумуляторе. Длины отрезков и разрывы измеряются в пикселях.

Применение и практические ограничения#

При обработке документов извлечение линий сетки помогает анализировать структуру: в OpenCV показано обнаружение линий методом Хафа на изображении судоку. Голосование по окружностям позволяет находить центры и радиусы монет, как показано в примерах с окружностями и эллипсами библиотеки scikit-image. Эти результаты описывают геометрию; обнаружение объектов добавляет семантические категории, а сегментация экземпляров относит пиксели к отдельным объектам.

В прототипе для измерения стальных балок маски YOLOv8, границы Кэнни и вероятностное преобразование Хафа используются для извлечения углов. Сегментация в Ultralytics YOLO26 создаёт маски для изоляции объектов, позволяя применять тот же подход с маскированным входом перед отдельной геометрической обработкой.

Мелкие ячейки аккумулятора увеличивают расход памяти; крупные объединяют близкие кандидаты. При извлечении границ таблиц неполные рамки мешают обнаруживать границы, а посторонние линии могут привести к их неправильной коррекции. Увеличение значения maxLineGap позволяет соединять более крупные разрывы между выровненными фрагментами; увеличение значения minLineLength удаляет более короткие отрезки.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения