논문 리뷰

[논문리뷰]Replacing Mobile Camera ISP: 딥러닝으로 ISP 대체하기

dohyeon2 2024. 9. 5. 16:14

목차

    안녕하세요 윤도현입니다. 오늘 소개할 논문은 2020년 CVPR에 개제된 Replacing Mobile Camera ISP with a Single Deep Learning Model 이라는 논문입니다. 

     

    제가 이 논문을 리뷰한 이유는 최근 진행중인 "3D Depth Camera 개발 프로젝트"에서 조명 바로 밑 영역은 하얗게 표현되고 조명과 멀리 떨어져 있거나 구조물에 의해 그림자가 생긴 영역은 검정색으로 표현되어 물체 식별이 불가능한 문제가 발생했기 때문입니다. 이 문제를 해결하고자 연구하던 중 ISP(Image Signal Processor)에 대해서 알게되었고, ISP의 펌웨어를 직접 수정하지 않고도 DSLR의 최고급형 이미지 센서의 ISP 처리수준으로 이미지를 개선할 수 있는 방법을 소개하는 신박한 논문이라고 생각되어서 바로 리뷰하게 되었습니다.

     

    0. ISP(Image Signal Processor)란?

    ISP는 카메라에서 이미지 신호를 처리하는 반도체를 말합니다. 우리가 사용하는 모든 카메라에는 이 ISP가 내장되어 있는데요. 

    카메라가 빛을 디지털 이미지로 바꾸는 과정은 다음과 같습니다.

    출처: http://nc-recruit.com/kr/career/career.php?code=career&idx=69&bgu=view

     

    즉, ISP의 역할은 이미지 센서를 통해 전달받은 Raw Data(전기 신호)를 사람이 볼 수 있는 디지털 이미지로 변환하는 것 입니다.

    그러나 오늘날 ISP의 역할은 여기서 그치지 않습니다. 

    • 노이즈 감소
    • 색 보정
    • 화이트 밸런스
    • 감마 보정
    • HDR
    • 자동 초점 및 노출 제어
    • 디모자이킹
    • 색 농도 및 선명도 조절
    • 왜곡보정

    위와 같이 매우 많은 기능을 담당하고 있는데요. 지금까지는 이런 다양한 기능들을 각각 펌웨어 상에서 개발하였습니다.

    그러나 이러한 많은 기능들을 각각 개발하는 것은 매우 많은 시간과 노력이 필요한 문제를 갖고있었고, 본 논문에서 저자는 이러한 복잡한 센서나 광학에 대한 지식 없이 단순히 훈련된 딥러닝 모델로 ISP의 역할을 대신하는 방법에 대해 소개하였습니다.

     

    1. Introduction

    • 2000년대 초반의 mobile camera는 매우 낮은 image quality를 제공하였지만, 2010년 이후 powerful한 하드웨어를 이용한 ISP를 통해 image quality가 급격하게 향상됨
    • 현대의 모바일 ISP는 매우 복잡한 소프트웨어 시스템으로 노이즈 감소, 색 보정 등 다양한 저수준 및 전역 이미지 처리 작업을 순차적으로 수행함
    • 시스템의 각 부분은 특정 센서와 광학 시스템의 특성을 고려하여 별도로 설계 및 개발됨
    • 이러한 소프트웨어적인 발전과는 별개로, 모바일 카메라의 하드웨어적 한계는 여전히 존재함
    • 작은 센서와 비교적 컴팩트한 렌즈는 세부 정보의 손실, 많은 노이즈, 미흡한 색상 렌더링 등의 문제점이 있었음
    • 기존의 ISP 시스템은 이러한 문제점들을 완전히 해결하지 못하고 있으며, Image Flattening이나 Watercolor Effect를 통해 문제들을 숨기려고 하고있음
    • 본 논문에서 저자는 이러한 문제를 숨기는게 아니라 딥러닝 모델로 해결하는 방법을 제안함
    • 이를 위해, 카메라 센서에서 얻은 Raw Data를 고품질의 RGB 이미지로 매핑하는 아키텍처를 제시하였음
    Image Flattening이란?
    : 이미지의 노이즈를 줄이거나 이미지의 결점을 감추기 위해 이미지의 디테일과 깊이를 손실시키고, 전체적인 톤을 균일하게 만들어 이미지가 "밋밋하게"보이게 만드는 기법입니다.

    Watercolor Effect란?
    : 복잡한 장면이나 세부적인 디테일이 많은 장면에서 발생하는 미흡한 색상 렌더링 등을 숨기기 위해 일부러 디테일과 색상 측면에서 물체의 경계부분을 마치 물감으로 번지듯이 흐릿하고 불명확하게 만드는 기법입니다.

     

    2. Related Work

    이 부분에서는 이미지 복원 및 개선 작업에 관한 배경지식을 제공합니다.

    (궁금하신분들은 논문을 참고하시면 좋을 것 같습니다.)

     

    3. Zurich RAW to RGB dataset

    • 본 논문에서는 Raw Data에서 RGB image로 매핑문제를 해결하기 위해, 화웨이 P20 스마트폰과 Canon 5D Mark 카메라를 사용하여 약 20,000장의 이미지를 수집함
    • Raw Data는 P20의 12.3MP Sony Exmor IMX380 Bayer camera sensor에서 자동모드로 촬영하여 획득
    • 데이터는 몇 주 동안 다양한 장소에서, 여러 조명 및 날씨 조건에서 수집됨
    • 촬영된 Raw-RGB 이미지 쌍은 완벽하게 정렬되지 않았기 때문에 [20]의 절차를 사용하여 먼저 매칭 작업을 수행함
    • 이미지들은 SIFT 키포인트와 RANSAC 알고리즘을 사용하여 전역적으로 정렬시켰음

      "SIFT keypoint algorithm": 이미지의 크기, 밝기, 회전에 불변하는 특징을 추출하는 알고리즘입니다. 서로 다른 두 이미지에서 SIFT 특징을 각각 추출한 뒤, 서로 가장 비슷한 특징끼리 매칭해주면 두 이미지에서 대응되는 부분을 찾을 수 있습니다.
      "RANSAC algorithm": 이미지 정렬에서 outliers를 제거하고 두 이미지 사이의 정확한 변환 관계를 계산하는 알고리즘입니다. 

      결국, 본 논문에서 저자는 SIFT를 통해 매칭점을 생성하고(SIFT), 생성된 매칭점에서 잘못된 매칭점을 필터링한 뒤(RANSAC), 올바른 매칭을 기반으로 이미지를 정렬함으로 써 Raw-RGB 이미지 쌍을 완벽하게 정렬하였습니다!!

    Fig 1. SIFT keypoint algorithm example

     

    •  Sliding window 기법을 통해 448x448 크기의 작은 패치들이 Raw, RGB 이미지에서 각각 추출됨
    • 이 과정을 통해 48,043개의 Raw-RGB 이미지 쌍(448x448x1, 448x448x3 크기)이 생성되고 모델 학습에 사용됨

    4. Proposed Method

    Raw 이미지에서 RGB로 이미지를 매핑하기 위해 어떻게 아키텍처를 설계하였는지 설명해보겠습니다.

    • Raw에서 RGB로의 매핑은 global+local 이미지 수정이 필요함
    • global 이미지 수정은, 이미지의 밝기, 화이트 밸런스, 색상 재현과 같은 고수준 이미지 속성을 변경함
    • local 이미지 수정은, 텍스처 향상, 샤프닝, 노이즈 제거, 블러 제거와 같은 저수준 이미지 속성을 변경함
    • global 혹은 local 중 한가지를 대상으로 한 딥러닝 모델은 많지만, 두 가지 모두를 대상으로 하는 딥러닝 모델은 없음
    • 한가지를 대상으로 한 딥러닝 모델로 global+local 이미지 수정을 하면 다음과 같은 문제가 발생함
    • VGG, ResNet, DenseNet 기반 네트워크는 이미지를 크게 변경할 수 없고(global 불가능), U-Net이나 Pix2Pix 기반 네트워크는 local 이미지 개선에 적합하지 않음(local 불가능)
    • 이러한 문제를 해결하기 위해, 본 논문에서는 여러 스케일에서 이미지를 처리하고 학습된 global+local 특징을 결합하는 PyNet CNN 아키텍처를 제안함

    4.1 PyNet CNN Architecture

    Fig 2. PyNET model

    • 제안하는 아키텍처는 거꾸로된 피라미드 구조를 가지며, 다섯 가지의 스케일(level 1~5)에서 이미지를 처리함
    • 각 스케일(level 1~5)에서는 다양한 크기의 Conv filter(3x3~9x9)를 병렬로 사용하고 출력 결과를 결합해서 더 다양한 특징을 추출할 수 있게 함
    • 낮은 스케일(level 2~5)얻은 출력은 transposed conv layer를 통해 up-sampling되며, 높은 스케일(level 1)에서 얻은 출력과 결합됨
    • 각 conv 연산 이후 Leaky ReLU 활성화 함수를 적용하고, 출력 계층에서는 tanh 함수를 사용함
    • 낮은 스케일(level 2~5)에서 이미지를 처리하는 모든 conv 계층에는 인스턴스 정규화(instance normalization)이 사용됨
    인스턴스 정규화(instance normalization)? 
    :인스턴스 정규화는 네트워크가 이미지의 전역적인 특징을 학습하는데 도움을 주는 기법입니다. 본 논문에서는 낮은 스케일(level 2~5)에서 이미지의 전역적인 특징(밝기, 색상, 대비 등)을 더 잘 학습하기 위해 사용하였습니다. 
    • 결론적으로 낮은 스케일에서는 이미지의 전역적인 특징(색상 보정, 형태 및 윤곽, 명암비)을 학습하고, 높은 스케일에서는 이미지의 지역적인 특징(텍스처, 노이즈, 샤프닝, 지역적 색상보정, 미세한 형태보정)을 학습함

    4.2 Loss functions

    • level 4~5: 8배 및 16배로 다운스케일된 이미지를 처리하며, 주로 전역 색상 및 밝기/감마 보정하는 역할
    • level 2~3: 2배 및 4배로 다운스케일된 이미지를 처리하며, 주로 전역 콘텐츠 도메인에서 다양한 객체의 색상 및 형태를 의미적으로 이해하여 정제하는 역할임. VGG 기반 Perceptual Loss과 MSE Loss를 4:1로 사용함
    • level 1: 원본 이미지 크기에서 이미지를 처리하며, 주로 텍스처 향상, 노이즈 제거, 지역 색상 처리와 같은 local 이미지 수정을 하는 역할임. 다음 손실 함수를 사용해 학습함. VGG Loss는 세부 텍스처와 형태를 복원하기 위해 사용되고, SSIM Loss는 복원된 이미지의 동적 범위(danamic range)를 향상시키기 위해 사용되며, MSE Loss는 큰 색상편차를 방지하기 위해 사용됩니다.

     

    5. Experiments

    이 섹션에서는 제안된 네트워크의 정량적, 정성적 평가를 진행했습니다. 특히 다음 세가지 질문에 답하는 것을 목표로 실험을 진행했다고 합니다.

    • (1) 제안된 접근 방식이 다양한 이미지-이미지 매핑 문제에서 널리 사용되는 일반적인 딥러닝 모델들과 비교했을 때, 수치적 및 지각적으로 얼마나 잘 수행되었는가?
    • (2) 복원된 이미지의 품질이 화웨이 P20 카메라의 내장 ISP 시스템과 비교했을 때 얼마나 좋은가?
    • (3) 제안된 솔루션이 다른 휴대폰 카메라 센서에도 일반화될 수 있는가?

    위 질문에 대답하기 위해 저자는

    (1) SPADE, DPED, U-Net, Pix2Pix, SRGAN, VDSR, SRCNN을 포함한 다양한 딥러닝 모델들을 동일한 데이터로 학습시키고 결과를 비교했습니다.

    (2) 많은 사용자 연구를 통해 DSLR 사진, P20의 내장 ISP 파이프라인, 제안하는 방식으로 복원된 이미지를 평가했습니다.

    (3) 다른 기기의 Raw 이미지에 대해 사전 학습된 모델을 적용해보고, 제안된 방법이 다른 하드웨어에서 Raw 이미지를 복원할 수 있는지 테스트해봤습니다.

     

    5.1 Quantitative evaluation

    fig 3. Sample visual results obtained with the proposed deep learning method

    (1),(2),(3)은 각각 위 1,2,3번 질문에 답변하기 위한 실험내용입니다.

    이 섹션에서는 (1)"제안된 접근 방식이 다양한 이미지-이미지 매핑 문제에서 널리 사용되는 일반적인 딥러닝 모델들과 비교했을 때, 수치적 및 지각적으로 얼마나 잘 수행되었는가?" 와 (2) 질문에 답변하기 위한 실험을 진행하였습니다.

    • (2)화웨이 P20의 내장 ISP와 비교했을 때, 복원된 이미지의 색상이 더 밝고 local texture가 더 자연스러움
    • (2)그러나 확대된 이미지를 보면 샤프니스가 약간 떨어지는것을 확인할 수 있으며, 이는 P20 휴대폰의 두번째 20MP 흑백 카메라 센서가 이미지 샤프닝에 사용되기 때문임
      (화웨이 P20 휴대폰에는 일반 카메라 센서, 흑백 카메라 센서 총 2개가 존재함. 그러나 흑백 카메라 센서는 API로 접근할 수 없어서 모델 학습에 흑백이미지를 사용할 수 없었음)
    • (2)복원한 이미지와 화웨이 ISP 이미지는 전반적으로 비슷했지만 DSLR 이미지의 품질보다는 떨어졌음

    표 1. Average PSNR/SSIM results on test images

    • (1) 표 1은 Raw에서 RGB로 매핑된 데이터셋의 테스트 이미지에 대한 다양한 딥러닝 아키텍처로 얻은 PSNR, MS-SSIM 점수임
    • (1) 모든 모델은 총 두종류로 학습됨. 하나는 원본 손실함수를 이용하여 학습하였고, 다른 하나는 PyNet 손실함수를 이용하여 학습하고 각 경우에서 최고의 결과를 선택함
    • 결과적으로 PyNet이 다른 모든 모델들보다 PSNR, MS-SSIM에서 좋은 성능을 보여줌

    5.2 User Study

    이 섹션에서는 (2)"복원된 이미지의 품질이 화웨이 P20 카메라의 내장 ISP 시스템과 비교했을 때 얼마나 좋은가?" 질문에 답변하기 위한 실험을 진행하였습니다.

    표 2. 생성된 이미지에 대한 사용자 평가

    • (2) Canon 6D Mark IV DSLR 카메라로 촬영한 이미지(reference)와 생성된 3개의 이미지(Raw 이미지, 화웨이 P20 내장 ISP 이미지, PyNet으로 복원한 이미지)를 사용자에게 보여주고 생성된 이미지의 품질을 평가함
    • (2) 1 - ‘much worse’, 2 - ‘worse’, 3 - ‘comparable’, 4 - ‘better’, and 5 - ‘much better’ (image quality than the DSLR reference image)
    • (2) 총 20명의 서로 다른 참가자로부터 약 5,000개의 평가의견을 수집하였고, 결과는 표 2와 같음

    5.3 Generalization to Other Camera Sensors

    이 섹션에서는 (3)"제안된 솔루션이 다른 휴대폰 카메라 센서에도 일반화될 수 있는가?" 질문에 답변하기 위한 실험을 진행하였습니다.

    fig 4. Image crops from the BlackBerry KeyOne RAW, reconstructed and ISP images, respectively

    • BlackBerry KeyOne 스마트폰에서 촬영한 Raw 이미지에 PyNet을 적용해보았고, 결과는 그림 4와 같음
    • PyNet은 이미지를 정확히 복원했고, BlackBerry의 내장 ISP가 복원하지 못한 여러 색상 음영까지 복원해냈음
    • BlackBerry의 내장 ISP 이미지의 세부 사항이 약간 더 많지만 PyNet은 Raw 이미지에 존재하는 대부분의 노이즈를 제거하였음
    • 비록 노출 및 샤프니스에서 약간의 문제가 있지만, 이 모델은 해당 카메라 센서 모듈을 학습하지 않았기 때문에, 그에 맞게 PyNET을 조정하면 훨씬 더 나은 결과를 기대할 수 있을것임

    6. Conclusion

    이 논문은 깊은 광학적 지식이나 센서에 대한 이해 없이도 ISP의 기능을 딥러닝으로 구현해낸 꽤 신박한 논문이었습니다. 제가 이 논문을 읽고 내린 결론은 다음과 같습니다.

    • 사실 ISP가 딥러닝 영상처리보다 속도측면에서 월등해서 지금까지 저수준 이미지를 주로 ISP로 처리하였지만, 모델 경량화, 모델 연산 최적화 등의 기법과 NPU등을 활용하면 ISP와 비슷한 속도로 이미지를 처리할 수 있을 것으로 생각됩니다!
    • ISP를 정말 잘 개발하는 대기업(SONY, Omnivision 등)들과 동일한 프로세스로 ISP를 개발하려면 정말 많은 Cost가 소모되므로, 이러한 딥러닝 기반 method로 대기업과 비슷한 수준의 ISP 기능을 소프트웨어로 대체한다면, 경쟁력있는 카메라 제품을 생산할 수 있을 것 같습니다!

    이 논문을 읽으면서 카메라 ISP와 펌웨어, 저수준 이미지처리에 대해서 알게 되었습니다. 그리고 제가 3D 카메라 개발 프로젝트에 사용하는 SONY IMX 이미지 센서에는 이미 ISP가 꽤 잘 구현되어 있으므로, 그대로 사용하고 HDR 기능 구현에 더 힘쓰기로 결정했습니다!!