ArtFlow — это фреймворк для переноса стиля изображения без потерь с помощью обратимых нейронных потоков. Код в открытом доступе на Github.
Зачем это нужно
Задача универсального переноса стиля (UST) позволяет применять к одному изображению стиль другого. Например, можно сделать фотографию похожей на рисунок известного художника. Использование современных UST-фреймворков, таких как AdaIN, WCT и Avatar-Net приводит к потерям содержимого исходного изображения. Это означает, что процесс стилизации постепенно стирает контуры объектов, делая картинку всё менее узнаваемой. Описанный в статье метод устраняет проблему потери содержимого и делает перенос стиля обратимым.
В чём новшество
- Авторы определили основные причины потери содержимого в AdaIN, WCT и Avatar-Net.
- Предложили обратимую нейронную сеть без потерь, названную PFN, основанную на нейронных потоках.
- На основе PFN предложили новый метод ArtFlow, предоставив его в виде библиотеки на PyTorch. Результаты метода сопоставимы с современными UST-фреймворками, но не приводят к потерям содержимого картинок.
Как работает Artflow
ArtFlow содержит только нейросети Projection Flow Network (PFN), в которых каждое преобразование данных обратимо. PFN реализуют цепочки, состоящие из трёх типов преобразований:
- аддитивная связь;
- свёртка 1×1;
- Actnorm (слой нормализации активации).
Вследствие обратимости каждого из них, информация не теряется как во время прямого, так и во время обратного прохода обучения.
Кроме того, авторы выяснили, что модули передачи стиля в составе AdaIN и WCT не привносят потерь. Их использовали в составе ArtFlow, чтобы добиться чистоты передачи стиля.