Posts List

[컴퓨터비전] 3. Digital Images & Camera ISP

Digital Images & Camera ISP

Digital Images

이미지는 기본적으로 8 bit(0~255)의 2차원 배열, 즉 bitmap 형태로 표현된다. 이 때 각 셀을 Picture Element의 약자로 Pixel이라 한다. 다만 0~255 unsigned integer는 섬세한 계산을 하기 어렵다. 그래서 추후에 255로 normalize시켜서 0~1 unsigned float형태로 preprocessing하는 과정을 보게 될 것이다. 그럼 광원은 어떻게 0~255라는 숫자로 표현될 수 있을까?

카메라 센서는 광원량을 측정할 수 있는 photodiode2차원으로 배열되어 있다. 

phtodiode는 광원량을 analog전기신호로 측정하는데, 이 신호를 ADC(Analog to Digital Converter)를 통해 0~255사이의 discrete number로 Quantization(양자화) 시켜 이미지를 생성시킨다.

그리고 센서가 색를 인식하기 위해, 마치 셀로판지를 센서에 붙이듯, R, G, B filter를 격자형태로 배열시킨 후, 후처리Interpolation(Demosaicing) 시켜준다. 

물론 CFA(Color Filter Array)의 형태는 위와 같이 다양한 방법으로 설계할 수 있지만, 가장 많이 사용하는 필터는 Bayer filter이다. (Bayer는 Eastman Kodak에 의해 처음 제안됨.)

Camera ISP

Camera ISP(Image Signal Processor)라는 것은 카메라에 내장된 영상처리 칩 혹은 기능이다.

위 process는 센서에 도달한 광원이 어떻게 jpeg로 저장되는지를 보여준다.

  • Gain Control : 측정된 전기신호를 증폭(ISO)시킨 후 ADConvert한다. 
  • 그리고 조명에 의해 변동된 색조를 원래 색조를 가질 수 있도록 white balance시키고,
  • 앞서 배운 CFA Demoasicing을 통해 이미지를 생성한다.
  • 그 후에는 Noise reduction / Sharpening 등 다양한 후처리를 통해 이미지의 품질을 향상시킨다.
  • 그리고 pixel수가 매우 많아 용량이 크기 때문에 jpeg 표준방법으로 압축한뒤 storage에 저장시킨다.

물론 모든 카메라 메이커가 동일한 방법을 사용하진 않지만, 일반적인 ISP를 보여준다.


위 과정 중 photodiode가 ADC 하기 전 전기신호를 sampling하는 방법에 대해 좀 더 자세히 알아보자.

위 그림의 노란선의 전기신호는 아마 우측과 같은 연속적인 신호일 것이며, 이 신호를 대표할 수 있도록 몇 개 신호를 뽑는 것이 Sampling이다. 그리고 sample들을 이용해 다시 연속적인 신호로 변환하는 것은 Reconstruction이라고 한다.

Sampling은 전기신호를 표현할 수 있는 굉장히 유용한 수단이다. 하지만 sampling 주기를 잘 못 설정하면 전혀 다른 신호로 보일 수 있음으로(Aliasing) 매우 신중해야 한다.

이런 특징은 영상에서도 나타나는데, 기존에 없는 무늬가 사진에 찍히는 현상 등이 발생할 수 있다. 그래서 오른쪽 그림과 같은 사진을 찍게 해서 카메라의 해상력을 평가하기도 한다.

이런 aliasing 현상을 제거하기 위한 방법이 바로 Anti-aliasing이며, 대표적인 방법으로는 

  • 단순히 sampling을 많이 해 줄 수 있지만 해상도가 너무 올라가는 단점이 있으며,
  • 고주파 성분을 날려버리는 방법도 취할 수 있다. (Low-pass filter)

그리고 이런 aliasing은 비단 사진을 찍을때만 나타나는 것이 아니다.

예를 들어 매우 큰 사이즈의 이미지가 있어서 사이즈를 줄여야 하는 경우를 생각해보자.

이미지 사이즈를 줄인다는 것은 결국 이미지의 픽셀들 중 몇 개만 취하는 일종의 sub-sampling이고, 이 경우에도 역시 aliasing이 발생할 수 있다. (1/8이미지에 원본과는 많이다른 패턴이 발생한 것을 확인할 수 있다.)

그렇기 때문에 sub-sampling 직전에 low-pass 필터를 적용하면서 sub-sampling 하면 위와 같이 사이즈를 줄이면서 aliasing 현상을 피할 수 있다.

이 과정을 미리 반복해서 점점 작아지는 이미지를 준비해놓은 것을 Image Pyramids라 부르며, 

이미지 내 object의 사이즈를 가늠할 수 없는데 object detecting 해야하는 경우 등에 활용될 수 있다.


댓글 쓰기

0 댓글