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 图片验证码代码分享
Jul 04 Python
python网络编程学习笔记(五):socket的一些补充
Jun 09 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
解决python "No module named pip" 的问题
Oct 13 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
Jul 01 Python
详解python中的闭包
Sep 07 Python
python 密码学示例——理解哈希(Hash)算法
Sep 21 Python
python 基于opencv实现图像增强
Dec 23 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下使用SMTP发邮件的代码
2008/01/10 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
php截取字符串函数分享
2015/02/02 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
python中的二维列表实例详解
2018/06/19 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
利用python实现AR教程
2019/11/20 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
优秀党支部申报材料
2014/12/24 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
家庭经济困难证明
2015/06/23 职场文书