dlib 人脸特征点检测
人脸特征点检测(Facial landmark detection),即人脸特征点定位、人脸对齐,是在人脸检测的基础上进行的,对人类脸上的特征点(嘴角、眼角等)进行定位。
人脸特征点检测有诸多用途:
- 改善人脸识别:通过人脸特征点检测将人脸对齐到平均脸,对齐后的人脸图像识别算法更加有效。
- 人脸平均:利用人脸特征点检测的结果,将多个人脸进行融合,形成新的平均人脸。
- 人脸交换:利用人脸特征点检测的结果,对两张人脸进行无缝换脸,将一张人脸换到另一张人脸上。
- 人脸装扮:如美图秀秀、美颜相机等,对人脸进行化妆,都是在人脸特征点检测的基础上实现的。
本文用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 人脸特征点检测相关推荐
- 人脸特征点检测(一)
人脸特征点检测(Facial landmark detection),即人脸特征点定位.人脸对齐(Face Alignment),是在人脸检测的基础上进行的,对人脸上的特征点例如嘴角.眼角等进行定位. ...
- dlib+vs2013+opencv实现人脸特征点检测
刷知乎的时候发现dlib做特征点检测和人脸识别的效果都好于OpenCV,就想着动手玩一下.没想到也是遇坑重重. 首先,在官网 install命令和setup.py文件进行安装时报错,先是报错cmake ...
- Facial Landmark Detection(人脸特征点检测)
原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375 作为计算机视觉研究员,我们很早就开始研究人脸 ...
- dlib人脸特征点对齐
前面我们介绍了使用dlib进行人脸检测,下面我们给出如何使用dlib进行人脸特征点检测.我们直接贴出代码.我们的代码包括如下几部分功能: 检测单张图片 检测一个视频 检测一个camera 先给出代码: ...
- 第二篇:基于深度学习的人脸特征点检测 - 数据与方法(转载)
https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-and-algorithm/ 在上一篇博文中,我们了 ...
- PFLD:简单、快速、超高精度人脸特征点检测算法
作者 | 周强(CV君) 来源 | 我爱计算机视觉(公众号id:aicvml) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourc ...
- CPU上跑到 100 fps 的高精度PyTorch人脸特征点检测库
视学算法分享 作者 | cunjian 编译 | CV君 转自 | 我爱计算机视觉 [导读]向大家推荐一款基于PyTorch实现的快速高精度人脸特征点检测库,其在CPU上的运行速度可达100 ...
- ShapeNet:超实时人脸特征点检测与形状拟合开源库
点击我爱计算机视觉标星,更快获取CVML新技术 近日,来自德国亚琛工业大学的研究人员开源了形状拟合库ShapeNet,其可以实现超实时的人脸特征点检测,也可以用在其他任何需要形状拟合的应用场景. 开源 ...
- 人脸特征点检测:SDM
<Supervised Descent Method and its Applications to Face Alignment>论文解读 这篇文章发表于CVPR2013,来自于CMU. ...
- 『深度学习项目四』基于ResNet101人脸特征点检测
相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...
最新文章
- 在linux下部署安装Tomact并运行javaWeb工程
- 办公自动化 (新型办公方式)
- numpy.random.randint详解
- 《设计模式之禅》之——六大设计原则解读
- 编写高质量代码改善C#程序的157个建议[4-9]
- 集合总结(全是代码)----------java基础学习
- python入门先学什么-学习python需要什么基础
- Skyline软件二次开发初级——10如何在WEB页面中的三维地图上控制图层对象
- 用计算机看手机照片大小,手机怎么知道照片多少k
- python课堂笔记之django-day02(11)
- python获取软件内数据_三种 Python 网络内容抓取工具与爬虫
- 新版电脑版微信终于可以用上小程序了
- 验证哥德巴赫猜想php,庞加莱猜想告破
- 第三方支付平台如何对接?
- JAVA自定义信件消息模板内容
- Camera.cullingMask 常用操作
- 岛屿周长c语言,岛屿的周长 --leetcode刷题,golang实现
- 用计算机解决问题时 为什么要用计算思维,在问题解决活动中培养计算思维
- Unity URP打包安卓shader报错 报红 变红
- css animate动画demo
热门文章
- 教你3招解决PDF文字无法复制的所有问题!!!
- 2018华为数通技术大赛复赛拓扑具体配置
- 安全加密 - 加密算法 - 摘要算法 - 秘钥交换协议 - 量子加密
- 数字图像处理(19): 边缘检测算子(Roberts算子、Prewitt算子、Sobel算子 和 Laplacian算子)
- STM32——红外遥控
- 求助微软商店下载的Ubuntu打开后显示目标路径参数错误,进入路径强制打开显示0x80070005错误。各种方法都试验了
- 因为计算机丢失d3dx10,Win7打开剑灵游戏提示丢失d3dx10_43.dll怎么解决
- 字体推荐——sarasa更纱黑体
- CGAN和InfoGAN理解
- 《计算机组成原理》----第1章 计算机系统体系结构 1.1 什么是计算机系统体系结构...