본문 바로가기

카테고리 없음

HOG (그레디언트 방향 히스토그램) 알고리즘 | Computer vision

본래 이름은 Histograms of Oriented Gradient

얼굴, 또는 사물 감지 알고리즘 (Object Detection)
캐스케이드 분류기보다 더 나은 결과 산출.
이 알고리즘에는 두가지 중요한 개념이 있음. 


1. 미분
수학 개념인 미분으로 색의 변화율 특정. 
미분의 값이 0이거나 0에 가까우면 이미지에 변화가 없다는 것. 색의 변화가 작으면 미분값 작아짐. 반대로 색의 변화가 크다면 큰 미분값이 나타남. 

 

 


2. 그래디언트 벡터
그레이언트 벡터는 값이 상승하는 방향을 알려줌. 
주변 픽셀들을 모두 고려하여 방향이 정해짐. 

 

그레디언트 벡터

Gradient Direction 행렬 : 

각 수들은 그레디언트 벡터의 각도를 나타냄.

하지만 그 각도들은 0~360도가 아니라 0~180 사이의 수들을 나타냄. 

그 각도가 음수더라도 양수의 각으로 표현되기 때문에 "Unsigned(부호가 없는) Gradient"라고함. 따라 그레디언트 벡터의 각도와 180도의 반대 각도는 같은 각도로 나타나게됨. 보행자 감지에서 부호가 없는 그레디언트가 부호가 있는 그레디언트보다 좋은 성능을 나타내었음. 

 

Gradient Magnitude 행렬 :

각 수들은 픽셀의 변화를 나타냄. 

이 행렬에 있는 수들을 활용하여 그레디언트 벡터를 결정함. 

주변 픽셀들과의 연산을 통해 방향 결정. 

 

만약 주위의 픽셀들이 모두 같은색이라면 이미지는 검은색으로 칠해지고, 색의 변화가 있는 부분에서는 픽셀의 연결점이 생성되어 다음과 같은 이미지 생성됨. (다르게 말하면 이미지 에지 부분 추출)


이미지 배경은 색의 변화가 없어 모두 검은색으로 보임. 

 

그레디언트 히스토그램 

다음 단계는 그레디언트 히스토그램을 만드는 것입니다. 

히스토그램이란? 

특정 클래스 안에서 요소의 발생 빈도를 셀 때 사용.

 

hog에서 히스토그램은 0, 20, 40, ..., 160의 각도들을 빈으로 사용.

 

푸른색으로 표시한 픽셀은 각도가 80이고, 크기가 2입니다. 따라서 80에 해당하는 5번째칸에 크기 2가 들어가게됨.

빨간색으로 표시한 픽셀은 각도가 10이지만 그에 해당하는 빈이 없고, 0과 20 사이의 정중앙이므로 0과 20의 빈이 1:1비율로 4를 나눠가져 2, 2가된다. 

 

그리고 중요한 상세내용 한가지가 있는데 바로 이 행렬에서 180도 = 0도인 사실이다.

위 사진에서 초록색으로 표시한 픽셀은 각도가 165이고 크기가 85입니다. 160도의 빈과 0도의 빈이 165도와 차이나는 비율만큼 85를 나눠 가지면 21.25와 63.75의 값으로 나눠가지게 된다. 

위 히스토그램을 시각화하면 아래와 같다.