ВВЕДЕНИЕ
Методы машинного обучения в общем и нейронные сети в частности, на сегодняшний день находят своё применение в огромном множестве областей. Одной из таких областей является обработка изображений. Рассмотрим подробнее задачу переноса стиля, относящуюся к этой области. Перенос художественного стиля изображения являет собою создание нового изображения, содержащего характерные глобальные и локальные паттерны стилевого изображения, и при этом сохраняющего структуру изображения исходного. Архитектуры на основе свёрточных нейронных сетей успешно справляются с переносом одного или нескольких заранее выученных стилей, однако при выходе за рамки заранее заготовленных шаблонов они требуют полного переобучения. Ранее предпринимались попытки решить эту задачу с использованием техники адаптивной нормализации данных (adaptive instance normalization), однако субъективная оценка получаемых результатов была далека от идеальной. С выходом работ за авторством L. Sheng, Z. Lin, J. Shao, X. Wang и Dae Young Park и Kwang Hee Lee в 2018 году, в которых описывается принципиально новый подход к решению этой задачи, произошел значительные рывок в данной области. Предложенные в архитектуре Avatar-Net и доработанные в архитектуре SANet решения с использованием механизма внимания (attention mechanism) позволяют соответствующим образом перестроить характерный паттерн переносимого стиля для каждого участка обрабатываемого изображения с учетом содержания данного участка путем сопоставления отношений, таких как близость (identity loss), между контекстным и стилевым изображениями.
Однако, при обработке портретных изображений любым из вышеприведённых методов неизбежно возникает проблема искажения черт лица: те геометрические преобразования, выученные нейросетью, делающие фон похожим по стилю на стилевое изображение, совершенно искажают форму овала лица, глаз, рта, что приводит к утрате узнаваемости в портрете конкретного человека. Объектом исследования данной работы стал поиск путей решения данной проблемы, позволяющих сохранить как выразительные геометрические и цветовые преобразования, производимые при переносе стиля, так и узнаваемость черт человеческого лица.
1. МЕТОД
Решение, предлагаемое в данной работе, заключается в разбиении исследуемой задачи на две: перенос стиля на фоновую часть исходного изображения с большим весом формы над содержанием, что позволяет сохранить яркие цветовые и геометрические преобразования, и перенос стиля на лицо и фигуру человека с преобладанием веса содержания над формой. Визуализация решения представлена на рисунке 1.
Для разделения изображения на две семантические области: фон и фигуру человека, то есть для решения задачи сегментации, была применена нейросеть архитектуры SegNet, обученная на наборе данных Microsoft COCO. Выбор именно этой архитектуры обусловлен малыми временными затратами на обработку кадра (около 40 мс на GPU Nvidia Tesla v100) и удовлетворительными, для данной задачи, результатами.
Для переноса стиля использовалась упомянутая ранее архитектура SANet (Style-Attentional Network), которая является передовым решением на текущий момент, обеспечивая наиболее качественный результат [1]. Одной из ключевых особенностей этой модели является использование механизма внимания (attention mechanism) для выявления паттернов характерных для каждого конкретного изображения. Для варьирования соотношения признаков оригинального изображения к признакам стилевого было предложено ввести два весовых коэффициента. Фактически это осуществлялось путем слияния результатов работы двух слоёв нейросети с разными коэффициентами:
𝑅𝑒𝑠 = 𝑠𝑎𝑛𝑒𝑡41 ∗ 𝑊1 + 𝑠𝑎𝑛𝑒𝑡42 ∗ 𝑊2 ,
где коэффициенты 𝑊1 и 𝑊2 определяют степень важности низкоуровневых и высокоуровневых признаков соответственно. После выделения области с изображением человека составляется бинарная маска, покрывающая эту область. На каждом изображении по полученной маске обрезается фрагмент кадра. Затем, производится первый (фоновый) перенос стиля на оригинальное изображение и второй (портретный) перенос стиля. После этого полученные изображения накладываются друг на друга.
2. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТОВ
Исходная нейросеть SANet была обучена на наборе данных MSCOCO в качестве исходных изображений и на наборе WikiArt в качестве стилевых изображений. Оба набора содержат приблизительно 80 000 изображений. Целевой функцией была выбрана функция identity loss, направленной на приоритизацию сохранения структуры изображения, нежели на изменение стилевых характеристик:
𝐿𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦 = 𝜆𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦1(||𝐼𝑐𝑐 − 𝐼𝑐 ||2 +||𝐼𝑠𝑠 − 𝐼𝑠 ||2) +𝜆𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦2 ∑(||𝜙𝑖(𝐼𝑐𝑐 − 𝐼𝑐)||2 +𝜙𝑖(||𝐼𝑠𝑠 − 𝐼𝑠 ||2)) 𝐿 𝑖=1
Где 𝐼𝑐𝑐 и 𝐼𝑠𝑠 обозначают выходное сгенерированное из двух одинаковых исходных и стилевых изображений, 𝐼𝑐 и 𝐼𝑠 есть исходное и стилевое изображения, каждый 𝜙𝑖 обозначает слой нейросети a 𝜆𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦1 и 𝜆𝑖𝑑𝑒𝑛𝑡𝑖𝑡𝑦2 – гипперпараметры, с экспериментально подобранными значениями 1 и 50 соответственно. Как результат, такая функция потерь позволяет сохранять структуру исходного изображения и стилевые особенности переносимого изображения в одно и то же время. Использовался оптимизатор Adam (adaptive moment estimation) с шагом обучения 0.0001 и размером пакета, равным 5. Применялась аугментация обрезанием части изображений. На рисунке 2 и 3 представлен поэтапный результат работы предложенной сети.
ЗАКЛЮЧЕНИЕ
Сочетание всех вышеприведённых методов и техник позволило добиться улучшения качества переноса стиля с произвольного изображения на человеческие портреты в сравнении с исходными подходами. Найденное решение было внедрено в конечный программный комплекс.
Оригинальная статья тут.