논문 리뷰

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

dohyeon2 2024. 8. 4. 22:22

목차

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

     

    fig 1. HDR 기능이 들어간 블랙박스

    제가 이 논문을 리뷰하는 이유는 최근 제가 진행중인 3D Depth Camera 개발 프로젝트에서 조명 바로 밑 영역은 하얗게 표현되고 조명과 멀리 떨어져 있거나 구조물에 의해 그림자가 생긴 영역은 검정색으로 표현되어 물체 식별이 불가능한 문제가 발생했기 때문입니다. 이런 문제를 어떻게 해결할수 있을까 고민하던 중 얼마전에 HDR 기술이 들어간 블랙박스에서 자동차 헤드라이트가 비춰지더라도 영상에서 번호가 식별되는 게 떠올랐습니다(위 그림 참조). 그렇다면 HDR 기술은 어떻게 빛이 비춰서 하얗게 변한 이미지를 식별할 수 있도록 변경하는걸까요? HDR 기술을 설명하려면 우선 SDR과 HDR의 차이점에 대해 알아야 합니다.

     

    0. HDR(High Dynamic Range)과 SDR(Standard Dynamic Range)

    fig 2. Apple WWDC24: adaptive HDR technology

    SDR(표준 동적 범위)이미지는 흔히 일반 카메라에서 얻을 수 있는 이미지인데 실제 조명 범위의 극히 일부분만 표현할 수 있습니다. 좀더 자세히 설명하자면, 실제 세계의 휘도 범위(위 사진에서 starlight~sunlight)는 매우 넓습니다. 그러나 SDR(표준 동적 범위) 이미지는 이렇게 넓은 범위를 담을 수 없기 때문에 색조압축을 통해 모든 휘도가 표준 동적 범위 내로 들어오도록 조정합니다.

     

    fig 3. SDR image sample

    이 과정에서 표준 동적 범위보다 높은 빛(ex 햇빛)은 위 사진과 같이 하얀색으로 표현되고, 낮은 빛(ex 그림자)은 검은색으로 표현되어 해당 픽셀에 위치한 물체를 식별할 수 없게됩니다. 그렇다면 표준 동적범위보다 넓은 범위의 휘도를 이미지에 담을 수 있다면 이러한 문제를 해결할 수 있지 않을까요? 이러한 아이디어에서 나온 것이 HDR(높은 동적 범위) 기술입니다. 먼저 기존에는 어떻게 HDR 기술을 구현하였는지 자세히 알아보겠습니다.

     

    fig 4. 전통적인 HDR 구현과정

    • 다양한 노출값으로 이미지 연속촬영: 동일한 시점에 여러 노출값으로 이미지를 촬영하는건 불가능하므로, 매우 빠르게 노출값을 바꿔가며 이미지를 촬영합니다. 최소 낮은 노출, 중간 노출, 높은 노출 이미지 3개가 필요합니다.
    • 이미지 정렬: 다양한 휘도를 갖는 이미지가 약간씩 다른 위치에 있을 수 있으므로, 이미지를 정렬합니다. 이를 위해 feature matching이나 image registration 기술 등이 사용됩니다.
    • 정렬된 여러 이미지를 결합하여 HDR 이미지를 생성. (32bit 부동 소수점으로 표현되어 일반 디스플레이에서 식별하기 어려운 상태)
      1. 가중치 계산: 각 픽셀의 값에 대해 가중치를 계산합니다. 일반적으로 중간 노출의 픽셀 값에 높은 가중치를 주고, 너무 밝거나 어두운 픽셀에는 낮은 가중치를 줍니다.
      2. 합성: 가중치를 적용하여 각 노출 이미지의 픽셀 값을 합성합니다.
      3. 방사율 지도 생성: 합성된 값을 사용하여 HDR 이미지의 방사율 지도를 생성합니다. 
    • 톤 매핑(Tone Mapping): 생성된 HDR 이미지는 디스플레이 장치에서 표현할 수 있는 동적 범위를 초과할 수 있으므로, 일반 디스플레이에서 볼 수 있도록 다시 8bit로 변환합니다. 

    1. Introduction

    기존에도 이러한 HDR 기술을 구현한 다양한 연구가 존재했습니다. 다양한 노출값으로 촬영된 LDR(낮은 동적 범위) 이미지를 결합하는 방식입니다. 그러나 이러한 접근 방식은 서로 다른 LDR 이미지들 간의 객체 움직임을 처리해야하고, 동일한 장면에서 여러 이미지를 캡처하는 것이 항상 가능하지는 않았습니다. 또한 대부분의 HDR 복원 방법은 동적 범위 확장에만 집중하고 적절히 노출된 영역의 노이즈와 양자화 손실은 고려하지 않는다는 문제점을 갖고있었습니다.

     

    그래서 본 논문에서는 다양한 노출값으로  촬영된 LDR 이미지를 합성하지 않으면서 HDR 이미지를 생성하고, 동시에 노이즈와 양자화 오류를 제거하기 위해 다음과 같은 아이디어를 생각했습니다.

    • 첫째, LDR 이미지에는 HDR 이미지에 비해 노이즈와 양자화 오류가 존재하고, 과노출 영역의 패턴은 적절히 노출된 영역의 패턴과 분명히 다를 것이다.
    • 둘째, 노이즈의 분포는 공간적으로 변화하며, 이는 가우시안 화이트 노이즈처럼 균일하지는 않을 것이다.

    이를 통해 저자는 단일 LDR 이미지로부터 HDR 이미지를 복원하였고, 동시에 노이즈 제거와 양자화 제거를하였다고 합니다. 

     

    2. Related Work

    이 부분에서는 HDR 복원, 노이즈 제거, 양자화 오류 제거에 관한 배경지식을 제공합니다.

    2.1 HDR Reconstruction

    • 가장 일반적인 기술은 여러 노출값으로 촬영한 LDR(낮은 동적 범위) 이미지를 합성하는 것(Traditional method 참조)
    • 최근에는 여러 LDR 이미지를 합성하는 데 CNN을 적용한 연구들이 진행됨
    • 그러나 본 논문에서는 단일 LDR 이미지로부터 HDR 이미지를 복원하는 작업에 초점을 맞춤
    • 단일 LDR 이미지로부터 HDR 이미지를 복원하는 다양한 연구들이 제안되었으나, CNN을 이용하여 직접 LDR에서 HDR로 매핑을 학습하는 방식이 주를 이룸
    • 그러나 이러한 방법들은 적절히 노출된 영역의 노이즈와 양자화 오류를 고려하지 않음

    2.2 Denoising

    • 지난 몇년간 노이즈 제거를 위해 CNN을 사용하는 다양한 연구들이 제안됨
    • 그러나 이러한 방법들은 일반적으로 실제 노이즈 이미지에 잘 일반화되지 않는 가우시안 화이트 노이즈를 타겟으로 설계됨
    • 최근 이러한 문제를 해결하기 위해 noise level prior을 네트워크 입력으로 사용하여 다양한 noise level과 spatially variant noise 를 처리하는 방법을 제안함
    • 본 논문에서는 노이즈 제거를 위해 spatially dynamic 변조 모듈을 제안함 

    2.3 Dequantization

    • 기존 연구들은 양자화 오류를 제거하기 위해 공간 적응형 필터 or 선택적 평균 필터를 사용하여 이미지를 부드럽게 만들었음
    • 최근에는 다양한 학습기반 방법들이 제안되었는데, 낮은 bit 이미지(적은 색 표현)를 8bit 이미지(풍부한 색 표현)로 복원하는 작업임
    • 본 논문에서는 8bit LDR 이미지를 16bit HDR 이미지로 복원하는 것을 목표로 함
    양자화 오류란?
    : 양자화 오류는 아날로그 신호(연속적인 값)를 디지털 신호(이산적인 값)로 변환하는 과정에서 발생하는 오류를 말합니다. 
    예를 들어, 아날로그 신호가 0.0, 0.1 ~ 9.9, 10.0까지의 연속적인 값을 가질 수 있다고 가정하면, 이를 0, 1, 2, 3, ..., 10과 같은 이산적인 값으로 양자화합니다. 원래 값이 4.7인 경우 이는 가장 가까운 이산 값인 5로 변환됩니다. 이때 원래 값 4.7과 변환된 값 5 사이의 차이가 양자화 오류입니다. 대표적으로 Bending Artifact, Clipping Error 등이 있습니다.

    fig 5. Example of Quantization Error

    3. Methodology

    3.1 Observations 

    Figure 6. Gradient maps calculated by Scharr operator [45] of the LDR and HDR image.

    fig 5는 Scharr 연산자를 사용하여 LDR 이미지와 HDR 이미지의 gradient map을 시각화한 사진입니다.

    • HDR 이미지와 비교할 때, LDR 이미지의 하이라이트 영역(녹색 box)에서 gradient가 덜 명확함
    • 이는 LDR 이미지의 색조압축과 양자화로 인해 발생함
    • 적절히 노출된 영역(빨간색 box)에서는 LDR 및 HDR 이미지 모두에서 노이즈의 gradient가 명확하게 나타남
    • 그러나 LDR 이미지와 HDR 이미지의 노이즈 패턴(빨간색 box 안 휠 주위 하얀색 점들)은 확연히 다름
    • 따라서 노이즈 패턴 차이는 하이라이트와 비하이라이트 영역 사이에만 존재하는 게 아니라 모든 위치에서 존재함
    • 그래서 저자는 spatially dynamic 변조 모듈을 도입하게 되었음

    3.2 Network Structure

    fig 7. HDRUNet Network Architecture

    HDRUNet은 단일 이미지 1장을 입력값으로 받습니다. 전체적인 아키텍처는 크게 3가지 모듈로 구성됩니다.

     

    3.2.1 Base Network

    • U-Net과 유사한 구조를 활용하며, 8bit 노이즈가 있는 LDR 이미지를 입력받아 16bit HDR 이미지를 복원하는 역할
    • 인코더는 LDR 이미지를 고차원 표현으로 매핑하고, 디코더는 인코딩된 표현으로부터 HDR 이미지를 복원하도록 훈련됨
    • 본 논문에서는 복원 성능 개선을 위해 인코더와 디코더 사이에 skip-connection을 도입함

    3.2.2 Condition Network

    • 입력 LDR 이미지를 받아들여 이미지의 각 영역에 대한 분석(밝기, 노출, 색상 등)을 수행함
    • 분석결과를 바탕으로 condition map 생성함.
      (이때 condition map에는 분석결과가 저장되어 있음)
    • condition map에서 얻은 변조 계수(α와 β)를 사용하여 중간 특징 맵을 변조
    • 최종적으로 디코더에서 변조된 특징 맵을 사용하여 HDR 이미지를 복원
    • 는 요소별 곱셈
    • 는 변조할 중간 특징
    • α는 조건 네트워크에 의해 예측된 두 가지 변조 계수 맵

     

    SFT layer의 역할? 
    : 이미지에서 영역에 따라 동적으로 변조된 연산을 수행할 수 있도록 합니다. 예를들어, 어두운 방에서 창문을 통해 들어오는 햇빛을 포함한 이미지가 있다고 가정해보겠습니다.

    예시 이미지

    이런 LDR 이미지가 입력되면 Condition Network는 입력 이미지를 분석하여, 각 위치에서의 밝기와 노출 상태에 따라 condition map을 생성합니다.  상대적으로 매우 밝은 창문은 세부 정보를 잘 보존할 수 있도록 특징맵을 변조하고, 상대적으로 어두운 방 안은 노이즈를 잘 제거할 수 있도록 특징 맵을 변조합니다. 이렇게 이미지 상에서 영역에 따라 다른 표현을 가질 수 있도록 spatially dynamic 변조를 진행해주게 되는 겁니다! 

    실제 변조과정
    1. Condition Network가 입력 이미지로부터 각 위치의 밝기와 노출 정도를 담은 조건맵을 생성합니다.
    2. SFT layer는 α와 β를 사용하여 중간 특징맵 x를 변조합니다.
    (밝은 창문 영역에서는 α가 크고, β가 작게 설정되어서 밝은 부분의 세부 정보가 잘 보존될 수 있도록 변조됩니다.)
    (어두운 방안 영역에서는 α가 작고, β가 크게 설정되어서 어두운 영역의 노이즈가 효과적으로 이루어지도록 변조됩니다)

     

    3.2.3 Weighting Network

    • HDR 복원에서 가장 challenging한 포인트는 과소/과노출된 영역에서 세부 사항을 복원하는 작업임
    • 대부분의 적절히 노출된 영역은 모델 학습에 큰 기여를 하지 않음
    • 따라서 Weighting Network에서는 적절히 노출된 영역보다 과소/과노출된 영역에 더 큰 가중치를 줌
    • 이를 통해 적절히 노출된 영역은 조금만 복원하고, 과소/과노출된 영역은 많이!! 복원할 수 있게 됨
    • 는 입력 LDR 이미지
    • Y^는 최종 복원된 HDR 이미지
    • G(I)는 기본 네트워크의 출력
    • W는 가중치 맵

    3.3 Loss Function 

    본 논문에서는 HDR 이미지를 복원할 때, 동적 범위 확장뿐만 아니라 노이즈와 양자화 오류 제거도 진행합니다.

    그러나 이전 이미지 복원 작업에서 일반적으로 사용되는 손실함수(L1, L2)는 3가지 작업을 동시에 처리하는데 적합하지 않았습니다. 본 논문에서는 3가지 작업을 동시에 진행하기 위해 Tanh L1 손실함수를 제안하였습니다.

     

     

    4. Experiments 

    Dataset

    특징 설명
    데이터셋 이름 NITRE 2021 HDR Challenge Dataset
    데이터셋 출처 HdM HDR 데이터셋에서 일부 추출
    데이터 수집장비 두 대의 Alexa Arri camera에 mirror rig를 사용하여 캡처
    LDR 이미지 생성방법  열화 모델(노출 강도 조절, 노이즈 추가, 양자화, 클리핑) 적용
    Train dataset 1494 쌍의 LDR/HDR 이미지
    Validation dataset 60 쌍의 LDR/HDR 이미지
    Test dataset 201 쌍의 LDR/HDR 이미지
    사용한 Train dataset 26개의 롱테이크에서 연속된 1494 frame
    사용한 validation dataset Train dataset에서 무작위로 선택한 78개 frame
    GT 사용 가능 여부  훈련 세트에만 이용 가능

    Evaluation Metrics

    평가지표 설명 특징 사용 목적
    PSNR-L 출력 이미지의 피크 값으로 정규화된 표준 PSNR. 주로 높은 휘도 값의 정확도를 평가 하이라이트 값의 정확도를 측정 정량적 평가
    PSNR-μ 그라운드 트루스 HDR 이미지의 99 퍼센타일로 정규화된 μ-law 톤 맵핑된 이미지에서 계산된 PSNR. 시각적 유사성을 평가 톤 맵핑된 값을 직접 측정하여 예측결과와 GT 사이의 시각적 유사성을 측정 정성적 평가

    Implementation Details

    항목 설명
    num Residual block N 8
    Downsampling stride가 2인 conv filter 사용
    Upsampling pixel shuffle 사용 
    데이터 전처리 이미지를 480x480크기로 자르고, step 240
    mini batch size 16
    num training iterations 1×10^6
    optimizer adam
    Initialization Kaiming-initialization
    GPU NVIDIA 2080TI

     

    5. Conclusion

    • 본 논문에서는 단일 LDR 이미지로부터 HDR 이미지를 복원하기 위해 Tanh L1 손실함수를 사용하고 공간적으로 동적인 인코더-디코더 네트워크를 제안하였음
    • 이 방법으로 NTIRE2021 HDR Challenge - Single Frame Track에서 2위를 차지함

    개인적으로 단순히 Dynamic Range를 확장하는 다른 네트워크들과 달리 노이즈, 양자화 오류 제거까지 한번에 진행해줘서 제 사이드 프로젝트에 큰 도움이 된 논문입니다. 기존에는 diffusion기반 노이즈 제거 모델을 도입하려고 했는데 inference time이 너무 오래 걸려서 고민이 많았는데 이 논문은 동적 범위 확장, 노이즈 제거, 양자화 오류 제거까지 한방에 해결해준 고마운 논문이었습니다. 이후에는 

    2022년에 열린 동일한 대회에는 모델 사이즈 경량화, 최고 정확도 2가지 트랙이 존재하는데 모델 사이즈 경량화 트랙에서 SOTA를 달성한 모델도 한번 적용해볼 예정입니다 :)