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实现颜色rgb和hex相互转换的函数
Mar 19 Python
Python的Django框架中if标签的相关使用
Jul 15 Python
Python将图片转换为字符画的方法
Jun 16 Python
python使用Plotly绘图工具绘制散点图、线形图
Apr 02 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
django2笔记之路由path语法的实现
Jul 17 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
Python算法中的时间复杂度问题
Nov 19 Python
python 如何调用 dubbo 接口
Sep 24 Python
解决python3中os.popen()出错的问题
Nov 19 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 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
source.php查看源文件
2006/12/09 PHP
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
财务部岗位职责
2013/11/19 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
小学生作文评语大全
2014/04/21 职场文书
公司委托书怎么写
2014/08/02 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
大学生团员个人总结
2015/02/14 职场文书
校车司机安全责任书
2015/05/11 职场文书
开学第一周值周总结
2015/07/16 职场文书