영상처리(image processing)
: 디지털 카메라를 통하여 영상을 전자적으로 얻은 후, 컴퓨터로 영상을 처리하여 원하는 출력 영상을 얻는 기술 분야
영상처리는 아날로그 영상 처리와 디지털 영상 처리로 구분할 수 있지만 최근에 컴퓨터의 발전으로 영상 처리라고 하면 일반적으로 디지털 영상 처리를 의미한다.
영상은 수학적으로는 2차원 함수 f(x,y)로 정의될 수 있으며, 여기서 x와 y는 2차원 공간 좌표이다.
좌표는 (x, y)에서 f의 값이 그 점에서의 영상의 밝기 (intensity)가 된다. 만약 x와 y가 유한하고 이산적일 때이러한 영상 f(x,y)을 디지털 영상이라고 한다. 디지털 영상은 유한한 개수의 점들로 구성되며, 이러한 점을 화소(pixel: picture element)라고 부른다
영상처리에는 일반적으로 저수준 처리, 중수준 처리, 고수준 처리가 있다
저 수준 처리 (low-level) : 잡음을 줄이는 처리, 콘트라스트 개선, 영상 선명화 등의 처리로서 입력과 출력이모두 영상 처리이다.
중 수준 처리 (mid-level) : 영상을 영역으로 구분하거나 객체들의 묘사, 객체 인식 등의 처리로서 입력은 영상이지만 출력은 영상으로부터 추출된 속성이다.
고 수준 처리 (high-level) : 영상을 분석하고 인식하는 처리로서 입력은 영상이지만 출력은 물체의 레이블일 n수 있다.
영상의 획득
: 광원에서 나오는 빛이 물체에 반사되고 이 빛을 카메라 안의 센서가 잡아서 디지털 영상이 형성된다.
컬러란?
대부분의 실세계의 영상들은 단색이 아니고 컬러 영상이다. 17세기에 위대한 물리학자 뉴턴은 태양 빛이 프리즘을 통과하면 무지개 색을 나타낸다는 것을 발견한다. 뉴턴은 이를 바탕으로 흐니식광은 만흔 서로 다른컬로 이루어져 있다고 결론을 내렸다
빛도 전자기파의 일종이다. 전자기파 중에서 우리가 눈으로 볼 수 있는 것을 가시광선이라고 한다. 가시광선에 해당하는 파장을 표시한 것이다. 에를 들어서 파장의 400nm의 전자기파는 보라색에 해당한다. 파장이750nm 인 전자기파는 빨간색이다
인간은 가시광선만 볼 수 있지만, 영상 처리에 사용되는 기계들은 감마선에서 라디오 전파까지 전체의 스펙트럼을 볼 수 있다. 따라서 영상처리에서는 가시광선만을 다루는 것이 아니다. 초음파 센서, 자외선 센서, 적외선 센서들이 생성한 영상도 영상 처리에 따라 다룰 수 있다 .
표본화와 양자화
빛이 물체에서 반사된 양이 카메라와 센서에 의해 감지되고 감지된 데이터의 양에 의해 연속적인 전압 신호가 발생한다. 전압 신호는 아날로그 신호지만 표본화 (sampling) 및 양자화(quantization)가 수행되면 영상은2차원 숫자 배열로 바뀌게 되고 이것이 바로 디지털 영상이다. 영상이 숫자들의 2차원 배열로 바뀌면 이후부터는 컴퓨터로 쉽게 처리가 가능하다.
표본화 : 아날로그 영상에서 적당한 간격으로 샘플을 추출하는 것
양자화 : 각 샘플들의 밝기를 제한된 수의 비트로 표시한 것
표본화(샘플링: sampling)
1차원 신호로 표본화를 설명하면 아래와 같이 아날로그 파형을 보여준다. 우리는 이 파형을 디지털 데이터로변환하고자 하며 연속된 값으로 이루어져 있지만 컴퓨터는 메모리의 제한이 있기 때문에 모든 값을 저장할수 없다. 따라서 일정한 간격으로(T)으로 표본화한 값만을 저장하게 된다.
이 개념을 2차원 공간으로 확장하면 영상의 표본화가 된다. 실제 영상은 2차원 공간에서 무한한 점들로 이루어 진다. 이것을 디지털 영상으로 만들려면 점의 개수를 제한 할 수밖에 없다. 공간 영역에서 점의 개수를 제한하는 것이 영상에서의 표본화이다.
표본화의 점들을 화소(pixel: picture element)라고 하며, 표본화는 영상의 해상도를 결정한다.
양자화(quantization)
영상의 양자화(quantization)란 각 화소의 값을 정해진 단계의 밝기로 제한하는 과정이다. 카메라 센서에 감지된 값들은 아날로그 값이기 때문에 연속된 무한한 범위 값을 가진다. 하지만 디지털 카메라에서는 제한된 비트로 화소값을 나타내기 때문에 화소값을 제한된 단계의 밝기로 제한하여야 한다. 예를 들어, 카메라 센서의 특정 화소 위치에 감된 값이 126.37 이라고 하자, 화소당 8비트를 할당하는 카메라에서는 이것을 126으로만 나타낼 수 잇다. 소수점 이하 값은 표현할 수 없는 것이다.
그레이스케일 영상에서는 각 화소의 값이 8비트로 양자화 한다면 00000000, ... 11111111까지 256 단계의 값으로 화소값을 표현하게 된다. 즉 하나의 화소는 0에서 255까지 숫자만 가질 수 있다. 일반적으로 인간의 눈은 최대 500단계의 명암까지만 판별할 수 있다고 한다. 다라서 8비트의 양자화면 충분하다.디지털 영상에서는 행과 열을 가진 2차원 행렬로 표시된다. 각 화소가 0과 1의 값만을 갖는 영상은 이진 영상(binary image)이라고 하며, 1과 0은 밝은 부분과 어두운 영역 또는 물체외 배경을 나타낸다.
빛의 강도를 더 세밀하게 양자와 하면 화소당 여러 비트를 사용한다. 이러한 영상을 그레이스 영상을 그레이스케일 영상이라고 하며 한 화소당 8비트를 할당하는 경우, 하나의 화소는 0(검은색)에서 255(흰색)까지의값을 가질 수 잇고 이들 값들은 회색의 농도로 나타낸다.
이 경우 한 화소의 밝기 (brightness)를 나타내는 정수값을 명도(gray level)라고 한다. 일반적으로 그레이스케일 영상에서는 명도 수가 클수록 화질이 좋아진다.
컬러 영상은 3가지 기본적인 색인 적색(Red), 녹색(Green), 청색(Blue)에 대하여 각각 하나의 행렬이 필요로한다. 따라서 각 행렬의 맹도값은 각 화소 지점에서의 적색, 녹색, 청색 성분의 강도를 나타낸다. 따라서 컬러상에서의 각 화소 f(x,y)는 R,G,B의 3요소로 구성되어 있다. 각 색상의 명도를 나타내느 R(x,y), G(x,y),B(x,y)에 의해서 색상이 결정된다. 예를 들면 R, G, B가 각각 8비트인 경우 각 성분은 = 256 단계의 명도를 가진다. 따라서 RGB 세가지 성분으로 이루어진 컬러 영상으로 표현 가능한 색상은 x x = = 약 1680만 색이 된
다. 인간의 눈으로 구별할 수 있는 컬러의 개수를 고려해 볼 때 RGB에 8비트를 부여하면 충분한 것으로 분석되고 있다. 이러한 이유로 RGB에 각 8비트를 할 당한 24비트 컬러 영상을 트루 컬러 영상(True color image)라고 한다
정지 영상의 크기
ex) 512 x 512 크기, 회소당 8비트인 그레이스케일 영상 ? 512 x 512 x 8 = 2097152비트 = 256KB 의 메모리
ex) 512 x 512 크기, 회소당 8비트인 RGB 성분의 컬러 영상 ? 512 x 512 x (8 x 3) = 6291456 비트 = 786KB 동영상의 크기
영상 처리 분야의 영상 처리 기술
영상 조작(image manipulation) : 영상을 변형하는 것 ex) 잡음 제거, 흐려진 영상 복원, 영상의 명암비 향상
영상 분석(image analysis) : 영상 안의 물체를 측정하거나 검사 ex) 부품의 치수 측정, 의료의 세포분석
영상 인식(image recognition) : 영상 내 존재하는 물체의 종류와 개수 등 식별 ex) 로봇 시각 시스템, 자율주행
영상 압축(image compression) : 영상의 크기를 줄이는 기술 ex) 무손실 압축(런길이 압축, LZW, DEFLATE, 체인 코드 등) 과
손실 압축 (DCT, 프랙탈 압축, 색상 공간을 줄이는 방법)
'Machine-Learning > CV (Computer Vision)' 카테고리의 다른 글
[CV] One-Stage와 Two-Stage 차이 (0) | 2022.11.16 |
---|---|
[CV] VGGNet (Simonyan and Zisserman, 2015) (0) | 2022.10.28 |
[CV] ResNet (0) | 2022.10.11 |
[영상] Bilinear Interpolation (0) | 2022.10.06 |
[CV] 특징(Feature) 이란? (0) | 2022.09.26 |
댓글