人脸特征点检测(Facial landmark detection),即人脸特征点定位、人脸对齐,是在人脸检测的基础上进行的,对人类脸上的特征点(嘴角、眼角等)进行定位。

人脸特征点检测有诸多用途:

  1. 改善人脸识别:通过人脸特征点检测将人脸对齐到平均脸,对齐后的人脸图像识别算法更加有效。
  2. 人脸平均:利用人脸特征点检测的结果,将多个人脸进行融合,形成新的平均人脸。
  3. 人脸交换:利用人脸特征点检测的结果,对两张人脸进行无缝换脸,将一张人脸换到另一张人脸上。
  4. 人脸装扮:如美图秀秀、美颜相机等,对人脸进行化妆,都是在人脸特征点检测的基础上实现的。

本文用dlib实现人脸特征点检测,需要先下载dlib官方训练好的模型shape_predictor_68_face_landmarks.dat,下载链接为http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2。然后利用模型shape_predictor_68_face_landmarks.dat进行68点标定,利用OpenCv进行图像化处理,在人脸上画出68个点,并标明序号。

代码实现:

import numpy as np
import cv2                #图像处理库OpenCV
import dlib               #人脸识别库dlib
#dlib预测器
detector = dlib.get_frontal_face_detector()    #使用dlib库提供的人脸提取器
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')   #构建特征提取器# cv2读取图像
img = cv2.imread("1.jpg")# 取灰度
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)# 人脸数rects
rects = detector(img_gray, 0)
for i in range(len(rects)):landmarks = np.matrix([[p.x, p.y] for p in predictor(img,rects[i]).parts()])  #人脸关键点识别for idx, point in enumerate(landmarks):        #enumerate函数遍历序列中的元素及它们的下标# 68点的坐标pos = (point[0, 0], point[0, 1])print(idx,pos)# 利用cv2.circle给每个特征点画一个圈,共68个cv2.circle(img, pos, 5, color=(0, 255, 0))# 利用cv2.putText输出1-68font = cv2.FONT_HERSHEY_SIMPLEX#各参数依次是:图片,添加的文字,坐标,字体,字体大小,颜色,字体粗细cv2.putText(img, str(idx+1), pos, font, 0.8, (0, 0, 255), 1,cv2.LINE_AA)cv2.namedWindow("img", 2)
cv2.imshow("img", img)       #显示图像
cv2.waitKey(0)        #等待按键,随后退出

运行结果:

以下为标定的结果

dlib 人脸特征点检测相关推荐

  1. 人脸特征点检测(一)

    人脸特征点检测(Facial landmark detection),即人脸特征点定位.人脸对齐(Face Alignment),是在人脸检测的基础上进行的,对人脸上的特征点例如嘴角.眼角等进行定位. ...

  2. dlib+vs2013+opencv实现人脸特征点检测

    刷知乎的时候发现dlib做特征点检测和人脸识别的效果都好于OpenCV,就想着动手玩一下.没想到也是遇坑重重. 首先,在官网 install命令和setup.py文件进行安装时报错,先是报错cmake ...

  3. Facial Landmark Detection(人脸特征点检测)

    原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375 作为计算机视觉研究员,我们很早就开始研究人脸 ...

  4. dlib人脸特征点对齐

    前面我们介绍了使用dlib进行人脸检测,下面我们给出如何使用dlib进行人脸特征点检测.我们直接贴出代码.我们的代码包括如下几部分功能: 检测单张图片 检测一个视频 检测一个camera 先给出代码: ...

  5. 第二篇:基于深度学习的人脸特征点检测 - 数据与方法(转载)

    https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-and-algorithm/ 在上一篇博文中,我们了 ...

  6. PFLD:简单、快速、超高精度人脸特征点检测算法

    作者 | 周强(CV君) 来源 | 我爱计算机视觉(公众号id:aicvml) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourc ...

  7. CPU上跑到 100 fps 的高精度PyTorch人脸特征点检测库

      视学算法分享   作者 | cunjian 编译 | CV君 转自 | 我爱计算机视觉 [导读]向大家推荐一款基于PyTorch实现的快速高精度人脸特征点检测库,其在CPU上的运行速度可达100 ...

  8. ShapeNet:超实时人脸特征点检测与形状拟合开源库

    点击我爱计算机视觉标星,更快获取CVML新技术 近日,来自德国亚琛工业大学的研究人员开源了形状拟合库ShapeNet,其可以实现超实时的人脸特征点检测,也可以用在其他任何需要形状拟合的应用场景. 开源 ...

  9. 人脸特征点检测:SDM

    <Supervised Descent Method and its Applications to Face Alignment>论文解读 这篇文章发表于CVPR2013,来自于CMU. ...

  10. 『深度学习项目四』基于ResNet101人脸特征点检测

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...

最新文章

  1. 在linux下部署安装Tomact并运行javaWeb工程
  2. 办公自动化 (新型办公方式)
  3. numpy.random.randint详解
  4. 《设计模式之禅》之——六大设计原则解读
  5. 编写高质量代码改善C#程序的157个建议[4-9]
  6. 集合总结(全是代码)----------java基础学习
  7. python入门先学什么-学习python需要什么基础
  8. Skyline软件二次开发初级——10如何在WEB页面中的三维地图上控制图层对象
  9. 用计算机看手机照片大小,手机怎么知道照片多少k
  10. python课堂笔记之django-day02(11)
  11. python获取软件内数据_三种 Python 网络内容抓取工具与爬虫
  12. 新版电脑版微信终于可以用上小程序了
  13. 验证哥德巴赫猜想php,庞加莱猜想告破
  14. 第三方支付平台如何对接?
  15. JAVA自定义信件消息模板内容
  16. Camera.cullingMask 常用操作
  17. 岛屿周长c语言,岛屿的周长 --leetcode刷题,golang实现
  18. 用计算机解决问题时 为什么要用计算思维,在问题解决活动中培养计算思维
  19. Unity URP打包安卓shader报错 报红 变红
  20. css animate动画demo

热门文章

  1. 教你3招解决PDF文字无法复制的所有问题!!!
  2. 2018华为数通技术大赛复赛拓扑具体配置
  3. 安全加密 - 加密算法 - 摘要算法 - 秘钥交换协议 - 量子加密
  4. 数字图像处理(19): 边缘检测算子(Roberts算子、Prewitt算子、Sobel算子 和 Laplacian算子)
  5. STM32——红外遥控
  6. 求助微软商店下载的Ubuntu打开后显示目标路径参数错误,进入路径强制打开显示0x80070005错误。各种方法都试验了
  7. 因为计算机丢失d3dx10,Win7打开剑灵游戏提示丢失d3dx10_43.dll怎么解决
  8. 字体推荐——sarasa更纱黑体
  9. CGAN和InfoGAN理解
  10. 《计算机组成原理》----第1章 计算机系统体系结构 1.1 什么是计算机系统体系结构...