Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Hough Transform

허프 변환은 이미지 가장자리의 간격이나 노이즈가 있어도 선, 원, 도형을 감지하는 투표 기반 컴퓨터 비전 기법입니다.

허프 변환은 이미지의 점들이 가능한 도형에 투표하도록 하여 선, 원 및 기타 매개변수화된 도형을 감지하는 기하학적 특징 추출 기법입니다. 같은 구조에 속하는 점들은 서로의 결과를 강화하여 투표 테이블에서 뚜렷한 피크를 만듭니다. 컴퓨터 비전에서 이 기법을 사용하면 간격이 있거나 경계에 노이즈가 있는 도형도 복원할 수 있습니다.

Paul V. C. Hough는 물리학 사진에서 입자 궤적을 다루기 위해 1959년 기포 상자 사진의 기계적 분석에서 이 기법을 소개했습니다. Richard Duda와 Peter Hart는 1972년 선 및 곡선 감지 논문에서 널리 사용되는 각도-거리 표현을 소개했습니다.

허프 투표의 작동 방식#

일반적인 워크플로는 데이터 전처리와 에지 감지로 시작합니다. 에지 검출기는 국소적인 밝기 변화를 식별하고, 허프 변환은 에지 픽셀을 기하학적 구조로 그룹화합니다. 소벨 연산자는 밝기 기울기를 추정하며, 캐니는 선 투표에 적합한 얇은 에지 맵을 생성합니다.

각 후보 선은 이미지 원점에서 선까지의 부호 있는 수직 거리인 rho와, x축을 기준으로 해당 수직선이 이루는 각도인 theta로 표현됩니다. 이 방식은 기울기가 무한대인 수직선도 처리할 수 있습니다. 모든 에지 픽셀은 누산기의 호환되는 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 구간의 너비는 1픽셀이고 theta 구간은 1도이며, threshold=80은 누산기 투표 임계값을 설정합니다. 선분 길이 및 간격 설정의 단위는 픽셀입니다.

응용 분야와 실제적인 한계#

문서 처리에서 격자선을 추출하면 구조 분석에 도움이 됩니다. OpenCV는 스도쿠 이미지에서 허프 감지를 보여 줍니다. 원형 투표는 scikit-image의 원 및 타원 예제에서 동전의 중심과 반지름을 찾습니다. 이러한 결과는 기하 구조를 나타내며, 객체 감지는 의미 범주를 추가하고 인스턴스 분할은 픽셀을 개별 객체에 할당합니다.

강철 빔 측정 프로토타입은 YOLOv8 마스크, 캐니 에지, 확률적 허프 선을 결합해 모서리 추출을 지원합니다. Ultralytics YOLO26 분할은 객체 분리를 위한 마스크를 제공하므로, 별도의 기하학적 처리를 수행하기 전에 동일한 마스크 입력 방식을 적용할 수 있습니다.

누산기 구간을 세분화하면 메모리 사용량이 늘어나고, 구간을 넓게 설정하면 서로 가까운 후보들이 하나로 합쳐집니다. 테이블 경계 추출에서는 테두리가 불완전하면 감지 가능한 경계가 줄어들고, 관련 없는 선이 경계를 잘못 보정할 수 있습니다. maxLineGap을 높이면 정렬된 조각 사이의 더 큰 간격을 연결하고, minLineLength를 높이면 더 짧은 선분을 제거합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요