Image Signal Processing (ISP)

Stanford EE259 강의 기반으로 랩 세미나 발표용 자료를 만들었고 이를 기반으로 글을 작성하였다.

What is Image Signal Processing (ISP)?

  • 이미지 센서에서 얻어진 디지털 데이터를 가공하여, 영상개선/영상복원/영상변환/영상압축 등의 처리를 하는 장치 (출처 : 삼성 CamCyclopedia )

Image Signal Processing에 대해 알아보기 전에 먼저 카메라에서 빛을 어떻게 전기 신호로 변환하는지 알아보자.

가장 먼저 위 그림과 같이 렌즈를 통해 빛을 모은다. 이후 이미지 센서에서 각 화소별로 빛의 양을 측정을 한다. 이 때 각 화소는 단순히 빛의 양만을 측정하므로 intensity만 측정이 가능하고 color에 대한 정보를 갖지 못한다. 따라서 이미지센서의 앞에는 color filter가 적용된다. 이 filter는 빛을 파장별로 filtering 해서 뒤에 이미지 센서의 각 화소가 특정 color만 측정할 수 있도록 한다. 보통의 color filter는 위의 그림처럼 RGGB의 형태로 이루어져있다 (사람눈은 초록색에 가장 sensitive하다는 근거에서 나온 구조라고 한다). 이 filter를 통해 이미지센서의 각 화소에서는 특정 color에 대한 intensity를 측정할 수 있게 된다. 여기까지는 analog로 값이 저장되어있고 이 값을 digital로 바꿔주는 analogue-digital converter에 의해 전기신호로 변환된다. 이 과정까지 거친 값을 RAW data라고 하고 이 값을 우리가 보는 RGB 이미지로 변환해주는 과정이 ISP과정이다.

Overview of vision system

카메라에서 RGB로 이미지를 저장하기까지의 과정은 위와 같다. 이미지센서에서 측정된 광자양이 ADC에서 digital로 바뀌고 ISP를 통해 RGB이미지로 바뀐 후 저장이 된다. 여기서 ISP에는 Demosaicing, White balancing, tone mapping, denoising, sharpening, compression 등등 많은 알고리즘이 들어간다. 이 과정은 각 카메라별로 모두 상이하다. 각 과정에 적용되는 디테일한 알고리즘, 순서 등등이 카메라마다 다 다르고 대부분 회사별로 철저히 보안을 유지하고 있어서 내부 과정을 알기 어려운 blackbox라고 할 수 있다. 이 글에서는 각 ISP 과정에는 어떤 내용들이 있는지 정리하고자 한다.

Demosaicing

가장 먼저 Demosaicing 과정이다. 위에서 얘기했듯이 이미지 센서에서는 각 화소별로 특정 color의 intensity를 측정했다. 하지만 우리가 보는 이미지는 RGB가 한 픽셀에서 섞여 존재하는 3채널의 이미지이다. 따라서 이를 위해 이미지 센서에서 측정된 값을 각 color별로 channel을 분리한다. 그러면 위의 그림처럼 RGB가 3채널로 분리가 된다. 이후 남은 빈공간을 채우는 과정이 demosaicing이라고 한다. 그래서 사실상 우리가 보는 RGB이미지는 1채널의 2d이미지가 3채널로 확장된 이미지이기 때문에 2/3가 interpolation등으로 생성된 결과이다. 그럼에도 불구하고 우리는 자연스러운 이미지로 인식한다.

이러한 Demosaicing을 어떻게 하냐에 따라 굉장히 다른 결과를 가져올 수도 있다. 단순히 interpolation으로 값을 채워넣었다고 생각해보자. 그리고 촬영된 이미지가 black and white로만 구성된 이미지라고 생각해보자. 그런데 demosaicing을 simple하게 interpolation으로 구성하면 black(0)과 white(1)의 경계에서는 값이 0.5로 생겨날 것이다. 실제로 있던 값이 아닌 새로운 값이 생기고 이는 부자연스러운 이미지의 결과로 이어진다. 이외에도 aliasing, blurring등등 다양한 문제가 생긴다. 따라서 현대의 카메라들은 훨씬 복잡한 알고리즘으로 정확하게 demosaicing을 할 수 있는 알고리즘들을 사용한다.

White balancing

