学习笔记:python人脸识别2-识别摄像头中的人脸

树莓派与OpenCV实现人脸识别(人脸识别篇) 树莓派与OpenCV实现人脸识别(人脸识别篇)一、OpenCV安装二、打开摄像头三、摄像头检测四、人脸识别 一、OpenCV安装 树莓派与OpenCV实现人脸识别(OpenCV安装篇) 二、打开摄像头 终端输入sudo raspi-config 选择 Interface Options > Camera >Yes > OK >Finish >重启(reboot) 树莓派接入USB摄像头或CSI摄像头 为了检测摄像头是否成功接入,先拔掉运行lsusb命令查看当前树莓派接入的设备, 阅读详情

昨天配置好了人脸识别开发环境,今天测试识别摄像头中的人脸

从网上下载了一个例子,网址:https://github.com/ageitgey/face_recognition

1. 程序运行结果如下,能实时识别摄像头中的人脸,本人不够帅,模糊了脸部才发上来的,呵呵!

 

2.程序如下:

import face_recognition
import cv2
# 获取摄像头
video_capture = cv2.VideoCapture(0)
# 获取第一个人脸部特征码
obama_image = face_recognition.load_image_file("../data/test/obama.jpg")
obama_face_encoding = face_recognition.face_encodings(obama_image)[0]
# 获取第二个人脸部特征码
linbin_image = face_recognition.load_image_file("../data/test/linbin.jpg")
linbin_face_encoding = face_recognition.face_encodings(linbin_image)[0]
#脸部特征码数组
known_face_encodings = [
    obama_face_encoding,
    linbin_face_encoding
]
#姓名数组与特征码对应
known_face_names = [
    "Obama",
    "LinBoft"
]
#一直循环获取摄像头截图并识别和标注
while True:
    # 获取一帧画面
    ret, frame = video_capture.read()
    # 转换为识别程序需要的格式
    rgb_frame = frame[:, :, ::-1]
    # 获取画面中的所有人脸位置及人脸特征码
    face_locations = face_recognition.face_locations(rgb_frame)
    face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)
    # 对获取的每个人脸进行识别比对
    for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):
        # 对其中一个人脸的比对结果(可能比对中人脸库中多个人脸)
        matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
        name = "Unknown"
        # 默认只认为是比对中的第一个人脸.
        if True in matches:
            first_match_index = matches.index(True)
            name = known_face_names[first_match_index]
        #在人脸上画一个框
        cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
        # 在框底部画一个文本框,并标注姓名
        cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)
        font = cv2.FONT_HERSHEY_DUPLEX
        cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)
    # 显示标注后的帧
    cv2.imshow('Video', frame)
    # 在1ms后检测是否按了 'q'键退出!
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# 释放摄像头占用,关闭窗口
video_capture.release()
cv2.destroyAllWindows()

3. 改进为实际使用设想

(1)获取人脸特征码和识别使用分开,预先获取脸部特征码保存到数据库,识别程序开始时从数据库获取人名和相应脸部特征码保存到数组,可以大大减少初始化时间。

(2)识别结果可以保存到数据库,即记录什么时间,识别到谁经过摄像头前,这个可以给后续程序处理,如考勤,安保、出入记录,大数据分析等。

(3)要有处理重复记录机制,比如判断在一定时间间隔才记录同一个人

(4)可以加快处理,比如先把获取的图像缩小为1/4 再识别,不要读取的每一帧都识别,跳帧识别,减少数据处理量等,这个在上面参考网址里已有实现代码。

 

4.后记,如果识别结果写入数据库,会有大量的重复识别记录,为了解决这个问题,加入防重复程序,判别人脸间隔2分钟消失在镜头前再次进入才做记录,就是你一直在镜头前,只记录一次,你消失2分钟后,再次进入才重新登记

recname = []
rectime = []

在 if True in matches: 里 就是获取到识别到的人名后,做防重复登记

inside=False
for i, val in enumerate(recname): #遍历列表
    if val==name: #找到已登记
        rectime[i] = time.time()  #修改最新时间
        inside=True  #已登记标志
    # 120秒不再出现镜头前,删除防重复登记
    elif time.time()-rectime[i] > 120:
        del recname[i]  #120不出现,删除元素
        del rectime[i]
