본문 바로가기
IT/Graphics

컴퓨터 비전 스터디 1주차 : 21.03.21

by YEON-DU 2021. 3. 21.
반응형

1주차에는 간단히 컴퓨터 비전에 대한 설명이 적힌 1장과, 이미지 해상도, 그리고 이미지가 매트릭스로 이루어져있다는 설명의 2장의 초반까지 진도를 나갔다.

 

1. 디지털 영상이란?

1. 디지털 영상의 태동

디지털 영상의 응용은 신문 산업에서 일어났다.

이전에는 영상을 배편으로 전달했는데, 유럽 -> 대서양 -> 미국에 이르기까지 몇 주가 걸렸다.

따라서 영상을 인쇄할 쯔음에는 해당 뉴스는 사람들의 관심에서 멀어졌다.

그러던 중 2시간 정도면 영상을 전달할 수 있게 되자, 미디어 산업에 혁명이 일어났다. 대략 이 이후로 1세기가 지난 지금, '컴퓨터 비전과 인터넷의 교차점'에 초점을 맞춘 인터넷 비전이라는 연구 분야가 생겨날 정도로 영상처리와 컴퓨터 비전은 주목 받고 있다.

 

2. 획득과 표현

카메라는 사람의 눈과 비슷한 구조를 가진다.

 

위의 이미지는 핀홀Pinhole 카메라 모델이다.

빛이 왼쪽 면의 구멍으로 들어간 후, 오른쪽 영상 평면(CCD 센서 또는 필름)에 맺히게 된다.

CCD 센서(빛의 세기를 이미지로 바꿔주는 이미지 센서)가 영상을 가로로 N, 세로로 M개의 점으로 샘플링한다.

각 점은 화소(pixel)이라고 부르며, 이 픽셀의 밝기를 L단계로 양자화(quantization)을 함. 위 그림이 디지털 영상의 최종적인 형태가 된다.

 

2. 히스토그램

출처 : CAMERA HISTOGRAMS: TONES & CONTRAST

히스토그램은 같은 명암값의 빈도 수Counting the number of pixels with the same brightness를 나타낸 것이다.

 

1. 히스토그램 계산

for (l = 0 to L-1) h(l) = 0; // 히스토그램 0으로 초기화
	for (j = 0 to M-1) 
		for (i = 0 to N-1)
			h(f(j,i))++; // f의 화소 (j,i)에 대해 명암값에 해당하는 히스토그램 칸을 1칸 증가
for (l = 0 to L-1)
	h히스토그램(l) = h(l) / (MxN) // 정규화

명암 영상 f의 히스토그램 h를 계산하는 가상 코드이다.

 

해당 코드를 수식으로 표현하면 이와 같다. | . |은 집합의 크기이다. 히스토그램의 모든 칸을 더하면 1.0이 되도록 변환한 정규 히스토그램nomalized histogram이다.

 

2. 히스토그램 용도

영상의 특성 파악

히스토그램은 어디에서 사용할까? 여러 용도 중 하나는 영상의 특성을 파악하는 것이다

평활화를 통한 영상 품질 개선

히스토그램의 또 다른 용도는 조작을 통한 영상 품질 개선이다.

가장 대표적인 연산은 히스토그램 평활화histogram equalization이다.

명암대비가 낮은 영상 (그래프 상으로 한 쪽으로 치우친 영상)을 분포가 적당히 균등한 영상으로 바꿔서 영상의 품질을 개선한다. 이렇게 평활화를 하게 되면 영상이 사용하는 명암의 범위(동적 범위dynamic range)가 늘어나 영상이 이전보다 선명해진다.

누적 히스토그램은 비율이 l/L인 점을 l로 매핑해준다.

 

3. 히스토그램 역투영과 얼굴 검출

  • 히스토그램 역투영histogram backprojection : 물체의 모양은 무시하고, 단순히 컬러 분포만으로 검출하는 방법.
  • 히스토그램은 컬러 분포를 표현하는 데 사용된다.
  • 명암이 조명에 따라 쉽게 변할 뿐만 아니라 얼굴과 비슷한 명암을 갖는 다른 영역이 여러 군데 존재할 가능성이 높기 때문에 명암 채널만 이용하는 1차원(명암intensity)이 아니라, 최소 2차원 이상(색상hue, 채도saturation)을 사용해야 한다.
  • RGB 색상 공간 → HSI 공간으로 변환한 다음, 명암은 무시하고 H채널(색상hue)과 S채널(채도saturation)을 사용한다.
h(j,i), 0 <= j,i <= q-1을 0으로 초기화

for(j=0 to M-1)
	for(i=0 to N-0) // 화소(j,i) 각각에 대해
		h(quantize(f_H(j,i)), quantize(f_s(j,i)))++; // 해당 칸을 1 증가시킴
for(j=0 to q-1)
	for(i=0 to q-1)
		h(hat)(j,i)/(MxN); // 정규화

H와 S축을 L단계로 나누면 2차원 히스토그램의 전체 칸 수는 L²이 된다. 따라서 한 픽셀의 명암이 256이 들어가는 경우, 이 히스토그램의 칸 수는 65536칸이 된다. 100*80의 사진의 경우 8000픽셀이므로, 65536칸의 히스토그램에 뿌릴 경우, 0을 많이 갖는 희소한 공간이 될 것이다. 이럴 경우에는 L단계를 양자화해서 q단계로 줄여야 한다.

이런 방식으로 화소의 값을 얼굴에 해당하는 신뢰도 값으로 변환하여, 얼굴을 찾아내는 방식으로 변환할 수 있다. 신뢰도 값이 높을 수록 얼굴일 가능성이 높다.

히스토그램 역투영은 이런 변환을 효과적으로 수행하게 된다.

 

 

따라서 결과적으로 얼굴에 해당하는 영역이 큰 값을 갖게 된다. 그러나 손 영역도 큰 값을 가지는데, 손과 얼굴의 색이 비슷하기 때문이다. 따라서 검출 대상이 여러 가지 색 분포를 가지는 경우에 여러 개의 모델을 사용해야 한다.

따라서 컴퓨터 비전은 물체 검출 문제를 풀 때 모양 특징을 주로 사용하며(위의 방식은 색 분포만을 사용) 상황에 따라 색 분포를 보조로 사용하게 된다.

 

더보기

컴퓨터 비전 스터디를 구했다!

마음 한켠에 아 그래도, 이거 언젠간 해보고 싶은데. 의 원탑인 컴퓨터 비전ㅋㅋㅋㅋ 친구는 내가 대학원 갑자기 고민된다고 말하자 역시 순정인거냐고 드립을 쳤다. 근데 그 말이 계속 웃겨서 ㅋㅋㅋㅋㅋㅋㅋ 아무튼 이건 스터디 때마다 간단히 남기는 Today I Learned와 중얼거림 정도의 글일듯하다.

 

책은 컴퓨터 비전 - 오일석으로 정했고, 틈틈이 선형대수 공부를 하기로 했다.

이 미친 행보가 어떤 결과를 낳을지는......나도 모르겠지만..

반응형

댓글