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

Иллюстрация: типичный программист

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

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

Ход работы

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

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

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

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

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

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

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

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

Наши тесты для вас:
Какой язык программирования стоит выбрать для изучения?
Что вы знаете о работе мозга?
Насколько вы гиканутый?