Как получить точки на лице, чтобы нарисовать триангуляцию Делоне

Как можно использовать угловые точки рта и глаз и центральную точку носа, используя OpenCv, как на этом рисунке?

Скриншот

Может кто-нибудь мне помочь?

4 ответа

Решение

Процедура на самом деле так:

Face recognition --> face landmark --> delaunay triangulation

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

Вы можете просто найти face landmarks и вы получите много кодов для этого. Эта тема была предметом всесторонних исследований в течение этих десятилетий. Также есть решения с близким исходным кодом, например Visage Tech's Visage SDK.

shape_predictor pose_model;
deserialize("shape_predictor_68_face_landmarks.dat") >> pose_model;
full_object_detection shape = pose_model(cimg,face);

Вы можете использовать активные модели внешнего вида (AAM). На этой странице википедии есть ссылки на некоммерческие инструменты, которые помогут вам сделать это без особых усилий.

Вы можете использовать dlib для определения точек лица:

http://dlib.net/face_landmark_detection_ex.cpp.html

Также есть много типов алгоритмов для обнаружения лицевых точек, посмотрите: https://github.com/mrgloom/Face-landmarks-detection-benchmark

Используйте алгоритм обнаружения ребер, такой как оператор Собеля; Затем создайте точки по краям. Тем не менее, это будет определенно некоторая работа, пока она не будет работать надежно. Я читал научные статьи о методах распознавания лиц.

Другие вопросы по тегам