if inside == False:  #是新识别到120秒内没出现过的人脸
    recname.append(name)  #加入列表记录在案
    rectime.append(time.time())
    #新识别的记录这里可以写入数据库
#print(recname, rectime)

这样就不会有大量重复记录写入数据库了。

 

Python实现人脸识别 案例分析 概述 Python在人脸识别方面功能很强大,程序语言简单高效,下面编程实现一下如何实现人脸识别。分别给出实现代码,作为学习和技术交流。 Python基础环境准备 参见:https://blog.youkuaiyun.com/yan_dk/article/details/89528463 案例实现 打开显示图片 import cv2 #opencv库 #读... 阅读详情

相关推荐

使用python的opencv实现人脸识别

本项目主要使用python语言,主要的模块库有os,opencv-python,opencv-contrib-python。项目主要分为三个部分,人脸录入,训练数据,实现人脸的识别。本博客包含源代码,以及各个功能模块,需求分析的详细解释,当然本项目只是简单的实现人脸识别,可以在此基础上扩展。

weixin_61360713的博客 3829

人脸识别之数据库存取

一、程序概况 1.将人脸特征信息保存进MySQL数据库。 2.调用摄像头识别人脸,将待识别的人物进行识别,并实时地与数据库中的人脸特征信息进行比对,同时判断出被识别者的身份。 二、程序分析 1.主要利用opencv、face_recognition、numpy、pymysql等Python第三方类库,官方说法是face_recognition的人脸识别准确率高达99.6%。 2.利用fa...

qq_42109746的博客 2万+

基于OpenCV的简单人脸识别系统

本程序基于OpenCV的LBPH模块和人脸检测模块,将二者结合实现简单的特定人脸识别功能,数据集是根据拍的视频保存下来的图片,目前代码写的还比较粗糙,后续有时间再改进。。

weixin_45371989的博客 6974

face_recognition结合opencv进行多人脸识别

step1:准备好opencv,numpy和face_recognition三个库step2:准备好人脸图像 step3:利用opencv读取三张图片 step4:将图片转为特征向量,并将向量和名字添加到列表中,一一对应step5:摄像头展示,读取摄像头图片帧step6:将图片缩放到1/4,进行处理时候更加的迅速step7: opencv摄像头读取的是BGR格式,这里转为face_recognition需要的RGB形式,同时将图像原图和图像中的所有人脸面部以及对应的所有特征信息放入faces_encodin

weixin_54627824的博客 5852

树莓派3B实现人脸识别

树莓派3B实现人脸识别

m0_74196680的博客 3318

python学习之recognition的多人人脸识别

@toc 1 人脸识别技术是基于人的脸部特征,对输入的人脸图像或者视频流 . 首先判断其是否存在人脸 , 如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。 广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以...

wuluo的博客 3505

opencv + face_recognition —— 人脸识别案例

文章目录 opencv + face_recognition —— 人脸识别案例 0. 版本信息 1. 导包 2. 识别图片中的面部 3. 实现摄像头中的面部追踪 4. 人脸追踪+识别,分析出不同的人 5. 人脸追踪+识别,分析出不同的人(优化) 6. 人脸追踪,打上马赛克 7. 人脸追踪,磨皮美颜 opencv + face_recognition —— 人脸识别案例 0. 版本信息 版本信息 产品 版本 python 3.7 anaconda 4.8.3 jupyter 6.0.3 opencv 3.

蒋含竹的博客 6934

避坑指南:英飞凌TC3XX的MCMCAN初始化常见错误及解决方法

本文针对英飞凌TC3XX系列MCU的MCMCAN模块初始化难题,深入剖析了寄存器配置时序、总线监控模式误用、中断映射错误及Message RAM地址冲突四大常见陷阱。通过实战代码示例和诊断流程,提供了清晰的避坑指南和解决方案,帮助嵌入式开发者高效解决CAN FD通信故障,确保汽车电子与工业控制项目的稳定运行。

weixin_29193259的博客 244

独家 | 手把手教你运用深度学习构建视频人脸识别模型(Python实现)

作者:Faizan Shaikh 翻译:季洋校对:王雨桐本文约2700字,建议阅读10+分钟。本文将展示如何使用开源工具完成一个人脸识别的算法。 引言“计算机视觉和机器学...

数据派THU 3473

【图神经网络】从0到1使用PyG手把手创建异构图

异构图的准确定义如下:异构图(Heterogeneous Graphs):一个异构图GGG有一组节点V=v1,v2,...,vnV=v_1,v_2,...,v_nV=v1​,v2​,...,vn​和一组边E=e1,e2,...,emE=e_1,e_2,...,e_mE=e1​,e2​,...,em​组成,其中每个节点和每条边都对应着一种类型,用TvT_vTv​表示节点类型的集合,TeT_eTe​表示边类型的集合,一个异构图有两个映射函数,分别将每个节点映射到其对应的类型ϕv:V→Tv\phi_v:V\rig

小哲的博客 7833

基于wxWidgets框架,使用DialogBlocks建立OpenGL界面

前言 之前公司要求使用wxWidgets做GUI,基于OpenGL图形内核,开发三维可视化工具。目前初步开发工作基本已经完成,剩下都是完善了。这里记录一下最开始的框架搭建过程(当然是简化版啦)。wxWidgets结合OpenGL开发可以实现跨平台应用,再结合CMake和VS Code,整体开发工具用习惯了会感觉非常顺手。 界面编辑 首先,使用DialogBlocks新建一个工程,这里工程目录...

cyberobot的博客 2750

python调用摄像头人脸识别代码_利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别...

用已经搭建好 face_recognition,dlib 环境来进行人脸识别未搭建好环境请参考:使用opencv 调用摄像头import face_recognitionimport cv2video_capture = cv2.videocapture(0)# videocapture打开摄像头,0为笔记本内置摄像头,1为外usb摄像头,或写入视频路径mayun_img = face_recog...

weixin_39692623的博客 304

【x265编码器】章节1——x265的lookahead模块分析

目录一、模块功能二、lookahead模块分析1.调用流程2.代码分析Lookahead::addPicture()Lookahead::checkLookaheadQueue()Lookahead::getDecidedPicture()Lookahead::findJob()Lookahead::slicetypeDecide()PreLookaheadGroup::processTasksLookaheadTLD::lowresIntraEstimate()Lookahead::slicetypeAn

vcvdv123的博客 4万+

python人脸识别

之前曾经写过一篇博客,使用dlib进行人脸检测,就是检测视频中是否出现了人脸,dlib 还可以实现人脸识别。因此今天更新博客主要是记录如何使用 python + opencv + dlib 实现人脸识别 人脸识别的主要算法 其核心算法是 欧式距离算法使用该算法计算两张脸的面部特征差异,一般在0.6 以下都可以被认为是同一张脸 人脸识别的主要步骤 1 获得人脸图片 2 将人脸图片转为128D的矩阵(...

lucky404的博客 2万+

CXSMILES细则-用于在 SMILES 字符串后存储分子的特殊特征

Chemaxon 扩展 SMILES/SMARTS 用于在 SMILES 字符串后存储分子的特殊特征。任何信息都可以存储在 SMILES 字符串后,只要它们由空格或制表符字符分隔,因为 SMILES 解析器会忽略这些信息,或者将它们作为注释使用。扩展特征以以下格式存储:Chemaxon 的扩展 SMILES/SMARTS 不包含非 ASCII 字符,它们通常以字符代码 n 的形式被转义为 &#n;。在 S-group 中,ASCII 字符“,”、“;”、“|”、“{”、“}”也以这种方式转义。此外,符号“$

ASKCOS博客 401

【架构】-- StarRocks 和 Doris 介绍与选型建议

查询性能 | ✅ 高性能,支持向量化执行和 CBO 优化器 | ✅ 高性能,优化的查询引擎 |- **实时性要求高**:如果业务对数据的实时性要求较高,建议选择 **StarRocks**,其在实时数据处理和低延迟查询方面表现优越。- **复杂查询需求**:对于需要处理复杂多表关联查询的场景,两者均可胜任,需根据具体性能测试结果进行选择。

欢迎来到我的博客,一起探索代码里的世界! 1831

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万+

087、DAMO-YOLO Efficient-RepGFPN:重参数化加皇后融合加黄金分割的创新 Neck

DAMO-YOLO的Efficient-RepGFPN创新性Neck结构摘要: 该结构通过三重创新提升目标检测性能: 重参数化卷积:训练时多分支(3x3卷积+1x1卷积+BN分支)提升特征表达能力,推理时合并为单路3x3卷积保证效率; 皇后融合机制:采用可学习权重对不同尺度特征进行自适应加权融合,而非简单相加,通过Softmax归一化权重实现特征选择; 黄金分割连接:优化特征金字塔层间连接方式,按比例分配相邻层特征权重(如P3:P5≈0.618:0.382),减少冗余连接噪声。 实验表明,该结构有效解决了传

ai技术增长的博客 102

人脸识别python实现代码

tensorflow搭建cnn人脸识别训练+识别代码(python) https://blog.youkuaiyun.com/codes_first/article/details/79223524 基于神经网络的人脸识别(Tensorflow,opencv,dlib,cnn,) https://blog.youkuaiyun.com/qq_36955294/article/details/80112394 ...

sun007700的专栏 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

基于opencv-python的人脸识别算法

基于opencv-python的人脸识别算法及采集样本识别特定人脸 opencv-python的安装与配置 关于opencv-python的安装,我用的是pycharm。pycharm作为一个智能集成的开发工具,我们可以直接在上面安装各种环境。 在设置中我们可以看到当前项目所安装的包和环境。如果没有安装某个包,我们可以在左上角的加号中直接搜索并获取(如果下载不动的话请科学上网) 我们点开加号,在搜索栏直接搜索opencv-python,pycharm就会直接帮我们下载安装,我们稍等片刻即可。 安装

weixin_43393800的博客 7793

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

李玺 3万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【项目】Python人脸识别(GUI界面)—— 基于pyopencv

每日一语:默默的发光,然后惊艳所有人!!! 前言: 本项目是笔者在暑假快结束前写的一个项目,因为开学和和其他的一些问题,一直把这个项目给搁置一边,随着笔者需要转型Java可能以后写python的项目不会是很多,趁今天周末,我把这个项目从仓库拽了出来,给完善了一边,可能功能不是很齐全,希望能给大家带来帮助!!! 项目介绍 我们先来看看成果: 首先写了一个能够操作的GUI界面。 其中两个按钮对应相应的功能: 采集人脸: 识别功能: 项目思路 本项目是借助于pyth...

小宝的博客 2万+

Python | 人脸识别系统 — 人脸识别

人脸识别系统 人脸识别部分代码详解

鷾 9575

Python 人脸识别

Python 人脸识别 目录 1、环境安装必要过的坑 2、模块的讲解 1、环境安装必要过的坑 首先我先介绍下我的环境 我是win10系统! Python 使用的是Ancona默认的python3.6.3版本!在这里一定要注意,我们使用的python3.6版本,原先的3.5版本由于各种坑,填不完,所以我们就简单略过,用跟家快捷的方法,得到我们想要的结果! 准备环境之安装依赖 ...

Smile_Mr的博客 7718

python实现多人脸识别

本篇文章是使用python通过调用电脑摄像头实时检测摄像头画面识别画面中的人脸 这里的python版本是3.9,各个版本思路上相似 我的大体思路是:采集人脸数据---->训练模型---->实现人脸识别 第一步:采集人脸数据 首先要导入cv库 import cv2 如果没有opencv库的话要用pip先安装一个 pip install opencv-python 采集人脸要用到调用摄像头 capture = cv2.VideoCapture(1) 在这里需要说明的是代码

fxxtsjs的博客 9698
上一篇: 学习笔记:python人脸识别1-开发环境配置
下一篇: 学习笔记:python人脸识别3-通过web客户端摄像头识别人脸
领尚
博客等级 码龄14年 1143粉丝 271原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值