极简Python:用opencv实现人脸检测,并用本地摄像头实现视频流的人脸识别

基于Python的OpenCV+TensorFlow+Keras人脸识别实现 前言:本节要讲的人脸识别主要是借鉴了 一位研究生前辈的文章 我只是在他的基础上进行了改动,让代码能在现在的TensorFlow2.X 等的环境下运行 先看一下效果图 一、准备工作,安装环境 注意:下列Python第三方包的版本比较重要,应为在这里用到的包比较多,如果两个包版本相差较大可能会导致错误,接下来我列出我用的包名及其版本信息供你参考 Python – 3.8.4 TensorFlow-GPU – 2.3.0 OpenCV – 4.4.0 keras – 2.0.9 sklearn – 阅读详情

包括图片级别的人脸检测和调用本地摄像头实现视频流级别的人脸识别。

废话不大多说,直接上代码,喜欢的同学可以收藏!

1. 图片人脸识别

使用 OpenCV 中的 Haar 级联检测

import cv2

# 读取图片,并获得灰度图
img = cv2.imread('/Users/robin/.../7_surprise2.jpg', 0)  #(-1:原图、0:灰度图、1:彩色图、-1:原图)
print(img.shape) # 检验图片是否OK(返回None则地址错误)

# 载入分类器(获取训练好的人脸的参数数据,这里是数据是opencv自带的)
face_cascade = cv2.CascadeClassifier('/Users/robin/software/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')

# 检测人脸,返回人脸的坐标(x,y,w,h)——(起始列、起始行、宽度、高度)
faces = face_cascade.detectMultiScale(img,scaleFactor=1.15,minNeighbors=5,minSize=(5,5))

# 画图
for(x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),4)   #参数:图像 + 左上角坐标 + 右下角坐标 + 颜色 + 线的类型

# 显示图片
cv2.imshow('face', img)
k = cv2.waitKey(0)  # 0代表一直等待,其他数值代表等待的毫秒数
if k == 27:      # 用按键Esc来控制关闭窗口(27是键盘上Esc的值 )
    cv2.destroyAllWindows()
    for i in range (1,5):     #用4次循环来帮助关闭卡住的窗口
        cv2.waitKey(1)

# 保存图片
# cv2.imwrite('./face.jpg', img) #默认的地址在该ipybn文件所在目录
cv2.imwrite('/Users/robin/MLcode/.../face.jpg', img)

在这里插入图片描述

2. 图片人脸检测+人眼检测

import cv2
# image loading
gray_image = cv2.imread('/Users/robin/.../3_neutral2.jpg',0)
print(gray_image)

# classifier loading
face_cascade = cv2.CascadeClassifier('/Users/robin/software/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('/Users/robin/software/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/share/OpenCV/haarcascades/haarcascade_eye.xml')

# face and eye detect and drawing
faces = face_cascade.detectMultiScale(gray_image,scaleFactor=1.15,minNeighbors=5,minSize=(5,5))
for (x,y,w,h) in faces:
    cv2.rectangle(gray_image,(x,y),(x+w,y+h),(255,0,0),3)
    roi_gray = gray_image[y:y+h,x:x+w]   # 循环画矩形的时候,也要取出roi(整个下面的步骤都要在第一个for循环中进行)
    
    eyes = eye_cascade.detectMultiScale(roi_gray,scaleFactor=1.15,minNeighbors=5,minSize=(5,5))
    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_gray,(ex,ey),(ex+ew,ey+eh),(0,255,0),3)  #注意此时是画在roi图像上

# image show
cv2.imshow('gray_image',gray_image)
k = cv2.waitKey(0)
if k == 27:
    cv2.destroyAllWindows()
    for i in range(1,5):          #辅助关闭窗口
        cv2.waitKey(1)
        

在这里插入图片描述

3. 视频流的人脸识别

import numpy as np
import cv2

cascPath = '/Users/robin/software/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml'

face_Cascade = cv2.CascadeClassifier(cascPath)
video_capture = cv2.VideoCapture(0)   # 参数0 :内置摄像头;也可以是视频文件地址

while(True):    # 死循环;也可以用 while(1)
    # Capture frame-by-frame
    ret, frame = video_capture.read()      #参数:第一个参数ret的值为True或False,代表有没有读到图片(读完了就是False)。第二个参数是frame,是当前截取一帧的图片。 

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # 注意了,有两种灰度转化的方法 (这里可以想办法一步到位?)

    faces = face_Cascade.detectMultiScale(

       gray,

       scaleFactor=1.1,

       minNeighbors=5,

       minSize=(30, 30),

       flags=cv2.CASCADE_SCALE_IMAGE         # 这个什么意思:CV_HAAR_SCALE_IMAGE,这个值告诉分类器不要缩放分类器。而是缩放图像(处理好内存和缓存的使用问题,这可以提高性能。)就是按比例正常检测

   )
    
    # Draw a rectangle around the faces

    for (x, y, w, h) in faces:

        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
    
        
    # Display the resulting frame

    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):

        break

# When everything is done, release the capture

video_capture.release()
cv2.destroyAllWindows()

在这里插入图片描述

基于opencv和python的人脸识别签到系统设计与实现 本文以人脸识别技术为核心,设计并实现了一种在小型组织使用的人脸识别签到系统。文章先是分析了人脸识别的研究概况,展示国内外人脸识别签到发展状况,分析了使用人脸识别签到系统的合理性。分析了人脸识别的相关技术,介绍了所需开发的软件和工具,阐述了基于人脸识别的系统的要求,从业务流程;数据管理;和人脸信息管理方面设计了相应的实现方案,定义了基于人脸识别技术的框架和功能模块,最后实现了基于人脸识别签到系统的界面设计和功能测试。 阅读详情

相关推荐

Python+OpenCV进行人脸检测(调用笔记本摄像头)

最近需要对研究生论文进行开题,我的方向定位为人工智能机器学习-计算机视觉这个方向,所以先做一些小东西来对自己的所选方向有一个大致熟悉! 首先我所用到的工具是 PyCharm+Python3.7.0+OpenCV 关于工具这里我想说的是我没有像其他博主一样选择Anaconda进行安装,因为我喜欢在pycharm里setting,因为之前在学习遗传算法的时候安装了numpy这个包所以在安装过程中也并...

贾岚翔的博客 4092

Python如何调用系统视像头进行人脸识别、图像处理、图像识别等常用库教程(基础)

01、利用python操作摄像头 首先介绍安装opencv-python第三方库 OpenCV 是一个开源的计算机视觉库,OpenCV 库用C语言和 C++ 语言编写,可以在 Windows、Linux、Mac OS X 等系统运行。同时也在积极开发 Python、Java、Matlab 以及其他一些语言的接口,将库导入安卓和 iOS 中为移动设备开发应用。 OpenCV 库包含从计算机视觉各个领域衍生出来的 500 多个函数,包括工业产品质量检验、医学图像处理、安保领域、交互操作、相机校正、双目视觉以及机

唤醒手腕 9380

opencv-python 人脸识别检测+人脸马赛克

基于OpenCV-python的人脸识别检测,以及马赛克打脸上的详细说明。

m0_65833575的博客 4586

简单实现人脸识别

大体流程为:配置环境,安装好需要的包——>保存图片——>进行数据训练提取人物特征,将数据保存到.yml文件中——>根据提取出来的人物特征进行视频分析识别人物。

qq_51172043的博客 2265

Python如何实现人脸识别

Python如何实现人脸识别 1.python有个人脸识别库叫opencv 2.去百度查查如何安装这个库,会py的小伙伴们安装个库应该不是问题。 3.接下来就是直接上代码了 #!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 import sys class opencvs(): def main(self): ...

www_16302_com的博客 2478

用Python和OpenCV实现人脸识别:构建智能识别系统

本文介绍了如何使用Python和OpenCV实现人脸检测与识别,涵盖了从基础的人脸检测到LBPH人脸识别模型的训练与应用。通过详细的代码示例,读者可以学习如何加载Haar级联分类器检测人脸,并使用LBPH算法识别个人。本文还展示了如何在实时视频流中实现人脸识别,适合对计算机视觉和人工智能感兴趣的读者。

一个被知识诅咒的人 1996

OpenCV——通过摄像头捕获实时视频并探测人脸、准备人脸数据

通过摄像头捕获实时视频并探测人脸、准备人脸数据,可用于人脸识别神经网络中数据的准备。

简简单单的学习笔记,致力于帮助更多前进路上的朋友~ 9640

Python+OpenCV实现人脸识别门禁系统

本文还有配套的精品资源,点击获取 简介:本教程展示如何利用Python语言和OpenCV库开发一个人脸识别门禁系统。系统实现包括安装相关库、人脸检测、特征提取、人脸识别、门禁控制、实时视频流处理、用户界面设计和日志记录等步骤。详细说明了使用 face_recognition 和OpenCV相关功能进行人脸特征提取和比对的过程,并提供了完整的源码供学习者参考,帮...

weixin_42405592的博客 5695

【智能家居】六、摄像头安装实现监控功能点、人脸识别(face_recognition的使用)

一、定义及第三方库的说明一、定义及第三方库的说明OCR (光学字符识别)文字识别、图像识别OCR(光学字符识别)是一种通过计算机对,将其中的为可编辑文本的技术。选择适合你需求的 OCR 工具或库。有一些开源和商业 OCR 工具可供选择,例如 Tesseract、OCRopus、Adobe Acrobat等。根据你选择的 OCR 工具,安装相应的软件或库。准备包含文本的图像或文档。这可以是扫描的文档、图片中的文字等。使用选择的 OCR 工具对图像或文档进行识别。这将识别image.png。

咖喱年糕的博客 2342

自动驾驶IDM与MOBIL模型

IDM模型,自动驾驶

不想学好数学的汽车工程师不是一个好的程序员 1万+

Qt 6.5实战:用QMediaPlayer搞定RTSP监控流播放(附LAV Filters解码器避坑指南)

本文详细介绍了如何在Qt 6.5中使用QMediaPlayer实现低延迟RTSP监控流播放,并提供了LAV Filters解码器的配置避坑指南。通过优化缓冲策略和硬件加速设置,显著提升视频流的播放性能和稳定性,适用于工业视觉检测和安防监控等实时场景。

weixin_33712987的博客 398

python-OpenCV:调用视频识别手势进行电脑音量调节

写在前面 对于python调节音量的问题,一般都是直接使用pycaw库进行调节,但是当我们要设定电脑音量的时候,不能实现精确映射(我想让我的电脑音量是40,不能直接输入40),但是由于内部确实没有精确的关系,只能用一对一映射的方式。详情请参照: python-使用pycaw设置电脑音量(包含转换)_独憩的博客-优快云博客 手部识别可以通过mediapipe库进行: python-OpenCV 视频中的手部跟踪: 基于mediapipe库_独憩的博客-优快云博客 对于调用视频识别手势进行电脑音量

qq_54517101的博客 4517

SiamFC++笔记

SiamFC++: Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines 文章根据这些思路:引入分类和目标状态估计分支(G1),无歧义的分类得分(G2),无先验知识的跟踪(G3)和评估质量得分(G4)来设计SiamFC ++。 SiamRPN ++和SiamFC ++的比较(红色部分代表得分高的区域): guide: G1 : 分类和状态估计任务的分离:分类任务将目标从干扰物和背景中分类出来,目标状态

木木JL的博客 9432

Python+OpenCV 调用手机摄像头并实现人脸识别

文章内容: 1、windows 环境下安装 OpenCV 机器视觉环境搭建; 2、基于通过 Python+OpenCV调用手机摄像头并实现人脸检测识别。 目录1 实验环境2 实验准备2.1 下载 OpenCV2.2 OpenCv安装1.3 测试安装3 使用OpenCV调用手机摄像头并实现人脸识别3.1 手机上的准备3.2 创建调用实现的代码3.3 下载人脸检测xml文件3.4 实验效果3.4 实验分析4 总结5 参考链接 1 实验环境 操作环境:Windows 10 64位 开发 IDE:Spyder.

L-GRAZY的博客 1万+

41-dify案例分享-基于database插件实现Text2sql的数据库查询图表工作流

本文介绍基于 Text2SQL 的 Dify 工作流实现过程。先阐述 Text2SQL 概念、步骤及应用领域。接着说明工作流制作,包括用 chatflow 加开场白、获取系统时间,配置 LLM 生成 SQL,用 SQL Execute 工具查询,经 LLM 汇总结果,代码生成 ECharts 数据,条件分支判断图表类型输出。最后介绍验证测试、提供体验地址,还提及借助工具生成建表和初始化数据 SQL 语句。

个人技术 1万+

利用Arcgis提取nc数据并计算区域年均温

1.下载数据。2.解压数据至不含中文的路径中。打开工具箱中的多维分析工具-创建NetCDF栅格图层,导入数据。3.打开工具箱中的数据管理工具-图层和表视图-创建栅格图层,导入数据,对输出数据进行命名,得到月均温栅格数据。4.选择工具箱-Spatial Analyst工具(空间分析工具)-地图代数-栅格计算器,计算全国一年年均温。​5.将其导出为.tif格式数据,方便后期使用。6.选择工具箱-Spatial Analyst工具(空间分析工具)-区域分析--以表格显示分区统计,得到分区域的气温数据。

什么都学亿点点的博客 7990

Python 调用摄像头进行人脸识别

之前发过一篇关于对图片上人脸检测的博客。 链接:https://blog.youkuaiyun.com/weixin_43582101/article/details/88702254 本篇则是讲解通过计算机摄像头来识别人脸并捕捉人脸位置。源码加依赖在最后会完整托管在githup上。 测试结果如下: 直接贴代码了,基本上都有注释。就不多说了。 导入要使用的模块 cv2,tensorflow import t...

李玺 3万+

【eclipse】win 10:eclipse 4.9 下载、安装和汉化(支持中英切换)

目录 一、eclipse下载 二、eclipse安装 三、eclipse在线汉化 四、eclipse离线汉化(推荐) 一、eclipse下载 ①官网下载地址(收费):https://www.eclipse.org/downloads/点击前往下载 ②【推荐】我的百度网盘下载地址(包括离线汉化包):点击下载 提取码:0nfw ③eclipse4.9其他地址下载:http...

