位置: IT常识 - 正文

Python 人脸识别系统

编辑:rootadmin
Python 人脸识别系统 简介

推荐整理分享Python 人脸识别系统,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

人脸识别不同于人脸检测。在人脸检测中,我们只检测了人脸的位置,在人脸识别任务中,我们识别了人的身份。

本文重点介绍使用库 face_recognition 实现人脸识别,该库基于深度学习技术,并承诺使用单个训练图像的准确率超过 96%。

识别系统用例

寻找失踪者识别社交媒体上的帐户识别汽车中的驾驶员考勤系统了解人脸识别的工作原理我们将人的照片和他们的名字传递给模型。该模型拍摄每张照片,将它们转换为某种数字编码,并将它们存储在一个列表中,并将所有标签(人名)存储在另一个列表中。在预测阶段,当我们传递未知人的图片时,识别模型会将该人的图像转换为编码。在将未知人的图像转换为编码后,它会尝试根据距离参数找到最相似的编码。与未知人的编码距离最小的编码将是最接近的匹配。在获得最接近的匹配编码后,我们从该列表中获取该编码的索引并使用索引。我们找到检测到的人的名字。传统人脸识别算法

传统的人脸识别算法不符合现代人脸识别标准。它们旨在使用旧的传统算法识别面部。

OpenCV 提供了一些传统的面部识别算法。

Eigenfaces:http://www.scholarpedia.org/article/Eigenfaces尺度不变特征变换 (Scale Invariant Feature Transform,SIFT):https://en.wikipedia.org/wiki/Scale-invariant_feature_transformFisher faces:http://www.scholarpedia.org/article/Fisherfaces局部二进制模式直方图 (Local Binary Patterns Histograms,LBPH):https://en.wikipedia.org/wiki/Local_binary_patterns

这些方法在提取图像信息和匹配输入和输出图像的方式上有所不同。

LBPH 算法是一种简单但非常有效的方法,仍在使用中,但与现代算法相比速度较慢。

人脸识别深度学习

有多种基于深度学习的面部识别算法可供使用。

DeepFaceDeepID series of systemsFaceNetVGGFace

一般来说,基于地标的人脸识别器对人脸图像进行拍摄,并试图找到眉毛、嘴角、眼睛、鼻子、嘴唇等基本特征点。有60多个地标。

人脸识别涉及的步骤人脸检测:定位人脸,记下每个人脸定位的坐标,并在每个人脸周围绘制一个边界框。面部对齐。标准化人脸以获得快速训练。特征提取。从面部图片中提取局部特征进行训练,这一步由不同的算法执行不同的操作。人脸识别。将输入人脸与我们数据集中的一个或多个已知人脸进行匹配。 识别流程

使用python实现人脸识别系统。使用 face_recognition 库实现基于深度学习的人脸识别系统。

1. 设置人脸识别库:Python 人脸识别系统

为了安装人脸识别库,我们需要先安装dlib

dlib:它是一个现代 C++ 工具包,包含与机器学习相关的算法和工具。

pip install dlib

安装实际的人脸识别库face recognition。

pip install face recognition

Opencv用于一些图像预处理

pip install opencv Note: Sometimes installing dlib throws error in that case install install the C++ development toolkit using vs_code community .

导入库

import cv2 import numpy as np import face_recognition

2. 加载图片:

我们完成了库的安装和导入。是时候将一些示例图像加载到face_recognition库中了。

该face_recognition库仅支持 BGR 格式的图像。在打印输出图像时,我们应该使用 OpenCV 将其转换为 RGB。

Face_recognition仅加载 BGR 格式的图像。

import cv2import numpy as npimport face_recognitionimg_bgr = face_recognition.load_image_file('student_images/modi.jpg')img_rgb = cv2.cvtColor(img_bgr,cv2.COLOR_BGR2RGB)cv2.imshow('bgr', img_bgr)cv2.imshow('rgb', img_rgb)cv2.waitKey

输出→ BGR 与 RGB

3.检测和定位人脸:

face_recognition库可以自行快速定位人脸,我们不需要使用haar_cascade或其他技术。

img_modi=face_recognition.load_image_file('student_images/modi.jpg')img_modi_rgb = cv2.cvtColor(img_modi,cv2.COLOR_BGR2RGB)#--------- Detecting Face -------face = face_recognition.face_locations(img_modi_rgb)[0]copy = img_modi_rgb.copy()# ------ Drawing bounding boxes around Faces------------------------cv2.rectangle(copy, (face[3], face[0]),(face[1], face[2]), (255,0,255), 2)cv2.imshow('copy', copy)cv2.imshow('MODI',img_modi_rgb)cv2.waitKey(0)4. 样本图像识别:

