Skip to content

Kolpnick/cv-course-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Генерация фотореалистичных изображений по рисункам (скетчам)

Sketch2face

Описание модели приведено в статье: https://web.stanford.edu/~jxgong/docs/sketch2face.pdf
Ссылка на оригинальный код: https://github.com/juliagong/sketch2face

Команда запуска обучения sketch2face модели:

!python /sketch2face/train.py --dataroot path_to_dataset --name model_name \
--model sketch2face --direction sketch2face --dataset_mode cuhk \
--max_epochs train_epochs_amount

path_to_dataset - путь к директории, в которой должны содержаться папки train и test, в каждой из этих папок файлы должны быть представлены следующим образом: скетч должен оканчиваться на -sz1.jpg, реальное изображение должно оканчиваться на .jpg
model_name - имя обучаемой модели (при запуске тестов нужно указывать это имя)
train_epochs_amount - количество эпох для обучения модели

Checkpoints модели сохраняются в папку /checkpoints/model_name

Команда запуска генерации фотореалистичных изображений на основе скетчей с помощью заранее обученной sketch2face модели:

python /sketch2face/train.py --dataroot path_to_dataset --name model_name \
--model sketch2face --direction sketch2face --dataset_mode cuhk --phase test \
--num_test images_amount

path_to_dataset - путь к директории, в которой должны содержаться папки train и test, в каждой из этих папок файлы должны быть представлены следующим образом: скетч должен оканчиваться на -sz1.jpg, реальное изображение должно оканчиваться на .jpg
model_name - имя модели (то же имя, что было использовано при запуске обучения)
images_amount - число изображений в тестовой выборке, если меньше реального числа изображений, содержащихся в тестовой выборке, то будут сгенерированы реальные изображения только для первых images_amount скетчей; если больше, либо равно - то будут рассмотрены все имеющиеся изображения в папке path_to_dataset/test

Результаты работы такой команды сохраняются в папку /results/model_name

Pix2pixHD

Описание модели приведено в статье: https://arxiv.org/pdf/1711.11585.pdf
Ссылка на оригинальный код: https://github.com/NVIDIA/pix2pixHD

Команда запуска обучения pix2pixHD модели:

python /pix2pixHD/train.py --label_nc 0 --no_instance --name pix2pixHD \
--dataroot path_to_dataset --save_epoch_freq 1 --resize_or_crop none \

Здесь важную роль играет параметр label_nc: pix2pixHD поддерживает генерацию изображений по семантическим картам. Каждому классу семантической карты соответствует свой лейбл. В нашем случае генерации из скетчей семантический класс только один, поэтому параметр равен нулю.

В папке path_to_dataset должно находиться 4 папки: train_A - обучающие скетчи, train_B - соответствующие реальные изображения, а также test_A и test_B. Названия изображений, соответствующих друг другу, должны быть идентичны.

Тестирование обученной модели:

python /pix2pixHD/test.py --name pix2pixHD \
--label_nc 0 --dataroot path_to_datset --netG global --resize_or_crop none \
--no_instance --how_many num

Метрики L1 и L2

В compute_metrics содержатся функции, позволяющие вычислять значения метрик MAE (l1 loss) и RMSE (l2 loss). Там же есть пример запуска приведённого кода. Функция make_image_path_pairs принимает в качестве входных аргументов пути к папкам с реальными и сгенерированными изображениями, и сопоставляет изображению из первой папки изображение с таким же именем из второй.

FID

Метрики FID посчитаны с помощью библиотеки https://github.com/mseitzer/pytorch-fid.

Генерация скетчей

В image2sketch содержатся функции, позволяющие преобразовывать реальное изображение в скетч. Функция image2sketch как раз это и делает, она принимает на вход пути к реальному и скетчевому изображениям, в ходе работы сохраняет скетчевое изображение по указанному пути, и возвращает реальное изображение и скетч. В этом же файле есть пример запуска приведённого кода.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published