Search
💗

HINet: Half Instance Normalization Network for Image Restoration( CVPR 2021 )

Abstract

Instance Normaization 의 low level vision task에서의 역할을 탐구함
특히 novel block 소개 : Half Instance Normalization Block ( HIN Block )
image restoration network의 성능을 부스트 시키는 역할
HIN Block에 기반해 단순하고 파워풀한 multi stage network 디자인
두개의 subnetwork 포함
다양한 이미지의 복원에서 SOTA 달성

1. Introduction

Normalization은 high level vision task에서 많이 사용됨
BN, IBN ( classification )
Layer Normalization (DETR)
GroupNorm ( FCOS - Detection )
Instance Normalization은 style/domain transfer에서 많이 사용
하지만 low level computer vision 문제에 단순히 normalizaiton을 적용하는 것은 suboptimal이 될 수 없다.
예를 들면 BN은 SR 에서 성능을 높일 수 없다
→ 단순히 normalization을 적용하는 것 만으로는ㄴ 부족함
이 논문에서는 Instance Normalization 을 building blocks로 결합해 이미지 복원 task에서 네트워크 성능을 향상시킴 - HIN Block → HINet
각 subnetwork의 인코더에 HIN 블록을 쌓음으로써 각 scale에서의 receptive field를 확장시키고 features의 robustness를 향상
각 stage의 architecture에 더해, cross-stage feature fusion 을 더하고 supervised attention module을 두 스테이지 사이마다 더했다
⇒ multi scale features를 풍부하게 해 성능 향상 달성을 용이하도록 함
SOTA아키텍쳐인 MPRNet과 비교해, HINet이 다양한 task에서 앞섰다
... 성능 굿 계산 적 ...
성능을 보여주는 사진

Contribution

Instance Normalization을 building blocks로 결합하고 Half Instance Normalization Block을 제안. 우리가 알기로는, 복원 task에서 normalization을 SOTA 성능으로 directly적용한 첫 모델이다.
HIN Block에 기반해 이미지 복원을 위한 multi stage architecture HINet을 디자인, SOTA 성능 달성. SOTA방법들과 비교해 더 적은 MACs와 inference time
확장된 시험들로 효율성 증명, NTIRE 2021 Image Deblurring Challenge - Track 2 JPEG Artifacts에서 1등( PSNR 29.70 )

2. Related Work

2.1 Normalization in low-level computer vision tasks

low level cv task에서의 실패사례
super resolution과 BN의 disharmony
왜 ? BN이 네트워크의 range flexibility를 없애버리기 때문에
[51]논문에서 언급한 것 처럼 이미지 복원 task는 보통 small mini-batch size를 사용해 학습하고, 이것은 BN을 불안정하게 만든다.
게다가 이미지복원은 per-image dense pixel value ltask이기기에 scale sensitivity 함도 한 몫한다.
BN은 scale insensitive task에서 유용
Instance Normalizatoin(IN) 은 style transfer task에서 성능을 개선하기 위해 BN을 대체하기 위해 제안됐다.
[16]은 IN이 어느정도 low level features의 normalization임을 나타낸다. channel-wise statistics를 content image에 정렬함으로써 style transfer에 adaptive instance normalization을 제안
이에 기반해 [20]에서 adaptive IN을 denoiser를 빌드할 떄 적용하고 synthetic noise data에서 배운 knowledge를 real-noise denoiser로 이전
[20]과 달리 우리는 IN을 feature enhancement로 확장했다. 그리고 이것을 이미지 복원에 directly 적용했다 ( transfer learning 없이 )

2.2 Architectures for Image Restoration

MPRNet 언급과 MPRNet의 Related work에서의 언급과 같은 single stage methods에대한 설명

3. Approach

3.1. HINet

두개의 subnetwork → 각각은 U-Net
1.
각 stage U-Net에 대해 하나의 3x3 conv layer를 사용해 첫 피쳐 추출
2.
그 피쳐가 encoder-decoder 아키텍쳐의 input이 됨
encoder-decoder architecture:
4 downsampling, 4 upsampling
kernel size: downsampling 4, upsampling 2
encoder : Half Instance Normalization Block으로 각 scale에서 피쳐 추출 후 downsampling할 때 채널 수를 두배로 늘려줌
decoder : ResBlocks를 사용해 High level 피쳐들을 추출 후 encoder로부터의 피쳐들을 fuse한다. Resampling으로 인한 정보 손실을 보상하기 위함이다. ResBlock에 대해서는 leaky ReLU를 사용한다. ( negative slope = 0.2, BN 제거 )
3.
마지막으로 하나의 3x3 conv로 reconstructed image의 residual output을 얻는다.
두 subnetwork의 연결
둘 다 MPR Net에서 가져온 구조들 - attention module
cross-stage feature fusion (CSFF)
aggregation을 위해 3x3 conv로 한 스테이지에서 다른 스테이지로 넘어가는 피쳐를 가공
다음 스테이지의 multi-scale features를 풍부하게 함
supervised attention module (SAM)
오리지날 모듈에서의 1x1 conv를 3x3 conv로 대체. 그리고 각 conv에 bias를 추가했다.
SAM을 통해 현 스테이지에서의 유용한 피쳐들을 다음 스테이지로 전달하고 덜 유용한 것들은 attention masks를 통해 suppressed될 수 있다.
네트워크 아키텍쳐에 추가해 PSNR 을 loss function 의 metric으로 사용했고, PSNR Loss라 불렀다.
XiRN×C×H×WX_i \in \mathbb{R}^{N\times C \times H \times W} : subnetwork i의 input
N,N, CC ,H,W, H, W : 배치, 채널, height, width
RiRN×C×H×WR_i \in \mathbb{R}^{N\times C \times H \times W}: subnetwork i의 마지막 predict
YRN×C×H×WY \in \mathbb{R}^{N\times C \times H \times W}: 각 stage의 ground truth

