OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)

原创 2016年04月11日 00:13:31


本文由@星沉阁冰不语出品,转载请注明作者和出处。

文章链接: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)




效果图:






最近开通了微信公众号,感兴趣的同学可以扫码在微信上交流。


 
版权声明:本文为博主原创文章,转载请联系作者取得授权。

Dlib+opencv实时提取人脸轮廓(windows环境下//Dlib配置入门)

Windows环境下使用Dlib进行人脸特征点提取以及轮廓勾画//示例程序 可以商用的人脸特征点检测里不错的选择...
  • zmdsjtu
  • zmdsjtu
  • 2016年09月03日 13:49
  • 11728

表情识别的简单实现(实时,C++,SVM+Dlib)

SVM+Dlib实现表情识别
  • zmdsjtu
  • zmdsjtu
  • 2016年12月15日 13:17
  • 9431

Opencv与dlib联合进行人脸关键点检测与识别

前言依赖库:opencv 2.4.9 /dlib 19.0/libfacedetection 本篇不记录如何配置,重点在算法实现上。使用libfacedetection实现人脸区域检测,联合dlib...
  • Mr_Curry
  • Mr_Curry
  • 2016年07月22日 14:28
  • 16725

基于opencv+Dlib的面部合成(Face Morph)

零、前言前段时间看到文章【1】和【2】,大概了解了面部合成的基本原理。这两天空下来了,于是参考【3】自己实现了下。虽然【1】和【2】已经讲的很清楚了,但是有一些细节没有提到。所以我在这里记录一下实现的...

基于opencv和Dlib的人脸交换(face swap)

基于opencv和Dlib的人脸交换(face swap)主要分为两个步骤:人脸对齐(face aligment)和无缝融合(Seamless Cloning,可能翻译的不准确)。其中人脸对齐又分为人...

Dlib提取人脸特征点(68点,opencv画图)

Dlib+opencv 68点特征点的使用以及绘图。
  • zmdsjtu
  • zmdsjtu
  • 2016年12月04日 14:31
  • 18380

VS2013+Dlib提取特征点使用总结

上一篇博文是关于seetaface,已经用seetaface开发了一个可以商用的人脸识别登录系统了。识别速度和效果应该还不错,一秒十帧的速度就够了,当相似度阈值设置为0.7时,几乎没有出现过误识别,识...

【深度学习】基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)

基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【二】人脸检测与预处理接口的设计 前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenC...

结合dlib与OpenCV的视频流人脸检测

dlib的人脸检测精度比OpenCV自带的高很多。因此本文采用dlib的人脸检测器,结合OpenCV视频流的读取方法,演示如何进行视频流的人脸检测。...

Dlib+OpenCV深度学习人脸识别

Dlib+OpenCV深度学习人脸识别  前言 人脸识别在LWF(Labeled Faces in the Wild)数据集上人脸识别率现在已经99.7%以上,这个识别率确实非常高了,但是真实的环境...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)
举报原因:
原因补充:

(最多只允许输入30个字)