Github Link : https://github.com/sanghyun-son/EDSR-PyTorch/tree/master
Youtube Link : https://www.youtube.com/watch?v=OMIqkn2DCUk
Super Resolution (SR) : 저해상도 이미지를 고해상도로 만드는 기법
- Type 1 Approach (PSNR) : 저해상도 이미지에 충실하게 고해상도 이미지를 만들어 냄
- Type 2 Approach (MOS) : 비슷하지만 다른 실제같은 이미지를 만들어 냄
SRGan : 패치보다 훨씬 작은 단위의 패턴들을 실제 이미지 처럼 만들어 줌으로써 PSNR 값은 낮지만 photo realistic 한 결과를 냄
Measure : MOS -> PSNR
PSNR : Pixel to Pixel 비교
이미지의 패치에 대해 패턴을 학습함
딥러닝에서 upscaling layer가 좋은 성능을 내면서 biqubic과 같은 interpolation 방법을 쓸 필요가 없어짐
* Upscaling Layer : 피쳐맵을 여러개로 늘리고 섞어서 한 픽셀을 3x3 픽셀로 만듬
EDSR
- 4 Techniques for Better SR
1. Need Batch-Normalization?
resnet에서 batch normalization을 사용하는데, 이게 정말 필요한 것일까?
-> input과 output이 similar distribution을 갖기 때문에 BN을 하지 않아도 됨
2. Increasing model size
stacked layer를 쌓기만 하면 괜찮은 것일까? 피쳐맵 사이즈를 늘릴 수도 있음
-> 두 방법을 비교 실험 했을 때 피쳐맵을 늘리는게 좋다는 결과 얻음
-> 문제점은 피쳐 각각의 value들에 비해 gradient로 들어오는 값이 너무 커서 training이 unstable 해지는 경향성 있음
-> 피쳐맵의 값을 스케일링 해줌 (Residual scaling)
3. Better loss function
평가척도인 PSNR에 MSE가 적용되는데, L2 loss 사용하면 당연히 잘되지 않을까? 다른게 있을까
-> L2 loss 보다 L1 loss가 좋은 성능 보임
4. Geometric self-ensemble
앙상블을 어떻게 할건지?
-> 모델을 여러개 학습하기엔 시간 많이 걸림.
-> training 할 때와 마찬가지로 test 이미지에도 8가지 flips, rotations을 적용함
-> 8개의 output이 나오면 그것을 다시 돌려서 mean 값을 취함
-> 한 네트워크로 8개의 네트워크처럼 앙상블을 할 수 있다
Summary
SRresnet의 경우 Res block을 16개 사용 -> x2배 = 32개
Channel은 64개 사용 -> x4배 = 256개
Global skip, Local skip 둘 다 사용
Post upscaling 사용
Batch normalization 제거
Residual scaling
L1 loss
Geometric ensemble
MDSR, Multi-scale EDSR
main branch에서 파라미터들이 share 되는 구조
'Deep Learning' 카테고리의 다른 글
Logistic Regression cost function (0) | 2024.07.04 |
---|---|
[강의] ML/DL 핵심 개념 정리 (0) | 2024.06.10 |