/** **/

ITСooky

IT-рецепты съедобные и не очень!

Увеличиваем улучшаем старые фотки с GFPGAN на Windows через WSL2 и картой с CUDA(можно и без)!

дата 03.04.2022

GFPGAN это набор инструментов и готовая нейросеть(можно натренировать свою) для улучшения лиц на фотографиях, обещают еще улучшение не лиц, но я как то не заметил эффекта улучшения, хотя увеличивают хорошо! Адрес проекта: github.com/TencentARC/GFPGAN. Работает все на Linux конечно и хорошо работает, но сегодня я буду запускать это на Windows, тем более в нем давно уже есть Linux назaвается WSL!

Потребуется:
— Windows 10-11 последней версии
— Видеокарта Nvidia с CUDA (у меня rtx 2070), но можно и на CPU только считать!
— CPU с виртуализацией(практически все сейчас)

Идем в консоль Powershell под админом

Ставим WSL
wsl --install

Первый WSL ставит вообще без всяких, но нам нужен второй так что выполняем
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

После последней команды Windows захочет перезагрузиться — это хорошо! Идем в BIOS и включаем виртуализацию пункт:
Hyper-V у Intel
SVM mode у AMD

Возвращаемся в консоль Powershell под админом и делаем
wsl --set-default-version 2

Не дает посылает что-то скачать вот сюда docs.microsoft.com/ru-ru/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package ну ничего скачиваем и запускаем Пакет обновления ядра Linux в WSL 2 для 64-разрядных компьютеров запускаем пальцем.

Повторяем
wsl --set-default-version 2

Теперь ставим Ubunto 20.04.4 LTS как еще одно приложение в Microsoft Store

В консоли Powershell смотрим какая у нас версия WSL на Ubuntu
wsl -l -v
получаем

  NAME              STATE           VERSION
  Ubuntu20.04LTS    Running        2

Все получилось!

Запускаем Ubuntu, как обычно приложение через Пуск получаем черное окно, это консоль Ubuntu

Кстати поздравляю видеокарта у нас уже есть так как уже стоит драйвер Nvidia

nvidia-smi

Sun Apr  3 14:53:22 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.53       Driver Version: 497.29       CUDA Version: 11.5     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:0A:00.0  On |                  N/A |
|  0%   54C    P8    21W / 175W |    442MiB /  8192MiB |     N/A      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Обновляемся
sudo apt-get update && sudo apt-get upgrade -y

Знаю что надо будет GCC ставлю(на самом деле как бы нет, но вдруг эта карта где-то все таки сыграла)
sudo apt install gcc
Вообще то тут уже какие то ошибки пошли запускал еще перед
sudo apt --fix-broken install

Ставим CUDA
sudo apt install nvidia-cuda-toolkit

Смотрим
nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

Ставим Conda
У Python есть проблема или особенность — написанное на одной версии вполне может не работать в других, то же касается разных версий модулей. А конда создает среду для каждой программы с нужными версиями и никакой апдейт их не поломает.

Скачиваем минималистичную версию Conda
wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh

На все вопросы отвечаем да при установке

Закрываем открываем окно Ubuntu выполняем
conda config --show
Что-то показывает значит работает

Создаем Python окружение для GFPGAN версии 3.7
conda create --name GFPGAN python=3.7
Начинает скачивать все нужно и нужно отметить что на скорость ну очень низкая, вину в этом WSL

Активируем окружение, оно касается только Python’а
conda activate GFPGAN

Установка GFPGAN
git clone https://github.com/TencentARC/GFPGAN.git

идем в папку
cd ./GFPGAN

надо до установить следующее, пишут создатели GFPGAN
pip install basicsr
pip install facexlib
pip install -r requirements.txt
python setup.py develop
pip install realesrgan

Качаем нейросети
wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth -P experiments/pretrained_models
wget https://github.com/TencentARC/GFPGAN/releases/download/v0.2.0/GFPGANCleanv1-NoCE-C2.pth -P experiments/pretrained_models

Мы сейчас в папке GFPGAN из Windows в неё можно зайти по пути \\wsl$\Ubuntu20.04LTS\home\YOUR_USER\GFPGAN
Кладем в ней в папку /inputs/whole_imgs/ тестовую фотку и забираем из папки /results/restored_imgs/

Выполняем по очереди (фотку надо забирать после каждой команды)
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.2 -s 2
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2

На картах 30ой серии может возникат ошибка

pytorch capability sm_86 is not compatible with the current PyTorch

Надо обновить torch как тут описано www.codestudyblog.com/cs2112pya/1208055527.html

pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

в первой команде нейросеть 1.2 которая считает только на CPU, во второй 1.3 считает на CUDA, последняя цифра увеличиваем в 2 раза

Впечатляет, нейросеть 1.3 как-то поживее рисует! Если вас не впечатлило то в папке /results/cmp/ есть сравнение лиц! Вот из этого слева, получается вот это справа!


Добавить комментарий

Ваш адрес email не будет опубликован.