코드를 느껴바라

컴퓨터 비전 : 영상처리의 기본 개념과 핵심 기법들 본문

CS/컴퓨터 비전(Computer Vision)

컴퓨터 비전 : 영상처리의 기본 개념과 핵심 기법들

feelTheCode 2025. 4. 23. 22:34

영상처리의 기본 개념과 핵심 기법들

영상처리는 디지털 이미지나 영상 데이터를 분석, 변형, 향상시키는 기술을 의미합니다. 일상에서 쉽게 접할 수 있는 사진 필터, 얼굴 인식, 자율 주행 등 다양한 분야에서 활용되고 있습니다. 이 글에서는 영상처리의 주요 개념과 대표적인 기법들을 설명합니다.


1. 히스토그램 평활화 (Histogram Equalization)

히스토그램 평활화는 이미지의 명암 대비(contrast)를 향상시키는 기법입니다. 이미지의 밝기 값이 특정 영역에 몰려있을 경우, 이를 고르게 퍼뜨려 더 선명하게 보이도록 만듭니다.

원리

  • 히스토그램: 이미지의 밝기 값(0~255)의 분포.
  • 특정 밝기 영역에 값이 몰려있다면 대비가 낮음.
  • **누적 분포 함수(CDF)**를 이용해 픽셀 값 재분포.

효과

  • 어두운 영역은 밝아지고, 밝은 영역은 조절되어 대비가 향상됨.

 

2. 히스토그램 역투영 (Histogram Backprojection)

히스토그램 역투영은 특정 색상이나 특징을 기반으로 관심 영역(ROI)을 찾는 기법입니다. 주로 객체 추적, 색상 기반 분할에 사용됩니다. 이동과 회전에 불변이라는 장점도 있지만 검출 대상이 여러 색 분포를 가질 경우 검출오류가 발생할 가능성이 큽니다.

원리

  • 관심 대상(예: 손)의 색상 히스토그램을 학습.
  • 전체 이미지에서 이 히스토그램과 유사한 픽셀의 확률을 계산.
  • 확률 맵(확률이 높은 영역)을 생성해 관심 영역을 찾음.

활용 예시

  • 얼굴 검출, 손 추적, 특정 색상 기반 객체 탐지 등.

3. 이진 영상 (Binary Image)

이진 영상은 픽셀 값이 0(검정) 또는 255(흰색)인 두 가지 값만 가지는 이미지입니다. 주로 배경과 객체를 구분할 때 사용됩니다.

이진화에 많이 쓰이는 오츄 알고리즘에 대한 설명은 여기를 참조해주세요 ㅎㅎ

간단히 오츄 알고리즘에 대해서 설명하자면 흑또는 백으로 히스토그램을 양분하는 경계값을 찾아서 이를 기반으로 구분하는 것 입니다. 

생성 방법

  • 임계값(Threshold) 설정.
  • 픽셀 값이 임계값보다 크면 255, 작으면 0.

활용 예시

  • 문서 스캔 시 글자와 배경을 구분.
  • 물체 인식, 윤곽선 검출.

+) 그렇게 생성한 흑과 백으로 이루어진 영상으로 플러드필(Flood Fill) 알고리즘을 활용해 요소들을 분리할 수 있습니다.

플러드필 알고리즘은 DFS나 BFS로 인접 픽셀이 색이 있는지 없는지 뻗어나가서 연결된 흰색 영역을 구분해

라벨을 붙일 수 있습니다. 

 


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

영상처리에서는 화소값을 조작하는 방식에 따라 크게 점 연산, 영역 연산, 기하 연산으로 나뉩니다. 각각의 연산은 처리하는 범위와 방식에 차이가 있는데 아래에서 설명해보겠습니다.


4.1. 점 연산 (Point Operations)

점 연산은 현재 화소 값 하나만을 참조해 결과를 결정하는 방식이고 각 화소를 독립적으로 처리하므로 계산이 간단합니다.

  • 밝기 조절: 화소값에 일정 값을 더하거나 빼서 밝기 조절.
  • 반전: 밝은 영역은 어둡게, 어두운 영역은 밝게 뒤집는다.
  • 감마 보정: 밝기 값에 거듭제곱을 적용해 비선형적으로 밝기를 조절. 주로 모니터, 프린터의 색상 보정에 사용된다.
    (감마값이 1보다 작아지면 밝아지고 1보다 크면 어두워짐)
  • 이진화: 임계값을 기준으로 화소를 흑(0)과 백(255)으로 구분.

