![](https://habrastorage.org/storage2/1ee/a5b/9dd/1eea5b9dd96868ac198ef34d4276c141.png)
Синтетические изображения обычно выглядят неестественно, не по-человечески, и тренированный глаз сразу их отличает от настоящих. Проект Weird Faces Study — это попытка объединить традиционную технику «человеческого» рисунка и компьютерные алгоритмы. Результат — сгенерированные компьютерные лица, каждое из которых уникально и выглядит как оригинальная авторская работа.
Генератор лиц Weird Faces Study написан на JavaScript с использованием библиотеки PaperJS в рамках обучающего курса по PaperJS, который читают в Калифорнийском университете в Лос-Анджелесе.
Собственно, алгоритм генерации лиц состоит из 9 шагов.
- Нарисовать форму лица.
- Нарисовать складку внутри формы.
- Найти центр фигуры, нарисовать нос.
- Нарисовать глаза, основываясь на местоположении носа и радиусе, чтобы они не пересекались.
- Нарисовать брови, основываясь на местоположении глаз и их радиусе.
- Нарисовать рот, основываясь на местоположении глаз и носа, чтобы они не пересекались.
- Нарисовать щёки, учитывая форму лица и радиус головы.
- Нарисовать уши снаружи лица.
- Нарисовать волосы снаружи лица.
В результате, компьютер создаёт минимальный набор графических элементов, который распознаётся человеческим мозгом как лицо.
PaperJS — одна из нескольких существующих библиотек для рисования в вебе, наряду с Processing.js и Raphaël.
Возможно, алгоритмы генерации уникальных лиц могут пригодиться в будущем для автоматического рендеринга мультфильмов по автоматически сгенерированным сюжетам.
![](https://habrastorage.org/storage2/39c/2b0/d80/39c2b0d80dfc45d29be6b71fc338ba95.png)
![](https://habrastorage.org/storage2/c53/4ef/770/c534ef770a5d4f861ffdb1b5063a654a.png)
![](https://habrastorage.org/storage2/9fe/b6a/493/9feb6a4933e859d537f5f0fe63246b49.png)