cs

[컴퓨터비전] 2. 영상 처리

2025-04-16
4분 분량
컴퓨터비전

1. 디지털 영상이란?

1.1 디지털 영상의 태동

  • 1920년대 Bartlane 케이블 사진 전송 시스템이 시초
  • 1950년대 영상처리 기술은 문자 인식(OCR) 등의 특수 분야에서 시작됨
  • 디지털 영상은 컴퓨터에서 처리할 수 있도록 변환된 이산적인 2차원 신호

1.2 획득과 표현

  • 디지털 영상은 픽셀들의 이차원 배열로 표현됨
  • 일반적으로 흑백 영상은 0~255 범위의 8비트 정수, 컬러 영상은 RGB 3채널 각각 8비트
  • 픽셀 크기가 작아질수록(=해상도 증가) 더 정밀한 영상 표현 가능
  • 영상의 저장 포맷에는 RAW, BMP, JPEG, PNG 등이 있음

2. 히스토그램

2.1 히스토그램 계산

  • 히스토그램: 영상의 명암값(0~255) 분포를 그래프로 표현
  • h(rk)=nkh(r_k) = n_k : 밝기값 rkr_k 의 픽셀 수가 nkn_k개

2.2 히스토그램의 활용

  • 영상의 밝기 분포를 분석하여 어두운 영상/밝은 영상 구분 가능
  • 히스토그램 평활화(Equalization): 누적분포함수(CDF)를 이용하여 전체 명암값을 고르게 분포시킴 → 명암 대비 향상
  • 명암 변환: 히스토그램 정보를 바탕으로 로그, 감마 등의 비선형 변환 가능

2.3 히스토그램 역투영과 객체 검출

  • 역투영(Backprojection): 특정 색상의 히스토그램 분포를 이용해 유사 영역 탐색
  • HSV 색공간에서 H와 S 채널 중심으로 사용

3. 이진 영상

3.1 이진화와 오츠 알고리즘

  • 이진화(Binary Thresholding): 임계값 TT를 기준으로 밝기값을 0 또는 255로 이진 변환
f′(x,y)={255f(x,y)≥T0otherwisef'(x, y) = \begin{cases} 255 & f(x, y) \ge T \\ 0 & \text{otherwise} \end{cases}
  • 오츄(Otsu) 알고리즘: 클래스간 분산을 최대화하는 TT를 자동으로 선택

3.2 연결 성분 분석

  • 이진 영상에서 연결된 영역을 구분하기 위해 레이블링(Labeling) 수행
  • 연결 기준은 4-연결성 / 8-연결성
  • DFS, BFS 방식의 알고리즘 사용

4. 영상 처리의 세 가지 기본 연산

4.1 점 처리

  • 한 픽셀의 값만을 기반으로 계산:

4.2 영역 처리

  • 이웃 픽셀들과의 연산을 수행하는 방식, 주로 커널(Kernel) 사용

4.2.1 선형 필터

  • 박스 필터(Box mask): 스무딩(저주파 필터), 노이즈 제거
  • 샤프닝 필터(라플라시안, 언샤프 마스크): 고주파 성분 강조
  • 가우시안 필터: 가우시안 분포 기반 스무딩

4.2.2 비선형 필터

  • 메디안 필터(Median filter): 주변 픽셀의 중앙값 사용 → 염점 잡음에 효과적 → 에지 보존 스무딩

4.2.3 상관(Correlation)

  • 커널을 영상에 그대로 적용하여 곱한 후 더함
  • 영상처리에서는 일반적으로 상관 연산이 기본으로 사용됨

4.2.4 컨볼루션(Convolution)

  • 커널을 좌우 및 상하 반전한 후 상관과 동일하게 수행
  • 수학적으로 정확한 정의이며, 신호처리, 딥러닝에서 사용

상관과 컨볼루션의 구분

  • 두 연산은 계산 방법이 거의 같지만, 커널을 반전하는 차이가 있음
  • 윈도우가 대칭일 경우 결과는 동일
  • 상관은 템플릿 매칭, 물체 검출에 적합
  • 컨볼루션은 임펄스 응답을 기반으로 시스템 해석에 필수적

4.3 기하 처리

  • 영상의 좌표 자체를 변형하는 처리
  • 아핀 변환과 투시 변환에 해당

기하 변환을 위한 동차 행렬

각 기하 변환은 3×3 행렬로 통합 가능

입력 좌표:

[y x 1][y \ x \ 1]
  • 이동: y방향으로 tyt_y, x방향으로 txt_x
[100010tytx1]\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ t_y & t_x & 1 \end{bmatrix}

  • 회전: 원점을 중심으로 시계방향으로 θ\theta만큼 회전
[cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001]\begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}

  • 크기 조절: y방향으로 sys_y, x방향으로 sxs_x만큼 확대
