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字符串替换实例分析
May 11 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
详谈Python基础之内置函数和递归
Jun 21 Python
使用Python设计一个代码统计工具
Apr 04 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
python制作朋友圈九宫格图片
Nov 03 Python
python kafka 多线程消费者&手动提交实例
Dec 21 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
Python try except异常捕获机制原理解析
Apr 18 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
如何Tkinter模块编写Python图形界面
Oct 14 Python
基于Python实现流星雨效果的绘制
Mar 18 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php SQL之where语句生成器
2009/03/24 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
java必学必会之static关键字
2015/12/03 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
Python工厂函数用法实例分析
2018/05/14 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python 读取修改pcap包的例子
2019/07/23 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
django框架两个使用模板实例
2019/12/11 Python
python Tensor和Array对比分析
2020/01/08 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
python 一维二维插值实例
2020/04/22 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
新学期标语
2014/06/30 职场文书
自主招生自荐信格式
2015/03/04 职场文书