본문 바로가기

딥러닝(Deep Learning)/컴퓨터 비전

허프 변환(Hough Transformation)(Feat. 컴퓨터 비전과 딥러닝 p131)

 

p129처럼 Edge Pixel들이 서로 이웃하지 않고, p131의 그림처럼 서로 이웃하지 않고, 끊겨져 있는 Edge Pixel에 대한 

Edge 검출의 가장 기본적인 아이디어는 허프 변환(Hough Transformation)을 통하여 끊겨진 Edge Pixel을 잇는 직선을

만드는 것이다.(Hough Transformation은 직선 뿐 아니라, 어떤 도형으로도 Edge를 검출하게 할 수가 있다. p132참조) 

구체적으로 설명을 하면, Edge Map이 만들어 지고 잘 살펴보니, 아래 3개의 문제점이 있었다.

1] 물체를 구성하는 Edge 픽셀이 자잘하게 끊겨져 있었고,

2] 그것들을 완벽하게 잇는 직선이 존재하지가 않았다. 

3]  y=a*x+b로 하여, Edge 직선을 검출하기에는 기울기(a)와 절편(b)은 범위가 무한대이기에, 직선 또한 무한개가 되버리므

로, Edge 픽셀을 가장 많이 지나는 직선을 선택하는 것이 불가능하다. 

고로 아래 2개의 자료를 보면 알 수가 있듯이, 극좌표계(p = xsin+ycos)로 직선을 대체한다. 

 

아래의 자료를 설명하겠다. 

우선 세타값을 +1씩 증가시켜 특정 범위까지 실행을 시킨다. 

세타값이 변화에 의해 p(코드 상에서는 rho라고 표기) 값이 동적으로 정해지며, 기울기(a)와 절편(b)의 범위가 무한이여서 

최적의 직선을 선택하지 못했던 문제가 해결이 되었다. 

(교재에도 나와 있지만, 직선으로 해도 현실적으로 Edge 픽셀을 완벽하게 잇지는 못한다)

이러한 과정을 거쳐서 모든 직선 중에서 Edge 픽셀과 가장 많이 겹치는 직선을 Edge 직선으로 최종 검출을 하였다.