Индийский программист создал программу, умеющую создавать изображения человека по текстовому описанию его внешности, которое задается простым языком. Описание разработки доступно в блоге автора на Medium, а исходный код опубликован на GitHub.
Работа с изображением — это одна из сфер, в которой наиболее заметен прогресс в области алгоритмов машинного обучения. В частности, немало групп разработчиков создают алгоритмы для создания изображений людей. Как правило, в них используется архитектура генеративно-состязательной нейросети, описанная в 2014 году. Такие нейросети состоят из двух компонентов — генератора и дискриминатора.
Первый создает изображение и отдает его на проверку дискриминатору, который определяет, является ли оно настоящим или создано генератором. Получая оценку своих действий генератор постепенно учится создавать изображения, максимально похожие на объекты из обучающего датасета, а дискриминатор совершенствуется в распознавании этих «подделок».
Разработчик Анимеш Карневар (Animesh Karnewar) использовал в своем проекте два алгоритма на основе генеративно-состязательных нейросетей, созданных ранее другими исследователями — алгоритм StackGAN для создания фотореалистичных изображений по простому текстовому описанию, а также нейросеть ProGAN для создания высококачественных изображений людей.
От StackGAN программист использовал часть, позволяющую кодировать текстовое описание, данное простым языком, в вектор, который в дальнейшем передается нейросети, синтезирующей изображение. В качестве этого элемента разработчик использовал нейросеть ProGAN. Одна из ее особенностей заключается в том, что при обучении количество ее слоев и разрешение изображения увеличивается постепенно, что позволяет в результате обучить нейросеть созданию качественных изображений.
Для обучения автор использовал датасет Face2Text, состоящий из 400 фотографий и сопоставленных им текстовых описаний человека. Разработчик отмечает, что полученные после обучения изображения нельзя считать реалистичными, но черты изображенных людей довольно хорошо согласуются с описанием. Процесс тренировки нейросети можно увидеть на видео:
Недавно свой вариант генеративно-состязательной нейросети для создания изображений из текста представили разработчики из Microsoft. Особенность выбранной ими архитектуры заключается в том, что нейросеть не просто формирует единый вектор на основе текстового описания, а рассматривает каждое слово предложения отдельно и рисует изображение на их основе.
Григорий Копиев.
Читайте также: