Введение:

С тех пор, как Пикачу впервые отправил Team Rocket в небо с помощью своего «Удара молнии» и привел мир в трепет в 1998 году, японская анимационная индустрия (так называемое аниме) продолжает укреплять свое влияние в массовой культуре и привлекать миллионы поклонников по всему миру. Спустя годы после своего первого прорыва аниме-студии представили бесчисленное количество культовых и популярных шоу, таких как «Жемчуг дракона», «Ван-Пис» и т. д. По оценкам, в 2022 году мировая стоимость аниме-индустрии составит колоссальные 25 миллиардов долларов США.

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

Например, опрос JAniCA (Японская ассоциация создателей анимации) в 2015 году продемонстрировал условия труда, средний доход и рабочее время аниматоров в японской анимационной индустрии. 84% аниматоров (как полный, так и неполный рабочий день) сообщили, что работают более 8 часов в день, а 15,9% из них работают более 350 часов в месяц. В этом опросе также сообщается, что средний годовой доход промежуточных аниматоров составлял всего 1,113 миллиона иен (9 259 долларов США), что едва ли является минимальной заработной платой в Японии.

Почему это? Несмотря на то, что современные западные мультфильмы уже много лет назад переняли инструменты трехмерной компьютерной графики, японская анимационная индустрия по-прежнему предпочитает рисованную анимацию для большей части своей работы. В результате объем работы, чтобы закончить только один монтаж (или одну сцену), огромен. Мы также должны учитывать скрупулезное внимание аниме-индустрии к деталям, поэтому время дорисовки одного кадра составляет не менее 10 минут. Учитывая, что одна серия аниме длится около 20 минут, каждая из которых состоит из 24 кадров, чтобы закончить всего одну серию, требуется более 4800 часов напряженной работы. Это лишь приблизительная оценка минимального количества усилий, которые необходимо приложить к одному эпизоду аниме.

Сообщество машинного обучения предприняло несколько попыток решить проблемные условия работы японских аниматоров и помочь им в создании красивых анимационных фильмов. В этой статье мы хотим сосредоточиться на раскрашивании на основе машинного обучения. Чтобы быть более конкретным, это модель машинного обучения, которая может рисовать штриховые рисунки, учитывая эталонное изображение цвета. Эта технология может сократить примерно половину рабочих часов, необходимых для анимации промежуточных кадров аниме, при условии, что наброски и раскрашивание занимают примерно одинаковое количество времени. Эти промежуточные кадры обычно занимают более 80% от общего числа кадров, оставляя менее 20% для ключевых кадров. Преимущества этого решения по сравнению с другими методами раскрашивания (такими как методы на основе подсказок и GAN) заключаются в том, что оно не требует каких-либо внешних вспомогательных подсказок и не страдает от цветовых потеков и визуальных артефактов, часто встречающихся в генеративных методах.

Если говорить более подробно, модель принимает два входных параметра: целевое штриховое изображение и эталонное цветное изображение. Цель состоит в том, чтобы распространить существующие эталонные цвета из эталонного изображения на целевое черно-белое штриховое изображение. Для этого нам нужно сгенерировать соответствия между цветовыми областями эталонного изображения и целевого изображения. Другими словами, нам нужно найти, какая область на эталонном изображении такая же, как и на целевом изображении, но смещена в другое место из-за преобразования изображения (перевод, вращение, масштабирование и т. д.) или движения персонажа (ходьба, еда). , выражение эмоций и др.). В этой статье мы рассматриваем регион как синоним однородного сегмента (связного компонента одного цвета). Мы иллюстрируем обзор процесса раскрашивания на следующем рисунке.

Рабочий процесс:

На следующей диаграмме показан общий рабочий процесс автоматической раскраски. Обратите внимание, что входные данные цвета для этого типа модели машинного обучения представляют собой нарисованное изображение до добавления затенения и яркости. Следовательно, эталонное цветное изображение имеет однородные цветовые сегменты, из которых мы можем извлечь связанные компоненты уникальных цветов. В целом, мы извлекаем набор сегментов для эталонного цветного изображения и целевого штрихового рисунка, а затем из каждого из них извлекаем вложения сегментов. Набор эталонного изображения и эталонного сегмента приведет к набору эталонных векторов встраивания, в то время как набор целевого изображения и целевого сегмента приведет к целевым векторам вложения. Во время вывода мы будем сопоставлять каждый целевой вектор вложения с одним эталонным вектором вложения, метрическое расстояние которого является наименьшим, что считается соответствующим сегментом в эталонном изображении. Затем мы раскрасим целевые сегменты соответствующим эталонным цветом и получим окончательное раскрашенное изображение. Во время обучения мы вычисляем различные потери, сопоставляя эти два набора векторов встраивания и обновляя параметры модели.

