OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
来源:互联网 发布:c语言return返回值给谁 编辑:程序博客网 时间:2024/06/07 12:26
参考:http://blog.csdn.net/xingchenbingbuyu/article/details/51116354
主要步骤:
1.加载dlib自带的frontal_face_detector作为我们的人脸征检测器
2.加载官方提供的模型构建特征提取器
3.使用detector进行人脸检测
4.输出人脸个数
5.使用predictor进行人脸关键点识别
6.绘出关键点
其中预训练模型shape_predictor_68_face_landmarks.dat,点击这里找到并下载
Python程序
import cv2import dlibimport numpyimport sysPREDICTOR_PATH = "./data/shape_predictor_68_face_landmarks.dat"# 1.使用dlib自带的frontal_face_detector作为我们的人脸提取器detector = dlib.get_frontal_face_detector()# 2.使用官方提供的模型构建特征提取器predictor = dlib.shape_predictor(PREDICTOR_PATH)class NoFaces(Exception): passim = cv2.imread("./image/nba.jpg")# 3.使用detector进行人脸检测 rects为返回的结果rects = detector(im, 1)# 4.输出人脸数,dets的元素个数即为脸的个数if len(rects) >= 1: print("{} faces detected".format(len(rects)))if len(rects) == 0: raise NoFacesfor i in range(len(rects)): # 5.使用predictor进行人脸关键点识别 landmarks = numpy.matrix([[p.x, p.y] for p in predictor(im, rects[i]).parts()]) im = im.copy() # 使用enumerate 函数遍历序列中的元素以及它们的下标 for idx, point in enumerate(landmarks): pos = (point[0, 0], point[0, 1]) # cv2.putText(im,str(idx),pos, # fontFace=cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, # fontScale=0.4, # # color=(0,0,255)) # 6.绘制特征点 cv2.circle(im, pos, 1, color=(0, 255, 0))cv2.namedWindow("im", 2)cv2.imshow("im", im)cv2.waitKey(0)cv2.destroyAllWindows()
阅读全文
0 0
- OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
- OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
- OpenCV实践之路——用OpenCV和Dlib进行人脸颜值预测(Python)
- OpenCV实践之路——用OpenCV和Dlib进行人脸颜值预测(Python)
- Python_人脸检测 (dlib库检测与opencv检测效果对比 含代码)
- 使用Dlib库进行人脸检测与对齐
- opencv结合dlib进行人脸特征点的检测
- Opencv与dlib联合进行人脸关键点检测与识别
- Opencv与dlib联合进行人脸关键点检测与识别【转】
- 用dlib和opencv进行不同角度人脸检测及68个关键点提取(Python)
- 利用opencv,dlib,python编写人脸检测程序
- 【Python】使用openCV与dlib实现人脸68特征点的检测与手动修改
- OpenCV实践之路——人脸检测(C++/Python)
- OpenCV实践之路——人脸检测(C++/Python)
- 利用dlib+opencv进行人脸裁剪
- Linux下python 与 C++ dlib人脸检测
- Ubuntu下Python之dlib人脸检测
- Python, dlib, OpenCV换脸进行时
- Centos6.5手动编译安装nginx
- 各类机器学习问题的最优结果合集!附论文及实现地址索引
- 第三方 QQ登录
- 数字在排序数组中出现的次数
- Fragment+Viewpager结合实现底部页面滑动
- OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
- 数组中只出现一次的数字
- 开源 java CMS
- [操作系统] 实现线程包的方式
- <Reinforcement Learning>1 简介
- RabbitMQ安装教程
- 和为S的两个数字VS和为S的连续正数序列
- 和为S的连续正数序列
- 解决Server Tomcat v7.0 Server at localhost failed to start的方法