概述
本文由@星沉阁冰不语出品,转载请注明作者和出处。
文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51116354
微博:http://weibo.com/xingchenbing
看人脸方面的资料的时候,会发现很多人都会提到dlib这个库,于是就安装尝试下这个库看看它到底有多么的神奇。今天只是初次尝试一下dlib到底怎么用。
安装dlib:
我的操作系统是window 7,安装了pip,所以直接可以命令行安装Python的各种扩展库
pip install dlib
主要步骤:
1.加载dlib自带的frontal_face_detector作为我们的人脸征检测器
2.加载官方提供的模型构建特征提取器
3.使用detector进行人脸检测
4.输出人脸个数
5.使用predictor进行人脸关键点识别
6.绘出关键点
Python程序:
import cv2
import dlib
import numpy
import sys
PREDICTOR_PATH = "/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):
pass
im = cv2.imread("/2.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 NoFaces
for 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,3,color=(0,255,0))
cv2.namedWindow("im",2)
cv2.imshow("im",im)
cv2.waitKey(0)
效果图:
最近开通了微信公众号,感兴趣的同学可以扫码在微信上交流。
最后
以上就是潇洒发夹为你收集整理的OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)的全部内容,希望文章能够帮你解决OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复