3.2. Half Instance Normalization Block

small image patches의 분산은 mini-batch와 train 이냐 test냐에 따라 많이 다르기 때문에 , BN은 low-level task에서 일반적으로 사용되지 않는다 .
대신 IN이 training과 inference 모두에서 동일한 정규화 절차를 일관되게 유지
게다가 IN은 batch영역과는 무관하게 mean과 variance를 re-calibrate(재조정)하므로 BN보다 더 많은 정보를 보존하는 장점이 있다.
FinRCin×H×W\mathbb{F}_{in} \in \mathbb{R}^{C_{in} \times H \times W} : HIN input features
FmidRCout×H×W\mathbb{F}_{mid} \in \mathbb{R}^{C{out} \times H \times W} : HIN 3x3 conv로 생성되는 중간 피쳐
Cin,CoutC_{in}, C_{out} : HIN in channels, out channels
Fmid\mathbb{F}_{mid} 는 두 파트로 나눠진다
Fmid1,Fmid2RCout/2×H×W\mathbb{F}_{{mid}_1}, \mathbb{F}_{{mid}_2} \in \mathbb{R}^{C{out}/2 \times H \times W}
Fmid1\mathbb{F}_{{mid}1} : learnable affine parameters와 함께 IN으로 normalized 되며, Fmid2\mathbb{F}_{{mid}_2}와 합쳐진다. ( 채널 dimension으로 )
HIN blocks는 IN을 채널의 절반에 적용하고 다른 절반의 채널로써 정보의 context는 보존한다.
이후 Experiments에서 이 디자인이 네트워크의 shallow layers의 피쳐들과 friendly하다는 것을 보여준다.
concat operation 후에 3x3 conv레이어 하나와 leaky ReLU두개를 통과함으로써 residual features RoutRCout×H×WR_{out} \in \mathbb{R}^{C_{out}\times H \times W}이 얻어진다.
마지막으로 HIN block output FoutF_{out}RoutR_{out}에 shortcut features로 더해진다 ( 1x1 conv 이후에 )

4. Experiments

다양한 dataset 실험
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들을 수행했다는 것을 의미한다.

4.3. Ablation

HINet의 핵심은 'HIN' 이다. 따라서 저자들은 해당 Block의 우수성과 효용성을 입증하기위해 몇가지 ablation case에 대한 실험을 추가로 보여준다.
앞선 실험에서의 결과는 HIN Block에서 기인한 결과라는 가정을 세우고, 저자들은 여러 모델에 HIN Block을 도입했을 때 나타나는 결과의 차이를 비교해 제시했다. HINet와 DMPHB, PRMID, CycleISP에 HIN의 사용 유무에 따른 성능 차이를 비교했는데, 모든 경우에서 HIN의 사용이 더 높은 score를 달성 해 그 우수성을 입증했다.
Comparison with other Normalizations
해당 부분은 연구 동기에 부합하는 가장 핵심적인 부분이다. 본 논문은 기존 normalization의 한계점에서 기인해 이를 개선하고자 시작된 연구로, 다른 normalization을 적용했을때와 비교했다. BN을 포함해 LN, IN등을 적용한 HINet을 사용한 결과 역시 HIN의 경우가 가장 좋았으며 특히 BN은 심각한 성능의 저하가 나타났다. 특히 full IN을 사용했을때보다 HIN을 사용한 것이 더 효과적 이라는 점은 괄목할만한 점이라고 할 수 있다.
Guideline of add HIN layer in an existing network
앞선 ablation study를 통해 HIN의 효과는 충분히 입증되었다. 마지막으로 저자는 HIN layer의 최적 위치를 찾기 위한 실험을 진행했는데, 결론적으로 encoder block 모두에 HIN을 배치하고, decoder에는 배치하지 않는 것이 가장 좋았다.  따라서 HIN의 무조건적인 추가가 긍정적인 영향으로 반드시 이어지지는 않으며, 적절한 위치산정의 필요성을 역설한다.