python dlib实现面部标志识别

要使用Python、OpenCV、dlib实现面部标志的识别需要俩步:

  1. 究竟什么是面部标志以及它们是如何工作的。
  2. 如何使用dlib,OpenCV, Python从图像中检测和提取面部标志
    (1)从图像中定位面部ROI
    (2)检测面部ROI上的关键面部结构(即面部标志)

windows10+python3.7安装dlib参考:https://blog.csdn.net/qq_40985985/article/details/105896031

先来上个检测完成的图:(来自淘宝上的图,因为我不想暴露照片,最近买了这件上衣刚好很喜欢,so 手机里有这张图)
在这里插入图片描述

一、面部标志

面部标志主要指口、右眉、左眉、右眼、左眼、鼻子、下颚。

面部标志可以用提取脸的特定区域,应用面部对齐,甚至构建眨眼检测系统。

面部检测器有68点iBUG 300-W数据集训练处的68点模型,及HELEN数据集中进行训练的194点模型

68点数据模型如下图:
在这里插入图片描述

二、从图像中定位ROI

(1)OpenCV提供的预先训练好的Haar级联【 pre-trained Haar cascades】
(2)python库附带的预先训练的深度学习人脸检测模型
(3)专门针对人脸检测任务的预训练HOG +线性SVM对象检测器

三、从ROI中检测与定位面部标志

dlib库中包含的面部标志检测器是Kazemi和Sullivan(2014)提出的 “一毫秒面部对齐与回归树组合” 的实现。

此方法首先使用:
训练组图像上均有被标识出来的面部标志。这些图像的面部标志均被标记,指定了每个面部结构周围区域的特定(x,y)坐标。
Priors,更具体地说,是输入像素对之间的距离的概率。

68点和194点面部标志模型的原理:给定训练数据,训练回归树的整体以直接从像素强度本身估计面部标志的位置(即,未进行“特征提取”)。
最终结果是一个面部标志检测器,可用于实时以高质量预测检测面部标志。

参考:https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/

安装成功如下图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40985985/article/details/105890271