март 2021
для voloagency.com

Задача
Разработать алгоритм для анализа гармоничности и ширины улыбки
Семантический анализ лица - локализация области губ и рта
Определение линии основания и вершин зубов для верхнего ряда
Сегментация каждого зуба в отдельности и определение их ширины
Анализ полученных параметров улыбки относительно "золотой пропорции"
Результат


Процесс
Доразмечаем часть датасета CelebAMask-HQ дополнительным классом "область зубов"
Выбираем 2000 фотографий лиц из датасета CelebAMask-HQ c достаточно широкой улыбкой и доразмечаем их дополнительным классом верхнего ряда зубов. Для обучения нейронной сети и сегментирования зубов используем вырезанное изображения области рта для выровненного лица. Используем выравнение лица аналогичное тому, что применяется для идентификации лиц. Применяем аугментацию данных - перспективные искажения изображений, изменение контраста/цветности для компенсации небольшого размера обучающего датасета.



типов масок
Используем нейросеть архитектуры подобной BiSeNet для более подробной сегментации области рта. Выделяем следующие области:
лицо, верхняя и нижняя губы, верхний ряд зубов
Выравниваем лицо и сегментируем зубы
Выравниваем лицо по 68 ключевым точкам и вырезаем изображение области рта. Подаём изображение на обученную нейронную сеть и получаем маску для сегментации вехрнего ряда зубов.



Выделяем каждый зуб и определяем их ширину
Находим верхнюю и нижнюю опорные линии для ряда зубов. С помощью преобразования distance transform находим наиболее "глубокие" точки, разделяющие соседние зубы




Оцениваем гармоничность улыбки
Используем все полученные данные о геометрии верхнего ряда зубов для оценки красоты и гармоничности улыбки. Используем шаблон "золотого сечения" улыбки


Оценка улыбки:
/ 10

Оценка улыбки:
/ 10

Оценка улыбки:
/ 10




