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生成pdf文件的方法
Aug 04 Python
介绍Python中的fabs()方法的使用
May 14 Python
Python中用于计算对数的log()方法
May 15 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
详解python中的数据类型和控制流
Aug 08 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 Python
python语言中有算法吗
Jun 16 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
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
vue-router单页面路由
2017/06/17 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
如何使用python爬取csdn博客访问量
2016/02/14 Python
如何将python中的List转化成dictionary
2016/08/15 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
查看django版本的方法分享
2018/05/14 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
django解决订单并发问题【推荐】
2019/07/31 Python
python操作cfg配置文件方式
2019/12/22 Python
Django 批量插入数据的实现方法
2020/01/12 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
水果连锁超市创业计划书
2014/01/24 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
学习计划是什么
2019/04/30 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
vue如何清除浏览器历史栈
2022/05/25 Vue.js