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实现子类调用父类的方法
Nov 10 Python
python结合API实现即时天气信息
Jan 19 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
python实现对csv文件的列的内容读取
Jul 04 Python
python自定义函数实现最大值的输出方法
Jul 09 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
Python 使用type来定义类的实现
Nov 19 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
python爬取新闻门户网站的示例
Apr 25 Python
Python 流媒体播放器的实现(基于VLC)
Apr 28 Python
详解Golang如何实现支持随机删除元素的堆
Sep 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 curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
dwr spring的集成实现代码
2009/03/22 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
2016/11/28 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python导入txt数据到mysql的方法
2015/04/08 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
Python基于select实现的socket服务器
2016/04/13 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
艺术应用与设计个人的自我评价
2013/11/23 职场文书
大学秋游活动方案
2014/02/11 职场文书
周年庆典主持词
2014/04/02 职场文书
大学学风建设方案
2014/05/04 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
Mysql 设置boolean类型的操作
2021/06/04 MySQL
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis