Super Resolution에 (Image Restoration) 대해 알아보던 중
아래의 모델을 찾게되어 사용법을(학습/추론) 공부해 보았다.
이번 글에서는 모델 구동 환경/데이터 준비를 (REDS dataset) 다루겠다.
GitHub - JingyunLiang/VRT: VRT: A Video Restoration Transformer (official repository)
1. 가상환경 세팅 및 패키지 설치
깃헙 설명에 따르면 파이썬 3.8 버전, 토치 1.9.1 버전 이상이 필요하므로
파이썬 3.8버전 가상환경을 세팅한 후 필요 패키지들을 설치한다.
conda create -n py38_vrt python=3.8 입력
글 작성일 기준 pytorch stable 버전은 1.12.1 인데
해당 버전을 설치할 경우 VRT 모델을 돌릴때 에러가 발생하므로 1.11 버전을 설치하자
이전 버전 찾기로 넘어가서
세팅된 CUDA 버전에 맞는 설치 command를 복사하여 설치
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 입력
나머지 패키지 설치를 위해 먼저 git을 받는다.
git clone https://github.com/JingyunLiang/VRT.git 입력
# 위 git은 추론 코드와 내용만 담고 있다.
#학습 코드는 GitHub - cszn/KAIR: Image Restoration Toolbox (PyTorch). Training and testing codes for DPIR, USRNet, DnCNN, FFDNet, SRMD, DPSR, BSRGAN, SwinIR 여기에 있으므로
#git clone https://github.com/cszn/KAIR.git 입력도 함께 해준다.
VRT 폴더 내에 requirements.txt 파일을 편집기로 (vim, nano) 열어서 (nano requirements.txt 입력)
미리 설치한 pytorch와 torchvision을 지우고 저장한다.
pip install -r requirements.txt 를 입력하여 필요 패키지를 설치
학습을 위해 받은 KAIR git 폴더에서도 똑같이 진행한다.
2. REDS dataset 준비
아래의 설명글이 dataset 준비에 대해서 서술하고 있다.
BasicSR/DatasetPreparation.md at master · XPixelGroup/BasicSR · GitHub
사진에서 보이는 official website로 넘어가면 아래로 연결이 되는데
Publications Datasets CV | Seungjun Nah
데이터셋에 대한 설명과 여러가지 다운로드 방법을 알려준다.
그 중 download_REDS.py 코드를 돌려서 데이터를 받아보았다.
download_REDS.py 파일을 받은 후 확인해 보면
많은 파라미터들 중 super resolution 학습을 위한
train_sharp, val_sharp / train_sharp_bicubic, val_sharp_bicubic 파일을(4개) snu 서버를 통해 받아보자
download_REDS.py 파일이 위치한 곳에서
python3 download_REDS.py --server snu --train_sharp 입력
#필자의 경우 위 코드를 입력하면 처음 한번은 connection 어쩌고 에러가 뜨는데
다시 코드를 입력하면 돌아간다.
#위의 이유로 4개의 파일을 각각 따로따로 받아준다. (한꺼번에 할 경우, 하나 끝나면 오류가 다시 뜬다)
다 받으면 아래처럼 되고, 전체 크기는 약 39기가 정도 된다. (train_sharp가 32기가 정도 한다.)
다 받은 후 압축해제를 해준다.
필자는 4개 파일 한번에 다하려고 아래의 파이썬 코드를 돌렸다.
import zipfile
import os
files = os.listdir('REDS')
for file in files:
with zipfile.ZipFile('REDS/' + file, 'r') as zip_ref:
zip_ref.extractall()
위 과정을 거치면 train 폴더와 val 폴더가 생성되고
각각 train_sharp, train_sharp_bicubic, val_sharp, val_sharp_bicubic 폴더를 담고 있을 것이다.
위에서 받은 KAIR git 폴더들 중 trainsets 폴더에 REDS 폴더를 만든 다음,
위 4개의 폴더들을 KAIR/trainsets/REDS 안에 넣어준다.
KAIR 폴더에 위치한 상태에서 python3 scripts/data_preparation/regroup_reds_dataset.py 를 입력
이후 REDS 폴더 내 train_sharp와 train_sharp_bicubic 폴더를 보면 validation 폴더들이 옮겨져서
폴더의 수가 늘어난 것을 알 수 있다.
폴더이름을 train_sharp_with_val, train_sharp_bicubic_with_val 로 바꿔주자
#image들이 담긴 폴더의 수와 모델의 동작을 위한 (data/mata_info) meta 파일의 내용이 같아야 하므로
하라는대로 따라했다.
다음으로는 처리속도가 빠르다는 lmdb로 변환을 하는 작업이 있는데,
변환하면 모델 돌릴때 에러가 발생하므로 변환하지 않는다.
다음 편에 계속
끝
'컴퓨터 > 머신러닝 (Machine Learning)' 카테고리의 다른 글
Super Resolution EDT 사용하기 (1) | 2022.10.08 |
---|---|
Video Restoration Transformer (VRT) 사용하기 - 2 (0) | 2022.09.02 |
WSL2, Nvidia GPU, CUDA 환경에서 super-resolution 모델 (SwinIR) 돌려보기 (0) | 2022.07.29 |
WSL2, AMD GPU, DirectML 환경에서 super-resolution 모델 (tecogan) 돌려보기 (0) | 2022.07.25 |
WSL2, AMD GPU, DirectML 환경에서 super-resolution 모델 (BSRGAN) 돌려보기 (0) | 2022.07.18 |