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通过urllib2获取带有中文参数url内容的方法
Mar 13 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
Django中ORM外键和表的关系详解
May 20 Python
python之生产者消费者模型实现详解
Jul 27 Python
pytorch1.0中torch.nn.Conv2d用法详解
Jan 10 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
基于Python脚本实现邮件报警功能
May 20 Python
selenium自动化测试入门实战
Dec 21 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下使用SimpleXML 处理XML 文件
2010/02/27 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
浅谈php的优缺点
2015/07/14 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python科学计算之NumPy入门教程
2017/01/15 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
Python闭包函数定义与用法分析
2018/07/20 Python
一看就懂得Python的math模块
2018/10/21 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
python爬虫用mongodb的理由
2020/07/28 Python
python学习笔记之多进程
2020/08/06 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
港湾网络笔试题
2014/04/19 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
个性大学生自我评价
2013/12/04 职场文书
团日活动总结书
2014/05/08 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
先进教师事迹材料
2014/12/16 职场文书
个人典型事迹材料
2014/12/30 职场文书
党支部工作总结2015
2015/04/01 职场文书
一般纳税人申请报告
2015/05/18 职场文书
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers