본문 바로가기
AI/데이터 시각화

[데이터 시각화] HOG란 무엇인가? 객체 검출의 고전적인 역작, HOG 완전 분석

by Yoon_estar 2025. 10. 7.
728x90
반응형

컴퓨터 비전 분야의 딥러닝 시대가 도래하기 전, Histogram of Oriented Gradients(HOG, 기울기 방향 히스토그램)는 객체 검출(Object Detection) 영역에서 가장 강력하고 혁신적인 특징 서술자(Feature Descriptor) 중 하나였습니다. 특히 사람 검출(Pedestrian Detection) 분야에 혁명을 가져왔던 HOG 원리와 작동 방식을 자세히 알아봅시다. 

HOG 기반 : 이미지 기울기 벡터(Gradient Vector)

HOG가 작동하는 원리는 매우 직관적입니다. 객체의 모양(Shape)은 주로 윤곽선(Edge)에 의해 결정되며, 윤곽선은 픽셀 밝기가 급격하게 변하는 곳에서 발생합니다. 

이미지 픽셀 위치 $f(x,y)$에 따른 밝기 값으로 이루어진 함수로 볼 때 기울기 벡터 $\nabla f = \begin{bmatrix} G_x \ G_y \end{bmatrix}$는 다음 두 가지 핵심 정보를 제공합니다.

  1. 크기(Magnitude,g) : 밝기 변화의 강도 이는 클 수록 뚜렷한 윤곽선임
  2. 방향 (Direction, ): 밝기가 가장 빠르게 증가하는 방향 이 방향은 윤곽선에 수직임

HOG는 바로 이 기울기 벡터를 사용하여 이미지에서 윤곽선이 어느 방향으로 얼마나 강하게 나타나는지 통계적으로 요악합니다.

 

HOG 특징 추출 4단계 상세 설명

HOG 특징 벡터를 생성하는 과정은 다음 4단계로 요약할 수 있습니다. 

 

전처리 및 기울기 계산(Preprocessing & Gradilent Calculation)

먼저 이미지를 흑백으로 변환하고 이후 처리를 위해 고정된 크기로 크기를 조정합니다. 이후 sobel 연산자와 같은 필터를 사용하여 모든 픽셀에 대한 x 방향 기울기 방향 기울기 를 계산하고, 이를 기반으로 크기 (g) 방향 (θ)을 구합니다.

 

셀(Cell) 내 히스토그램 생성(Cell Histogramming)

​이미지를 8X8 픽셀 크기의 작은 셀(Cell)들로 나눕니다. HOG의 핵심은 이 셀 내의 모든 픽셀 정보를 하나의 히스토그램으로 압축하는 것입니다.

  • 9개 빈(9 Bins) : $\text{0}\text{°}$부터 $\text{180}\text{°}$까지 부호 없는 방향 (Unsigned Orientation)을 20° 간격으로 나눈 9개의 반을 사용합니다. 
  • 크기 기반 투표 : 셀 내의 각 픽셀은 자신의 기울기 크기를 가중치(Vote)로 사용하여 해당하는 방향 빈에 투표합니다.
  • 보간적 튜표(Interpolation) : 만약 픽셀의 방향이 두 빈 사이에 위치하면, 그 크기를 두 빈에 비례적으로 분할하여 투표합니다. 이 방식은 픽셀 위치의 작은 변화나 노이즈에도 히스토그램이 안정적으로 유지되도록 돕는 중요한 요소입니다. 

이 단계를 통해 8X8 픽셀 정보(64개의 픽셀)가 9개의 값으로 이루어진 히스토그램(9X1 벡터)으로 압축됩니다.

 

블록 정규화(Block Normalization)

단순히 셀 히스토그램을 연결하면 이미지 전체의 조명 변화(예:그림자)에 민감하게 반응합니다. 이를 해결하기 위해 정규화가 필요합니다.

  • 블록 정의 : 2X2 셀(즉 16X16 픽셀)을 하나의 블록으로 묶습니다. 이 블록은 이미지 전체에 걸쳐 8 픽셀씩 겹치면서 (Overlapping) 이동합니다.
  • 벡터 연결 및 정규화 : 하나의 블록은 $\text{4}$개의 셀로 구성되므로, $\text{4}$개의 9-빈 히스토그램을 연결하여 $\mathbf{36}$차원의 벡터()를 만듭니다.  이 $\text{36}$차원 벡터는 L2-Norm을 사용하여 크기가 $\text{1}$이 되도록 정규화됩니다.

이 정규화 과정을 통해 지역적인 대비(Local Contrast) 변화에 대한 불변성을 확보합니다. 

 

최종 HOG 특징 벡터 생성(Final Feature Vector)

이미지 전체를 훑으면서 얻은 모든 블록의 정규화된 $\text{36}$차원 벡터들을 순서대로 연결(Concatenate)합니다. 이렇게 만들어진 거대한 $\mathbf{1}$차원 벡터가 바로 이미지 패치의 최종 HOG 특징 서술자입니다. 이 특징 벡터는 이후 SVM(Support Vector Machine)과 같은 분류기(Classifier)의 입력으로 사용되어, 이 벡터가 어떤 객체(예: 사람)에 해당하는지를 판단하는 데 사용됩니다.

HOG의 성공 요인

HOG가 컴퓨터 비전의 고전으로 자리 잡을 수 있었던 이유는 다음과 같습니다.

  • 강력한 모양 포착 : 기울기 정보를 사용함으로써 객체의 윤곽과 모양 특징을 색상이나 미세한 텍스처보다 효과적으로 포착했습니다.
  • 조명 변화에 강인함 : 블록 정규화를 통해 지역적인 밝기나 명암 대비 변화에 영향을 덜 받습니다.
  • 노이즈에 대한 안정성 : 셀 기반 집계와 보간적 투표 방식이 개별 픽셀 노이즈의 영향을 희석시켜 안정적인 특징을 제공합니다.

HOG는 특히 보행자 검출에서 획기적인 성능을 보였으며, 딥러닝이 등장하기 전까지 객체 검출 분야에서 오랫동안 표준으로 사용되었습니다. 

 

반응형