Клиент Сеть клиник пластической хирургии. Подробности — под NDA.
О проекте Нейросеть для клиник пластической хирургии, которая оценивает асимметрию лица по фотографии.
Цели разработки Помочь клиентам принять решение UP Face измеряет лицо по 75 параметрам и показывает степень асимметрии в цифрах. На основе этих данных клиент решает нужна ли ему операция.
Ускорить и улучшить прием Точные данные о пациенте до начала приема ускоряют прием и изучение анамнеза.
Определяет пропорции и асимметрию лица
Нейросеть работает так: Клиент загружает фотографию, а система показывает опорные точки на лице с помощью скрипта на базе библиотеки OpenCV и фреймворка Caffe. На основе опорных точек нейросеть строит линии для оценки симметрии и размеров лица.
Эмоции, волосы, цвет кожи После асимметрии мы научили нейросеть определять шесть типов эмоции, длину волос, седину, шрамы, макияж, татуировки, пирсинг, морщины, цвет кожи.
Вот некоторые показатели и технические подробности.
Эмоции
Злость
Презрение
Страх
Счастье
Нейтральные эмоции
Печаль
Модель обучена на Pytorch.
Точность определения эмоций на этом этапе — 65%.
Цвет волос
Блондин
Брюнет
Шатен
Седой
Крашенный
Лучшая модель: файнтюнинг на базе ResNet50 с предобученными весами. В качестве головы распознавания два внутренних полносвязных слоя и последний по числу классов. Для снижения переобучения добавлены два слоя dropout.
Длина волос
Короткая
Длинная
Хвост
Без волос
Лучшая модель определения: файнтюнинг на базе ResNet50 с предобученными весами.
Точность на тестовой выборке ~ 86%.
График ошибок и accuracy последней архитектуры. Точность на тестовой выборке ~ 96%.
Седина и шрамы
Седина есть
Седины нет
Шрам есть
Шрама нет
Мы применяли технологию семантической сегментации и маскирования. Коэффициент срабатывания — 1% наличия заданного цвета. Точность обнаружения — 83%.
Цвет глаз
Голубые
Серо-голубые
Коричневые
Серо-коричневые
Темно-коричневые
Зеленые
Серо-зеленые
Неопределенные
Чтобы определить цвет глаз, система определяет 68 точек на лице. На основании этих точек она определяет центры глаз, расстояние между ними и радиус радужной оболочки. Далее UP FACE создает маску, чтобы выделить радужные оболочки и при помощи OpenCV определить доминирующий цвет из набора цветовых диапазонов каждого класса.
Итог Система работает. Результаты просчитываются на внешнем сервере и передаются по API. При обработке фотографии клиент и врач получают точные данные в цифрах.
Так выглядит результат работы: клиент загружает фотографию лица, а система показывает его параметры. Те же данные поступают врачу.