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的词法分析与语法分析
May 18 Python
Python实现针对中文排序的方法
May 09 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
python判断设备是否联网的方法
Jun 29 Python
对Python信号处理模块signal详解
Jan 09 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
python如何将两个txt文件内容合并
Oct 18 Python
实现Python与STM32通信方式
Dec 18 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 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提取中文首字母
2008/04/09 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
python格式化字符串实例总结
2014/09/28 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python表示矩阵的方法分析
2017/05/26 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
Python实现结构体代码实例
2020/02/10 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
大学生作弊检讨书
2014/02/19 职场文书
团代会主持词
2014/04/02 职场文书
服务标语大全
2014/06/18 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
结婚通知短信大全
2015/04/17 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
关于教师节的广播稿
2015/08/19 职场文书
高中化学教学反思
2016/02/22 职场文书