[sx000sy0001]\begin{bmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{bmatrix}

  • 기울임: y방향으로 hyh_y, x방향으로 hxh_x만큼 기울임
[1hx0hy10001]\begin{bmatrix} 1 & h_x & 0 \\ h_y & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}

왜 2차원 변환에 3×3 동차 행렬을 사용하는가?

  • 이동, 회전, 스케일링 등 여러 변환이 연속적으로 일어날 때, 각각을 따로 계산하면 연산량이 많아짐
  • 예를 들어, 점 하나에 대해 먼저 이동 행렬 T(3,2)T(3, 2)를 적용하고, 그다음 회전 행렬 R(30∘)R(30^\circ)를 적용하면(x′,y′)=R(30∘)⋅T(3,2)⋅[xy1](x', y') = R(30^\circ) \cdot T(3, 2) \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}
  • 점이 수천 개라면, 각 점마다 행렬 곱을 두 번씩 해야 함 → 비효율적

복합 변환

  • 행렬 곱셈은 결합 법칙이 성립함 → R(30∘)⋅T(3,2)⋅p=(R⋅T)⋅pR(30^\circ) \cdot T(3,2) \cdot \mathbf{p} = (R \cdot T) \cdot \mathbf{p}
  • 즉, 두 행렬을 미리 곱해놓고 각 점에 한 번만 곱해주면 됨
  • 연산 속도는 약 2배 향상됨 (행렬 곱셈 2회 → 1회)

  • 이처럼 여러 변환을 하나의 행렬로 묶어서 처리할 수 있게 해주는 것이 동차 좌표를 사용하는 이유


5. 다해상도

  • 지금까지의 영상 처리 연산은 영상의 해상도, 즉 크기 M×NM \times N을 고정된 상태로 유지했다
  • 하지만 실무에서는 영상의 해상도를 조정(늘리거나 줄이기)해야 하는 경우가 많다

5.1 업샘플링과 다운샘플링

  • 업샘플링: 해상도를 늘리는 연산
  • 다운샘플링: 해상도를 줄이는 연산
  • 이러한 해상도 변환 연산을 영상 피라미드라고 부르며, 다해상도 구조를 구성함

5.2 영상 피라미드

  • 영상 피라미드는 원래 영상으로부터 시작하여 점점 더 작은 크기의 영상들을 계층적으로 구성한 것
  • 주로 샘플링 비율 r=1/2r = 1/2을 적용 → 한 단계마다 해상도가 절반씩 줄어듦
  • 예: f0→f1→f2→f3→⋯f_0 \rightarrow f_1 \rightarrow f_2 \rightarrow f_3 \rightarrow \cdots

원본 영상의 크기 조건

  • 일반적으로 영상의 크기는 2k×2k2^k \times 2^k 형태여야 단계적으로 정확히 줄어듦
  • 예: 1024×10241024 \times 1024 영상이면

5.3 다운샘플링 시 주의점: 에일리어싱 현상

  • 에일리어싱: 다운샘플링 시 생기는 왜곡 현상
  • 해결법: 다운샘플링 전에 스무딩을 적용하여 고주파 성분 제거

스무딩 + 다운샘플링 식

  • 다섯 개 화소의 가중치 합으로 필터링 후 다운샘플링
fk(j,i)=∑y=−22∑x=−22w(y,x)fk−1(jr+y,ir+x),r=12f_k(j, i) = \sum_{y=-2}^{2} \sum_{x=-2}^{2} w(y, x) f_{k-1}\left( \frac{j}{r} + y, \frac{i}{r} + x \right), \quad r = \frac{1}{2}
  • 필터 예 (1×5 크기):
h=[0.05, 0.25, 0.4, 0.25, 0.05]h = [0.05,\ 0.25,\ 0.4,\ 0.25,\ 0.05]
  • 이 필터는 좌우로 대칭이며 중심 화소에 가장 큰 가중치를 둬서 에일리어싱 억제 효과가 있음

