Компьютер научили создавать портреты людей по текстовому описанию

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

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

Animesh Karnewar / Medium
Animesh Karnewar / Medium

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

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

Разработчик Анимеш Карневар (Animesh Karnewar) использовал в своем проекте два алгоритма на основе генеративно-состязательных нейросетей, созданных ранее другими исследователями — алгоритм StackGAN для создания фотореалистичных изображений по простому текстовому описанию, а также нейросеть ProGAN для создания высококачественных изображений людей.

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

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

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

Григорий Копиев.

Читайте также: