opencv 人脸识别_人工智能-OpenCV+Python实现人脸识别(视频人脸检测)
上期文章我们分享了opencv识别图片中的人脸,OpenCV图片人脸检测,本期我们分享一下如何从视频中检测到人脸
视频人脸检测
OpenCV打开摄像头特别简单,只需要如下一句代码
capture = cv2.VideoCapture(0) # 打开摄像头
打开摄像头后,我们使用如下一句代码,来获取视频中的图片(每帧图片)
ret, frame = capture.read() # 读取
有了图片我们就可以按照图片的识别方式来检测人脸了
有了以上的2句代码,再加上上期的图片识别,就可以从视频中检测人脸了
完整代码:
import cv2
capture = cv2.VideoCapture(0) # 打开摄像头
face = cv2.CascadeClassifier(r'D:Program Files (x86)Anaconda3pkgslibopencv-3.4.1-h875b8b8_3Libraryetchaarcascadeshaarcascade_frontalface_alt.xml') # 导入人脸模型
cv2.namedWindow('摄像头') # 获取摄像头画面
while True:
ret, frame = capture.read() # 读取视频图片
gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) # 灰度
faces = face.detectMultiScale(gray,1.1,3,0,(100,100))
for (x, y, w, h) in faces: # 5个参数,一个参数图片 ,2 坐标原点,3 识别大小,4,颜色5,线宽
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow('摄像头', frame) # 显示
if cv2.waitKey(5) & 0xFF == ord('q'):
break
capture.release() # 释放资源
cv2.destroyAllWindows() # 关闭窗口
opencv中人脸检测使用的是 detectMultiScale函数,小编使用手机播放一段视频,截取了几张人脸检测的图片
detectMultiScale(
const Mat& image,
CV_OUT vector& objects,
double scaleFactor = 1.1,
int minNeighbors = 3,
int flags = 0,
Size minSize = Size(),
Size maxSize = Size()
);
识别视频中的人脸
函数介绍:
参数1:image--待检测图片,一般为灰度图像加快检测速度;
参数2:objects--被检测物体的矩形框向量组;
参数3:scaleFactor--表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%;
参数4:minNeighbors--表示构成检测目标的相邻矩形的最小个数(默认为3个)。
如果组成检测目标的小矩形的个数和小于 min_neighbors - 1 都会被排除。
如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形框,
这种设定值一般用在用户自定义对检测结果的组合程序上;
参数5:flags--要么使用默认值,要么使用CV_HAAR_DO_CANNY_PRUNING,如果设置为
CV_HAAR_DO_CANNY_PRUNING,那么函数将会使用Canny边缘检测来排除边缘过多或过少的区域,
因此这些区域通常不会是人脸所在区域;
参数6、7:minSize和maxSize用来限制得到的目标区域的范围。
识别视频中的人脸
OpenCV作为对象检测的第三方库,其强大之处在于对象的检测,Dlib出现后,由于在人脸检测方面的准确度,得到了大家了认可,下期我们分享一下,如何使用Dlib来进行人脸的检测
使用dlib检测的68个特征点
opencv 人脸识别_人工智能-OpenCV+Python实现人脸识别(视频人脸检测)相关推荐
- 基于python车牌号识别_如何用Python提取和识别车牌号?
下面是一个关于如何解决你的问题的粗略想法.你可以在此基础上再接再厉.您需要从图像中提取车牌号,然后将图像发送到您的tesseract.阅读代码注释以了解我正在尝试做什么.在import numpy a ...
- python车辆测速视频车速检测
python车辆测速视频车速检测 start_time = time.time()rc, image = video.read()if type(image) == type(None):breaki ...
- python读取视频流做人脸识别_基于OpenCV和Keras实现人脸识别系列——二、使用OpenCV通过摄像头捕获实时视频并探测人脸、准备人脸数据...
基于OpenCV和Keras实现人脸识别系列手记: 项目完整代码参见Github仓库. 本篇是上面这一系列手记的第二篇. 在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,而 ...
- opencv 车辆识别_人工智能实战项目:使用OpenCV和Python构建自己的车辆检测模型
总览 对智慧城市的想法感到兴奋吗?您会喜欢本教程的内容,以构建自己的车辆检测系统 在深入研究实现部分之前,我们将首先了解如何检测视频中的移动对象. 我们将使用OpenCV和Python来构建自动车辆检 ...
- python人工智能图像识别_人工智能之Python人脸识别技术,人人都能做识别!
原标题:人工智能之Python人脸识别技术,人人都能做识别! 作者丨Python小哥哥 https://www.jianshu.com/p/dce1498ef0ee 一.环境搭建 1.系统环境 Ubu ...
- 图像识别python模块_人工智能之Python人脸识别技术--face_recognition模块
一.环境搭建1.系统环境Ubuntu 17.04 Python 2.7.14 pycharm 开发工具1 2 32.开发环境,安装各种系统包人脸检测基于dlib,dlib依赖Boost和cmake$ ...
- opencv ocr文字识别_用OpenCV和OCR识别图片中的表格数据
♚ 作者: jclian,喜欢算法,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! 在很多时候,我们的数据来源形式是多种多样的,有时候数据(或表格)也会呈现在图片 ...
- python opencv 图像切割_【OpenCV+Python】图像的基本操作与算术运算
图像的基本操作 在上个教程中,我们介绍了使用鼠标画笔的功能.本次教程,我们将要谈及OpenCV图像处理的基本操作. 本次教程的所有操作基本上都和Numpy相关,而不是与OpenCV相关.要使用Open ...
- c++opencv汉字分割_基于OpenCV 的车牌识别
车牌识别是一种图像处理技术,用于识别不同车辆.这项技术被广泛用于各种安全检测中.现在让我一起基于OpenCV编写Python代码来完成这一任务. 车牌识别的相关步骤 1.车牌检测:第一步是从汽车上检测 ...
最新文章
- 上一篇的js处理失真数据存在问题换了种方法
- Android入门:Activity四种启动模式
- 【SQL Server学习笔记】变更数据捕获(Change Data Capture)
- PAT甲级1003 Emergency:[C++题解]dijkstra求最短路、最短路条数
- Python基础教程:带参装饰器、生成器、迭代器、for循环迭代器、枚举
- 动态规划之——拦截导弹(nyoj79)
- C语言实现pid算法(附完整源码)
- 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)
- 访问 IIS 元数据库失败 的解决方法
- 在Mac里给Terminal终端自定义颜色
- Android开发之自定义AlertDialog的大小
- threejs 局部辉光
- 华为p50是不是鸿蒙系统,华为P50再次延期,鸿蒙系统正式版加持,有望与新平板一同登场...
- 【报告分享】5G时代新型基础设施建设白皮书.pdf
- data-mask遮罩无法正常显示与编辑的问题
- mysql删除表外键_MySQL删除所有表的外键约束、禁用外键约束
- Wacom发布Cintiq Companion 2
- Origin抗锯齿和出现大C
- keras实现交叉验证以及K折交叉验证
- 安徽师大附中%你赛day2T3 巧克力 解题报告