python 基于dlib库的人脸检测的实现


Posted in Python onNovember 08, 2019

本周暂时比较清闲,可以保持每日一更的速度。

国外身份证项目新增需求,检测出身份证正面的人脸。最开始考虑mobilenet-ssd,经同事提醒,有现成的人脸库dlib,那就用传统方法尝试一下。

dlib安装

dlib的安装小费一波周折,我的python版本是3.6,直接pip install dlib安装失败。https://pypi.org/project/dlib/19.6.0/找到python3.6对应的whl文件下载安装或者直接pip install dlib==19.6.0 提示Successfully installed dlib-19.6.0安装成功。事情没那么简单,import dlib时报错: ImportError: DLL load failed: 找不到指定的模块。

还是版本的问题,查找最新版本的whl :https://pypi.org/simple/dlib/

下载 dlib-19.8.1-cp36-cp36m-win_amd64.whl  然后cd到相应的目录下 pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl

代码

import dlib
import cv2
import os
 
def resize(img, width=None, height=None, inter=cv2.INTER_AREA):
  """
  initialize the dimensions of the input image and obtain
  the image size
  """
 
  dim = None
  (h, w) = img.shape[:2]
 
  if width is None and height is None:
    return img
  if width is None:
    r = height / float(h)
    dim = (int(w * r), height)
  else:
    r = width / float(w)
    dim = (width, int(h * r))
  # resize the image
  resized = cv2.resize(img, dim, interpolation=inter)
  # return the resized image
  return resized
 
# 使用 Dlib 的正面人脸检测器 frontal_face_detector
detector = dlib.get_frontal_face_detector()
 
# 图片所在路径
imgs_path = 'test/'
filelist = os.listdir(imgs_path)
# 使用 detector 检测器来检测图像中的人脸
for img_path in filelist:
  img = cv2.imread(imgs_path + img_path)
  img = resize(img, width=512)
  faces = detector(img, 1)
  print("人脸数 / Faces in all: ", len(faces))
  for i, d in enumerate(faces):
    w = d.right() - d.left()
    h = d.bottom() - d.top()
    d_left = int(d.left() - w * 0.25)
    d_right = int(d.right() + w * 0.25)
    d_top = int(d.top() - w * 0.70)
    d_bottom = int(d.bottom() + w * 0.2)
    print("第", i + 1, "个人脸的矩形框坐标:",
       "left:", d_left, "right:", d_right, "top:", d_top, "bottom:", d_bottom)
    cv2.rectangle(img, tuple([d_left, d_top]), tuple([d_right, d_bottom]), (0, 255, 255), 2)
  cv2.imshow("img", img)
  cv2.waitKey(0)
  cv2.imwrite('./result.jpg',img)

随便网上找了张图测试,效果如下

python 基于dlib库的人脸检测的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python合并两个字典的常用方法与效率比较
Jun 17 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
Python在groupby分组后提取指定位置记录方法
Apr 20 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
python从入门到精通 windows安装python图文教程
May 18 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
关于tf.reverse_sequence()简述
Jan 20 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
python基础之爬虫入门
May 10 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 #Python
python实现身份证实名认证的方法实例
Nov 08 #Python
Python Django框架模板渲染功能示例
Nov 08 #Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 #Python
Django框架下静态模板的继承操作示例
Nov 08 #Python
python中自带的三个装饰器的实现
Nov 08 #Python
python反转列表的三种方式解析
Nov 08 #Python
You might like
一个MYSQL操作类
2006/11/16 PHP
PHP中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
Python中多线程及程序锁浅析
2015/01/21 Python
玩转python爬虫之正则表达式
2016/02/17 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python如何实现图片压缩
2020/09/11 Python
快速创建python 虚拟环境
2020/11/28 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
商务英语求职自荐信范文
2013/12/24 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
档案信息化建设方案
2014/05/16 职场文书
关于运动会的口号
2014/06/07 职场文书
爱心捐款感谢信
2015/01/20 职场文书
单位介绍信格式
2015/01/31 职场文书
语文教师个人工作总结
2015/02/06 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python