本周暂时比较清闲,可以保持每日一更的速度。

国外身份证项目新增需求,检测出身份证正面的人脸。最开始考虑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: 找不到指定的模块。

下载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 基于dlib库的人脸检测的实现相关推荐

  1. python加密库_python基于pyDes库实现des加密的方法

    本文实例讲述了python基于pyDes库实现des加密的方法.分享给大家供大家参考,具体如下: 下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要 ...

  2. python微信加人_Python 基于wxpy库实现微信添加好友功能(简洁)

    Python 基于wxpy库实现微信添加好友功能(简洁) 更新时间:2019年11月29日 10:21:29 作者:帅鸽水煮鱼 这篇文章主要介绍了Python 基于wxpy库实现微信添加好友功能,本文 ...

  3. python提取pdf文字_python基于pdfminer库提取pdf文字代码实例

    安装pdfminer 库 windows 下安装pdfminer3k pip install pdfminer3k Liunx 下安装pdfminer pip install pdfminer 代码 ...

  4. python中pixels函数_Python的PIL库中getpixel方法的使用

    getpixel函数是用来获取图像中某一点的像素的RGB颜色值,getpixel的参数是一个坐标点.对于图象的不同的模式,getpixel函数返回的值有所不同. 1.RGB模式 from PIL im ...

  5. time库是python中处理时间的标准库_python语言time库和datetime库基本使用详解

    今天是边复习边创作博客的第三天,我今年大二,我们专业开的有这门课程,因为喜欢所以更加认真学习,本以为没人看呢,看了后台浏览量让我更加认真创作,这篇博客花了2个半小时的时间,结合自己所学,所思,所想写作 ...

  6. 不是python中用于开发用户界面的第三方库-模拟试卷C

    原标题:模拟试卷C 一.单项选择题 1. 按照"后进先出"原则组织数据的数据结构是____ 队列 栈 双向链表 二叉树 2. 以下选项的叙述中,正确的是 循环队列有队头和队尾两个指 ...

  7. Python中使用random随机函数与Matplotlib库绘制随机漫步图

    Python中使用random随机函数与Matplotlib库绘制随机漫步图 一.概述 随机现象在我们的生活中并不少见,我们常见的一次抛硬币的正反面,股票的走势等等,都是随机事件.这些不确定性事件给我 ...

  8. python编辑word书签_小伙发现了Python中编写word文档的库,编辑文字方便多了

    新的一年,小编又和大家见面啦.十分开心又和大家分享干货了~ Word文档相信广大的办公室家族并不陌生吧?今天咱们聊聊Python中一个可以用来读写word文档的Python库,编辑文档分分钟的事情哦~ ...

  9. 小伙发现了Python中编写word文档的库,编辑文字方便多了

    新的一年,小编又和大家见面啦.十分开心又和大家分享干货了~ Word文档相信广大的办公室家族并不陌生吧?今天咱们聊聊Python中一个可以用来读写word文档的Python库,编辑文档分分钟的事情哦~ ...

最新文章

  1. c语言中struct和c++中class实例对比
  2. 计算机应用基础学期教学小结,《计算机应用基础》的教学总结及小结.docx
  3. 数据告诉你,胡歌的微世界
  4. Android 6.0动态权限申请
  5. 为什么喝酒有的人会脸红,有的人会脸发白
  6. MySQL高级 - 并发参数调整
  7. 去掉登陆下的“扫一扫,访问微社区
  8. linux宝塔类似工具,有没有比宝塔面板更好的linux运维工具?
  9. Linux系统监控shell脚本
  10. scss与sass介绍
  11. LeetCode 537. Complex Number Multiplication
  12. go list指针_「GCTT 出品」Go 语言机制之内存剖析
  13. 52_并发编程-线程-线程池
  14. steam怎么设公用计算机,steam怎样设置家庭共享 steam家庭共享设置办法
  15. 06 (补充)初始化sdram代码
  16. 矩阵论笔记(七)——矩阵的微分和积分
  17. 爱可信携手Marvell展示爱可信Linux平台
  18. 同步六进制加法计数电路(D触发器)
  19. github开源:企业级应用快速开发框架CIIP WEB+WIN+移动端
  20. 使用IMP导入数据时遇到ORA-20005的错误

热门文章

  1. Java-Super
  2. c语言写贪吃蛇什么水平_关于C语言写贪吃蛇
  3. java random用法_JAVA面试题(1)
  4. 实现mvcc_MySQL 的多版本并发控制(MVCC) 是干啥的?
  5. C语言 __cplusplus - C语言零基础入门教程
  6. Python 线程条件变量 Condition - Python零基础入门教程
  7. linux yum 安装widget,CentOS 7安装Qt5.12.1过程
  8. 中央音乐学院计算机研究生,2020北京中央音乐学院硕士研究生招生复试电子音乐作曲、电子音乐技术理论等考生须知...
  9. linux 格式化 目录,Linux 磁盘分区、格式化、目录挂载
  10. dataframe for循环 筛选_Python循环12种超强写法,又快又省内存