Как получить точки на лице, чтобы нарисовать триангуляцию Делоне
Как можно использовать угловые точки рта и глаз и центральную точку носа, используя OpenCv, как на этом рисунке?
Может кто-нибудь мне помочь?
4 ответа
Процедура на самом деле так:
Face recognition --> face landmark --> delaunay triangulation
Название вводит в заблуждение. Делоне на самом деле используется после того, как вы получите эти очки. Тем не менее, я подозреваю, что ваш вопрос в основном заключается в том, как получить лицо ориентиры. Для этого вы можете обратиться к моему сообщению в блоге. Это моя собственная реализация. Однако я не могу ожидать, что вы поймете это по-китайски.
Вы можете просто найти face landmarks
и вы получите много кодов для этого. Эта тема была предметом всесторонних исследований в течение этих десятилетий. Также есть решения с близким исходным кодом, например Visage Tech's Visage SDK.
В dlib есть детектор ориентиров, который основан на этой статье:https://ibug.doc.ic.ac.uk/media/uploads/documents/sagonas_2016_imavis.pdf
В С ++ код:
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
Используйте алгоритм обнаружения ребер, такой как оператор Собеля; Затем создайте точки по краям. Тем не менее, это будет определенно некоторая работа, пока она не будет работать надежно. Я читал научные статьи о методах распознавания лиц.