Первым шагом является предварительная обработка эталонного изображения и целевого штрихового рисунка. Как было сказано ранее, мы извлекаем связанные компоненты (или однородные сегменты) из этих входных данных. Для справки, мы группируем соседние пиксели одного цвета в один сегмент, поэтому каждый сегмент будет иметь один репрезентативный цвет. В случае с лайн-артом проблема немного усложняется. Поскольку рисованный штриховой рисунок обычно имеет несколько небольших отверстий между штрихами (художники не обращают внимания на закрытие всех граничных штрихов), для уменьшения ошибок извлечения обычно применяется метод захваченного шара. Без этого захваченного мяча мы могли бы столкнуться с ошибками слияния, когда один сегмент в штриховом рисунке соответствует двум сегментам в эталоне цвета. Результат этого шага включает маску маркировки, которая описывает, какие пиксели в изображении имеют какой идентификатор сегмента.

Подробнее о захваченном мяче: метод сегментации захваченного мяча делит штриховой рисунок на разные сегменты, но он может закрывать небольшие промежутки между штрихами с помощью концепции «катящегося мяча». Когда две области локально имеют зазор между собой, если предопределенный шар слишком велик, чтобы пройти через него, мы все равно будем считать их двумя отдельными областями. Этот метод может исправить ошибки слияния в штриховых рисунках, но не ошибки разделения.

После этапа предварительной обработки и эталон, и цель имеют свои наборы сегментов. В зависимости от того, на каком этапе модели нейронной сети мы используем набор сегментов, у нас есть два типа моделей раскрашивания. Тем не менее, они оба нацелены на вычисление функций внедрения для каждого сегмента в эталонном наборе и целевом наборе.

В первом случае мы запускаем полное изображение (либо эталонное, либо целевое) непосредственно через базовую модель нейронной сети. Эта модель может быть любой общей сверточной моделью, такой как ResNet, EfficientNet и т. д. Чтобы увеличить мощность визуальных функций из этой базовой модели, мы также можем применить такие методы, как пирамида функций или восходящая ветвь. После получения функций изображения из последнего слоя мы теперь пытаемся вычислить вектор признаков встраивания для каждого сегмента (или каждого связанного компонента). Это делается путем маркировки пула функций на основе маски следующим образом:

Подробнее о пирамиде признаков. Пирамида признаков означает, что мы создаем разные уровни (пирамиду) слоев признаков в разных масштабах, поэтому модель изучает многомасштабные признаки для одного конкретного региона или объекта.

В противном случае мы обрежем полное изображение, используя сначала набор сегментов, прежде чем вводить его в нейронную сеть. Учитывая маску маркировки, мы можем вычислить ограничивающий прямоугольник для каждого сегмента, который инкапсулирует все пиксели одного сегмента. Полное изображение делится на N кадров, где N — количество сегментов в изображении. Обратите внимание, что ссылка и цель могут иметь разное количество сегментов. Примеры некоторых обрезанных областей показаны здесь:

Затем каждое изображение обрезанной области будет масштабировано до единого размера. Этот список изображений используется в качестве входных данных модели, аналогично визуальным токенам в модели Visual Transformer. По мере изменения масштаба изображения региона мы также добавляем позиционные вложения, чтобы можно было восстановить относительную информацию между каждым сегментом. Чтобы вычислить вектор признаков встраивания сегмента, мы просто запускаем соответствующее обрезанное изображение через сверточную нейронную сеть.

Подробнее о позиционных вложениях: мы используем вариант слоя CoordConv в качестве позиционных вложений. Для каждого обрезанного изображения мы добавляем еще два канала, один для координат x и один для координат y.

Теперь готовы вложения функций двух наборов сегментов, эталонного и целевого. На данный момент каждое встраивание генерируется в основном своей собственной визуальной и позиционной информацией, поэтому мы можем добавить межсегментную информацию, чтобы зафиксировать отношения между сегментами. Отношения соседства между сегментами (два сегмента имеют одну и ту же границу) могут быть полезны, поэтому мы будем извлекать эту информацию и вводить ее в сверточную сеть графа. Чтобы узнать, какой сегмент имеет общую границу с каким другим сегментом, мы используем технику, называемую матрицей совпадения уровней серого, которая возвращает матрицу смежности между сегментами в одном изображении. Прикладная сверточная модель графа — это X. Помимо информации о соседстве, мы также изучаем любые произвольные отношения между сегментами с помощью модели внутреннего внимания, такой как Transformer.

подробнее о GLCM: матрица совпадения уровней серого определяет пространственные отношения между значениями пикселей. Каждая запись GLCM содержит подсчет количества вхождений пары значений пикселей в изображение с определенным пространственным отношением. Основываясь на GLCM маски маркировки, мы можем выяснить, какое значение пикселя (или идентификатор сегмента) соседствует с другим.

подробнее о свертке графа: Граф Сверточная нейронная сеть — это сверточная модель, работающая с данными графа. На шаге k он дополнит функции узла функциями его k-соседних узлов. Популярным вариантом свертки графа является модель Кипфа.

Это все, что касается архитектуры модели. Теперь давайте углубимся в то, как мы будем обучать нашу модель сопоставлять соответствия между двумя изображениями. Мы полагаемся на два вида аннотаций наземной истины при определении правильных соответствий между эталоном и целью. Во-первых, у нас есть метки соответствия подмножества целевых сегментов с их эталонными аналогами, которые получены в результате усилий по маркировке вручную или генерации на основе правил. Эти метки используются непосредственно при вычислении кросс-энтропийных потерь или триплетных потерь. Во-вторых, в тех случаях, когда у нас нет метки соответствия для сегмента, мы должны полагаться на их информацию о цвете из раскрашенного целевого изображения. Мы можем просто использовать цвет в качестве базового класса истинности при вычислении перекрестной энтропийной потери, но модель может найти ярлыки для неправильного эталонного сегмента того же цвета. Поэтому мы добавляем потерю согласованности цикла, которая заставляет модель иметь одинаковый прогноз соответствия как в прямом (от цели к эталону), так и в обратном (от ссылки к цели) направлениях.

Обсуждение:

Проблема раскрашивания на основе машинного обучения для рисованной анимации имеет большой потенциал, но наше сообщество только коснулось возможных архитектур моделей. Есть несколько захватывающих направлений, которые можно использовать для дальнейшего развития автоматической раскраски.

Самым сложным препятствием является отсутствие наборов данных для обучения и тестирования. По мнению японских анимационных студий, их активы и рисунки являются важной интеллектуальной собственностью, защищенной авторским правом. В результате они неохотно делятся своими данными с внешними исследовательскими группами, поэтому общедоступные наборы данных по этой проблеме очень ограничены. Если мы сможем создать огромный общедоступный набор данных (желательно также с хорошими аннотациями), различные исследовательские группы смогут легко сравнивать методы и разрабатывать новые современные архитектуры.

Кроме того, большинство современных методов полагаются только на визуальную, позиционную и некоторую межсегментную информацию. Семантическое значение внутри самого изображения в значительной степени игнорируется, но они являются важными подсказками при установлении соответствия между двумя изображениями. Одним из возможных направлений исследований является включение семантической информации в модели нейронного сопоставления.

Ссылки:

Кейси, Эван, Виктор Перес и Жуору Ли. «Преобразователь анимации: визуальное соответствие через сопоставление сегментов». Материалы Международной конференции IEEE/CVF по компьютерному зрению. 2021.

Данг, Т. Д., До, Т., Нгуен, А., Фам, В., Нгуен, К., Хоанг, Б., и Нгуен, Г. (2020). Нейронная сеть корреспонденции для раскрашивания штрихового рисунка. В плакатах ACM SIGGRAPH 2020 (стр. 1–2).

Ристола, Жаклин. «Кровь, пот, чернила и слезы: эксплуатация труда в японской анимационной индустрии». Симпозиум аспирантов GLRC 2016.