UP Face: нейронная сеть, для анализа лица по фотографии.
Сервис позволяет определить пропорции и асимметрию лица, цвет глаза, цвет волос, пол, возраст, расу, схожесть с известным человеком.


UP Face
Клиент
Сеть клиник пластической хирургии. Подробности — под NDA.

О проекте
Нейросеть для клиник пластической хирургии, которая оценивает асимметрию лица по фотографии.

Цели разработки
Помочь клиентам принять решение
UP Face измеряет лицо по 75 параметрам и показывает степень асимметрии в цифрах. На основе этих данных клиент решает нужна ли ему операция.

Ускорить и улучшить прием
Точные данные о пациенте до начала приема ускоряют прием и изучение анамнеза.
Определяет пропорции и асимметрию лица

Нейросеть работает так:
Клиент загружает фотографию, а система показывает опорные точки на лице с помощью скрипта на базе библиотеки OpenCV и фреймворка Caffe. На основе опорных точек нейросеть строит линии для оценки симметрии и размеров лица.

Эмоции, волосы, цвет кожи
После асимметрии мы научили нейросеть определять шесть типов эмоции, длину волос, седину, шрамы, макияж, татуировки, пирсинг, морщины, цвет кожи.

Вот некоторые показатели и технические подробности.
Эмоции
  1. Злость
  2. Презрение
  3. Страх
  4. Счастье
  5. Нейтральные эмоции
  6. Печаль
Модель обучена на Pytorch.



Точность определения эмоций на этом этапе — 65%.

Цвет волос
  1. Блондин
  2. Брюнет
  3. Шатен
  4. Седой
  5. Крашенный
Лучшая модель: файнтюнинг на базе ResNet50 с предобученными весами. В качестве головы распознавания два внутренних полносвязных слоя и последний по числу классов.
Для снижения переобучения добавлены два слоя dropout.
Длина волос
  1. Короткая
  2. Длинная
  3. Хвост
  4. Без волос
Лучшая модель определения: файнтюнинг на базе ResNet50 с предобученными весами.



Точность на тестовой выборке ~ 86%.
График ошибок и accuracy последней архитектуры.
Точность на тестовой выборке ~ 96%.
Седина и шрамы
  1. Седина есть
  2. Седины нет
  3. Шрам есть
  4. Шрама нет

Мы применяли технологию семантической сегментации и маскирования. Коэффициент срабатывания — 1% наличия заданного цвета. Точность обнаружения — 83%.
Цвет глаз
  1. Голубые
  2. Серо-голубые
  3. Коричневые
  4. Серо-коричневые
  5. Темно-коричневые
  6. Зеленые
  7. Серо-зеленые
  8. Неопределенные
Чтобы определить цвет глаз, система определяет 68 точек на лице. На основании этих точек она определяет центры глаз, расстояние между ними и радиус радужной оболочки. Далее UP FACE создает маску, чтобы выделить радужные оболочки и при помощи OpenCV определить доминирующий цвет из набора цветовых диапазонов каждого класса.
Итог
Система работает. Результаты просчитываются на внешнем сервере и передаются по API. При обработке фотографии клиент и врач получают точные данные в цифрах.
Так выглядит результат работы: клиент загружает фотографию лица, а система показывает его параметры. Те же данные поступают врачу.
Команда
  1. Два дата сантиста
  2. DevOps
  3. Аналитик и руководитель проекта

Сроки проекта
Четыре месяца