[Computer Vision] 컴퓨터 비전과 영상의 이해

2023. 10. 11. 00:06Run/Computer Vision

1. 컴퓨터 비전 개요

컴퓨터 비전 (Computer Vision)

  • 컴퓨터를 이용하여 정지 영상 또는 동영상으로부터 의미 있는 정보 추출하는 방법 연구하는 학문
  • 사람이 눈으로 사물을 보고 인지하는 작업을 컴퓨터가 동등하게 수행할 수 있게끔 하는 학문
    • 사람의 눈이 하는 작업을 카메라가 대신하고, 사람의 뇌가 하는 작업을 알고리즘을 통해 컴퓨터가 유사하게 수행하도록
  • 전통적인 CV 문제 해결 방법에서는 영상으로부터 유용한 정보 추출하고, 이를 조합해 결과 유추

 

  • CV에서 주로 활용하는 영상 정보: 밝기, 색상, 모양, 텍스쳐, ...
  • 이 정보와 ML 알고리즘을 함께 사용하여 사물을 인지할 수 있음
  • 영상 데이터에는 다양한 변형 가해질 수 있으므로 여러 방식으로 추출한 영상 정보를 복합적으로 사용해야 함
  • CV와 더불어 널리 사용되는 용어 = 영상 처리 (Image Processing)

 

  • CV에서 수학이 차지하는 비중 상당히 큼: 행렬 연산(선형 대수), 미적분학, 확률과 통계, 기하학 등...
  • CV와 관련 있는 분야: Signal Processing, Pattern Recognition, Machine Learning, Optics, Cognitive Science, ...

 

 

  • CV는 현재 다양한 산업 분야에서 사용됨
    • 스마트폰 카메라의 HDR (High Dynamic Range) 사진 촬영, 인스타그램 필터 기능 등 (화질 개선)
    • 공장 제품 검사, 측정, 불량 판정 등을 위한 CV 널리 사용 (Machine Vision)
    • 앞으로 CPU, GPU, TPU 등 하드웨어 발전, 센서 융합, 딥러닝 등의 영향으로 사용성 더 높아질 것임

 

 

2. 영상의 구조와 표현 방법

영상의 획득과 표현 방법

  1. 태양의 가시광선 or 특정 광원의 빛이 피사체에 부딪혀 반사
  2. 반사된 빛이 카메라 렌즈 통해 카메라 내부로 들어옴
  3. 렌즈에서 모인 빛이 이미지 센서에 닿으면 이미지 센서의 포토 다이오드가 빛을 전기적 신호로 변환
  4. 포토 다이오드가 빛을 많이 받으면 큰 신호 생성, 적게 받으면 작은 신호 생성하여 명암이 있는 2차원 영상 구성
  5. 전기적 신호가 아날로그-디지털 변환기(ADC) 거쳐 디지털 신호로 바뀜
  6. 디지털 신호는 다시 카메라의 ISP(Image Signal Processor) 장치로 전달되고, ISP 장치는 화이트밸런스 조정, 색 보정, 잡음 제거 등 수행한 후 2차원 디지털 영상 생성
  7. 구성된 영상은 바로 컴퓨터로 전송되거나 JPG, TIFF 등의 영상 파일 형식으로 변환되어 저장
  • 렌즈: 카메라 바깥으로부터 들어온 빛 굴절시켜 이미지 센서로 모아주는 역할
  • 이미지 센서: 빛을 전기적 신호로 변환하는 포토 다이오드가 2차원 평면상에 배열되어 있는 장치

 

 

  • 영상을 구성하는 최소 단위 = 픽셀 (pixel) = 화소
    • Picture + Element
    • Ex) 2000만 화소짜리 카메라 = 2000만 개의 픽셀로 이루어진 사진 촬영할 수 있는 카메라
  • 하나의 픽셀은 하나의 밝기/색상을 표현하며, 픽셀이 모여 2차원 영상을 구성
  • Zero-based: 좌표 시작을 0부터 표현하는 방식

 

디지털 영상 표현과 좌표계

 

  • 영상을 수식으로 설명할 때 보통 함수 형태 사용
    • x 좌표, y 좌표 입력받고 해당 위치에서의 픽셀 값을 출력으로 내보내는 함수
  • 영상은 2차원 평면 위 픽셀 값이 나열된 형태이므로 영상을 2차원 행렬로 표현할 수 있음

 

 

 

그레이스케일 영상과 컬러 영상

  • CV에서는 주로 grayscale image와 truecolor image 사용
  • Grayscale image: 흑백 사진처럼 오직 밝기 정보만으로 구성된 영상 (= 회색조 영상)
  • Truecolor image: 컬러 사진처럼 다양한 색상 정보 표현할 수 있는 영상
  • 예전에는 256개 이하의 색상으로 구성된 컬러 영상과 구분하기 위해 truecolor라고 했지만, 요즘은 그냥 color라고 부름

 

  • 그레이스케일 영상은 밝기 정보 256단계로 구분하여 표현함
    • 하나의 픽셀은 0~255(grayscale level)의 정수 값을 가질 수 있음 (클수록 밝은 색)
  • 그레이스케일 값 저장하기 위해 C/C++에서 보통 unsigned char 자료형 사용

 

자료형 재정의하여 사용

 

  • BYTE는 주로 Windows에서 사용하는 이름 재정의 방식
  • uint8_t는 주로 리눅스에서 사용하는 이름 재정의 방식
  • OpenCV 라이브러리에서는 unsigned char 대신 uchar 사용

 

 

  • 컬러 영상은 보통 R, G, B 세 개의 색상 성분 조합으로 픽셀 값 (0~255) 표현
  • 컬러 영상에서 하나의 픽셀은 unsigned char 자료형 3개를 이용하여 표현할 수 있음