一、前言
本文是《人脸识别完整项目实战》系列博文第3部分:程序设计篇(Python版),第1节《Python实时视频采集程序设计》,本章内容系统介绍:基于Python+opencv如何实现实时视频采集。
完整的相关内容已录制成视频课程,点击跳转:《人脸识别完整项目实战(附源码)》
整个《人脸识别完整项目实战》系统架构结构如下图所示:
项目概述篇:系统介绍人脸识别项目的系统架构设计、项目关键技术说明、项目业务需求分析、项目业务流程设计;
环境部署篇:提供C++和Python两种编程语言的版本,系统介绍项目开发环境概述、DLib框架源码编译、项目工程文件创建、项目开发环境配置、项目性能优化设置;
程序设计篇:从实时视频采集开始,涵盖人脸区域检测、人脸特征点标定、人脸对齐、人脸比对和活体检测等全部技术环节的代码设计、运行演示和执行结果输出;
模型训练篇:基于人脸识别区域检测和人俩识别特征点标定两个应用场景,介绍数据样本采集、算法模型训练和算法模型测试的过程,让大家都人脸识别有一个完整的直观的认识;
算法原理篇:基于人脸识别区域检测和人俩识别特征点标定两个应用场景,人脸区域检测和人脸特征点标定的算法原理和实现机制,让大家对人脸识别与机器学习、深度学习进行有效关联;
学习框架篇:系统介绍主流深度学习框架,重点就本课程用到Dlib深度学习框架进行介绍,通过dlib深度学习实战案例1和dlib深度学习实战案例2,两个完整的案例,让大家对dlib的深度学习框架有一个直观的认识;
二、正文
2.1 程序逻辑
Python实时视频采集程序主要流程共分为10个步骤,具体如下图所示:
流程描述:
库文件导入:导入程序依赖的python安装包;
摄像头管理对象创建和初始化:是对opencv VideoCapture对象的创建和初始化,通过它打开摄像头设备;
启动循环监控:循环处理每一帧图片;
图像抓拍:利用opencv提供的摄像头管理设备,进行逐帧图像内容的抓取,然后进行处理;
图像窗口显示:利用opencv的窗口对象,进行抓拍内容的显示。
等待用户输入:利用opencv提供的键盘输入监控程序,获取用户指令。
摄像头释放:收到退出指令后,释放摄像头管理设备资源。
2.2 接口说明
python实时视频监控采集功能的实现,主要是采用了opencv开源框架提供的摄像头管理类:VideoCapture。该类的主要方法和属性如下图所示:
opencv的摄像头管理类,我们主要应用了其open(打开摄像头)、read(读取每一帧)、release(释放设备)等函数功能能。
2.3 源码设计
源码的执行,需要导入opencv库文件,直接执行:pip install opencv 即可实现。具体程序代码如下图所示:
# 实时:视频图像采集(opencv)
import cv2
cap = cv2.VideoCapture(0)
# 从视频流循环帧
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow("Frame", frame)
# 退出:Q
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 清理窗口
cv2.destroyAllWindows()
2.4 运行效果
三、未完待续
本文是《人脸识别完整项目实战》系列博文第3部分:程序设计篇(Python版)第一节《实时视频采集程序设计(python)》,全文共53个章节,持续更新,敬请关注。人脸识别技术交流QQ群:859860225 。
作者:张子良
出处:http://www.cnblogs.com/hadoopdev
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。