Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >人脸识别demo

人脸识别demo

原创
作者头像
陶陶name
发布于 2022-05-12 00:38:15
发布于 2022-05-12 00:38:15
12.7K0
举报
文章被收录于专栏:陶陶计算机陶陶计算机

我们知道当今最火的莫过于人工智能了,人工智能指在计算机科学的基础上,综合信息论、心理学、生理学、语言学、逻辑学和数学等知识,制造能模拟人类智能行为的计算机系统的边缘学科。在人工智能的范畴内有两个方向:计算机视觉、自然语音处理(NLP,国内外也有人称NPL)。

  • 简介:这里介绍一个demo,同时这个项目是基于计算机视觉的基础上完成的,旨在简单的科普人工智能 import face_recognition import cv2 import datetime import glob2 as gb相关库介绍video_capture = cv2.VideoCapture(0) # 使用cv2打开摄像头获取当前图像 img_path = gb.glob(r'D:\pycharmproject\F_recognition\photo\\*.jpg') # 获取路径 known_face_names = [] # 使用数组获取文件夹下的图片信息 known_face_encodings = [] for i in img_path: # 遍历,通过同文件夹下的图片比对 picture_name = i.replace('D:\pycharmproject\F_recognition\photo\\*.jpg', '') picture_newname = picture_name.replace('.jpg', '') someone_img = face_recognition.load_image_file(i) someone_face_encoding = face_recognition.face_encodings(someone_img)[0] known_face_names.append(picture_newname) known_face_encodings.append(someone_face_encoding) someone_img = [] someone_face_encoding = [] face_locations = [] face_encodings = [] face_names = [] process_this_frame = True while True: ret, frame = video_capture.read() small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25) rgb_small_frame = small_frame[:, :, ::-1] if process_this_frame: face_locations = face_recognition.face_locations(rgb_small_frame) face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations) face_names = [] for i in face_encodings: match = face_recognition.compare_faces(known_face_encodings, i, tolerance=0.39) if True in match: match_index = match.index(True) name = "match" # To print name and time cute_clock = datetime.datetime.now() print(known_face_names[match_index] + ':' + str(cute_clock)) else: name = "unknown" face_names.append(name) process_this_frame = not process_this_frame for (top, right, bottom, left), name in zip(face_locations, face_names): # 将人脸面部信息画出来 top *= 4 right *= 4 bottom *= 4 left *= 4 cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), 2) font = cv2.FONT_HERSHEY_DUPLEX cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1) cv2.imshow('Video', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break video_capture.release() cv2.destroyAllWindows()
  • 需要的第三方库
  • face_recogniton是世界上最简单的人脸识别库了。你可以通过Python引用或者命令行的形式使用它,来管理和识别人脸,该软件包使用dlib中最先进的人脸识别深度学习算法,使得识别准确率在《Labled Faces in the world》测试基准下达到了99.38%,它同时提供了一个叫face_recognition的命令行工具,以便你可以用命令行对一个文件夹中的图片进行识别操作。
  • cv2是Opencv(Open Source Computer Vision Library)的一个扩展库,里面含有各种用于图像处理的函数及进程。可以运作在LinuxWindows和Mac OS操作系统上。
  • datetime 是Python处理日期和时间的标准库;可以获取当前日期和时间,也可以获取指定日期和时间等等
  • glob2 是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,类似于Windows下的文件搜索,支持通配符操作。
  • 代码部分
  • 效果
  • 识别成功
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 识别失败
    在这里插入图片描述
    在这里插入图片描述
  • 完整代码
代码语言:txt
AI代码解释
复制
# -*- coding: utf-8 -*-
# @Time    : 2019/1/4 19:59
# @Author  : 胡子旋
# @FileName: Recognition.py
# @Software: PyCharm
# @Email   :1017190168@qq.com
import face_recognition
import cv2
import datetime
import glob2 as gb
video_capture = cv2.VideoCapture(0)
img_path = gb.glob(r'D:\pycharmproject\F_recognition\photo\\*.jpg')
known_face_names = []
known_face_encodings = []

for i in img_path:
    picture_name = i.replace('D:\pycharmproject\F_recognition\photo\\*.jpg', '')
    picture_newname = picture_name.replace('.jpg', '')
    someone_img = face_recognition.load_image_file(i)
    someone_face_encoding = face_recognition.face_encodings(someone_img)[0]
    known_face_names.append(picture_newname)
    known_face_encodings.append(someone_face_encoding)
    someone_img = []
    someone_face_encoding = []

face_locations = []
face_encodings = []
face_names = []
process_this_frame = True

while True:
    ret, frame = video_capture.read()
    small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)
    rgb_small_frame = small_frame[:, :, ::-1]

    if process_this_frame:
        face_locations = face_recognition.face_locations(rgb_small_frame)
        face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations)
        face_names = []
        for i in face_encodings:
            match = face_recognition.compare_faces(known_face_encodings, i, tolerance=0.39)
            if True in match:
                match_index = match.index(True)
                name = "match"
                # To print name and time
                cute_clock = datetime.datetime.now()
                print(known_face_names[match_index] + ':' + str(cute_clock))
            else:
                name = "unknown"
            face_names.append(name)

    process_this_frame = not process_this_frame

    for (top, right, bottom, left), name in zip(face_locations, face_names):
        top *= 4
        right *= 4
        bottom *= 4
        left *= 4

        cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)

        cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), 2)
        font = cv2.FONT_HERSHEY_DUPLEX
        cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)

    cv2.imshow('Video', frame)

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

video_capture.release()
cv2.destroyAllWindows()
  • 总结
  • 这是好久之前写的demo了,一直没时间整理,乘着暑期期间,将一些有用项目、demo全整理一遍,记录下来,方便自己回忆和分享。如有问题欢迎指正。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python开发系统实战项目:人脸识别门禁监控系统
dlib 库需要单独安装,dlib 库目前已经编译好的安装版本只支持 python 3.6 的版本。
荣仔_最靓的仔
2022/01/05
2.5K0
Python开发系统实战项目:人脸识别门禁监控系统
用Python做个电脑人脸屏幕解锁神器
最近突然有个奇妙的想法,就是当我对着电脑屏幕的时候,电脑会先识别屏幕上的人脸是否是本人,如果识别是本人的话需要回答电脑说的暗语,答对了才会解锁并且有三次机会。如果都没答对就会发送邮件给我,通知有人在动我的电脑并上传该人头像。
用户8544541
2022/01/27
2.1K2
用Python做个电脑人脸屏幕解锁神器
用 20 行 python 代码实现人脸识别!
今天给大家介绍一个世界上最简洁的人脸识别库 face_recognition,你可以使用 Python 和命令行工具进行提取、识别、操作人脸。
测试开发社区
2019/09/30
1.2K0
用 20 行 python 代码实现人脸识别!
Dlib检测人脸68个特征,使用sklearn基于svm训练人脸微笑识别模型
使用Dlib提取人脸特征并训练二类分类器 (smile, nosmile) 来识别人脸微笑表情。
AnieaLanie
2021/12/12
3.8K1
我是如何用树莓派 + Docker 轻松实现人脸识别应用的?
人脸识别技术已经被广泛应用在众多场景中。今天我们将利用Docker容器在树莓派上快速打造一个人脸识别应用。
用户6543014
2019/10/25
2.3K0
我是如何用树莓派 + Docker 轻松实现人脸识别应用的?
给你的电脑做个简单的“人脸识别认证”
在我们的办公室,锁定屏幕是您需要快速开发的习惯。 因为如果你将你的计算机解锁,有人会玩得开心并改变你的壁纸或别名你sudo( linux系统管理指令,注*文章作者使用Linux系统)的东西。 有一天,我开始思考,为什么我不能自动化呢? 在这里,我来到Face Recognition python库。 它的设置和使用非常简单。 但首先要做的事情。 我们需要检查是否可以从python锁定屏幕以及如何操作。
AI研习社
2019/03/14
1.9K0
给你的电脑做个简单的“人脸识别认证”
【机器学习】大模型驱动的少样本学习及其在图像识别任务中的高效应用探索
语言大模型是指那些拥有海量参数和高度复杂结构的自然语言处理模型。它们具备强大的语言理解和生成能力,能够通过学习大量文本数据,捕捉到语言的深层次结构和规律。语言大模型的特性主要包括以下几个方面:
E绵绵
2025/05/24
1470
【机器学习】大模型驱动的少样本学习及其在图像识别任务中的高效应用探索
使用Python,Keras和OpenCV进行实时面部检测
目前我们在互联网和论文中看到的大多数面部识别算法都是以图像为基础进行处理。这些方法在检测和识别来自摄像头的图像、或视频流各帧中的人脸时效果很好。但是,他们无法区分现实生活中的人脸和照片上的人脸,因为这些算法处理的是2D帧。
小白学视觉
2022/05/22
9580
使用Python,Keras和OpenCV进行实时面部检测
人脸识别,一行代码就能搞定?
什么,只要一行代码就能搞定人脸识别?当然是假的啦。 虽然不能一行就搞定,依靠python强大的人脸识别包,只要十多行代码完全可以实现人脸识别的功能。这就叫站在巨人的肩膀上,看得更高更远。 face-r
机器人网
2018/04/18
1.2K0
人脸识别,一行代码就能搞定?
『开发技术』Windows极简安装使用face_recognition实现人脸识别
在Windows使用此face_recognition项目时,由于官方不提供Windows版本:安装时总是遇到不同问题。
小宋是呢
2019/08/15
1.9K0
『开发技术』Windows极简安装使用face_recognition实现人脸识别
使用OpenCV,Python和深度学习进行人脸识别
在这篇文章中,你将学会如何使用OpenCV、Python和深度学习在图像和视频流中执行人脸识别。我们今天将在这里使用的基于深度学习的面部嵌入,既高度准确又能够实时执行。
AiTechYun
2018/07/27
10.3K0
使用OpenCV,Python和深度学习进行人脸识别
5G技术在安全监控中的应用:从“慢半拍”到“秒响应”
过去,安全监控总是存在这样或那样的问题:画面卡顿、数据传输延迟、远程操控不稳定……这些都让关键时刻的响应变得异常艰难。而5G技术的兴起,正是为了解决这些痛点,让安全监控从“被动看守”升级为“主动感知”。
Echo_Wish
2025/05/08
1320
5G技术在安全监控中的应用:从“慢半拍”到“秒响应”
「摸鱼」神器来了,Python 实现人脸监测制作神器
最近都在讨论工作摸鱼,网易云音乐也出了合理摸鱼时间表,今天给大家推荐如何用python实现摸鱼~码住呦!
AI科技大本营
2021/12/04
7411
「摸鱼」神器来了,Python 实现人脸监测制作神器
人脸图像识别(python人脸识别技术)
人脸识别是将采集到的数据信息,根据人脸特征信息进行比对,从而辨识身份的技术。每逢谈到人脸识别技术,就会想到人工智能,近年来,人工智能的发展成为当代技术革命的一部分。可以说计算机领域技术的发展,极大的带动了这场革命。
兰舟千帆
2022/07/16
17.6K0
人脸图像识别(python人脸识别技术)
人脸识别(Face Recognition)入门
人脸识别是一种通过分析和识别人脸特征来辨认一个或多个人身份的技术。随着深度学习和计算机视觉的快速发展,人脸识别成为了一个非常热门的领域。本文将介绍人脸识别的入门知识和常用的实现方法。
大盘鸡拌面
2023/10/26
9720
虽然现在有可以去码的软件了,可视频是如何自动跟踪打码的?
它的身影随处可见,刷脸支付,信息审核,监控搜索等,除了这些常规操作,还可以对视频里的特定人物进行打码。
松鼠爱吃饼干
2020/09/12
5900
虽然现在有可以去码的软件了,可视频是如何自动跟踪打码的?
虽然现在有可以去码的软件了,可视频是如何自动跟踪打码的?
它的身影随处可见,刷脸支付,信息审核,监控搜索等,除了这些常规操作,还可以对视频里的特定人物进行打码。
松鼠爱吃饼干
2020/09/15
5250
虽然现在有可以去码的软件了,可视频是如何自动跟踪打码的?
手把手教你用1行代码实现人脸识别 -- Python Face_recognition
环境要求: Ubuntu17.10 Python 2.7.14 环境搭建: 1. 安装 Ubuntu17.10 > 安装步骤在这里 2. 安装 Python2.7.14 (Ubuntu17.10 默认Python版本为2.7.14) 3. 安装 git 、cmake 、 python-pip # 安装 git $ sudo apt-get install -y git # 安装 cmake $ sudo apt-get install -y cmake # 安装 python-pip $ sudo apt-
小莹莹
2018/04/24
1.1K0
手把手教你用1行代码实现人脸识别 -- Python Face_recognition
人工智能实现程序员“防”BOSS?刷脸就发短信,8行代码人脸报警
如今一个攻城狮就能搞定人脸的深度进修算法,这要多感激打动国外开源框架,虽然达不到旷世face++和诸多人脸公司的深度,可是实际应用已经没有太大压力。下图就是tensorflow写的人脸5点定位加情感测试。
用户1769637
2018/04/30
1.5K5
人工智能实现程序员“防”BOSS?刷脸就发短信,8行代码人脸报警
Python+OpenCV人脸识别签到考勤系统
本项目为IOT实验室人员签到考勤设计,系统实现功能: 1.人员人脸识别并完成签到/签退 2.考勤时间计算 3.保存考勤数据为CSV格式(Excel表格)
用户8544541
2022/06/15
2.1K0
Python+OpenCV人脸识别签到考勤系统
推荐阅读
相关推荐
Python开发系统实战项目:人脸识别门禁监控系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档