![image](https://habrastorage.org/webt/jy/-p/bj/jy-pbjjwjp0x-iimn6w8qk6rwa8.png)
В Google AI продемонстрировали Chimera Painter, модель машинного обучения (ML), которая может рендерить изображения химер и других игровых существ по исходному контуру. Chimera Painter добавляет элементы и текстуры к контуру, разделенному метками частей тела, такими как «крылья» или «когти», когда пользователь нажимает кнопку «преобразовать».
При разработке модели машинного обучения в Google создали прототип цифровой карточной игры, основанный на концепции слияния существ в гибриды, которые затем могут сражаться друг с другом. Игрок начинает бы с карт реальных животных (например, аксолотля или кита) и может сделать их более могущественными путем комбинации (создавая химеру аксолотль-кит).
Поскольку целью было создание высококачественных изображений карт существ, разработчики экспериментировали с генеративными состязательными сетями (GAN). GAN объединяют две сверточные нейронные сети друг против друга: сеть генератора для создания новых изображений и сеть дискриминатора, чтобы определить, являются ли эти изображения образцами из обучающего набора данных (в данном случае изображениями, созданными художником). В варианте условного GAN, который был применен, генератор принимает отдельные входные данные для управления процессом создания изображения.
Чтобы обучить GAN, был создан набор данных из полноцветных изображений с однотипными очертаниями существ, взятыми из трехмерных моделей. Очертания характеризовали форму и размер, а также сегментацию, которая показывала отдельные части тела. После обучения модели ей поручили создать разные виды химер на основе схем, предоставленных художниками. Затем в Chimera Painter была включена самая эффективная модель.
![image](https://habrastorage.org/webt/ky/as/ed/kyasedm41pzuhlgqcrjns_wgs34.png)
Выше показаны некоторые образцы, сгенерированные с помощью модели.
![image](https://habrastorage.org/webt/c9/uz/ki/c9uzkilaz5xdy6ghkxk6sjf_yok.png)
Существующие репозитории иллюстраций не подходили для использования в качестве наборов данных для обучения модели.
Чтобы решить эту проблему, был разработан новый полуавтоматический подход под руководством художников для создания набора данных из трехмерных моделей существ.
Художники создавали или получали набор трехмерных моделей существ, по одной для каждого необходимого типа (например, гиен или львов). Затем они создали два набора текстур, которые были наложены на 3D-модель с помощью Unreal Engine: один с полноцветной текстурой (левое изображение, ниже), а другой с плоскими цветами для каждой части тела (например, головы, ушей, шеи, и т. д.), называемую «картой сегментации» (правое изображение ниже).
![image](https://habrastorage.org/webt/sk/b3/rz/skb3rzl0v2x6t7e-esfgj71x0zw.png)
Этот второй набор сегментов частей тела был предоставлен модели во время обучения, чтобы гарантировать, что GAN узнает о структуре, формах, текстурах и пропорциях отдельных частей тела для различных существ.
3D-модели существ были помещены в простую 3D-модель с использованием Unreal Engine. Затем набор автоматических скриптов берет эту трехмерную сцену и интерполирует между различными позами, точками обзора и уровнями масштабирования для каждой из трехмерных моделей, создавая полноцветные изображения и карты сегментации, которые сформировали набор обучающих данных для GAN.
Используя этот подход, удалось сгенерировать более 10 тысяч пар изображение+карта сегментации для каждой трехмерной модели существа, сэкономив художникам миллионы часов времени по сравнению с созданием таких данных вручную (примерно по 20 минут на изображение).
У GAN было много различных крупных параметров, которые можно было настраивать, что приводило к разному качеству выходных изображений. Чтобы лучше понять, какие версии модели были лучше других, художникам были предоставлены образцы различных типов существ, созданных с помощью этих моделей, и их попросили выделить несколько лучших примеров. Отзывы об ощущении глубины, стиле в отношении текстур и реализме лиц и глаз использовали как для обучения новых версий модели уже после того, как она сгенерировала сотни тысяч изображений. Это позволило выбрать лучшее изображения из каждой категории существ.
GAN настроили для этой задачи, сосредоточив внимание на компоненте функции потери восприятия. Он вычисляет разницу между двумя изображениями с использованием функций, извлеченных из отдельной сверточной нейронной сети (CNN), которая ранее была обучена на миллионах фотографий из набора данных ImageNet. Свойства извлекаются из разных слоев CNN, и к каждому из них применяется вес, который влияет на их вклад в окончательное значение потерь. Ниже приведены несколько примеров из GAN, обученных с разными весами воспринимаемых потерь.
![image](https://habrastorage.org/webt/ob/ye/2c/obye2cexbgfftu_ersx5eipcm3e.png)
Google считает, что демоверсия Chimera Painter избавит художников от необходимости рисовать десятки похожих существ с нуля. Вместо этого модель монстра будут прорабатывать последовательно, от версии к версии. Рисовать прямо в браузере необязательно: Chimera Painter принимает контур существа, созданный в Photoshop или любом другом редакторе изображений. Для этого рекомендуется использовать образец цветов на сайте.
См. также: «Графические войны #1: лагающее пиксельное XX столетие»