본문 바로가기

Paper Review

Paper Review #17 - HINet: Half Instance Normalization Network for Image Restoration

HINet: Half Instance Normalization Network for Image Restoration (2021.05.13) - https://arxiv.org/abs/2105.06086
 

HINet: Half Instance Normalization Network for Image Restoration

In this paper, we explore the role of Instance Normalization in low-level vision tasks. Specifically, we present a novel block: Half Instance Normalization Block (HIN Block), to boost the performance of image restoration networks. Based on HIN Block, we de

arxiv.org

 

Research direction & Motivation


Main Purpose

What is the best Normalization in low-level vision task? Half instance!

 

 Normalization은 다양한 vision taks에서 널리 사용된다. 하지만 low-level vision의 분야에서는 오히려 성능의 저하를 이끄는 경우가 많아 사용빈도가 떨어졌는데, 이를 극복하기 위해서 style transfer task에서는 instance normalization(IN)의 사용이 제안되었다. 또한 이에 기반해 denoiser를 구축하기위한 regularizer로써 synthetic noise data로 부터 학습된 정보를 real-noise data로의 전이를 위한, 즉 fake noise를 통해 실제와 유사한 real noise 분포를 생성하기 위한 간접적인 목적으로 adaptive IN이 사용된바가 있다. 본 논문에서는, 이러한 전이의 방식이 아닌 Half Instance Normalization Blocks(HIN Block)의 도입해 IN의 직접적인 사용으로 image restoration task에서의 개선을 이끌어내고자한다.

 

 

HINet


Architecture

 

 일반적으로 image restoration을 위한 모델의 구조는 single-stage와 multi-stage로 나뉜다. 전자의 경우 복잡도를 증가시킴으로써 network capacity의 증가를 꾀하며, 후자의 경우는 각 stage에 경량화된 sub-network를 구축함으로써 복잡도가 높은 image restoration task를 여러개의 작고 단순한 sub-task로 분할한다. HINet은 U-Nets의 구조를 사용한 multi-stage 방식으로써 SAM과 CSFF를 차용하여 설계되었다.

 

 

 전반적인 구조는 다음과 같다. 두개의 sub-network로 구성된 HINet은 initial feature의 추출을 위해 3x3의 conv layer를 사용하며 이는 4개의 downsampling과 upsampling을 수행하는 block들을 가진 encoder-decoder로 연결된다.

 

 Encoder는 HIN Block 여러개를 쌓아 구성한다. 이를 통해 down sampling이 진행될 때, feature에 대한 수용력과 robustness가 증가하는 효과를 가진다. Decoder는 high-level feature의 효율적인 추출을 위해 ResBlock으로 구성된다. 동시에 resampling 과정에서 수반되는 정보의 손실을 최소화하기위해 encoder에서 전달받은 특성들을 적절히 섞어주는 역할을 한다. 최종적으로는 3x3의 conv layer를 통해 재구성된 image의 잔차를 반환한다.

 

 부가적으로 attention module로써 CSFF와 SAM이 활용되었다. CSFF는 3x3의 conv layer를 통해 다음 stage로의 통합을 위해 feature를 변환시키는 역할을 하는데, 이는 다음 stage에서의 feature representation을 풍부하게 만들어준다. SAM은 유용한 feature는 다음 stage로 잘 전달되도록 하는 역할을 하지만, 그렇지 못한 부분은 attention mask를 통해 가림으로써 feature 전달의 효율성을 높여준다.

 

 

 마지막으로 loss function은 PSNR 기반을 사용했다. 다만 단순히 output image와 ground truth의 비교가 아닌, 각 sub-network의 input image와 output을 더한 것을 ground truth를 비교하는 방식으로 PSNR loss를 정의했다.

 

 

Half Instance Normalization Block

 

 주로 작은 image patch를 사용하는 low-level task에서는 mini-batch간의 분산이 크고 Batch Normalization(BN)을 사용할 경우 학습시와 추론시의 차이가 있어 BN은 잘 사용되지 않는다. 대안으로 IN은 normalization을 학습과 추론시에 동일하게 적용하며 batch 영역과 무관하게 평균과 분산을 재조정하는 역할을 함으로써 BN보다 더 많은 정보를 보존한다는 장점이 있다. 이에 기인해 저자들은 IN을 활용한 HIN Block을 제안했다. 구조는 다음과 같다.

 

 

 HIN Block은 말그대로 input에 대해 절반만 IN을 적용하는 block이다. 구체적인 과정을 보면 Input feature가 3x3 conv layer를 거져 Fmid가 산출된다. Fmid는 두 파트로 나누어지는데, 오직 한 부분에서만 IN을 수행하고 나머지 부분과 concat된다. 즉 IN을 half part에만 적용하며 나머지 half에 대해서는 channel의 정보들을 보존할 수 있도록 한다. 이후 LeakyReLU와 3x3 conv layer를 거친 output이 shortcut feature와 더 해져 block의 output인 Foutput을 산출한다.

 

 

