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

DataArt сгенерировала портрет типичного программиста

Аватар Светлана Хачатурян

Компания DataArt провела эксперимент, поручив нейронной сети создать портрет типичного программиста. Для решения этой задачи были собраны 2000 портретов кодеров из 8 стран мира.

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

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

Ход работы

Для эксперимента были отобраны фотографии 1541 мужчины и 512 женщин из России, Украины, Аргентины, Болгарии, Великобритании, Германии, Польши и США. Для анализа использовался метод, описанный Сатьей Маллик и предусматривающий выделение 68 ключевых точек каждого лица в выборке. Ими выступают координаты уголков глаз, бровей, губ и т. д. На основе собранных данных все лица на портретах были разбиты на треугольники, при этом цвет пикселей внутри полученных фигур был усреднен.

DataArt сгенерировала портрет типичного программиста 1
Модель лица, разбитого на треугольники по ключевым точкам
DataArt сгенерировала портрет типичного программиста 2
Модель лица, разбитого на треугольники по ключевым точкам

Весь проект реализован на языке C++ с опорой на библиотеки dlib и OpenCV.

Типичный программист

Проделанная работа позволила создать портреты настоящих типичных программистов — мужчины и женщины:

DataArt сгенерировала портрет типичного программиста 3
Типичный программист
DataArt сгенерировала портрет типичного программиста 4
Типичная программистка

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

Второй этап эксперимента показал, что разработчики в специфической сфере немного отличаются от общего портрета: например, специалисты по Java более улыбчивые, а у .NET-девелоперов в среднем хуже зрение — многие из них носят очки.

DataArt сгенерировала портрет типичного программиста 5
Типичный Java-разработчик

DataArt сгенерировала портрет типичного программиста 6
Типичный разработчик .Net

Ну а девушки в целом более улыбчивые:

DataArt сгенерировала портрет типичного программиста 7
Типичная .NET-разработчик
DataArt сгенерировала портрет типичного программиста 8
Типичная Java-разработчик
Следите за новыми постами
Следите за новыми постами по любимым темам
13К открытий13К показов