본문 바로가기
OpenCV

1. 컴퓨터 비전의 개요와 영상 기초

by Jinrona 2021. 2. 6.


 

컴퓨터 비전(Computer Vision) : 컴퓨터를 이용하여 Image 또는 Video 로부터 의미있는 정보를 추출하는 방법을 연구하는 학문.

 

쉽게 이야기하면, 사람이 눈으로 보고 인식하는 과정을 컴퓨터가 할 수있도록 해주는 것이다. 

사람이 눈으로 사과가 반사된 빛을 받아들이고, 뇌에서 이것을 인식하여 '사과'라는 객체를 인식하는 과정을 컴퓨터에서 이루어지게 한다고 생각하면 된다. 사람의 눈은 '카메라'가 뇌는 '알고리즘' 등으로 컴퓨터에서는 대체되어 이러한 과정을 진행한다.

 

컴퓨터 비전에서는 주로 밝기, 색상, 모양 등의 영상정보를 활용하고, 이러한 정보들을 여러 알고리즘들에 적용하여 사물을 인식한다.

말로는 굉장히 쉽지만 실제로 영상을 받아보면 조명에 따라 혹은 카메라의 시점에 따라서 동일한 피사체에서 값은 다른 다양한 영상들이 나올 수 있기 때문에 고려할 부분이 상당히 많다. 

 

컴퓨터 비전과 흔히 혼용되어 많이 사용되는 용어로 영상 처리(Image Processing)이 있다. 

영상 처리는 말 그대로 영상을 입력받고, 입력받은 영상에 잡음 처리, 화질 개선, 마스킹 등의 여러 처리를 한 뒤에 영상을 출력하는 과정이다. 그렇기에 객체 등을 인식하는 컴퓨터 비전 과정의 전처리 과정으로 볼 수 있다. 

하지만, 사실 컴퓨터 비전과 영상 처리를 명확하게 구분하는 것이 애매하기 때문에 보통 컴퓨터 비전과 영상 처리는 많이 혼용되어 사용한다.

 

* 컴퓨터 비전, Image Processing 에서 '영상'은 한 장의 frame 즉, 사진(Image)의 의미로 사용된다.

  '영상' : Image    ,     '동영상' : Video  

 

 


영상 기초

 

디지털 카메라에서의 영상 획득 과정은 다음과 같다.

피사체로부터 반사된 빛 - 렌즈 - 이미지 센서 - ADC - ISP - 사진 파일

 

먼저 피사체로부터 반사된 빛이 렌즈를 거치면서 센서에 모이게 된다. 이때 이미지 센서에는 포토 다이오드가 평면으로 배열되어 있기에 들어온 빛을 2차원 상 밝기 정도 데이터로 표현한다. 이 아날로그 데이터를 ADC를 통해 디지털 데이터로 변환한다.

* ADC (아날로그-디지털 변환기) : 아날로그 데이터를 디지털 데이터로 변환하는 장치 (Analog-to-Digital)

 

이렇게 디지털 데이터로 변환된 데이터는 ISP로 전달된다. ISP에서는 노이즈 제거 등의 처리를 하여 2차원의 디지털 이미지를 생성한다.

*ISP(Image Signal Processor)

 

이러한 과정을 통해 우리는 카메라를 통해 들어오는 빛들을 디지털 이미지로 받아들일 수 있게 된다.

 


픽셀(Pixel) : 영상을 구성하는 최소 단위

 

픽셀이란, 영상을 구성하는 최소 단위이다. 

Picture + Element 이며, '화소' 라고도 부른다. 흔히, 카메라나 TV 광고에서 나오는 몇 화소~ 의 그 화소이다.

 

컴퓨터에서는 영상을 이 픽셀의 배열로 표현한다. 예를 들어 가로 w, 세로 h 크기의 영상은 아래와 같이 표현된다.

가로 w , 세로 h의 영상 표현

 

여기서 가로 w , 세로 h란,

가로 픽셀 크기 w , 세로 픽셀 크기 h를 의미한다.

 

이러한 배열은 xy좌표계로 나타낼 수 있는데, x좌표는 left-right, y좌표는 top-bottom 의 방향으로 증가하므로, 

아래와 같은 4사분면의 평면으로 생각할 수 있다.

 

가로 w , 세로 h의 이미지의 xy좌표계

 

*  left-top Origin

   : 위 사진처럼 왼쪽 위를 원점으로 하는 좌표계를 사용하는 것을 left-top Origin을 사용한다고 표현한다.

 

* Zero-based

  : 위 사진들처럼 좌표의 시작을 0부터 표현하는 방식을 Zero-based (0-기반)을 사용한다고 표현한다.

 

컴퓨터 비전을 할 때 대부분 left-top Origin과 Zero-based를 사용한다.

 

이렇게, 이미지를 나타내면 특정 픽셀을 2차원 상의 특정 좌표로 표현할 수 있다.

즉, 픽셀 좌표를 (x,y)로 나타낼 수 있다는 뜻이다.

( x의 정의역은 0 ~ (w-1) , y의 정의역은 0 ~ (h-1) )

 

이미지는 픽셀의 배열이고, 이 픽셀은 (x,y)의 좌표로 나타낼 수 있기 때문에 영상을 수식으로 표현할 때는 보통 함수의 형태를 사용한다.

(입력) x좌표, y좌표 -> (출력) 픽셀값

 

즉, 우리가 영상을 f라고 표기하면, 특정 픽셀값을 f(x,y)로 표현한다는 의미이다.

 


이러한 픽셀의 2차원 배열은 xy좌표계 외에도 표현할 수 있는 방법이 1가지 더 있는데, 바로 행렬이다.

컴퓨터 비전에서는 영상을 2차원 배열뿐 아니라 행렬로도 많이 표현하는데, 이러한 행렬로 표현할 경우 영상을 처리하는 알고리즘을 행렬 이론을 적용하여 구현하는 등 수학적으로 표현하고 계산하기 편리하기 때문이다.

 

가로 : N , 세로 : M 의 영상의 행렬 표현

위의 행렬식과 같이 가로 : N , 세로 : M의 영상을 형렬로 표현할 수 있다.

$a_{j,i}$는 j 번째 행, i 번째 열에 위치한 원소를 의미한다.

행렬 A가 영상을 나타내는 경우라면 $a_{j,i}$는 $(i,j)$좌표에 위치한 픽셀을 의미한다.

 

여기서 미리 눈치챘을 수도 있는데, 행렬과 좌표의 표현에서 x,y 혹은 행,열 의 순서는 서로 반대이다.

즉, 행은 y좌표를 열은 x좌표를 의미한다.


* 행렬과 영상의 표현

 

- 행렬

행 : M개 , 열 : N개 인 행렬은 보통 $M\times N$ 형렬이라고 표현한다.

그리고 읽을 때는 M by N 행렬이라고 읽는다.

 

 

- 영상

가로 픽셀 크기 : w , 세로 픽셀 크기 : h 인 영상은 보통 $w\times h$ 영상 이라고 표현한다.

그리고 읽을 때는 w by h 영상이라고 읽는다.

 


JinRona_CV_1.pdf
0.67MB

 

이 글은 공부를 하면서 제가 정리해 놓은 내용으로 틀린 내용들이 있을 수도 있습니다.

틀린 부분에 대한 지적은 언제나 환영입니다!

 

-JinRona-

'OpenCV' 카테고리의 다른 글

3. OpenCV 기본 함수  (0) 2021.02.09
2. Grayscale Image & Truecolor Image  (0) 2021.02.07

댓글