.box_article .article_cont p code

상세 컨텐츠

본문 제목

[의료 데이터 스터디] EDRS

심화 스터디/의료 데이터 스터디

by 혜 림 2021. 9. 30. 20:45

본문

작성자: 14기 김혜림

 

 

[참고논문]

https://arxiv.org/pdf/1707.02921.pdf

 

 

[들어가기 전]

 Super Resolution 이란? 화질을 개선하는 task 라고 생각하면 될 것 같다. 얼마전에 LG에서는 이미지 화질 개선 대회를 개최했을만큼(지금은 끝났지만),  실생활과도 맞닿아 있는 주제이다. 실은 컴퓨터 비전의 어떤 분야가 안 그렇겠냐만은.

 

 Super Resolution은 Classificaiton이나 Object detection과 같은 high level의 컴퓨터 비전 분야는 아니고 low level 컴퓨터 비전이라고 한다. 한편 최근 딥러닝 기법들이 발전해옴에 따라 SR 분야도 이를 적용해서 좋은 성능을 내는 연구들이 나오고 있는데, 이전까지는 CNN 을 이용했다면 최근은 컴퓨터 비전과 함께 핫한 GAN 의 기술을 이용하여 연구들이 이루어지는 것 같다. 

 

 최신 흐름은 아래의 저널을 통해서 확인할 수 있다. 필자 역시 이 저널을 읽어봤고, GAN 말고 다른 Residual 을 다룬 논문을 읽고 싶어서 오늘의 논문을 가져왔다. 물론 2017년이라서 비교적 오래된 논문이기는 하다. 하지만 이 논문은 당대의 SOTA를 이루어냈을 뿐 아니라, Residual 관련한 연구에 불을 붙였다..! 라고 평가 받아서 가져와봤다.

http://www.kibme.org/resources/journal/20200504094149078.pdf

 

Enhanced Deep Residual Networks for Single Image Super-Resolution

 

초록 Abstract

 이 논문에서는 SR의 SOTA를 달성한 EDSR 모델을 소개한다. 기존의 residual network에서 불필요한 모듈들을 제거함으로써 최적의 성능을 내었다. 나아가서 여러 스케일의 SR을 시행할 수 있는 MDSR 역시 소개한다. 

 

 1. Introduction


 

  SR 분야는 낮은 해상도의 이미지$I^{LR}$로부터 높은 해상도의 이미지$I^{SR}$를 복원하는 것이 목표이다

 보통은 원본의 높은 해상도 이미지 $I^{HR}$ 을 어떤 기법을 통해서 낮은 해상도의 이미지$I^{SR}$로 변환한다. 대부분은 bicubic으로 다운샘플링을 하지만, 이러한 다운샘플링 기법이 성능에 영향을 주기도 하기 때문에 다른 것들도 고려해봐야 할 부분이다. 예컨대 blur, decimation, noise 등이 있다. 

 

 SR에서는 PSNR을 하나의 평가 지표로 사용하는데(object Detection에서 mAP 같은 지표), 딥러닝 네트워크들이 확연히 좋은 성능을 내었다고 한다. 그럼에도 불구하고 여전히 문제가 존재하는데,

 

 첫째 : 작은 네트워크 구조 변화에 민감하다 => 그렇기 때문에 주위깊은 모델 구조, 초기화 방법 등이 필요하다
 둘째 : 화질이 낮은 이미지들을 개선해야하는 정도가 다름에도 불구하고( different scale factor) 이를 독립적인 구조로 접근한다는 것이다 => 그렇기 때문에 다른 스케일로 복원하는 문제 사이이의 상관성을 무시하게 된다. 

 

 

 두번째 문제점에 대하여 VDSR이 예외적으로 여러 가지 스케일을 한 네트워크를 통해서 훈련할 수 있으나, 스케일을 특정해서 만든 네트워크에 비해 매우 시간이나 메모리측면에서 많은 cost가 든다고 한다. 

 

 한편 SRResNet은 이런 cost를 ResNet의 구조를 그대로 가져와서 해결하였으나 오히려 high level의 task를 해결하기 우해서 고안된 ResNet을 low level 의 task인 SR에 적용시키는 것에 문제가 있을 수 있다고 지적한다. 

 

 따라서 본 모델에서 고안한 EDSR은 ResNet을 SR에 적용시킬 때 필요없는 모듈들을 제거하고, 더 빨리 수렴할 수 있도록 여러가지 장치들을 더해주었다고 한다. 또한 여러 스케일의 구조 역시 하나의 네트워크로 구현함으로써, 스케일들 사이의 상관성도 반영해주었다고 한다. 

 

 