Experiments & Results


 실험에서 수행한 task는 Denoising, Deblurring, Deraining으로 3가지이다. 각각 SIDD와 GoPro, REDS 그리고 Rain 13k를 사용해 SSIM과 PSNR을 metric으로 사용했다. 추가로, MACs와 inference time를 측정해 기존 network와 비교했다. 학습시에는 2e-4의 learning rate와 1e-7의 cosine annealing을 사용했으며 256x256 크기의 patch로 flip과 rotation을 적용했다.

 

 

 결과적으로 모든 dataset에서 sota를 달성했다. MACs 부분에 있어서도 이전 sota인 MPRNet과 비교했을 때, 매우 큰 차이로 더 좋은 연산 효율성을 보였으며 추론시간에 있어서도 SIDD에서는 3배 REDS&GoPro에서는 6배 이상의 빠른 속도를 보여주었다. 이는 계산적으로도 연산량이 적으며 동시에 성능적인 측면에서 더 높은 질을 보여주는 것으로 아주 훌륭하게 task들을 수행했다는 것을 의미한다.

 

 

Ablation


HINet의 핵심은 'HIN' 이다. 따라서 저자들은 해당 Block의 우수성과 효용성을 입증하기위해 몇가지 ablation case에 대한 실험을 추가로 보여준다.

 

The effectiveness of Half Instance Normalization

 

 앞선 실험에서의 결과는 HIN Block에서 기인한 결과라는 가정을 세우고, 저자들은 여러 모델에 HIN Block을 도입했을 때 나타나는 결과의 차이를 비교해 제시했다. HINet와 DMPHB, PRMID, CycleISP에 HIN의 사용 유무에 따른 성능 차이를 비교했는데, 모든 경우에서 HIN의 사용이 더 높은 score를 달성해 그 우수성을 입증했다.

 

 

Comparision with other Noramlization

 

 

 해당 부분은 연구 동기에 부합하는 가장 핵심적인 부분이다. 본 논문은 기존 normalization의 한계점에서 기인해 이를 개선하고자 시작된 연구로, 다른 normalization을 적용했을때와 비교했다. BN을 포함해 LN, IN등을 적용한 HINet을 사용한 결과 역시 HIN의 경우가 가장 좋았으며 특히 BN은 심각한 성능의 저하가 나타났다. 특히 full IN을 사용했을때보다 HIN을 사용한 것이 더 효과적이라는 점은 괄목할만한 점이라고 할 수 있다.

 

 

Comparision with other Noramlization

 

 학습시 iterations의 증가와 HIN의 사용여부에 따른 성능 향상의 폭을 측정했다. 마찬가지로 HIN을 사용한 경우가 더 높은 성능을 보여주며, 사용하지 않은 경우와의 차이는 iteration이 증가해도 감소하지않는다. HIN은 모델의 수렴속도를 빠르게 해주는 것 뿐만 아니라 성능의 상한선 역시 높여주는 역할을 하고있다.

 

 

Guideline of add HIN layer in an existing network

 

 

 앞선 ablation study를 통해 HIN의 효과는 충분히 입증되었다. 마지막으로 저자는 HIN layer의 최적 위치를 찾기 위한 실험을 진행했는데, 결론적으로 encoder block 모두에 HIN을 배치하고, decoder에는 배치하지 않는 것이 가장 좋았다. 따라서 HIN의 무조건적인 추가가 긍정적인 영향으로 반드시 이어지지는 않으며, 적절한 위치산정의 필요성을 역설한다.

 

 

Conclusion


 정리하자면, 논문에서는 Half Instance Normalization의 직접적으로 사용하는 HINet을 구축해 low-level image task인 denoising, deblurring 등의 task에서 sota를 달성했다. 또한 NTIRE Challenge에서도 우승하는 등 성능적인 면에서 우수한 성과를 보여주었다. 동시에 low-level task에서 발견되었던 normalization에 관한 한계를 극복했으며 효율적인 연산량과 추론시간의 단축과 같은 시간적인 비용의 감소를 이끌어냈다는 점이 주요한 기여점이라고 할 수 있다.