Python学习笔记之视频人脸检测识别实例教程


Posted in Python onMarch 06, 2019

前言

上一篇博文与大家分享了简单的图片人脸识别技术,其实在实际应用中,很多是通过视频流的方式进行识别,比如人脸识别通道门禁考勤系统、人脸动态跟踪识别系统等等。

下面话不多说了,来一起看看详细的介绍吧

案例

这里我们还是使用 opencv 中自带了 haar人脸特征分类器,通过读取一段视频来识别其中的人脸。

代码实现:

# -*- coding: utf-8 -*-
__author__ = "小柒"
__blog__ = "https://blog.52itstyle.vip/"
import cv2
import os


# 保存好的视频检测人脸并截图
def CatchPICFromVideo(window_name, camera_idx, catch_pic_num, path_name):
 cv2.namedWindow(window_name)

 # 视频来源
 cap = cv2.VideoCapture(camera_idx)

 # 告诉OpenCV使用人脸识别分类器
 classfier = cv2.CascadeClassifier(os.getcwd()+"\\haarcascade\\haarcascade_frontalface_alt.xml")

 # 识别出人脸后要画的边框的颜色,RGB格式, color是一个不可增删的数组
 color = (0, 255, 0)

 num = 0
 while cap.isOpened():
 ok, frame = cap.read() # 读取一帧数据
 if not ok:
  break

 grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 将当前桢图像转换成灰度图像

 # 人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
 faceRects = classfier.detectMultiScale(grey, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
 if len(faceRects) > 0: # 大于0则检测到人脸
  for faceRect in faceRects: # 单独框出每一张人脸
  x, y, w, h = faceRect

  # 将当前帧保存为图片
  img_name = "%s/%d.jpg" % (path_name, num)
  # print(img_name)
  image = frame[y - 10: y + h + 10, x - 10: x + w + 10]
  cv2.imwrite(img_name, image, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

  num += 1
  if num > (catch_pic_num): # 如果超过指定最大保存数量退出循环
   break

  # 画出矩形框
  cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)

  # 显示当前捕捉到了多少人脸图片了,这样站在那里被拍摄时心里有个数,不用两眼一抹黑傻等着
  font = cv2.FONT_HERSHEY_SIMPLEX
  cv2.putText(frame, 'num:%d/100' % (num), (x + 30, y + 30), font, 1, (255, 0, 255), 4)

  # 超过指定最大保存数量结束程序
 if num > (catch_pic_num): break

 # 显示图像
 cv2.imshow(window_name, frame)
 c = cv2.waitKey(10)
 if c & 0xFF == ord('q'):
  break

  # 释放摄像头并销毁所有窗口
 cap.release()
 cv2.destroyAllWindows()


if __name__ == '__main__':
 # 连续截100张图像
 CatchPICFromVideo("get face", os.getcwd()+"\\video\\kelake.mp4", 100, "E:\\VideoCapture")

动图有点花,讲究着看吧:

Python学习笔记之视频人脸检测识别实例教程

如果是捕捉摄像头,只需要改变以下代码即可:

# 如果获取摄像头,参数修改为 0 即可
cap = cv2.VideoCapture(0)

源码

https://gitee.com/52itstyle/Python/tree/master/Day09(本地下载)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
调试Python程序代码的几种方法总结
Apr 28 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
Python进程间通信之共享内存详解
Oct 30 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
详解Python with/as使用说明
Dec 13 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
Jul 04 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 #Python
详解django2中关于时间处理策略
Mar 06 #Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 #Python
Django+Xadmin构建项目的方法步骤
Mar 06 #Python
Python中最大递归深度值的探讨
Mar 05 #Python
Python小进度条显示代码
Mar 05 #Python
Python嵌套式数据结构实例浅析
Mar 05 #Python
You might like
提升PHP执行速度全攻略(下)
2006/10/09 PHP
php 操作符与控制结构
2012/03/07 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
python实现查找所有程序的安装信息
2020/02/18 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
国外的一些J2EE面试题一
2012/10/13 面试题
大学生秋游活动方案
2014/02/17 职场文书
初中同学会活动方案
2014/08/22 职场文书
买卖合同协议书范本
2014/10/18 职场文书
节约用电倡议书
2015/04/28 职场文书
离婚起诉书范本
2015/05/18 职场文书
校长新学期致辞
2015/07/30 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python