python 实现81个人脸关键点实时检测

文章目录:

  • 一、81个关键点介绍
  • 二、81 个关键点的使用

该库也是基于dlib实现的,还有face_recognition也同样是基于dlib来实现的

dlib地址:https://github.com/davisking/dlib
关键点检测:http://dlib.net/face_landmark_detection.py.html


一、81个关键点介绍

先来仔细看一看这只斯嘉丽,脸上81个关键点的分布:

0-67是dlib既有的68个脸部关键点;
68-80是程序猿新增的13个前额关键点。
程序猿说,他是从Patrick Huber的eos项目 (一个轻量级3DMM) 上,fork出了一个分支,用Surrey人脸模型找到了自己需要的这13个额外的点。
然后,用整个ibug大数据库训练了模型,拿81点替换了原本的68点。不过,训练方法还是和dlib差不多的。

81个关键点 也是基于dlib来实现的)

二、81 个关键点的使用

import dlib
import numpy as np
import cv2cap = cv2.VideoCapture(0)
# 设置保存视频格式
fourcc = cv2.VideoWriter_fourcc(*'XVID')  # fourcc:指定视频编解码器的4字节代码
# 输出视频参数设置   输出视频名   视频格式  视频帧   保存视频分辨率
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640, 480))# 要加载的81个关键点的人脸检测模型
predictor_path = 'shape_predictor_81_face_landmarks.dat'# 导入dlib库
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_path)while(cap.isOpened()):ret, frame = cap.read()# 对图片进行垂直镜像翻转frame = cv2.flip(frame, 1)dets = detector(frame, 0)for k, d in enumerate(dets):shape = predictor(frame, d)landmarks = np.matrix([[p.x, p.y] for p in shape.parts()])for num in range(shape.num_parts):cv2.circle(frame, (shape.parts()[num].x, shape.parts()[num].y), 3, (0,255,0), -1)cv2.imshow('frame', frame)# 把每一帧保存成视频out.write(frame)if cv2.waitKey(1) & 0xFF == ord('q'):print("q pressed")break# 调用release()释放摄像头,调用destroyAllWindows()关闭所有图像窗口。
cap.release()
out.release()cv2.destroyAllWindows()

效果我就放一张截图吧

注意:

你保存的视频有可能打不开,我觉得可能是格式的分辨率的问题,你可以通过cap.set() 进行分辨率的设置

81 个关键点的模型去下面的参考1 中的github地址去获取

参考:
1、https://github.com/codeniko/shape_predictor_81_face_landmarks
2、https://blog.csdn.net/qq_25436597/article/details/79621833


码字不易,且看且珍惜!

支付宝收款码 微信收款码

如果你热衷技术,想寻找志同道合的伙伴,欢迎加入我们!

微信交流 QQ技术交流群

python 实现81个人脸关键点实时检测相关推荐

  1. 2D Pose人体关键点实时检测(Python/Android /C++ Demo)

    2D Pose人体关键点实时检测(Python/Android /C++ Demo) 目录 2D Pose人体关键点实时检测(Python/Android /C++ Demo) 1.人体关键点数据集 ...

  2. 基于Python,dlib实现人脸关键点检测

    @代码实现及安装过程 基于Python,dlib实现人脸关键点检测 dilb 在做人脸检测人脸识别方面用到比较多的.face_recognition就是基于dlib实现的. 这篇文章将使用Python ...

  3. CMU开源:价值百万美元的多目标人体关键点实时检测

    相关文章:开源|2017 CVPR(Oral Paper):多目标实时体态估测 项目开源 主要内容介绍: OpenPose是一个利用OpenCV和Caffe并以C++写成的开源库,用来实现多线程的多人 ...

  4. 调用摄像头使用face_recognition 或 opencv中haar人脸特征实时检测识别人脸、给人脸打马赛克/给人脸贴图

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) OpenCV:python调用摄像头同时使用OpenCV中自带 ...

  5. Dlib库中实现正脸人脸关键点(landmark)检测的测试代码

    Dlib库中提供了正脸人脸关键点检测的接口,这里参考dlib/examples/face_landmark_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸关键点检测的 ...

  6. 【MediaPipe】(1) AI视觉,手部关键点实时跟踪,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成手部关键点实时检测跟踪.先放张图看效果,15代表FPS值. 1. 导入工具包 # 安装opencv pip install opencv-c ...

  7. 人脸关键点检测综述(含论文、数据集、方法等)

    人脸关键点 人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别.表情分析.三维人脸重建及三维动画等其它人脸相关问题的前提和突破口.近些年来,深度学习(http://www.rainc ...

  8. python检测键盘输入_python实时检测键盘输入函数的示例

    在嵌入式.尤其是机器人的python编程中,经常需要实时检测用户的键盘输入来随时控制机器人,这段代码可以帮助我们提取用户输入的字符,并在按下键盘的时候作出反应. import sys import t ...

  9. python实时检测键盘输入函数

    在嵌入式.尤其是机器人的python编程中,经常需要实时检测用户的键盘输入来随时控制机器人,这段代码可以帮助我们提取用户输入的字符,并在按下键盘的时候作出反应. import sys import t ...

最新文章

  1. 擦地机器人修理_不要智障机器人,擦地机器人就选iRobot,干湿两擦用了就知道...
  2. 分布式服务框架 dubbo/dubbox 入门示例(转)
  3. 微信小程序把玩(二十八)image组件
  4. 光伏电站清扫机器人_光伏智能清扫机器人
  5. 【c++】映射表std::map
  6. 中国台湾地区几乎所有院校的硕博论文库(部分可下全文)分享该日志 举报...
  7. 第一类Stirling数和第二类Stirling
  8. 石油化工静设备计算机辅助设计桌面系统,PV Desktop 石油化工静设备计算机辅助设计桌面系统简介...
  9. linux下缓存命中测试,linux为什么报表缓存缓存未命中?_linux_开发99编程知识库...
  10. Linux优盘挂载卸载以及文件查看
  11. 数据源管理 | OLAP查询引擎,ClickHouse集群化管理
  12. 团体程序设计天梯赛-练习集-L1-036. A乘以B
  13. 大数据分析要避免哪些错误
  14. Vue快速上手笔记2 - 开发环境的搭建
  15. sudo: add-apt-repository:找不到命令_C++腾讯面试题库干货!作为程序员,这些都掌握了,还有什么理由拿不到offer?...
  16. 网络信息安全基本属性
  17. 5个常用的大数据可视化分析工具
  18. RQNOJ 34 紧急援救 解题报告
  19. uniapp小程序根据经纬度精确定位
  20. 隐匿在数据结构背后的原理

热门文章

  1. BPM实例分享:如何设置开窗高度与宽度?
  2. C# ListView添加DragDrop
  3. East Central North America Region 2015
  4. jquery zoom jquery放大镜特效
  5. Windwos下连远程linux Hbase小问题
  6. 梦有感 2009-10
  7. asp.net用Zxing库实现条形码输出
  8. Spring Integration学习资料
  9. (零)我为什么要写Linux学习笔记?
  10. JavaScript 中创建三种消息框:警告框、确认框、提示框