개발/Computer Vision

[영상 처리] 히스토그램

hojak99 2016. 7. 12. 22:40

※ 고등학생이기 때문에 주변에 이 분야에 실력있는 사람이 없을 뿐더러 공부를 하는 사람도 없기에 구글링과 도서에 의존합니다. 출처는 꼭 밝힙니다. 제가 공부한 것을 작성하기 때문에 틀린 부분도 있을 수 있습니다. 지적해주시면 감사합니다.



영상 f의 히스토그램은 명암값이 나타난 빈도수로, [0,L-1] 사이의 명암값 각각이 영상에 몇 번 나타나는지 표시한다. 


히스토그램은 여러 용도로 사용되는데 그 중 하나는 영상의 특성을 파악하는 것이다. 또한 조작을 통한 영상 품질 개선이 가능하다. 

영상 품질 개선 중 가장 대표적인 연산은 "히스토그램 평활화(histogram equalization)"이다. 이 연산은 [그림 1]의 왼쪽과 같은 영상의 히스토그램을 오른쪽과 같이 평평하게 만든다. 이렇게 하면 영상이 사용하는 명암의 범위, 즉 동적 범위가 늘어나 좀 더 선명해진다.


  [그림 1] 왼쪽의 히스토그램, 오른쪽의 평활화

출처 : kjin2sm.tistory.com



이제 이 히스토그램을 평활화하는 변환 식이 있다. [그림 2]는 입력 영상 f를 평활화하여 출력 영상 g 를 만드는데 사용하는 변환 식이다.


[그림 2] 평활화 변환 식

출처 : 컴퓨터 비전 도서

평활화를 할 때 주의해야할 점이 있다. 여러 영상들 중 히스토그램 평활화를 이용해서 품질을 높일 수도 있지만 반대로 품질을 떨어뜨릴 수가 있다. 그러므로 적용할 때 상황과 목적에 따라서 사용을 하는 것이 좋다.





 히스토그램의 역투영(histogram backprojection)에 대해서 말하겠다. 이 역투영을 활용하면 물체를 검출할 수 있는데 이 역투영은 물체의 모양은 무시하고 단순히 컬러 분포만으로 검출하는 방법으로, 히스토그램은 컬러 분포를 표현하는데 사용된다. 컴퓨터 비전이란 책에서는 물체를 검출하는 예를 사람의 얼굴로 들었다. 먼저 얼굴을 검출하려면 비교 기준으로 활용할 모델 얼굴과 이 모델의 히스토그램이 필요하다.


[그림 3] 얼굴 검출을 위한 모델 얼굴과 히스토그램

출처 : 컴퓨터 비전 도서


여기서 사용하는 히스토그램이  명암 채널만 이용하는 1차원이 아니라 최소 2차원 이상을 사용해야하는데 이 이유는 명암은 조명에 따라 쉽게 변하며 얼굴과 비슷한 명암을 갖는 다른 영역이 있을 수도 있기 때문에 RGB 색상 공간을 HSI 공간으로 변환한 다음, H(색상)채널과 S(채도)채널을 사용을 한다.


이 모델 히스토그램을 Hm 라고 표기했을 때 영상 g가 주어지면 g의 어떤 화소 (i, j)의 H와 S채널 값을 (a, b,)라고 했을 때, 즉 a = gH(i, j) 그리고 b = gS(i, j) 일 때, Hm(a, b)가 큰 값을 가지면 그 화소는 얼굴일 가능성이 높고 그 반대면 가능성이 낮다고 볼 수 있다. Hm는 화소의 값을 얼굴에 해당할 신뢰도의 값으로 변환해 준다고 할 수 있다. 


이 히스토그램 역투영은 적용할 때의 장점은 이동이나 회전이 발생하더라도 히스토그램은 변하지 않기 때문에 성능이 유지된다. 또한 물체의 일부가 가려진 경우에도 잘 작동한다.

반응형