2. Related Works


 

 대부분의 딥러닝을 활용한 SR 모델들은 bicubic interpolation을 이용해서 upsample한 이미지를 네트워크의 input으로 이용한다. 그렇게 하는 것 대신에 네트워크의 마지막 부분에서 upsampling을 학습할 수 있다. 이렇게 하면 피쳐 사이즈가 줄기 때문에 모델 자체의 성능은 포기하지 않으면서도 연산량을 많이 줄일 수 있다. 하지만 하나의 framework로 여러 개의 스케일을 다룰 수 없다는 문제가 존재한다. 

 

=> 따라서 여러가지 스케일을 학습시키는 것과 연산량은 trad-off 의 관계인 것이다. 하지만 본 연구에서는 이 두 마리 토끼를 다 잡고자 새로운 방식을 고안해냈다고 한다. 

 

 그렇게 할 수 있었던 핵심은 

 

  스케일 간 "inter-realtion"을 고려 + 새로은 "multi-scale model"고안 

 

이다.

 

+ 여러 기존 연구에서 MSE나 L2 loss를 이용해서 최적화 하는 것은 PSNR 기준에서 그렇게 좋은 성능을 보장하지는 못했다. 대신 한 연구에서 L1을 통해서 더 개선된 성능을 낼 수 있었음을 발견하였기에 이를 차용하여 본 연구에서도 L1 loss  function을 이용하고자 했다. 

 

 

3. Proposed Methods


 

3.1 Residual block

 

 앞에서 언급했던 것처럼 EDRS은 ResNet을  기본으로 가져가고 거기에 조금씩 변형을 준 모델이다. 그래서 이번 섹션에서는 어떠한 변형을 주었는지 살펴보고자 한다. 

 

Figure 2

 

  (a) 가 ResNet, (b)가 SRResNet, (c)가 본 연구에서 제안된 모델이다. 

 

 가장 눈에 띄는 차이는 "BN" 즉, 배치 정규화의 유무이다. EDRS에서는 배치 정규화를 제거했는데, 피쳐들을 정규화하면 네트워크가 다양한 range의 값들에 유연해질 수 있는 가능성을 차단해버리기 때문이다. 또한 GPU 메모리 사용량도 충분히 줄였다고 한다. 약 40% 정도. 

 

3.2 Single-scale model

 

 다들 익숙해졌겠지만 딥러닝 모델의 성능을 높이기 위해서는 파라미터의 수가 중요하다. 네트워크의 구조를 깊게 만들수록 대부분은 더 좋은 성능을 내곤한다. 하지만 단순히 파라미터 수를 늘리기만 한다면 오히려 모델이 불안정해질 수  있다. 이를 구조적으로 극복하기 위해서 고안된 것이 Inception 등의 모듈인데, 이 모델에서는 그 중 ResNet을 도입하고 있다.

 

 

Figure 3

 

 그것과 더불어서, 위의 Figure 3에서 볼 수 있는 Mult 라는 블록이 추가된다. 이 블럭은 residual 을 0.1의 팩터로 스케일링 하는 과정이다. 이렇게 함으로써 파라미터의 수가 늘어나더라도 안정적으로 작동하는 모델을 구축하였다. 그래서 모든 residual block의 마지막 conv layer 뒤에는 scaling factor를 곱해주었다. 

 

 또한 section3.1에서는 지적하지 않았던 부분인데,

Figure 2

 (c)에서는 ReLU 역시 없다는 것을 확인할 수 있다. 

 

 최종적 single-scale 모델, EDSR은 32개의 레이어와 256개의 필터를 가진 구조이다. 

 

 한편 upsamling factor가 3이거나 4일 때는 미리 upsampling factor를 2로 훈련한 모델 파라미터들을 이용해서 초기화를 했다고 한다. 아래 그래프를 통해서, 이렇게 사전훈련된 파라미터를 이용하는 것은 모델이 보다 빨리 수렴할 수 있도록 도와주었다고 한다. 

 

