앞으로 포스팅 할 영상처리(Image Processing)는 Rafael C. Gonzalez 와 Richard E. Woods의 Digital Image Processing을 기반으로 한다. 



디지털 영상 처리 방법들은 크게 다음의 두 가지를 하기 위함이다. 

  • 인간의 해석을 위한 이미지 정보의 향상
  • 저장, 전송, 기계를 통한 정보의 자동 인식 등을 위한 영상 처리


이를 위해 먼저 영상처리란 무엇인지 알아보고 역사적 관점, 현재 기술, 주요 접근 방법, 범용 영상처리 시스템에 담겨진 요소 등에 대해서 알아보자. 

본 포스팅에서는 위 내용들을 아주 간략하게만 언급하고 이후 포스팅에서 보다 자세하게 다룰 예정이다. 




디지털 이미지 프로세싱(Digital Image Processing)이란 무엇인가? 


 

(※영상이라는 것도 기본적으로는 실세계에 존재하는 아날로그 신호를 수집하여 만드는데 이 과정에서 아날로그 신호처리 과정이 필요함을 염두해 두고 이어서 보도록 하자)

영상이라함은 기본적으로 2차원의 함수 로 정의 되며, 여기서 x와 y는 각각 공간상의 좌표를 의미한다.

어떤 좌표(x, y)에 해당하는 지점의 진폭(amplitude)값을 intensity 혹은 영상의 gray level이라고 부르며, 함수 f에서 x, y, intensity 값들이 유한(finite) 하며 이산(discrete)의 양을 가진다면 우리는 이러한 영상을 디지털 영상(Digital Image)이라고 부른다.


결국 디지털 영상처리는 디지털 컴퓨터를 이용해 디지털 이미지를 각종 기법들을 이용해 처리하는 것을 말한다.  


디지털 영상은 아날로그 세계처럼 무한하지 않다. 유한개의 요소들을 가지고 있으며 각 요소들은 특정 위치와 그에 해당하는 을 가지고 있다. 이러한 요소들은 다양하게 불리는데, picture elements, image elements, pels, 그리고 pixels이다. 디지털 이미지에선 픽셀(pixel)이 가장 널리 사용되는 용어이다. 

다시 말하자면 pixel은 위치와 값으로 정의 되며  로 표현할 수 있다. 이러한 여러 개의 유한한 픽셀들이 모여 하나의 디지털 이미지를 형성하게 된다. 


보통 디지털 이미지라 함은 스마트 폰이나 컴퓨터 등으로 볼 수 있는 이미지들을 떠올리는데 이러한 이미지 이외에도 다양한 형태의 디지털 이미지들이 존재한다. 인간의 눈으로는 감지할 수 없는, 이를테면 초음파(ultrasound), 전자현미경 이미지(electron microscopy)등 다양한 형태의 이미지가 있으며 디지털 영상처리는 이러한 다양한 형태의 디지털 이미지들을 처리하는 것을 포함한다. 



디지털 영상 처리와 유사하게 들릴 수 있는 용어들이 몇 가지 있는데, 컴퓨터 비전(Computer vision), 영상 이해(Image understanding), 영상 분석(Image analysis)등이 있다. 각각의 의미와 지향하는 바를 조금 살펴보자면..


- 컴퓨터 비전(Computer Vision): 인간의 인지기능을 모방하는 것을 목표로 하며, 시각적 입력(Visual input)을 기반으로 추론하고 행동(action)을 취하는 것까지 포함된 넓은 의미를 가지고 있다. 인간의 지능을 모방하는 학문인 인공지능(AI)의 한 갈래이기도 하다. 


- 영상 이해(Image Understanding): 컴퓨터 비전과 유사한 의미이나 그 용어가 지칭하는 범위는 컴퓨터 비전보다는 작다. 


- 영상 분석(Image Analysis): 영상처리와 컴퓨터 비전의 중간 정도에 위치한다.



디지털 영상처리를 포함해 위의 분야들을 명확히 구분 짓기는 어렵다. 그러나 한 가지 유용한 방법은 처리 단계별로 구분 짓는 것이다. 즉 Low, Mid, High-level 처리로 말이다. 아래 그림을 보자. 





Low-level은 노이즈 제거, 명암 효과, 화질 개선 등의 작업을 의미한다(전처리 과정). 이를 통해 사람이 영상을 좀 더 보기 좋게, 혹은 이후 과정에서 처리하기 좋게 만드는 과정을 의미한다. 즉 입력이 영상이고 출력 역시 영상의 형태이다. 


Mid-level은 전처리된 영상을 기반으로 그 안에서 어떤 속성을 뽑아내는 작업이다. 영상을 영역별로 분할하는 segmentation, 분할된 영역, 혹은 object들을 이후 과정에서 사용할 수 있도록 축소된 형태로 기술하는 과정 등이 포함된다. 입력은 전처리된 영상, 출력은 그 영상에서 뽑아낸 속성들, 이를테면 엣지, 외곽선, 개별 object들의 식별 결과 등이다. 


High-level은 뽑아낸 속성들을 기반으로 해당 scene을 "이해"하고 "추론"하는 것이다. 



이해를 돕기 위해 예를 들어보자. 



CCTV에 어떤 사람이 다른 사람에게 위협을 가하는 영상이 포착 됐다. 

-> (입력)


영상에 노이즈가 많이 섞여있어서 화질이 않좋다. 노이즈 제거 처리를 해서 깨끗한 영상을 얻었다. 

-> (Low-level)


영상 내에서 사람인 부분만 segmentation을 하고 미리 학습한 데이터를 기반으로 이것이 사람인 것을 알아낸다. 

-> (Mid-level)


영상 내의 한 사람이 다른 사람에게 위협을 가한 다는 것을 알아 차리고 경찰서에 연락해야 한다는 판단을 한다. 

-> (High-level)


+ Recent posts