ESRGAN

Материал из wolfram
Перейти к навигации Перейти к поиску

ESRGAN - улучшенный SRGAN.

Как я понял такие штуки создают для конкурсов, в университетах. Эта сеть одна из таких. Она показывает высокий уровень качества обработки изображений. Данную сеть себе под крыло взяла MMSR, входит в модуль MMEditing.

Почему описываю это в отдельной странице? Потому что MMEditing универсальная заранее обученная сеть. А ESRGAN позволяет использовать самостоятельно обученные сети.


Работать с данной сетью очень просто.

Установка.

nvidia cuda

Если это делается на реальной машине с linux, то нужно установить драйвера nvidia и cuda (В разработке)

Если это WSL2, то идем по инструкции Установка WSL 2 и Настройка CUDA Toolkit (Пока это на странице MMEditing, позже перенесу в отдельную страницу)

Python 3

Смотрим версию:

python3 --version

Если Python установлен то покажет версию, если нет то нужно установить.

На данный момент Python есть по умолчанию в ubuntu, если сделать:

sudo apt update
sudo apt -y upgrade

pip3

Менеджер пакетов для Python 3

sudo apt install -y python3-pip

PyTorch

Выбираем нужную нам конфигурацию

stable

linux

pip

python

cuda 10.2

pip install torch torchvision

ESRGAN

Переходим в tmp, я всегда устанавливаю в эту папку, можно куда угодно например в home/user, в общем в меру доступности для пользователя:

cd /tmp

Теперь просто выкачиваем с github нужный нам репозиторий, если так это можно назвать:

git clone https://github.com/xinntao/ESRGAN.git

На всякий случай весь архив гита также у меня на облаке, файл ESRGAN-master.zip

Загрузится последняя версия, в папку в которой находимся, под именем "гита" ESRGAN:

cd /tmp/ESRGAN

В общем то все, устанавливать ничего не нужно пользуйся на здоровье.

pip install numpy opencv-python

Грузим обученную сеть с диска автора RRDB_ESRGAN_x4.pth или в моём облаке в папке models.

Перемещаем этот файл в папку /tmp/ESRGAN/models/


Правим конфиг test.py

nano /tmp/ESRGAN/test.py

model_path = 'путь к обученной модели'

model_path = 'models/RRDB_ESRGAN_x4.pth'

test_img_folder = 'путь откуда взять изображения'

test_img_folder = '/mnt/e/test/006/IN/*'

cv2.imwrite('путь для файлов после обработки{:s}_rlt.png'.format(base), output)

cv2.imwrite('/mnt/e/test/006/OUT/{:s}_rlt.png'.format(base), output)

Готово! Укладываем нужные нам картинки в папку указанную ранее, и вводим

python test.py

идет процесс, после него появляются файлы