Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例


Posted in Python onFebruary 21, 2019

1. 引言

在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工;这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取;

单个/多个人脸检测,并依次在摄像头窗口,实时平铺显示检测到的人脸;

Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

图 1 动态实时检测效果图

检测到的人脸矩形图像,会依次平铺显示在摄像头的左上方;

当多个人脸时候,也能够依次铺开显示;

左上角窗口的大小会根据捕获到的人脸大小实时变化;

Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

图 2 单个/多个人脸情况下摄像头识别显示结果

2. 代码实现

主要分为三个部分:

摄像头调用,利用 OpenCv 里面的cv2.VideoCapture();

人脸检测,这里利用开源的 Dlib 框架,Dlib 中人脸检测具体可以参考Python 3 利用 Dlib 19.7 进行人脸检测;

图像填充,剪切部分可以参考Python 3 利用 Dlib 实现人脸检测和剪切;

2.1 摄像头调用

Python 中利用 OpenCv 调用摄像头的一个例子how_to_use_camera.py:

# OpenCv 调用摄像头
# 默认调用笔记本摄像头

# Author:  coneypo
# Blog:   http://www.cnblogs.com/AdaminXie
# GitHub:  https://github.com/coneypo/Dlib_face_cut
# Mail:   coneypo@foxmail.com

import cv2

cap = cv2.VideoCapture(0)

# cap.set(propId, value)
# 设置视频参数: propId - 设置的视频参数, value - 设置的参数值
cap.set(3, 480)

# cap.isOpened() 返回 true/false, 检查摄像头初始化是否成功
print(cap.isOpened())

# cap.read()
""" 
返回两个值
  先返回一个布尔值, 如果视频读取正确, 则为 True, 如果错误, 则为 False; 
  也可用来判断是否到视频末尾;
  
  再返回一个值, 为每一帧的图像, 该值是一个三维矩阵;
  
  通用接收方法为: 
    ret,frame = cap.read();
    ret: 布尔值;
    frame: 图像的三维矩阵;
    这样 ret 存储布尔值, frame 存储图像;
    
    若使用一个变量来接收两个值, 如:
      frame = cap.read()
    则 frame 为一个元组, 原来使用 frame 处需更改为 frame[1]
"""

while cap.isOpened():
  ret_flag, img_camera = cap.read()
  cv2.imshow("camera", img_camera)

  # 每帧数据延时 1ms, 延时为0, 读取的是静态帧
  k = cv2.waitKey(1)

  # 按下 's' 保存截图
  if k == ord('s'):
    cv2.imwrite("test.jpg", img_camera)

  # 按下 'q' 退出
  if k == ord('q'):
    break

# 释放所有摄像头
cap.release()

# 删除建立的所有窗口
cv2.destroyAllWindows()

2.2 人脸检测

利用 Dlib 正向人脸检测器,dlib.get_frontal_face_detector()

对于本地人脸图像文件,一个利用 Dlib 进行人脸检测的例子:

人脸检测对于机器性能占用不高,但是如果要进行实时的图像裁剪拼接,计算量可能比较大,所以可能会出现卡顿;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
在Django的URLconf中使用命名组的方法
Jul 18 Python
Python中文竖排显示的方法
Jul 28 Python
python算法表示概念扫盲教程
Apr 13 Python
Python批量更改文件名的实现方法
Oct 29 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
Jan 29 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
pytorch实现用CNN和LSTM对文本进行分类方式
Jan 08 Python
Python中socket网络通信是干嘛的
May 27 Python
python os模块在系统管理中的应用
Jun 22 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
Python pandas求方差和标准差的方法实例
Aug 04 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 #Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 #Python
Python开发网站目录扫描器的实现
Feb 21 #Python
Python爬虫之UserAgent的使用实例
Feb 21 #Python
利用python实现在微信群刷屏的方法
Feb 21 #Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 #Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 #Python
You might like
PHP概述.
2006/10/09 PHP
十天学会php(2)
2006/10/09 PHP
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
javascript模块化简单解析
2016/04/07 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python的命名规则知识点总结
2019/10/04 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
毕业实习证明(4篇)
2014/10/28 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
北京颐和园导游词
2015/01/30 职场文书
Python必备技巧之函数的使用详解
2022/04/04 Python