cyphen156

컴퓨터 비전#1 컴퓨터 비전 개요, 픽셀과 컬러 본문

컴퓨터공학/컴퓨터 비전

컴퓨터 비전#1 컴퓨터 비전 개요, 픽셀과 컬러

cyphen156 2024. 8. 30. 18:41

컴퓨터 비전이란?

컴퓨터 비전은 말 그대로 컴퓨터가 사람이 보는 영상 또는 이미지를 처리할 수 있도록 아날로그 신호를 디지털 신호로 변환하여 이진화 데이터로 가공하는 것을 말한다.

 

내가 이 분야를 공부하는 이유는 컴퓨터와 사람간의 의사소통에 있어서 인터페이스의 역할로 데이터의 시각화(렌더링)를 통해 표현 하는데 반대의 경우, 즉 아날로그 신호의 디지털화에 대해 알아두면 더욱 이해가 잘 갈 것 같아서이다.  

 

아날로그 신호의 디지털화 과정

보통 디지털 카메라를 예시로 들자면

피사체 - 렌즈 - 센서 - ISP - Image 파일 순으로 변환되어 저장된다.

현실의 객체를 사진 찍을 때 렌즈를 통해 빛을 모으고, 이 모아진 빛들이 ADC[각주:1] (아날로그-디지털 변환기)라는 센서를 통해 디지털 신호로 변환되고, 이 신호는 다시 ISP[각주:2](이미지 신호 처리)장치로 전달되어 RGB/A, 색상보정 및 잡음 제거 등의 처리를 마친 뒤 저장소에 저장된다. 

픽셀

이렇게 저장된 데이터들은 픽셀(화소)이라는 최소단위를 갖게 된다. 1개의 픽셀당 색상을 표현하기 위해 Red Green Blue의 8개 비트씩 총 3개의 데이터를 갖는 경우도 있지만 여기에 추가로 투명도(Alpha/Opacity)라는 0~1[각주:3] 사이의 값을 추가로 갖는 경우도 있다. 그렇기 때문에 기본적으로 1개의 픽셀은 24비트의 데이터를 통해 표현된다.

해상도

각 픽셀들은 너비(Width)와 높이(Height)를 통해 2차원 데이터로 표시되는데 수학적으로는 행렬 또는 데카르트 좌표계를 통해 저장되며 이를 해상도라고 한다.. 

만약 FHD 이미지를 아무런 후처리 없이 화면에 표시하려 한다면 (1920(너비)*1080(높이))*24bit의 데이터가 필요하다는 뜻이다.

그레이스케일

그레이스케일은 컬러 이미지와는 다르게 빛의 조도만을 이용해 흑백 처리된 이미지를 말한다. 

색상표현이 흑백으로만 이루어지기 때문에 8개 비트만으로 데이터를 표현할 수 있어 저장되는 용량을 크게 줄일 수 있다는 장점이 있다. 또한 이렇게 줄어든 용량으로 인해 프로그램의 처리 성능이 획기적으로 빨라진다.

자주 쓰이는 이미지 파일 형식

  • BMP : 24비트 비트맵 이미지 파일 형식, 각 픽셀 형식을 그대로 저장하기 떄문에 무손실 압축방식이지만 파일 크기가 커진다.
  • JPG : 일부 비슷한 색상데이터를 동일하게 저장하여 파일 크기를 줄인 형식, 품질 손상이 발생할 수 있다.
  • JPEG : JPG를 확장한 이미지 형식, JPG에 비해 더 많은 색과 고품질 이미지를 표현할 수 있다.
  • GIF : 표현되는 색상의 수를 256개로 크게 줄인 이미지 압축 형식, 현재는 잘 쓰이지 않는다.
  • PNG : 비트맵에서 알파값을 채워 사용할 수 있게 된 이미지 파일 형식, 24비트 또는 32비트로 저장되어 무손실 압축을 사용하는 고품질 형식이다.
  • WEBP : 구글에서 만든 웹 이미지 파일 형식, 웹상에서 로딩 시간을 줄이기 위해 개발되었다. 손실압축과 무손실 압축 모두를 지원하기 때문에 JPEG보다 더 적은 용량으로 동일하거나 나은 화질을 제공할 수 있게 되었다.

공부하는데 사용된 책은 다음과 같습니다.

책정보, OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 : 길벗, 이지톡 (gilbut.co.kr)

 

OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝

컴퓨터 비전 기초부터 딥러닝 활용까지!

www.gilbut.co.kr

 

모든 예제 파일은 다음 주소에 있습니다.

GitHub - sunkyoo/opencv4cvml: "OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝" (길벗, 2019) 책 소스 코드입니다.

 

GitHub - sunkyoo/opencv4cvml: "OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝" (길벗, 2019) 책 소스 코드입니

"OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝" (길벗, 2019) 책 소스 코드입니다. - sunkyoo/opencv4cvml

github.com

 

  1. 빛의 세기(광량)을 통해 아날로그 신호를 이진화해서 표현한다. [본문으로]
  2. 정확한 데이터를 얻기 위한 후처리 장치 [본문으로]
  3. 0~1까지의 값을 부동소수점을 통해 표현한다, 즉 8비트 [본문으로]