Написать пост

Генерим аниме-тян с помощью машинного обучения: обзор забавного проекта

Аватар Никита Прияцелюк

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

Обложка поста Генерим аниме-тян с помощью машинного обучения: обзор забавного проекта

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

Нам нравится создавать разные прикольные штуки, связанные с ИИ. В этот раз наш взор пал на генеративно-состязательную сеть (Generative Adversarial Networks, GAN), которая бы создавала новые аниме-лица после обучения на наборе лиц, нарисованных людьми. Мы начали с онлайн-примера, код и набор с аниме-лицами которого можно найти здесь.

Как вы видите, GAN со временем совершенствуется в создании реалистичных изображений. GAN содержит генератор, создающий новые изображения, и дискриминатор, который даёт ему конструктивный фидбек. Генератор и дискриминатор являются свёрточными нейронными сетями (Convolutional Neural Networks, CNN).

Пример тренировочных данных:

Генерим аниме-тян с помощью машинного обучения: обзор забавного проекта 2

А вот неплохой пример конечного результата:

Генерим аниме-тян с помощью машинного обучения: обзор забавного проекта 3

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

Результат вышел отличным, но у свёрточных нейронных сетей есть определённые ограничения. Например, капсульные сети лучше понимают, как предметы должны располагаться:

Генерим аниме-тян с помощью машинного обучения: обзор забавного проекта 4
Свёрточные сети считают лицом то, что видят, если есть все необходимые компоненты (глаза, нос, рот и т. п.), пускай даже не в тех местах. Капсульные сети призваны решить эту проблему.

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

Обучение новой архитектуры с капсульной сетью:

Итоговый выход капсульной GAN. Некоторые лица получились хорошо. Другие вроде второго слева на первом и последних рядах, не содержали нужных частей лица:

Генерим аниме-тян с помощью машинного обучения: обзор забавного проекта 6

Мы не заметили особых улучшений при использовании капсульной сети вместо свёрточной в качестве дискриминатора. Возможно, генерация и распознавание статистических признаков дали бы лучший результат (идея взята из работы nVidia). Мы работаем над этим. Мы добавили слой в генератор предсказаний, который создаёт гистограмму направленных градиентов (Histogram of Oriented Gradients, HOG) сгенерированной картинки. HOG используют при распознавании объектов, поэтому мы подумали, что это может помочь нейронной сети научиться создавать лица получше.

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

Ещё одна идея на будущее: GAN’ы с множеством капсульных сетей!

Итак, это был очередной пример того, как можно использовать искусственный интеллект для создания новых изображений в определённом стиле.

Следите за новыми постами
Следите за новыми постами по любимым темам
11К открытий11К показов