13. Перенос стиля: история
A Neural Algorithm of Artistic Style
Texture Networks: Feed-forward Synthesis of Textures and Stylized Images
Perceptual Losses for Real-Time Style Transfer and Super-Resolution
Запуск Prisma
Vinci
Artisto
Sept 2015
10 Mar 2016
27 Mar 2016
11 June 2016
28 Jul 2016
29 Jul 2016
t
в
14. Используем VGG-сеть как feature extractor
x
c
Feature maps
Feature maps
Восстановление контента
17. • Первые слои хорошо восстанавливают изображение
• На более глубоких:
• нечеткие линии, т.к. меньше информации о пространственных координатах
• теряются цвета
conv1_1 conv2_1 conv3_1 conv4_1 conv5_1
Восстановление контента
18. • Надо избавиться от пространственного положения фич
• Простое решение: посчитать среднее
• Сложное: матрица ковариации между картами признаков
Feature maps
Попарные ковариации
F
Width
Height
Depth
Ковариационная
матрица
Feature maps
F
Width
Height
Depth
Среднее по
Width&Height
Mean vector
Восстановление стиля
21. • Получился шум в стиле Ван Гога: цвета, мазки
• Пространственные координаты полностью потеряны
conv1_1
conv1_1
conv2_1
conv1_1
conv2_1
conv3_1
conv4_1
conv1_1
conv2_1
conv3_1
conv4_1
conv5_1
conv1_1
conv2_1
conv3_1
Восстановление стиля
23. Детали контента сохраняют позицию, но перерисовываются нужным стилем.
Комбинированный loss: результат
24. + Мерджит две любые картинки
+ Не требует обучения сети
+ Код на различных DL-библиотеках: TensorFlow, Torch, Theano
- Долгая работа алгоритма для онлайна
• CPU: 5min
• GPU: 10-15 sec
Artistic Style: резюме
27. «Пирамида»: сеть видит исходное изображение в разных
разрешениях.
Convolution
block
Join block
Структура сети-генератора
28. + Скорость: можно сделать онлайн-обработку фото/видео
• Inference: 20-100 ms на GPU
- Требует обучения модели под каждый стиль.
- Длительность: 1-4h (GPU, Titan X)
- Тяжело экспериментировать
- Код только на Torch (на момент разработки приложения)
Real-Time Style Transfer: резюме
32. • Хорошо передает стиль (мазки, цвета)
• Трудно добиться «чистых» изображений
• Удалось оптимизировать до 100 мс/фото под один из стилей
Итог: не подходит из-за скорости.
Artistic style: резюме
35. • Из коробки плохая стилизация
• Трудно экспериментировать из-за долгих итераций обучения
• Хороший результат:
• код на Torch Ульянова
• + модель генератора Johnson’а
• + патчи
Real-Time Style Transfer: результат
43. Можно изменять исходные изображения при обучении, чтобы сеть
была устойчива к освещению/шуму/…
+noise
Augmentation
44. Super-resolution – улучшение разрешения фото.
+ Отлично подходит, чтобы убрать мелкий шум
+ Есть предобученная сеть waifu2x
- Скорость: дополнительный прогон через сеть
Super-resolution
49. • Большое кол-во параметров и их значений
• слои, веса, размеры картинок, …
• Оценка результата – «на глаз»
• Loss плохо коррелирует с качеством выходного изображения
• алгоритмы итеративны – много результатов => «глаз замыливается»
Итерация обучения
Красота
Сложности подбора стиля
50. • Обратный брутфорс проще,
чем прямой
• Надо найти несколько
наборов «рабочих»
параметров
• Дотюнивать кандидатов
руками
• Коробочное решение – FGLab
Интерфейс подбора стиля
60. • Нейросети на Torch (LUA)
• Пробовали переписать на TensorFlow (Python)
• наткнулись на баг с выделением памяти на GPU
• Backend
• Docker-контейнер Ubuntu на centos7
• C + luajit
• Быстродействие на GPU
• 24ms, видео 350x350
• 75ms, фото 1024x1024
Технические детали
61. • Игровые карты Geforce Titan X и 1080
• серверные значительно дороже
• amazon: дорого, слабые карты (на момент запуска)
• На launch’е ставили PC из-за отсутствия серверов в продаже
• Большинство GPU-карт требуют особую материнскую плату
• Сервера: 4 x Titan X
Сервера