资源简介

python调用dlib库实现简单的人脸识别, 附python源码和dlib库。

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
# By 309867165@qq.com  
import sys
 
import dlib
 
from skimage import io
 
 
#使用dlib自带的frontal_face_detector作为我们的特征提取器
detector = dlib.get_frontal_face_detector()
 
#使用dlib提供的图片窗口
win = dlib.image_window()
 
#sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始向后依次获取图片路径
for f in sys.argv[1:]:
    
    #输出目前处理的图片地址
    print(“Processing file: {}“.format(f))
 
    #使用skimage的io读取图片
    img = io.imread(f)
 
    #使用detector进行人脸检测 dets为返回的结果
    dets = detector(img 1)
 
    #dets的元素个数即为脸的个数
    print(“Number of faces detected: {}“.format(len(dets)))
 
    #使用enumerate 函数遍历序列中的元素以及它们的下标
    #下标i即为人脸序号
    #left:人脸左边距离图片左边界的距离 ;right:人脸右边距离图片左边界的距离 
    #top:人脸上边距离图片上边界的距离 ;bottom:人脸下边距离图片上边界的距离
    for i d in enumerate(dets):
        print(“dets{}“.format(d))
        print(“Detection {}: Left: {} Top: {} Right: {} Bottom: {}“
            .format( i d.left() d.top() d.right() d.bottom()))
 
    #也可以获取比较全面的信息,如获取人脸与detector的匹配程度
    dets scores idx = detector.run(img 1)
    for i d in enumerate(dets):
        print(“Detection {} dets{}score: {} face_type:{}“.format( i d scores[i] idx[i]))    
 
    #绘制图片(dlib的ui库可以直接绘制dets)
    win.set_image(img)
    win.add_overlay(dets)
 
    #等待点击
    dlib.hit_enter_to_continue()


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-14 09:54  img\
     文件       19273  2019-01-14 09:53  img\1.jpg
     文件       10886  2019-01-14 09:53  img\2.jpg
     文件        9570  2019-01-14 09:54  img\3.jpg
     文件        1794  2019-01-14 11:05  pyface.py
     文件      164487  2019-01-14 11:48  python调用dlib库实现简单的人脸识别.docx
     文件    16106007  2019-01-14 09:11  dlib-19.16.zip

评论

共有 条评论