2차원 필터로 확장

  • 수직 vv 방향에도 동일한 필터 사용 → w=v⋅hw = v \cdot h
w=[0.00250.01250.02000.01250.00250.01250.06250.10000.06250.01250.02000.10000.16000.10000.02000.01250.06250.10000.06250.01250.00250.01250.02000.01250.0025]w = \begin{bmatrix} 0.0025 & 0.0125 & 0.0200 & 0.0125 & 0.0025 \\ 0.0125 & 0.0625 & 0.1000 & 0.0625 & 0.0125 \\ 0.0200 & 0.1000 & 0.1600 & 0.1000 & 0.0200 \\ 0.0125 & 0.0625 & 0.1000 & 0.0625 & 0.0125 \\ 0.0025 & 0.0125 & 0.0200 & 0.0125 & 0.0025 \end{bmatrix}


5.4 활용 예

  • 다중 해상도 분석은 다양한 해상도에서의 변화를 고려해 다음과 같은 문제를 해결할 수 있음:

6. 모폴로지

6.1 이진 모폴로지

  • 이진 영상에서 객체의 형태를 다루는 연산
  • 구조 요소를 기반으로 연산 수행
  • 주요 연산:
  • 구조 요소는 일반적으로 3×33 \times 3 사각형 사용, 필요에 따라 원형, 십자형 등 다양하게 사용됨

6.2 명암 모폴로지

  • 이진 영상이 아닌 회색조 영상에 대해 적용되는 모폴로지 연산
  • 최댓값/최솟값 필터링 방식으로 구현됨
  • 노이즈 제거, 조명 보정 등에 사용됨

7. 컬러

7.1 컬러 영상 표현

  • 디지털 영상에서 가장 기본적인 색 표현 방식은 RGB 모델
  • 하지만 RGB는 인간 시각과 일치하지 않음

7.2 HSI / HSV 색 공간

  • HSI (Hue, Saturation, Intensity) 또는 HSV (Hue, Saturation, Value) 모델은 사람의 시각 모델에 기반함
  • H 값만 사용하면 조명 변화에 강인한 색상 정보 추출 가능
  • 예: 객체 추적, 얼굴 검출 등에서 HSV 색 공간을 자주 사용

7.3 컬러 히스토그램 기반 추적

  • 색상 히스토그램을 만들어 특정 색상 분포를 추적하는 방식
  • HSV 공간에서 H와 S 채널 중심으로 객체를 탐색함

함께 읽으면 좋은 글

CS2025-06-10

[컴퓨터비전] 12. 장면 이해

1981년 노벨의학상은 Hubel과 Wiesel의 시각 신경망 연구에 수여됨 이들은 고양이의 시각 피질에 마이크로 전극을 삽입하여, 특정 에지 방향에 반응하는 뉴런이 존재함을 발견 이는 시각 피질이 에지 정보를 추출하는 구조로 되어 있음을 의미 깡충 거미는 네 쌍의 눈으로…

CS2025-06-10

[컴퓨터비전] 11. 3차원 비전

본질 영상은 명암값에서 조명, 그림자 등의 외부 요인을 제거하고 물체의 고유한 성질만을 표현한 영상 사람은 외관과 본질을 구별할 수 있지만 컴퓨터는 일반적으로 외관만을 인식 본질 영상의 주요 예: Barrow(1978)가 본질 영상의 개념을 제안했지만, 명암 영상에서 본질…

CS2025-06-09

[컴퓨터비전] 10. 모션

현실 세계는 정적인 이미지보다 움직이는 장면이 훨씬 많음 움직임은 두 가지로 나뉨: 움직임 분석을 통해 동작 인식, 물체 추적, 장면 이해 등 다양한 작업이 가능 대표적인 응용: 광류: 연속된 영상 프레임 사이에서 화소의 움직임을 추정하는 기법 기본 가정: 밝기 불변 가정…

CS2025-06-08

[컴퓨터비전] 9. 인식

인식은 컴퓨터 비전의 핵심 목표로, 사람처럼 물체를 구별하고 인식하는 기능을 의미함 인식 기술의 성능을 평가하고 경쟁하기 위한 표준 데이터베이스와 국제 대회 존재 대표적인 대회: 인식 기술은 아직 어린아이보다 못한 수준이며, 지속적인 연구와 경쟁이 필요한 분야 사례…