1. 가상환경 설정
conda create –n name python==3.8
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
pip install Matplotlib==3.3.4
pip install opencv-python
pip install pyyaml
pip install tqdm
pip install numpy
pip install tensorboardX
pip install einops
pip install thop
|
2. Training
(1) 데이터 준비
- 위 논문 저자의 github 에서 Training step1, step2 그대로 진행
(2) Code 수정
1) manga109 데이터 셋에 대한 evaluation 진행을 위해 추가
2) train_yamls/train_OmniSR_X4_DIV2K.yaml
- 저자는 Implementation Details에서 learning Rate decay를 200 epoch 마다 진행한다고 하였음.
- lr_decay_step: [250, 500, 750, 1000] -> lr_decay_step: [200, 400, 600, 800,1000]
(3) Trina.py 실행
python train.py -v "OmniSR_X4_DIV2K" -p train --train_yaml "train_OmniSR_X4_DIV2K.yaml" |
3. 결과
- Table1 DIV2K Dataset, Scale x4에 대한 학습 결과 재현
- Loss, Score는 Urban100 dataset을 기준으로 측정
(1) Loss
1) 1000 epoch까지 학습 시켰을 때 LOSS 변화
- 200 epoch 이후 Loss가 수렴한 것으로 보임
(2) Score
1) 1000 epoch까지 학습 시켰을 때 Score 변화
- 200 epoch 이후 수렴한 것으로 보임
![]() |
![]() |
2) 구간별 Score 변화
- 자세히 보면 700 epoch까지 계속해서 상승 중임
- 700 epoch 이후 PSNR, SSIM 이 수렴한 것으로 보임
- 720 epoch 에서 최고 Score 기록
![]() |
![]() |
![]() |
![]() |
(3) Table 1 과 비교
- 720 epoch 모델 평가 결과가 table 1과 유사한 것 확인
Method | Set5 | Set14 | B100 | Urban100 | Manga109 | |||||
PSNR | SSIM | PSNR | SSIM | PSNR | SSIM | PSNR | SSIM | PSNR | SSIM | |
Table1 | 32.49 | 0.8988 | 28.78 | 0.7859 | 27.71 | 0.7415 | 26.64 | 0.8018 | 31.02 | 0.9151 |
재현 결과 | 32.29 | 0.8983 | 28.50 | 0.7882 | 27.75 | 0.7434 | 26.62 | 0.8037 | 31.10 | 0.9172 |
4. 참고 문헌
[1] Wang, Hang and Chen, Xuanhong and Ni, Bingbing and Liu, Yutian and Liu jinfan, " Omni Aggregation Networks for Lightweight Image Super Resolution, " Conference on Computer Vision and Pattern Recognition, 2023