안녕하세요 오늘 올리는 논문 리뷰는 ISP(Image Signal Processing
에 관한 논문입니다. 쉽게 RAW to RGB라고 합니다! 이 논문은 RAW Bayer data를 가지고 RGB data로 바꾸는 것에 Deep Learning을 적용 하였고, Project 👈 이 깃허브 페이지에 실제 코드도 수행 가능하게 되어있습니다! 논문의 이해를 위해 ISP와 RAW data, SIFT에 대한 설명도 간략하게 적어놓았습니다.
이 논문은 Mobile Camera의 ISP(Image Signal Processing)에 관련한 논문이다.
ISP란 Image Signal Processing의 줄임말로서, 카메라의 센서로 붙어 입력 받은 RAW 데이터를 처리하는 과정을 의미한다.
핸드폰 카메라는 보통 CMOS 센서를 통해 영상을 입력받는다. 이 CMOS 센서는 영상을 RAW Bayer data로 입력을 받게 되는데, RAW Bayer data란 하나의 픽셀이 R,G,B 값의 interpolation으로 이루어진 것이 아닌 각 R, G, B값 1개씩 이루어져 있는 data이다. 이렇게 데이터를 저장하는 이유는 최대한 색감을 표현하기 위함이다.
이미지의 크기와 회전에 불변하는 특징을 추출하는 알고리즘. 서로 다른 두 이미지에서 SIFT 특징을 각각 추출한 다음에 서로 가장 비슷한 특징끼리 매칭해주면 두 이미지에서 대응되는 부분을 찾을 수 있다는 것이 기본 원리.
RANdom SAmple Consensus의 약자. SIFT 알고리즘을 적용한 후 가장 마지막에 사용. 측정 노이즈(Noise)가 심한 원본 데이터로부터 모델 파라메터를 예측하는 방법. 측정 된 원본 데이터 중에는 Noise(Outlier)가 포함되어 있다. 이 Algorithm은 이러한 Outlier를 제거하는 방법이다. 이를 위해서는 Data Set으로 부터 수학적 모델을 찾아야 하는데, 이 RANSAC는 수학적 모델을 결정하는 데 있어 초기 데이터를 최소로 이용한다. 그리고, 일관된 데이터의 집합을 확장시켜 나아가면서 해를 예측한다.
최근 mobile photography의 인기가 증가하면서, hand-crafted camera ISP solutions에 많은 신경을 쓰게 되었다. 그래서 이 논문에서는 복잡한 ISP pipelines가 single end-to-end deep learning model로 대체될 수 있다는 것을 보여주고자 한다.
이 논문에서 제안하고 있는 PyNet은 Image demosaicing, denoising, white balancing, color, contrast correction, demoireing등의 모든 ISP 단계를 수행하기 위해 학습 된 pyramidal CNN architecture이다. 이 모델(PyNet)은 mobile camera sensor로부터 직접 얻은 RAW Bayer data를 DSLR 카메라로 촬영 한 사진처럼 변환하도록 training되었다.
제안한 방법을 real data에서 validate하기위해, 저자들은 10만장의 Huawei P20 카메라폰과 Canon 5D Mark IV DSLR로 촬영 된 full-resolution RAW-RGB image pairs datasets을 모았다고 한다.
Experiments에서는 제안하는 solution이 기존 phone에서 사용하는 camera sensor를 이용한 ISP pipeline 수준에 쉽게 도달한다는 것을 보여준다.
예전의 mobile camera는 매우 낮은 photo quality를 제공하고 있었지만, 2010년대 이후 mobile camera의 powerful한 hardware를 이용한 ISP를 통해 resolution과 quality가 향상되었다. 이 이후로 스마트폰과 일반 카메라들로 촬영 된 사진 품질 차이가 급격히 줄어들고 있다.
최근의 mobile ISP는 image demosaicing, white balance, exposure correction, denoising, sharpening, color and gamma correction과 같은 low-level이고 global한 image processing task를 sequentially하게 풀어내기 위해 복잡한 software system이 되었다.
하지만 software stack의 발전에도 불구하고 mobile cameras의 hardware적인 문제는 여전히 남아있다. Mobile camera의 작은 sensor와 compact한 lenses는 detail 손실과 noise, 좋지 않은 color rendering 문제를 발생시킨다.
현재의 classical한 ISP system은 여전히 위와 같은 문제들을 다룰 수 없기 때문에, photos를 flattening하여 숨기거나, Figure 2와 같이 "watercolor effect"를 적용한다.
이 논문에서는 한 개의 deep learning model을 사용하여 전체적인 ISP pipeline을 학습하는 것을 제안한다. 이를 위해 이 논문에서는 camera sensor로부터 얻은 RAW Bayer data를 high-quality RGB image로 mapping하는 것을 학습 하기 위한 architecture를 보여준다.
기존의 모바일 ISP가 high-quality photos를 생성할 수 없으므로, 이 논문의 저자들은 Cannon 5D Mark IV DSLR 카메라로 선명한 노이즈가 없는 고해상도의 RGB images를 수집하였고, Huawei P20 cameraphone으로 RAW images를 수집하여 약 10만장의 RAW (phone) / RGB (DSLR) image photo pairs의 data를 만들었다.
🎈CONTRIBUTION
실제 RAW-RGB 이미지 매핑의 문제는 문헌에서 다루어지지 않았지만, 지난 몇 년 동안 다양한 이미지 restoration 및 enhance 작업을 다루는 많은 작업이 제안되었다. Image super-resolution은 이미지의 resolution과 sharpness를 증가시키기 위한 classical한 image reconstruction 문제이다. 또한 Image deblurring과 denoising은 사진의 blur와 noise를 제거하기 위한 방법이다. CNN-based의 image contrast enhancement를 위한 방법이나, image color와 tone corrections을 위한 deep-learning solution, HDR image를 위한 tone mapping algorithms들과 같은 algorithm들이 제안되어 왔다.
smartphone 사진의 low-quality를 high-end reflex camera로 얻은 superior-quality images로 mapping시켜 enhance시키기 위해 제안된 방법들[1, 2]도 있다.
DPED dataset(http://people.ee.ethz.ch/~ihnatova/)은 많은 suqsequent works들에서 사용되며 이런 mobile camera의 문제 해결 성능이 향상되었다.
Image demosaicing, denoising, white balancing, color correction등을 해결하기 위한 다양한 classical한 접근법들이 있으나, 이를 해결하기 위한 deep learning model에 관한 작업은 얼마 되지 않는다.
RAW에서 RGB로 mapping하는 문제의 real data를 얻기 위해서 20만장의 사진을 collect했다. 이 사진들은 Huawei P20 smartphone을 이용하여 얻은 RAW photos( + Huawei의 내장 ISP를 이용해 얻은 RGB images)와 professional한 Canon 5D Mark IV 카메라(Canon EF 24mm f/1.4L fast lens)를 이용해 얻었다. 예시는 아래의 Figure 3과 같다.
촬영 된 RAW-RGB image paris는 정확하게 aligned되어있지 않기 때문에 [3]의 절차를 통해 두 data를 matching시켰다. 이미지들은 SIFT keypoints와 RANSAC algorithms을 이용하여 정렬된다. 그리고448 X 448 사이즈의 작은 patch를 추출하여 RAW-RGB pair한 images를 얻었다.
RAW에서 RGB로 mapping하는 문제는 보통 global과 local image modification 모두 포함한다. 첫 번째는 image content와 high level 속성들(brightness, white balance, color rendition)을 수정하는 반면 low-level processing은 texture enhancement, sharpening, noise removal, deblurring과 같은 작업을 필요로한다. 더 중요한 것은, global과 local modification사이의 상호작용이 있어야 한다는 것이다. 예를 들어, content의 이해는 texture processing이나 local color correction과 같은 task에서 중요하다. global과 local 두 가지 문제 유형 중 하나를 대상으로하는 딥 러닝 모델이 많이 있지만 RAW-RGB 매핑 또는 일반적인 이미지 향상 작업에 대한 응용 프로그램이 다음과 같은 문제가 있다.
VGG, ResNet, DenseNet based networks들은 image의 significantly를 수정할 수 없으며, U-Net이나 Pix2Pix와 같은 architectures는 local image properties를 향상시키는 것에 좋지 못하다.
위와 같은 문제들을 위해, 이 논문에서는 다른 스케일에서의 이미지 처리와 global과 local features를 함께 학습하여 결합시킨 proPyNet CNN architecture를 제안한다.
Figure 4는 제안한 model에 대한 이미지이다. Model은 inverted pyramidal shape를 가지고 있으며, 5개의 다른 scale에서 image를 처리한다. 제안된 구조는 각기 다른 convolutional fiters를 가지고 병렬적으로 feature map을 처리하는 block들로 구성이 되어있으며, 각 outputs는 concatenated되어 각 level에서의 features가 더 다양하게 학습될 수 있도록 한다. 낮은 scale에서 얻은 feature는 transposed convolutional layer를 통해 upsampled되며, activation function으로는 Leaky ReLU가 사용되었고, output layer는 tanh function을 사용하였다.
model은 가장 낮은 layer에서부터 순차적으로 학습되었다. 이는 매우 낮은 resolution의 이미지로 작업하고 global image manipulation을 수행하는 좋은 이미지 restoration결과를 얻게 하였다.
bottom layer가 pre-trained되면 같은 절차를 통해 다음level도 training되는 방식으로 학습을 진행한다. 위로 올라갈수록 low-level에서 놓친 details를 reconstruct하는 것과 results를 refines하는 것을 학습한다. (모든 Level은 224X224X4의 image를 결과로 가진다.)
이 논문에서는 RAW to RGB mapping problem에 대한 quantitative & qualitative performance를 측정하였다. 특히, 제안하고 있는 논문의 목표는 다음과 같은 세가지 question에 대한 대답이다.
이를 위해 이 논문에서는 SPADE, DPED, U-Net, Pix2Pix, SRGAN, VDSR, SRCNN의 deep learing model을 같은 data를 가지고 학습시켰으며, 그 결과를 측정하였다.
또한 이 논문에서는 DSLR 사진과 P20의 내장 ISP 사진, 그리고 제안하는 방법을 통해 얻은 사진을 가지고 user study를 진행하였다.
마지막으로 pre-trained한 model을 BlackBerry KeyOne smartphone의 RAW data에 적용시켜보았다.
제안하는 논문은 Figure 5와 같이 PyNET의 visual result를 확인하였다. Huawei의 ISP로 얻은 결과와 비교하면, 제안하는 방법이 더 밝은 color를 가지고, 더 자연스러운 local texture를 가지지만, 확대된 이미지에서 선명도는 낮다. 제안하는 논문에서는 이 이유가 P20의 camera sensor때문일 것이라고 하고 있다. 제안하는 방법과 Huawei's ISP는 비교할만 하지만, 두 result 모두 DSLR 결과의 color와 texture quality에 비해서는 좋지 못하였다.
다양한 Deep learning model과 비교한 quantitative 결과는 위의 table과 같다. test는 RAW to RGB mapping dataset을 이용하였다. 모든 deep learning model들은 original loss function과 PyNET training에 사용 된 loss function으로 두번씩 학습 되었으며, 둘 중 best 결과를 선택하였다. PyNET CNN은 다른 model들에 비해 PSNR과 MS-SSIM수치 모두 높았다.
visual result 비교는 Figure 6과 같다. VDSR과 SRCNN network는 좋은color reconstruction을 갖지 못했다. SRGAN과 U-Net은 너무 어둡고 흐릿한 color를 보였고, Pix2Pix는 정확한 color rendering에 대한 중요한 문제가 있었다. (tone의 외곡 때문에 부자연스럽게 보였다.) DPED model은 앞의 모델들에 비해 훨씬 더 좋은 image reconstruction 결과를 보였지만, yellow계열의 색을 보이고 vividness가 부족했다. SPADE architecture는 임의의 resolution에서 이미지를 처리할 수 없었다.
제안하는 논문은 Amazon Mechanical Turk platform을 이용하여 user study를 진행하였으며 그 결과는 위의 Table 2와 같다. User study를 위해서 제안하는 논문은 raw input image를 random으로 골랐으며, Visualized RAW와 Huawei P20 ISP, PyNET, DSLR image를 보여주었다. MOS결과는 DSLR이 가장 높고, 다음으로 PyNET이 높았다.
제안하는 deep learning model이 특정한 device model / camera sensor를 이용해 학습이 되었기 떄문에 추가적으로 다른 smartphone에서 test를 해보았다. 이를 위해 저자는 BlackBerry KeyOne smartphone의 image를 얻었다(제안하는 논문의 data와 다른 camera sensor와 optical system을 가지고 있어서 채택하였다고 함). FIgure 8과 같이 PyNET은 BlackBerry의 ISP에 비해서도 괜찮은 결과를 보였다.
https://arxiv.org/pdf/1810.01109.pdf : 스마트폰 관련 AI
http://blog.daum.net/trts1004/12108872 : ISP
https://bskyvision.com/21 : SIFT 알고리즘
[1] Andrey Ignatov, Nikolay Kobyshev, Radu Timofte, Kenneth Vanhoey, and Luc Van Gool. Dslr-quality photos on mobile devices with deep convolutional networks. In the IEEE Int. Conf. on Computer Vision (ICCV), 2017. 2, 3, 5, 6
[2] Andrey Ignatov, Nikolay Kobyshev, Radu Timofte, Kenneth Vanhoey, and Luc Van Gool. Wespe: weakly supervised photo enhancer for digital cameras. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, pages 691–700, 2018. 2
[3] Andrey Ignatov, Nikolay Kobyshev, Radu Timofte, Kenneth Vanhoey, and Luc Van Gool. Dslr-quality photos on mobile devices with deep convolutional networks. In the IEEE Int. Conf. on Computer Vision (ICCV), 2017. 2, 3, 5, 6