CodeFormer - нейросеть восстановления лиц с Codebook Lookup Transformer

машинное обучение в обработке фото и видео
Ответить
Аватара пользователя
mihas
Администратор
Сообщения: 1383
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

CodeFormer - нейросеть восстановления лиц с Codebook Lookup Transformer

Сообщение mihas »

Проект CodeFormer мы упоминали как один из доступных методов восстановления лиц в программе с графическим интерфейсом Stable Diffusion.
Попробуем запустить CodeFormer самостоятельно на питоне. Проект позволяет работать не только с имиджами, но напрямую с фильмами через интеграцию с ffmpeg. Скачайте любой свежий релиз ffmpeg для Conda тут, установите его командой из-под Анаконды (я всем советую командную строку Анаконды 3 для работы с проектами на питоне):

conda install -c conda-forge ffmpeg

где вместо ffmpeg укажите имя и если надо путь к скачанному релизу ffmpeg, например так:

conda install -c conda-forge C:\CodeFormer-master\ffmpeg-6.0.0-gpl_h2b371f0_103.conda
или так, если вы уже на пути (cd) к нужной папке:
conda install -c conda-forge ffmpeg-6.0.0-gpl_h2b371f0_103.conda

Про работу с фильмами в CodeFormer я напишу чуть позднее, пока не пошло у меня что-то с интеграцией ffmpeg под conda. Могу посоветовать скомпилированный проект с графическим интерфейсом для восстановления видео нейросетями и подключением ffmpeg - video2x, мы его рассматриваем в отдельном обзоре. Давайте пока просто запустим проект CodeFormer на питоне и обработаем наши пару слепых тестовых фоток низкого разрешения 10% и 25% от оригинала.

Войдем в командную строку Анаконды и выполним последовательно несколько команд для активации нейросети CodeFormer:

cd C:\CodeFormer-master
conda create -n codeformer python=3.8 -y
conda activate codeformer
pip3 install -r requirements.txt
python basicsr/setup.py develop
conda install -c conda-forge dlib
(only for face detection or cropping with dlib, может вообще не установиться, но не страшно)
python scripts/download_pretrained_models.py facelib
python scripts/download_pretrained_models.py dlib
(only for dlib face detector)
python scripts/download_pretrained_models.py CodeFormer

Наша нейросеть полностью готова к работе. В дальнейшем для ее активации вероятно достаточно будет ввести первую и третью строки из всего набора команд выше.
Положим в инпут C:\CodeFormer-master\inputs\whole_imgs наши тестовые файлы, и попробуем их восстановить. Различные степени приближения к идеалу выставляются ключом -w от 0.1 до 0.9, я перепробовал все, и остановился на дефолтной величине -w 0.5 для достижения самой качественной и естественной картинки:

python inference_codeformer.py -w 0.5 --input_path C:\CodeFormer-master\inputs\whole_imgs

У проекта есть демонстрационный ролик, и в принципе из него понятно, что ключ -w ближе к нулю дает большее машинное качество, а ключ -w ближе к единице - большую реалистичность от исходного изображения. То есть если нужно убрать прыщ на носу - берем ключ -w 0.1, а если добиваемся высокого реализма, и прыщ хотим оставить - берем ключ -w 0.9. Мне на тестовой фотке Маккензи показалось, что натуральная хорошая картинка получается в среднем положении ключа -w между quality и fidelity, а именно -w 0.5.

Представляю полученные результаты и исходники низкого разрешения. У проекта CodeFormer с разрешением модели 512 пикселов в принципе даже есть заявка на некоторую фактуру лица, и думаю, фактура разовьется в будущем с разрешениями модели 1024 пикселя и выше. В отличие от "фарфорового" лица моделей anime проекта Real-ESRGAN - тут в CodeFormer есть явно заявка на фактуру, а не только детализацию рисунка. Ждем модели 1024 пикселя, как у NVlabs! А пока на 512-пиксельных моделях результат такой:
Оригинальное уменьшенное до 10% изображение с плохой детализацией для эксперимента по восстановлению лица
Оригинальное уменьшенное до 10% изображение с плохой детализацией для эксперимента по восстановлению лица
• 44.34 КБ • 1472 просмотра
Восстановление от CodeFormer с параметром -w 0.5 - среднее между quality и fidelity
Восстановление от CodeFormer с параметром -w 0.5 - среднее между quality и fidelity
• 234.37 КБ • 1472 просмотра
Оригинальное уменьшенное до 25% изображение с плохой детализацией для эксперимента по восстановлению лица
Оригинальное уменьшенное до 25% изображение с плохой детализацией для эксперимента по восстановлению лица
• 171.23 КБ • 1472 просмотра
Восстановление от CodeFormer с параметром -w 0.5 - среднее между quality и fidelity
Восстановление от CodeFormer с параметром -w 0.5 - среднее между quality и fidelity
• 263.88 КБ • 1472 просмотра
Ответить

Вернуться в «Нейросети»