该face_recognition库基于深度学习,它支持单次学习,这意味着它需要一张图片来训练自己检测一个人。

img_modi = face_recognition.load_image_file('student_images/modi.jpg')img_modi = cv2.cvtColor(img_modi,cv2.COLOR_BGR2RGB)#------to find the face locationface = face_recognition.face_locations(img_modi)[0]#--Converting image into encodingstrain_encode = face_recognition.face_encodings(img_modi)[0]#----- lets test an imagetest = face_recognition.load_image_file('student_images/modi2.jpg')test = cv2.cvtColor(test, cv2.COLOR_BGR2RGB)test_encode = face_recognition.face_encodings(test)[0]print(face_recognition.compare_faces([train_encode],test_encode))cv2.rectangle(img_modi, (face[3], face[0]),(face[1], face[2]), (255,0,255), 1)cv2.imshow('img_modi', img_modi)cv2.waitKey(0)

上面的代码拍了两张总理的照片,因为两张照片都是同一个人,所以它返回了true。

face_recognition.face_encodings(imgelon)[0]→返回传递图像的编码。face_recognition.compare_faces([train_encode],test_encode) 获取经过训练的编码列表和未知图像的测试编码。如果两个测试编码在训练编码中匹配,则返回True ;否则,它会返回False.挑战姿势:识别系统容易受到人体姿势的影响。面部识别系统将无法预测该人的面部是否不可见。照明:照明会极大地改变面部轮廓。用于人脸识别的照片应在适当的照明条件下拍摄。面部表情:不同的面部表情会导致对同一个人的图像的不同预测。低分辨率:低分辨率图片包含的信息较少,因此不适合人脸识别训练。
本文链接地址:https://www.jiuchutong.com/zhishi/300463.html 转载请保留说明!

上一篇:【前端进阶】-TypeScript高级类型 | 交叉类型、索引签名类型、映射类型(前端技巧)

