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 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
简单介绍Python中的round()方法
May 15 Python
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 Python
Python max内置函数详细介绍
Nov 17 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
Python中对象的引用与复制代码示例
Dec 04 Python
Python-while 计算100以内奇数和的方法
Jun 11 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
详解用Python进行时间序列预测的7种方法
Mar 13 Python
Django models文件模型变更错误解决
May 11 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 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 mvc开发模式的感想
2011/06/28 PHP
php缓存技术详细总结
2013/08/07 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
学习php中的正则表达式
2014/08/17 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
js日期联动示例
2014/05/02 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
Python的高级Git库 Gittle
2014/09/22 Python
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python工程师面试必备25条知识点
2018/01/17 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
浅谈python之新式类
2018/08/12 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
自我鉴定范文300字
2013/10/01 职场文书
安全教育感言
2014/03/04 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
长城导游词
2015/01/30 职场文书
英文产品推荐信
2015/03/27 职场文书
公开致歉信
2019/06/24 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS