人脸特征点检测(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. Nginx其他配置——日志管理、网页压缩、访问控制
  2. Apache将整合Google Wave功能
  3. php oop 实际工作,PHP OOP注意点(一)
  4. jQuery的淡入和淡出简单介绍
  5. 使用注解实现ssh整合
  6. 【网络搜索】学习资料
  7. mysql二级缓存redis_SpringBoot+Mybatis+redis(二级缓存)搭建
  8. linux离线安装httpd服务,Linux系列之离线安装Apache HTTP
  9. 阅读Unity官方技术blog笔记
  10. python函数递归 斐波那契数列
  11. cmd 顺序启动服务_未能连接一个Windows服务 怎么回事
  12. 计算机学院刘彤,刘彤-北京航空航天大学材料科学与工程学院
  13. Django 国际化和本地化
  14. zabbix修改和查看登录密码
  15. Selenium TestNG Java环境搭建过程中所遇问题汇总
  16. c语言json配置文件linux,Linux C 编程——使用json-c库读取json格式的配置文件
  17. 视频教程-Xamarin技术讲座——初级篇-其他
  18. CTF-Web-[极客大挑战 2019]Knife
  19. 幼儿园案例经验迁移_幼儿园故事教学的实施策略
  20. Font Awesome 是一套绝佳的图标字体库和CSS框架

热门文章

  1. 游戏中的物品管理系统
  2. dubbo源码解析之服务发布与注册
  3. 薛定谔Maestro教程--用户界面1
  4. MacOS 64位GaussView5的破解
  5. 数字图像处理与Python实现-边缘检测-Roberts算子边缘检测
  6. 易源接口showapi的使用
  7. java 生成 pdf 标题 表格 注释 合并
  8. UE4项目的命名规则
  9. Unity编辑器工具简体繁体一键转换
  10. 展望2025多媒体技术与应用趋势