下一篇:Pytorch+PyG实现MLP(pytorch map)

  • 华为nova5z怎么截屏(华为nova5z怎么截长屏)

    华为nova5z怎么截屏(华为nova5z怎么截长屏)

  • 手机淘宝必备工具在哪(手机淘宝必备工具安全中心)

    手机淘宝必备工具在哪(手机淘宝必备工具安全中心)

  • windows7电脑不受支持怎么办(windows7电脑不受支持怎么解决)

    windows7电脑不受支持怎么办(windows7电脑不受支持怎么解决)

  • 拼多多出评率怎么提高(拼多多出评率怎么计算)

    拼多多出评率怎么提高(拼多多出评率怎么计算)

  • 手机cell什么意思(cell有手机的意思吗)

    手机cell什么意思(cell有手机的意思吗)

  • vivov1962a是什么手机(vivov1965a是什么手机)

    vivov1962a是什么手机(vivov1965a是什么手机)

  • flash player是干嘛的(flashplayer是干嘛用的)

    flash player是干嘛的(flashplayer是干嘛用的)

  • 光猫是路由器的意思吗(光猫路由器的作用)

    光猫是路由器的意思吗(光猫路由器的作用)

  • 安卓手机怎么设置返回键,主屏幕(安卓手机怎么设置屏幕时间)

    安卓手机怎么设置返回键,主屏幕(安卓手机怎么设置屏幕时间)

  • 一个人可以注册几个快手号(一个人可以注册几个抖音)

    一个人可以注册几个快手号(一个人可以注册几个抖音)

  • 华为p30pro是不是5g(华为p30pro是不是曲屏)

    华为p30pro是不是5g(华为p30pro是不是曲屏)

  • 手机自动播放音乐怎么回事(手机自动播放音乐找不到播放源)

    手机自动播放音乐怎么回事(手机自动播放音乐找不到播放源)

  • 手机怎么查银行卡的钱(手机怎么查银行卡号全部数字)

    手机怎么查银行卡的钱(手机怎么查银行卡号全部数字)

  • 华为拍照时间水印怎么设置(华为拍照时间水印怎么设置p30)

    华为拍照时间水印怎么设置(华为拍照时间水印怎么设置p30)

  • vivox27通话美颜怎么设置(vivo手机通话美颜在哪里设置)

    vivox27通话美颜怎么设置(vivo手机通话美颜在哪里设置)

  • 苹果11正式发售时间(苹果正式发售能买到吗)

    苹果11正式发售时间(苹果正式发售能买到吗)

  • 双频gps定位是什么意思(双频gps定位是什么)

    双频gps定位是什么意思(双频gps定位是什么)

  • 苹果修改5g网络显示(苹果手机怎么更改5g网络制式)

    苹果修改5g网络显示(苹果手机怎么更改5g网络制式)

  • nfc是啥(小米nfc是啥)

    nfc是啥(小米nfc是啥)

  • 小米9无线充电怎么打开(小米9无线充电充不了)

    小米9无线充电怎么打开(小米9无线充电充不了)

  • appstore语言变中文(app store的语言突然变成英文了)

    appstore语言变中文(app store的语言突然变成英文了)

  • qq怎么打开火花(qq怎么打开火花显示)

    qq怎么打开火花(qq怎么打开火花显示)

  • 赖格莱兴的Wachsenburg城堡,德国图林根州 (© Raimund Linke/Masterfile)(赖格宝视频)

    赖格莱兴的Wachsenburg城堡,德国图林根州 (© Raimund Linke/Masterfile)(赖格宝视频)

  • tsconfig.json详细配置(tsconfig baseurl)

    tsconfig.json详细配置(tsconfig baseurl)

  • 定额税率定义
  • 经济利益的流入一定是收入吗
  • 净资产是资产负债表的哪一项
  • 流动资产增幅
  • 租金收入需要缴增值税吗
  • 记账凭证核算形式账务处理程序的基本特点
  • 延期缴纳税款的审批机关是
  • 营改增之后账务怎么处理
  • 期末应交企业所得税怎么算
  • 境外分回的股息并入应纳税所得
  • 工程检测费占工程金额多少
  • 无形资产内部研究开发支出的确认和计量
  • 赠品折扣计算法
  • 地税注销流程
  • 有限合伙企业无限合伙企业
  • 待认证税额是几级科目
  • 员工报销医药费计入什么费用
  • 税务机关及其工作人员未按办税事项最多跑一次
  • 股权转让为什么不征收增值税
  • 公司解散实收资本会计怎么处理
  • 商场金银饰品销售该如何建账?
  • 维修设备领用材料会计分录怎么写
  • 1500元左右打游戏最好的手机
  • 汇算清缴报告和审计报告一样吗
  • 职工教育扣除标准是什么
  • 工资五险一金缴费标准是多少
  • 关于房屋租赁备案的通知
  • 投资回报期限
  • 撤销权之诉需要哪些证据
  • win7上网提速
  • win10新装系统我的电脑在哪
  • 其他业务成本主要有哪些
  • 数据库olap
  • 专利权出资会计科目
  • 奥尔梅克
  • 企业清算的会计科目
  • 固定资产清理如何计算增值税
  • php实现文件的下载
  • LangChain与大型语言模型(LLMs)应用基础教程:信息抽取
  • 浅谈php中的错误处理方法
  • vue项目如何打包成dist
  • 年终奖分次发跟一起发有什么区别
  • 金税盘发票数据导出不完整
  • 你别找了
  • [九]深度学习Pytorch-transforms图像增强(剪裁、翻转、旋转)
  • 什么叫呆账损失
  • 应付账款的平行登记
  • 暂估价与发票价的区别
  • sql server 2008 安装文件
  • 工程物资怎么入账成本
  • 管理费用主要核算哪些内容
  • 折价购买股权账务处理
  • 哈罗单车说明
  • 解除劳动合同经济补偿金法律依据
  • 暂估入库需要入什么科目
  • 税务突然查账
  • 建账时都要建哪些科目
  • 公允价值举例说明
  • 预缴增值税扣除额用填写吗
  • 企业收到的应收票据应按什么作为入账金额
  • mysql中分组
  • windows update client
  • 深度操作系统中的生活服务类软件有
  • vc++6.0运行程序
  • windows10version1909的10累积更新失败
  • xp系统没有鼠标自己乱跳
  • centos7.0网络配置
  • profiler.exe - profiler是什么进程 有什么用
  • 应该怎么修复
  • win10应用商店更新比蜗牛还慢
  • linux spid
  • [置顶]公主大人接下来是拷问时间31
  • js格式化时间戳
  • 闽政通城乡居民养老保险认证
  • 公司完税证明去哪里打
  • 土地增值税优惠政策办理流程和手续方面的精简措施
  • 天津个人所得税电话咨询电话
  • 国家税务局查询发票
  • 白酒消费税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设