점 연산은 한 화소에만 영향을 주기 때문에 처리 속도가 빠른데 예를 들어, 이진화나 히스토그램 평활화 같은 기법도 점 연산에 해당됩니다.


4.2. 영역 연산 (Neighborhood Operations)

영역 연산은 주변 화소(이웃)를 함께 고려해 결과를 결정하고 주로 마스크(커널)를 이용해 여러 화소를 동시에 처리합니다.

  • 상관 (Correlation): 마스크를 적용하여 대응하는 화소끼리 곱하고 더해 결과를 계산. 주로 패턴 매칭에 사용된다.
  • 컨볼루션 (Convolution): 상관과 비슷하지만 마스크를 적용하기 전에 뒤집는다. 신호처리 분야에서 스무딩, 필터링, 에지 검출 등에 사용된다.

주요 필터 예시:

  • 박스 필터: 이웃 화소들의 평균을 구해 스무딩 효과를 준다.
  • 가우시안 필터: 중심에서 멀어질수록 가중치를 줄여 부드러운 스무딩을 제공한다.
  • 샤프닝 필터: 에지를 강조해 선명도를 높인다.
  • 에지 검출 필터: 수평이나 수직 방향으로 값의 변화(미분)를 측정해 경계를 검출한다.

비선형 필터:

  • 메디안 필터: 영역 내 화소들의 중앙값을 선택. 에지를 보존하면서 잡음을 제거하는 데 효과적이며, 특히 솔트-페퍼 잡음 제거에 좋다. -> 가우시안 필터는 잡음제거를 위해 필터의 크기를 키우면 엣지를 뭉개는 부작용이 있는데 그때 이 메디안 필터를 적용하면 효과적이다. (그럼에도 불구하고 특수한 상황을 제외하고는 메디안 보다는 가우시안을 훨씬 많이 사용한다고 함)

4.3. 기하 연산 (Geometric Operations)

기하 연산은 화소의 위치를 이동시키는 방식으로, 이미지를 공간적으로 변형할 때 사용된다.

  • 이동 (Translation): 이미지를 일정 거리만큼 이동.
  • 회전 (Rotation): 이미지를 중심으로 회전.
  • 확대/축소 (Scaling): 이미지의 크기를 조정.
  • 기울임 (Shearing): 이미지의 형태를 기울인다.

변환 행렬:

기하 변환은 행렬을 사용해 표현하며, 여러 변환을 조합할 수 있다. 이동, 회전, 확대 같은 변환을 하나의 행렬(이를 복합 변환이라고 함)로 합칠 수 있어 효율적이다. 

보간 (Interpolation):

기하 변환을 하면 화소 위치가 실수 좌표로 바뀌므로, 그 위치의 화소 값을 구하기 위해 보간을 사용한다.

해상도 변환을 할때 쓰임.

  • 최근접 이웃 보간: 가장 가까운 화소값을 선택. 계산은 빠르지만 품질이 낮다.
  • 양선형 보간: 주변 4개 화소를 이용해 보간. 품질이 좋고 널리 사용된다.
  • 양 3차 보간: 주변 16개 화소를 이용해 더 부드럽게 보간.

5. 모폴로지 연산 (Morphological Operations)

모폴로지는 이진 영상에서 객체의 형태(shape)를 다루는 연산입니다.

주요 연산

  • 침식(Erosion): 객체의 외곽을 깎아줌.
  • 팽창(Dilation): 객체의 외곽을 확장.
  • 열림(Open): 침식 후 팽창 (작은 잡음 제거).
  • 닫힘(Close): 팽창 후 침식 (작은 구멍 메우기).

6. 컬러 영상 처리 (Color Image Processing)

컬러 영상은 RGB(빨강, 초록, 파랑) 채널로 구성됩니다. 하지만 영상처리에서는 다양한 색상 공간을 활용합니다.

주요 색상 공간

  • RGB: 기본 색상 공간.
  • HSV: 색상(Hue), 채도(Saturation), 명도(Value).
  • YUV: 밝기(Y), 색차(U, V).

활용 예시

  • 색상 기반 객체 탐지.
  • 색상 보정, 색상 공간 변환.

😁

마무리

이에 관한 예시 사진을 전부 올려두고 싶지만 저작권문제로 불가능하여

예시사진은 꼭 찾아보면서 보셨으면 좋겠습니다.!!

반응형