Figure 4

 

3.3 Single-scale model

 

 

 그러나 본 팀은 위 그래프를 통해 단순히 사전훈련된 파라미터를 이용하는 것이 학습에 도움이 되는 사실을 발견하는데 그치지 않고, 나아가서 "여러 스케일의 SR이 inter-realted" 한 테스크임을 발견하게 된다. 

 

 따라서 이를 활용하여 inter scale correlation을 활용할 수 있는 multi scale 구조의 모델을 고안해낸다. 

 baseline 모델에는 16개의 residual block을 두었고 다른 스케일이 파라미터를 공유할 수 있도록 구조를 만들어냈다. 

 

 아래와 같다. 

 

Figure 5

 

(1) model 의 head 에는

pre-processing module = > 다른 스케일의 인풋 이미지의 variance를 줄임

 

 pre processing module: 5 x 5 사이즈의 커널을 두 개 쌓은 residual block

커널 사이즈를 꽤 큰 편인 5로 둔 셈인데, 이를 통해서 네트워크 초반에서부터 큰 receptive field 를 만들어서 스케일에 덜 민감하도록 피쳐맵을 생성했다고 한다. 

 

 (2) model의 end에는

 scale - specific upsampling module을 병렬로 둠 

 

최종적으로 Multi-scale model(MDSR)은 80개의 레이어와 64개의 필터를 이용했다고 한다. 

만약 위에서 언급했던 single scale을 따로 두어서 총 3개의 스케일을 다루도록 하다면 총 4.5M 파라미터가 필요하지만, 이 MDSR에서는 파라미터를 공유하기 때문에 3.2M 개만 필요했다고 한다. 

 

 

Table1

 

 아래를 통해서 모델 구조를 정리해보길 바란다. 

 

4. Experiments


 

4.1 Datasets

 

 DIV2K: 800개 훈련 이미지, 100개의 검증 이미지, 100개의 테스트 이미지 

 

performance는 validation을 기준으로 측정한 성능으로 대체한다(test에 대한 정답 label이 아직 공개가 안 된 모양이다).

 

 그 외에도 Set5, Set14, B100, Urban100 을 이용했다고 한다. 

 

4.2 Training Details

 

 랜덤하게 horizontal flip, 90도 회전을 주었다. 또한 이미지를 RGB 평균에서 빼는 전처리 과정을 해주었다고 한다. 

 최적화 함수 및 기타 자세한 디테일은 본문을 참고하자. 

 

 

 이 섹션에서 하나 짚고 넘어가야 할 것은 MDSR을 훈련할 때 아래의 노란색으로 하이라이트한 것과 관련해서인데.

  미니배치에 X2, X3, X4 가 랜덤하게 섞여 들어있다고 한다. 

 이때 만약에 X2가 들어왔으면 위의 노란 표시된 부분에서 X2에만 해당하는 파라미터만 업데이트 되고, 그렇지 않은 것들은 업데이트를 시행하지 않는다는 점이다. 앞에서도 얘기했지만 "parallel" 하기 때문에 그러하다. 

 

또한 섹션2에서 언급했듯이, loss function으로는 L1을 이용했다고 한다. 

 

4.3 Geometric Self-ensemble

 

 test 할 때 input image $I_{LR}$ 하나만 넣은 것이 아니라 총 7개의 augment를 한 이미지를 이용했다고 한다. 이 이미지의 output 이미지$I_{SR}$ 평균냈다고 한다. 

 

요렇게 self ensemble 한 모델은 뒤에 +를 붙여 표시하기로 하자. ~EDSR+/MDSR+

 

 4.4 Evaluation on DIV2K Dataset

 

이미지와 표로 대체한다.

 

Figure 4 Qualitative comparison of our models with other works on ×4 super-resolution
Table 3

6. Conclusion


 

SOTA를 달성하였다~

 

 

 

+ 오탈자 및 본문 오류 지적주시면 감사하겠습니다. 

 

관련글 더보기

댓글 영역