초해상도 논문 ESRGAN을 실행시키고 소스 코드에 있는 데이터셋을 하나 훈련시켜 보는 것을 목표로 해보자.
github 소스 다운받고 실행하기
오픈소스를 실행을하려고 한다면, 어떻게 가상환경을 세팅해야하는지, GPU CUDA 등의 설정은 무슨 버전이 호환되는지 등을 readme를 읽음으로써 파악하고 뛰어들도록 한다.
Readme 읽어보기
ESRGAN 소스 코드는 기본적으로 Real-ESRGAN이라는 소스 코드에서 확장된 프로젝트라고 한다.
따라서 해당 repo에 있는 설명을 참고하면 좋다.
Real-ESRGAN description
- tile inference 제공, alpha 채널, gray image 제공, 16-bit 가능
- RealESRGAN-ncnn-vulkan을 설치하지 않고도 model에 포함되어있음
- full training 코드가 포함
tile inference는 이미지를 작은 tile들로 나누어서 처리하는 기법이라고 한다. 모델에 넣을 때 분리하여 처리한 후 post processing에서 합치는 방법이다.
사실 코드를 실행만하려고 하는 입장에서 위 내용보단 Quick Start 같은 란을 먼저 보는게 빠르다.
Quick Test
- python3
- PyTorch >= 1.0
- CUDA version >= 7.5
pip install numpy opencv-python
환경 세팅과 관련된 내용이다. 가상 환경 세팅에 대해서는 anaconda를 이용하여 진행한다.
아나콘다 가상환경 만들기
아나콘다 프롬프트를 열고 가상환경을 새로 만들자
conda create -n esrgan python==3.10
이렇게 가상환경 생성과 동시에 파이썬을 설치해준다.
바로 파이토치 설치?
이제 파이토치가 필요한데, 무작정 파이토치를 pip로 설치하려고 하면 안된다.
딥러닝을 학습시키는 환경에서는 일반적으로 GPU기반으로 실행을 해야하기 때문에 CUDA toolkit이 설치된 상태에서 cuda에 호환되는 파이토치를 설치해주어야한다.
CUDA toolkit 설치, PyTorch GPU 버전 설치
파이토치까지 설치하였다
마지막으로 numpy opencv를 설치하자.
pip install numpy opencv-python
아나콘다 가상환경 적용
아나콘다 환경을 만들고 필요한 패키지를 설치했으니, 만든 환경을 프로젝트에 적용하자.
파이참을 사용해서
settings → python interpreters → +버튼 → add local interpreter 로 인터프리터를 추가
추가할 인터프리터에 위에서 만든 conda environment를 추가해준다.
추가한 아나콘다 인터프리터 환경으로 설정
실행순서
./LR 폴더에 저해상도 이미지가 2장 들어있다. 이 두 샘플을 이용해서 테스트 해볼 수 있다.
이미 학습된 모델들을 google drive로 제공해주기 때문에 밑의 링크에서 받아서 ./models 파일에 넣고 실행해보자.
그리고 test.py를 실행해보기만 하면 ./results로 결과가 저장된다고 한다.
실행오류 - FileNotFoundError
무턱대로 실행시켜보니
FileNotFoundError: [Errno 2] No such file or directory: 'models/RRDB_ESRGAN_x4.pth'
pretrained 모델을 다운받지 않았었다. 다운받고 다시 해보자.
이미 학습된 모델들을 다운 받고 실행해보니
잘 완료되었고 results에 두 개의 파일이 생겼다.
저해상도 파일고 비교해보니 명확히 다르긴 하다.
실행을 완료했으니 이제 학습 모델 자체를 직접 훈련 시켜보도록 하자.