논문 리뷰

[논문리뷰]RawHDR: Raw 데이터로부터 HDR 이미지 복원하기

dohyeon2 2024. 9. 25. 10:18

목차

    안녕하세요 윤도현입니다. 오늘 소개할 논문은 2023년 ICCV에 개제된 RawHDR: High Dynamic Range Image Reconstruction from a Single Raw Image 이라는 논문입니다.

     

    제가 이 논문을 리뷰하는 이유는 최근 제가 진행중인 3D Depth Camera 개발 프로젝트에서 조명 바로 밑 영역은 하얗게 표현되고 조명과 멀리 떨어져 있거나 구조물에 의해 그림자가 생긴 영역은 검정색으로 표현되어 물체 식별이 불가능한 문제가 발생했기 때문입니다. 이런 문제는 HDR(High Dynamic Range) 복원을 통해 해결할 수 있는데요. 이에 대한 기본적인 배경지식은 아래 글을 참고해주시면 감사하겠습니다.

    https://dohyeon.tistory.com/96

     

    [논문리뷰]HDRUNet: 단일 프레임 HDR 챌린지 SOTA

    안녕하세요 윤도현입니다. 오늘 소개할 논문은 HDRUNet: Single Image HDR Reconstruction with Denoising and Dequantization 일명 HDRUNet입니다. HDRUNet은 2021년 CVPR NTIRE High Dynamic Range Challenge - Single Frame Track에서 무려

    dohyeon.tistory.com

     

    1. Introduction

    HDR 이미지를 얻는 방법은 크게 다중 노출, 단일 노출 이미지로부터 HDR 이미지를 복원하거나 새로운 카메라 센서를 사용하는 방법 총 세 가지로 으로 나눌 수 있습니다. 새로운 카메라 센서를 사용하는 방법은 제외하고 설명드리겠습니다. 첫째, 다중 노출 이미지를 결합하여 HDR 이미지를 복원하는 방법은 복원된 이미지의 품질이 노출 간 정렬에 크게 의존했기 때문에 정렬이 완벽하지 않으면 고스트 효과가 발생했습니다.

    고스트 효과(Ghost effect)란?
    : 고스트 효과(Ghosting effect)는 여러 노출값으로 촬영된 이미지들을 결합한 HDR(High Dynamic Range) 이미지나 동영상을 생성할 때 발생하는 현상을 말합니다. 다중 노출 이미지를 사용하여 HDR 이미지를 만들 때, 각 이미지가 서로 완벽히 정렬되지 않거나 장면 내에 움직이는 물체가 있는 경우, 합성된 이미지에서 물체의 위치가 중복되거나 겹쳐진 형태로 나타나게 됩니다. 이러한 현상을 "고스트 효과"라고 부릅니다.
    예를 들어, 사람이 빠르게 뛰고 있는 장면에서 여러 노출의 이미지를 촬영하고 결합하면, 사람이 이동한 위치마다 겹쳐 보이게 되고 결과적으로 무서운 심령사진을 얻게 됩니다...!! ㅎㅎ

     

    이러한 정렬 실패로 인한 고스트 효과를 피하기 위해 둘째, 단일 노출 이미지로부터 HDR 이미지를 복원하는 방법이 도입되었습니다. 그러나 카메라의 Dynamic Range의 물리적 한계 때문에 다중 노출 이미지로부터 복원하는 것보다 더 어려운 과제였습니다. 결과적으로 저노출 영역은 종종 노이즈가 발생하였고, 과노출 영역은 복구가 안되는 문제들이 있었는데요. 본 논문에서 저자가 이는 low-bit sRGB 이미지를 사용했기 때문이라고 지적합니다. sRGB 이미지는 카메라 pipe line을 거치는 과정에서 많은 세부정보를 잃기 때문에 HDR 이미지를 복원하는데 적합하지 않다고 했습니다. 

    fig 1. The RGB/Raw/HDR images of the darkest (first row) and brightest (second row) regions in a high dynamic scene

     

    위 그림 1을 보면, Raw 이미지가 sRGB 이미지보다 복잡한 장면에서 더 많은 세부정보를 갖고 있는 것을 확인할 수 있습니다!  

    그래서 저자는 이렇게 상대적으로 정보가 풍부한 Raw 이미지로부터 HDR 이미지를 복원하는 방법을 제안하였습니다.

    저자가 설명하는 Raw to HDR method를 간단하게 설명하면 다음과 같습니다. 

    • 모델 훈련 및 평가를 위한 Raw/HDR 쌍 데이터셋 수집
    • 노출 마스크를 학습하여 각 장면의 저노출 및 과노출 영역을 적응적으로 분리
    • Raw 이미지의 채널별 속성에 기반한 이중 강도 가이던스와 더 넓은 범위의 정보를 잘 활용하기 위한 글로벌 공간 가이던스 사용

    이를 통해 단일 노출 Raw 이미지로부터 HDR 이미지를 복원하였고, 지난번 리뷰했던 'HDRUNet' 보다 우수한 PSNR 수치를 얻었다고 합니다.

    2. Related Work

    이 부분에서는 다중 이미지 HDR 복원과 단일 이미지 HDR 복원방법에 대한 배경지식을 제공합니다.

    2.1 다중 이미지로부터 HDR 복원

    • 초기에 많은 연구는 다중 이미지를 결합(merge)하여 HDR 이미지를 복원하였음
    • 다중 이미지로부터 HDR 복원하는 방법은 여러 이미지를 정확히 정렬(align)하는 것이 가장 중요함
    • Kalantari et al. 연구진들은 다중 노출 이미지들 중에서 중간 노출 이미지를 reference로 설정하고, flow warping을 통해 reference 이미지에 정렬한 뒤, 정렬된 LDR 이미지를 HDR 이미지로 매핑하는 방법을 심층 신경망에 학습시킴
    • peng et al. 연구진들은 FlowNet과 같은 고급 optical-flow 기법을 사용해서 이미지들을 정렬한 뒤 HDR 이미지를 복원함
    • 그러나 이러한 모든 방법들은 extream High Dynamic 장면에서 정렬이 어렵다는 단점이 있기 때문에 정지된 장면에서 주로 사용됨

    2.2 단일 이미지로부터 HDR 복원

    • 다중 이미지 HDR의 정렬 문제로 인해, 단일 이미지로부터 HDR을 복원하는 연구가 많이 진행됨
    • 전통적인 단일 이미지 HDR 연구는 광원의 밀도를 추정하여 Dynamic Range를 확장하는 방법을 제안함
    • 최근에는 딥러닝(CNN)을 활용하여 단일 이미지로부터 HDR 이미지를 복원하는 연구가 많이 진행됨
    • HDRCNN과 ExpandNet은 LDR에서 HDR로의 매핑을 end-to-end 방식으로 직접 학습하는 방식을 제안함
    • HDRUNet과 SingleHDR은 카메라 센서가 LDR 이미지를 생성할 때의 물리적 과정이나 특성(비선형화, 클리핑, 감도 부족)을 이해하고 이를 기반으로 네트워크를 설계함
    • 구체적으로, LDR 이미지는 어두운 영역에서 노이즈가 많고, 밝은 영역에서 과노출로 인해 세부 정보가 손실됨. 이를 보정하기 위해 HDRUNet과 SingleHDR은 이런 특성들을 물리적으로 분석하고 그 특성에 맞게 네트워크를 설계함

    3. Method

    이번 섹션에서는 본 논문의 초기 motivation과 RawHDR 모델의 네트워크 아키텍처에 대해 설명합니다.

     

    3.1 Motivation 

    • 기존 단일 노출 이미지 HDR 복원 방법은 low-bit sRGB 이미지로부터 복원하는데 초점을 두었음
    • 그러나 extream High Dynamic scenes에서는 복잡한 영역을 처리하는데 한계점을 보임
    • 이는 카메라 내부 신호 처리 과정에서 발생하는 비가역적이고 손실이 많은 작업들(비선형화, 클리핑, 압축 및 양자화 등) 때문임
    •  또한 이러한 작업들은 이미지 캡처과정 자체를 최적화 하기보다, 이미 캡처된 LDR 이미지를 개선하는데 초점을 두었음
    • High Dynamic scens에서 발생하는 이러한 문제점들을 극복하고자 새로운 복원 방법과 새로운 데이터세팅을 계획함
    • sRGB 이미지에서 발생하는 정보손실과 충분하지 못한 디테일 문제를 해결하기 위해, 저자는 처리되지 않은 Raw 이미지 데이터를 사용함(Raw 이미지 데이터는 더 높은 bit-depth를 갖고 있기 때문!!)
    Bit-depth란?
    : Bit-depth란 디지털 이미지, 오디오, 비디오 등에서 각 픽셀이나 샘플이 표현할 수 있는 정보의 양을 나타내는 단위를 말합니다.
    이미지의 경우, bit-depth는 한 픽셀당 사용할 수 있는 비트 수를 말하고, 이 값은 색상이나 밝기를 얼마나 세밀하게 표현할 수 있는지 결정합니다.
    • 또한 저자는 Raw 이미지를 직접적으로 HDR 복원하므로, 이러한 작업은 카메라 펌웨어 단으로 통합될 가능성이 있다고 말합니다.
      (딥러닝 기반 이미지 처리의 최대 단점인 펌웨어와 비교했을 때 상대적으로 느린 처리속도를 극복할 수 있다는 뜻이므로 엄청난 장점이라고 할 수 있을 것 같습니다.)

    fig 2. Analysis for the channel-wise attributes of Raw images

    • 저자가 Raw-HDR 모델을 설계할 때 주목한 건 바로 Raw 공간에서 이미지 채널에 따라 강도값이 달라진다는 점이었음
    • 그림 2를 보면, 상업용 카메라(Canon 5D ll)로 이미지를 캡처할 때 빛의 세기에 따른 출력 픽셀값(이미지에서 R,G,B), 즉 채널에 따른 빛에 대한 민감도를 얻었음
    • 결과적으로 Raw 이미지에서 녹색 채널이 빛에 대한 민감도가 가장 컸음
    • 이 말은 즉, 녹색 채널은 밝은 영역(High Danamic)에서 카메라 Danamic Range의 물리적 상한선 때문에 정보가 손실될 가능성이 가장 크다는 것을 뜻함!!
    • 또한, 빨간색과 파란색은 어두운 영역(Low Danamic)에서 카메라 Danamic Range의 물리적 하한선 때문에 정보가 손실될 가능성이 크다는 것을 뜻함!!
    • 저자는 이러한 채널별 특성을 활용해서 더 많은 정보를 가지고 있는 채널이 다른 채널을 안내하도록 하였음
    • 예를들어, 밝은 영역에서는 빨간색,파란색 채널이 녹색 채널을 안내하도록 하고, 어두운 영역에서는 녹색 채널이 빨간색과 파란색 채널을 안내하도록 하였음

    사실 저도 Block Matching Algorithm을 이용하여 Depth map을 얻을 때 Raw 이미지를 사용해서 성능향상을 얻었던 기억이 있습니다.  그땐, Raw 이미지가 인코딩 되지 않고 많은 세부정보를 가지고 있으니까~ 라고 막연하게 생각하였는데 이 부분을 읽으면서 Raw 이미지 데이터의 특성을 자세히 알게되었던 것 같습니다.

     

    3.2 Model Architecture

    본 논문의 Raw to HDR 복원과정은 다음과 같이 수식화 할 수 있습니다.

    formula 1. HDR image reconstruction function

    • R: Raw image
    • f(·,θ): deep neural network model
    • H: HDR image
    • θ: network parameter

    또한 전체적인 모델 아키텍처는 다음과 같습니다. 순서대로 설명해보겠습니다.

    fig 3. The overview of our HDR reconstruction method with dual intensity and global spatial guidance

     

    1. Mask estimation module: over/under/well-exposed area를 나누는 노출 마스크 학습
    2. Dual intensity guidance module: Raw 이미지 채널별 강도 속성에 기반하여 밝은 영역(High Danamic)에서는 파란색, 빨간색 채널을 가이드로 두고, 어두운 영역(Low Danamic)에서는 녹색 채널을 가이드로 두는 이중 강도 지침(dual intensity guidance) 제시
    3. Global spatial guidance module: 더 긴 범위의 공간 특징을 사용하기 위해 transformer based model 사용

    Mask estimation module

    • LDR 이미지와 달리, HDR 이미지는 밝은 영역과 어두운 영역의 디테일 정보를 포함하고 있음
    • 이러한 영역에 맞춤형 작업을 수행하기 위해, over/under/well-exposed 영역을 구분할 수 있는 마스크를 찾아야 함
    • 본 논문에서는 학습 가능한 마스크를 사용하여 각 영역을 분리하고, 영역에 따라 다른 작업을 수행함
    • 기존 연구들은 수동으로 설정된 임계값을 사용하여 마스크를 얻었음
    • 예를들어, 강도가 0.95를 초과하는 영역을 과노출로, 0.05 미만은 저노출로 분류한 뒤 이러한 임계값으로 블랜딩 마스크를 생성하였음
    • 하지만 이러한 방법은 부드러운 영역(이미지에서 색상, 명암, 밝기가 서서히 변화하는 부분)에서 이상한 경계 아티펙트를 초래하는 문제점이 있었음
    • 이러한 문제점을 해결하기 위해 저자는 심층 신경망을 사용하여 노출 마스크를 예측하였음
    • 픽셀별 강도+지역적인 특징을 결합하여 마스크를 생성하고 노출 영역을 분리하였음
    • 마스크 추정 과정은 다음과 같음

    formula 2. 마스크 추정 공식

    • S: 시그모이드 함수
    • Pu 저노출 마스크 예측 네트워크
    • R: Raw 이미지
    • 실험에서 Po와 Pu를 구현하기 위해 간단히 두개의 잔차 블록을 사용하였음
    • 가 높은 강도 값에서 1에 가깝고, M_under가 낮은 강도 값에서 1에 가까워지도록 하기 위해, 저자는 마스크 학습을 위한 제약 손실 L_mask을 설계하였음

    Dual guidance module

    • 현대 카메라는 일반적으로 CMOS에서 Bayer pattern을 사용하기 때문에, 녹색 센서가 다른 색상 센서에 비해 더 많은 빛을 받음
    • 결과적으로 Raw 이미지에서 녹색 채널이 높은 픽셀 강도를 갖고 빨간색, 파란색 채널은 낮은 픽셀 강도를 갖게됨
    Bayer pattern이란? 
    : 이미지 센서의 각 화소는 실제로는 칼라(color)를 감지하는 화소가 아닌 단지 흑백의 밝기만을 감지하는 monochrome 화소이며 R, G, B 필터중 어느 하나와 결합된 형태입니다.즉, 이미지 센서는 화소수 만큼 배열된 mono 셀들 위에 R, G, B 색상 필터들이 특정한 패턴을 가지고 배치된 것이라고 볼 수 있습니다. 여기서 R 필터는 red만을, G 필터는 green만을, B 필터는 blue 만을 투과시키는 광학필터입니다.

    전통적인 CMOS, CCD 이미지 센서에서는 R, G, B 필터들이 일정한 패턴을 가지고 배치되는데, 인간의 시각 특성을 따라서 G가 50%, R과 B가 각각 25%가 되도록 아래 그림과 같이 교차 배치되며 이를 베이어 패턴(Bayer pattern)이라 부릅니다.

    이와 같이 실제 이미지 센서는 각 화소에서 R, G, B 중 어느 한 색만을 감지할 수 있지만, 우리가 보는 카메라 영상에서는 각 화소마다 R,G,B 전체 색상을 보여줍니다.
    이것이 가능한 이유는 소프트웨어적으로 각 화소마다 주변 셀들의 색상값을 보간(interpolation)하여 색을 구성하기 때문입니다.

     

    fig 4. 이미지 센서의 필터구조
    fig 5. Bayer pattern filter

    • 그렇다면 이러한 특징을 어떻게 활용할 수 있을까요?! 저자는 이러한 특징을 활용해서 저노출 영역에서는 녹색 채널이 다른 채널들을 가이드하도록 하고, 고노출 영역에서는 빨간색, 파란색 채널이 녹색 채널을 가이드하도록 했습니다.
    • 이렇게 고노출에서 녹색-> 빨강,파랑을 가이드하고, 저노출에서 빨강,파랑이 녹색을 가이드하는 이중 구조의 가이드 모듈을 도입했습니다!

    Global spatial module

    • 앞선 이중 강도 가이던스 모듈은 채널 단위의 가이던스 관점으로 만들어짐. 즉, 더 정보가 많은 채널이 정보가 적은 채널을 픽셀 단위로 안내하는 방식이었음
    • 하지만 '매우 복잡한 영역'에서는 가장 정보가 많은 채널조차도 정보가 충분하지 않을 수 있음
    • 이런 경우, '매우 복잡한 영역'과 유사한 영역이 도움이 될 수 있으므로, U-Net과 유사한 트랜스포머 구조를 사용하여 '매우 복잡한 영역'과 유사한 패치를 찾아 HDR 이미지를 복원함
    • 더 자세하게 설명하면, LeWin(Locally-enhanced Window) 블록 -> 다운샘플링 -> LeWin 블록-> 업샘플링->LeWin 블록을 거침
    • LeWin 블록에서는 각 윈도우 내에서 어텐션 연산을 하고, 픽셀들 간의 상관관계를 획득함
    • 업/다운샘플링 작업을 통해 이미지의 크기를 변경하며 전역적인 특징을 뽑아냄
    • 이 LeWin 블록과 업/다운 샘플링을 통해 넓은 영역에서 유사한 패치들을 효과적으로 찾을 수 있게됨!!

    3.3 Learning Details

    • L1, L2 손실함수는 밝은(높은 강도 값을 가진) 영역에 크게 영향을 받는 경향이 있음
    • 이를 해결하기 위해 저자는 log 공간에서 L2 손실함수를 계산하여 재구성 충실도를 평가함

    • Ht: Raw 이미지로부터 복원된 HDR 이미지(예측값)
    • Ht^: Ground truth HDR 이미지(실제값)
    • T: 총 훈련 샘플 수
    • 고수준의 구조적인 유사성을 보장하기 위해 학습된 지각적 이미지 패치 유사성도 함께 평가함
    • 마스크 학습에 대한 제약 손실(과노출, 저노출, 적절한 노출 영역)을 구분하는 노출 마스크 손실
    • 결론적으로 전체 손실함수는 재구성 손실, 구조적 유사성 손실, 마스크 손실 3가지 항으로 구성됨

     

     

    4. The Proposed Raw-to-HDR Dataset

    • 기존 데이터셋은 주로 HDR 이미지나  sRGB-HDR 페어링 이미지 데이터셋밖에 없었음
    • 그래서 저자가 직접 Raw-HDR 페어링 이미지 데이터셋을 구축함
    • 카메라 브라켓 노출 모드로 설정-> -3EV, 0EV, +3EV 세 가지 노출 값으로 이미지 캡처하여 총 3장의 이미지 캡처
    • 3 장의 이미지를 가지고 전통적인 HDR 병합 방법을 사용하여 Ground truth HDR 이미지 생성

    fig 6. 전통적인 HDR 이미지 생성방법

    • Canon 5D Mark IV 카메라로 총 324 쌍의 4480 x 6720 해상도 Raw-HDR 이미지를 수집함
    • Raw 이미지는 14bit Raw format, HDR 이미지는 20bit임

    Figure 7: Representative scenes of our captured Raw-toHDR dataset

    5. Experiments

    본 논문에서는 네트워크의 성능을 평가하기 위해 정성적, 정량적 두 가지 측면으로 실험을 수행하였습니다.

     

    정성적 평가

    fig 8. The visualization of typical under-exposed regions of Input/ExpandNet/SID/ DeepHDR/EC/HDRUNet/Ours/GT are presented. All images except the input are visualized through tone mapping
    fig 9. The visualizations of typical over-exposed regions of Input/ExpandNet/SID/ DeepHDR/EC/HDRUNet/Ours/GT are presented. All images except the input are visualized through tone mapping

    • fig 8을 보면, 기존의 sRGB 이미지로부터 HDR 이미지를 복원하는 다른 방법들과 비교했을 때, 어두운 영역과 밝은 영역 모두에서 더 많은 세부정보를 복원하였음
    • fig 9를 보면, RawHDR 네트워크는 특히 매우 높은 Dynamic Range가 요구되는 복잡한 장면에서 매우 탁월한 성능을 발휘함

    정량적 평가

    • RawHDR 네트워크는 모든 장면에서 기존 방법들보다 훨씬 더 높은 PSNR과 SSIM 점수를 기록했음

     

    6. Conclustion

    이 논문을 읽기 전에 단순히 인코딩 되지않은 Raw 데이터로 HDR 이미지를 만들면 잘 되겠지~ 라는 생각이었습니다.

    하지만 논문을 읽으면서 여러가지 Raw 이미지 데이터의 특성(이미지 센서의 Bayer pattern으로 인한 녹색 채널의 픽셀 강도가 강한 특성 등)과 맞춤형 네트워크를 만드는 방법까지 굉장히 많은 카메라에 관한 지식과 꿀팁들을 배울 수 있는 논문이었습니다.

    막연히 Raw 데이터는 디테일 정보가 많다! 가 아닌 왜 많은지, 왜 그럴 수 밖에 없는지, 카메라의 특성을 고려한 Image Enhancement 방법이 궁금한 개발자 분들에게 꼭 추천드리고 싶은 논문이었습니다 :)