다음은 white balancing이다. white balancing이란 쉽게 말해 하얀색으로 보이는 값을 실제 하얀색이 되도록 보정해주는 과정이다. 사람은 실제로 하얀색으로 알고 있는 물체라면 형광등 밑에 있던, 태양광 아래 있던, 푸른 조명 아래에 있던 하얀색으로 인식을 할 수 있다. 뇌에서 일종의 보정을 해주는건데 이 과정을 카메라에서 구현하는것이 white balancing이다. 위의 그림처럼 하얀색 꽃이 실제 카메라에서는 조명때문에 하얀색으로 측정되지 않는데 이를 보정해 오른쪽처럼 실제 하얀색의 값으로 만들어주는 것이다.

위 과정을 자동으로 해주는것이 Automatic White balancing이고 실제로 거의 모든 카메라에 들어가 있다. 이 과정이 없으면 사진의 색이 굉장히 어색하고 실제처럼 촬영이 되지 않는다. 하지만 이 과정도 생각보다 단순하지 않다. 단순하게 생각면 위의 자료에 적혀있는 gray world, brightest pixel 같은 방법이 있는데 gray world는 전체 scene의 평균 color가 gray가 되도록 하는것이고, brightest pixel은 scene에서 가장 밝은 pixel을 white로 맞추는 것인데 이런 단순한 방식으로는 보정이 제대로 되지 않을 가능성이 높다. 위에서도 왼쪽의 이미지에 gray world 방식으로 white balancing을 적용했더니 오히려 이미지가 더 어색해진 결과가 있다. 사실 전문 사진작가들은 auto로 white balancing을 하기보다는 직접 색 온도를 조절하는것으로 알고 있고 scene마다 자연스러운 이미지를 찍을 수 있는 white balancing 값이 다른 것으로 알고 있다.

Tone mapping

다음은 Tone mapping이다. 이미지에서 dynamic range를 조절하고 contrast를 높이기 위해 주로 쓰는 방법이다. 이미지에서 픽셀값들이 차이가 별로 안나면 사람이 눈으로 이미지를 봤을때 물체를 구분하기가 어렵다. 이때 각 픽셀값들의 차이를 키워주면 훨씬 더 물체들을 선명하게 구분할 수 있게 되는것이다. tone mapping은 보통 global하게 적용하는 방법, local하게 적용하는 방법이 있는데 global하게 적용하는 방법은 scene 전체에 같은 알고리즘을 적용하는것이고 local은 각 픽셀들별로 보정을 다르게 적용하는 방법이다. 당연히 디테일하게 수정하려면 local하게 적용해야하고 그런데 특정 local만 수정하면 전체 이미지가 어색해질 수 있으니 주의해서 사용해야한다. 당연히 이 방법도 실제 카메라에 적용된 알고리즘은 훨씬 복잡하고 blackbox이다.

위의 global tone mapping 과정중에서 일반적으로 적용되는 방식이 위와같은 gamma correction이다. 위의 그림에서 오른쪽 그림을 보면 gamma correction에 따른 사진의 결과를 보여준다. gamma가 줄어들수록 밝기 차이가 더욱 잘 보이고 gamma가 늘어날 수록 밝기 차이가 잘 안보인다. input대비 output을 non-linear하게 mapping을 해서 어두운 부분에서는 더욱 대조가 커지게 해서 어두운 곳의 물체를 잘 구분할 수 있도록 해준다. 보통의 카메라는 gamma를 0.5정도로 설정한다고 한다.

Image Denoising & Sharpening

마지막으로 Denoising과 Sharpening과정이다. 이미지 센서와 위의 isp과정들에서 필연적으로 발생하는 노이즈와 blur현상들을 개선하고자 적용되는 방법이다. 위에서 보이는것처럼 가장 simple하게 filter를 하나 적용해서 gaussian blur를 적용하거나 sharpening filter를 적용해서 blur를 해결하는 방법들이 있다. 당연히 이 과정도 훨씬 복잡하게 적용이 된다.

Deep Learning based ISP

최근에는 이 과정들은 Deep learning을 이용해서 더욱 최적화하려는 시도들이 많이 있다. ISP과정중 일부만 deep learning으로 대체하는 시도부터 통채로 end-to-end로 대체하려는 시도들도 있다. 아직까지는 연산량 문제나 일반화성능 문제 등으로 ISP과정이 완전히 Deep learning으로 대체된것 같지는 않고 상용화를 위해 연구중인 단계인것 같다.

Donghun Ryou


Popular Categories


Search the website


today visits :

8

total visits :

8558


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다