一, 前言
本文是《人脸识别完整项目实战》系列博文第 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 .
posted on 2019-04-08 11:16 张子良 阅读(...) 评论(...) 编辑 收藏
来源: https://www.cnblogs.com/hadoopdev/p/10669400.html