반응형
Digital Image Processing
목차
0. Preview
1. 디지털 영상이란?
2. 히스토그램
3. 이진 영상
4. 영상 처리의 세가지 기본 연산
5. 다해상도
6. 모폴로지
7. 컬러
0. Preview
영상처리(DIP, Digital Image Processing)
- 주어진 목적을 달성하기 위해 원래 영상을 새로운 영상으로 변환
- 컴퓨터 비전의 전처리 과정
- 단위
- 화소단위(Pixel) : Histogram 통계적
- 영역단위 : Convolution
- 기하학적 : Geometric
1. 디지털 영상이란?
1.1 디지털 영상의 태동
- Bartlane 시스템[McFarlane72]
- 1920년 유럽 <-> 미국 영상 전송 시스템 개통
- 미디어 산업에 혁신 불러일으킴
- 한 세기 지난 현재
- 디지털 카메라, 스마트폰 등 보편화
- 인터넷 비전이라는 새 연구분야 태동할 정도로 디지털 영상 폭발적 팽창
- Flickr는 수십 억장의 영상 호스팅
1.2 획득과 표현
- 사람의 눈과 카메라
- 수정체는 렌즈, 망막은 CCD 센서 (필름)에 해당
- 샘플링과 양자화(Sampling and Quantization)
- 2차원 영상 공간을 M*N으로 샘플링(M*N은 해상도)
- 명암을 L단계로 양자화(L은 명암단계, 즉 명암은 [0,L-1] 사이 분포)
- 예시 M=12, N=12, L = 10인 경우
- 영상 좌표계
- 화소 위치는 $x = (j,i)$ 또는 $x = (y,x)$로 표기
- 영상은 $f(x)$ 또는 $f(j,i)$ , $0 <= j <= M-1, 0 <= i <= N-1$로 표기
- 컬러 영상은 fr(x), fg(x), fb(x)의 세 채널로 구성
- 영상 표시 방법
2. 히스토그램
2.1 히스토그램 계산
- [0, L-1] 사이의 명암값 각각이 영상에 몇 번 나타나는지 표시
- 히스토그램 h와 정규와 히스토그램
- 이미지 f의 각 명암값을 히스토그램에 넣어줌: $h(l) = |{(j,i) | f(j,i) = l}| $
- 정규화 히스토그램 계산: $\hat{h}(l) = \frac{h(l)}{M*N}$
- 알고리즘 : 명암 영상에서 히스토그램 계산
- input : 명암 영상 f(j,i) , $0 <= j <= M-1, 0 <= i <= N-1$
- output : 히스토그램 h(l)과 정규 히스토그램 $\hat{h}(l) , 0<= l <= L-1$
-
#initialize histogram h = [0] * L hat_h = [] for j in range(M): for i in range(0, N): # each pixel of (j,i) in image f h[f[j][i]] += 1 # normalize for l in range(L): hat_h.append(h[l]/(MxN))
- 예제 2-1
- MxN = 8x8, L = 8인 영상의 히스토그램($h(l)$)과 정규화된 히스토그램($\hat{h}(l)$) 구하기
2.2 히스토그램 용도
- 영상의 특성 파악
- 히스토그램 평활화(Histogram Equalization)
- 히스토그램을 평평하게 만들어 주는 연산
- 명암의 동적 범위를 확장하여 영상의 품질을 향상시켜줌
- 단, 이는 주관적으로 아래 예시처럼 평활화를 적용한 결과가 원본보다 시각적 느낌이 나빠질 수도 있다
- 따라서, 영상처리 연산은 분별력을 가지고 활용 여부를 결정해야 한다
- 즉, 화소값이 사용되지 않는 구간을 줄이는 것으로, 가시성을 높인다
- 누적 히스토그램 c(.)를 매핑 함수로 사용
- $l_{out} = T(l_{in}) = round(c(l_{in}) * (L-1))$
- 올림(round up), 버림(round down), 반올림(round)
- $c(l_{in}) = \sum_{l=0}^{l_{in}} \hat{h}(l)$
- 예제 2-2
- 평활화 전의 영상, 히스토그램( MxN = 8x8, L = 8)
- $l_{out}$ 계산 : $round( \sum_{l=0}^{l_{in}} \hat{h}(l) * (L-1))$
-
더보기자세한 계산 과정 참고
-
- 평활화를 위한 매핑 표, 평활화된 영상, 히스토그램
- $l_{in} = 6$에서 $c(l_{in}) = 1$이므로, 해당 영상은 6인 화소까지만 사용하는 것을 알 수 있음
- 원본 vs. 평활화
-
- 동적 범위가 [2,6] -> [1,7] 로 넓어진 것을 확인 가능
- 히스토그램 평활화를 적용한 영상 예시
2.3 히스토그램 역투영과 얼굴 검출
- 히스토그램 역투영(Histogram Backprojection)
- 히스토그램을 매핑함수로 사용해 화소값을 신뢰도 값으로 변환
- 즉, 모양 정보는 사용하지 않고 영상 히스토그램 정보를 사용하여 원하는 물체를 검출
- 단, 사전에 모델(타겟 물체)에 대한 정보가 필요
- 얼굴 검출 예시
- 원본영상이 RGB채널일 경우, 2차원 HS공간으로 변환을 위해서 HSI로 변환과정이 필요
- HSI(Hue : 색상, Saturation: 채도, Intensity : 밝기(명도))
- (b): 색상은 어둡고 채도가 높으며, P(확률, 빈도)가 높은 것을 확인할 수 있는데, 이는 모델의 피부값에 해당
- 원본영상이 RGB채널일 경우, 2차원 HS공간으로 변환을 위해서 HSI로 변환과정이 필요
- 2차원 히스토그램
- 2차원 히스토그램 알고리즘 : 2차원 히스토그램 계산(HS 공간)
- input : H, S 채널 영상 $f_h(j,i)$, $f_s(j,i)$, $0 <= j <= M-1, 0 <= i <= N-1$
- output : 히스토그램 h(j,i)과 정규 히스토그램 $\hat{h}(j,i) , 0<= j,i <= q-1$ (L단계를 q단계로 양자화)
-
# intialize h(j,i) h = [[0]*q for _ in range(q)] hat_h = [[0]*q for _ in range(q)] for j in range(M): for i in range(N): # for each pixel(j,i) h[quantize(f_h[j][i])][quantize(f_s[j][i])] += 1 for j in range(q): for i in range(q): hat_h[j][i] = h[j][i] / (M*N) # normalize
- 얼굴 검출
- 모델 얼굴에서 구한 히스토그램 $h_m$은 화소의 컬러 값을 얼굴에 해당하는 신뢰도 값으로 변환해줌
- 실제로는 비율 히스토그램 $h_r$을 사용
- $h_r(j,i) = min(\frac{\hat{h}_m(j,i)}{\hat{h}_i(j,i)}, 1.0)$, $0 <= j, i <= q-1$
- ZeroDivisionError를 처리하기 위한 트릭
- 분모인 $\hat{h}_i(j,i)$가 0일 수도 있으므로, 결과값에 큰 영향을 주지 않을 정도의 아주 작은 값을 분모항에 더해줌
- 히스토그램 역투영 알고리즘
- input
- H, S 채널 영상 $g_H(j,i)$, $g_S(j,i)$, $0 <= j <= M-1, 0 <= i <= N-1$ (얼굴을 검출하려는 영상)
- 모델 히스토그램 : $\hat{h}_m(j,i) , 0<= j,i <= q-1$
- output : 가능성 맵 $o(j,i)$ , $0 <= j <= M-1, 0 <= i <= N-1$
-
# Create a normal histogram <hat_h_i> # by applying the above algorithm to images g_H, g_S for j in range(M): for i in range(N): o[j][i] = hat_h_r[quantize(g_H[j][i])][quantize(g_S[j][i])]
- input
- 히스토그램 역투영의 장점 및 한계
- 장점
- 물체의 이동이나 회전이 발생하더라도 히스토그램은 불변하므로 성능이 유지됨
- 물체의 일부가 가려진(occlusion) 경우에도 어느정도 작동
- 따라서 배경의 색 분포가 균일하면서(혹은 조정할 수 있는 상황) 물체의 색 분포와 겹치지 않는 경우에 유용함
- 한계
- 비슷한 색 분포를 갖는 다른 물체 구별 못함
- 검출 대상이 여러 색 분포를 갖는 경우 여러 모델을 사용해야 하므로 오류 가능성이 높아짐
- 특히 피부색 검출의 경우 인종에 따라 결과가 달라지는 문제가 있음
- 따라서 CV 분야에서는 물체 검출 문제 풀 때, 모양 특징을 주로 사용하며 상황에 따라 색 정보를 보조적으로 사용함
- 장점
- 히스토그램 역투영 결과(색 기준 구별)
- 얼굴 영역은 높은 신뢰도 값, 손 영역도 높은 값
<3. 이진 영상 ~ >부터는 다음 게시글에서 계속...
https://codingsmu.tistory.com/103
반응형
'인공지능(AI) > 컴퓨터비전(CV)' 카테고리의 다른 글
[패턴인식] 에지 검출(1) : 에지 검출의 기초, 영교차 이론 (0) | 2021.10.24 |
---|---|
[패턴인식] 영상 처리(3) : 다해상도, 모폴로지, 컬러 (0) | 2021.10.24 |
[패턴인식] 영상 처리(2) : 이진영상, 영상 처리의 세가지 기본 연산 (2) | 2021.10.21 |
[패턴인식] 컴퓨터 비전 소개 : Intro. Computer Vision (0) | 2021.10.17 |
[논문리뷰] 적대적 생성 신경망 : Generative Adversarial Nets(GAN) (0) | 2020.09.17 |