顾三殇 —— 博客空间(软件测试) 1万+

Python+Keras+opencv实现人脸识别

Keras对人工智能来说,是一款比较好的入门框架。它是一个高级的Python神经网络框架,已经被添加到TensorFlow中,成为其默认的框架,为TensorFlow提供更高级的API。如果将TensorFlow比喻为编程界的Java或者C++,那么Keras就是编程界的Python,它作为TensorFlow的高层封装,可以与TensorFlow联合使用,用它可以快速搭建模型。并且Keras是T...

_Seven°的博客 3万+

TC3XX - MCAL知识点(九):PWM EB-tresos配置说明及代码浅析

脉冲宽度调制(PWM)驱动器负责提供与AUTOSAR指定的PWM信号生成相关的标准服务。PWM通道的底层定时器驱动是GTM (TOM或ATOM片)或CCU6 (T12或T13片)定时器通道。软硬件匹配关系如下:PWM直接引用的是GTM与CCU6模块,然后GTM与CCU6再关联到Port的,根据软硬件匹配关系,也能调用中断来使用,本例子没使用中断。CCU6是一个高分辨率的16位捕获和比较单元,具有特定的应用模式,主要用于交流驱动控制。特殊的工作模式支持控制无刷直流电机使用霍尔传感器或反电动势检测。

梦想技术家 2884

知识图谱中的 Ontology(本体论)

1980年,本体论(Ontology)哲学概念“本体”被引入到人工智能领域用来刻画知识。本体概念模型、明确、形式化、共享。本体是实体存在形式的描述,往往表示为一组概念定义和概念之间的层级关系,本体框架形式树状结构,通常被用来为知识图谱定义schema。如人、公司、车等都可以在具体场景下称为本体。Ontology是(特定领域)信息组织的一种形式,是领域知识规范的抽象和描述,是表达、共享、重用知识的方法。Ontology。

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 2028

Python+OpenCv实现摄像头人脸识别

一,教程目的 通过 Python+OpenCV 完成摄像头人脸识别 二,实验环境 操作系统: Windows 10 64 位 专业版 开发IDE : Pycham 2020.1.1 下载链接 Python : Python 3.7 下载链接 OpenCv: OpenCv-Python-4.2.0.34 GitHub : FaceRecognition 三,前提准备 1.安装OpenCv视觉库 第一种(pycham安装): 关于pycham的配置这里不做过多的叙述 点击 文件(File)—设

南风的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

本篇博客将介绍如何使用LabVIEW 和 SFace 快读实现人脸识别系统

virobotics的博客 7894

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

课程设计题目:基于python实现人脸识别打卡

目录 摘要 一、 需求分析 二、 概要设计 总功能模块 录入人脸模块 实时检测模块 三、 详细设计 第三方库导入 建立相关储存文件 对照人脸获取 通过算法建立对照模型 人脸检测识别 日志返回 四、 执行结果 五、 附录(程序清单) 六、 运行过程遇到的问题 摘要 在20世纪末,计算机的发展催生了人们对人工智能的研究,为了实现这一技术,那么,对人脸识别技术的研究就显得非常重要而且也是必不可少的。因为计算机的发展,所以近十年来对人脸识别的研究飞速发展,如

白舟的博客 8915

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【人工智能】基于Python和OpenCV实现实时人脸识别系统:从基础到应用

随着人工智能和计算机视觉的快速发展,人脸识别技术已广泛应用于监控、安全、社交媒体、金融和医疗等领域。本文将介绍如何利用Python和OpenCV库,结合dlib进行实时人脸识别的实现。通过构建一个基础的实时人脸识别系统,读者将深入了解人脸检测与识别的核心原理,掌握如何使用现有的计算机视觉工具快速开发一个有效的实时系统。 本文将详细介绍如何通过OpenCV和dlib来实现人脸检测与识别,如何实时获取摄像头的视频流,并在视频流中检测到的人脸上标记出识别结果。通过一系列详细的代码示例和逐步解释,帮助读者深入理解

一个被知识诅咒的人 2150

python+opencv打开摄像头 人脸识别

外置摄像头的调用 cap = cv.VideoCapture(700) 这个地方的700就是摄像头的id号 对于内置摄像头而言,摄像头的id就是0,使用代码cap = cv.VideoCapture(0)就可以 外置摄像头由于不知道摄像头的id,但是我们可以试一试 import cv2 as cv import time for i in range(0,50000): cap = cv....

weixin_43977647的博客 2415
上一篇: Mac上执行Linux可执行文件报错:cannot execute binary file
下一篇: Mac 上配置VScode的 C/C++环境
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值