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

人脸图像识别(python人脸识别技术)

作者头像
兰舟千帆
发布于 2022-07-16 04:24:00
发布于 2022-07-16 04:24:00
17.7K00
代码可运行
举报
运行总次数:0
代码可运行

python人脸识别

人脸识别的崛起

什么是人脸识别

人脸识别是将采集到的数据信息,根据人脸特征信息进行比对,从而辨识身份的技术。每逢谈到人脸识别技术,就会想到人工智能,近年来,人工智能的发展成为当代技术革命的一部分。可以说计算机领域技术的发展,极大的带动了这场革命。

常常在想人脸识别是如何做到,的这里面与复杂高级的数据建模,建立人脸各部分的数据模型密切相关。说白了,其实也就是算法,算法的研究,成为推动智能发展的顶梁柱。

这里面涉及的比较多,无论是从深度学习,还是机器学习,人工智能,这里面的实现过程,想必都是十分复杂的。 在下知识面比较薄弱,不敢多言。不过肯定的一点是,你的人脸识别首先要将人脸转化为计算机可以识别的数据,人脸识别其实就是计算机方面的数据识别。

人脸识别技术的应用和发展

谈到应用,我的第一映像就是手机上的人脸识别解锁,目前在学校公寓里面也有人脸识别的机器,我记得首先是收集了我们学生们的照片,应该是存入数据库的,我们学生的信息,包括学号,以及所在系等等,学校都是存入数据库的。学生在进入公寓时需要进行人脸识别,机器会进行识别。系统有两种识别方式,一是识别人像,二是进行刷卡,刷卡会将自己的信息读取,会与数据库的信息对比,也是一种识别的方式。

目前,从我国人脸识别技术应用来看,主要集中在三大领域:考勤门禁、安防以及金融等等。人脸识别目前面临着一个难题是,对于明亮可能有点要求,像黑暗的环境就比较困难,还有面部本身黑色的人也可能会有误差。但是技术革命的发展,也必将解决这一难题。只有你想不到的,没有做不到的。

应用前景:随着人工智能的兴起,更加高端的识别技术才是主流发展方向,无需接触、更加方便、直观的方式是未来方向,人脸识别具备无需被测者配合的特点,采集器扫过人脸就能进行对比,这在公安刑侦领域有着巨大的前景,在门禁安防领域,操作更加便捷的人脸识别也会更受欢迎。

python人脸识别

导入库

python是一门强大的计算机编程语言,我们常常要用到python中的库,今天我们用到的库是需要安装的,因为不是python的内置库。 1:opencv-python 2:face_recognition

我们这里主要介绍通过控制台命令导入库,不过这里可能与一般情况下的固定格式的导入有所区别。当然你可以借用Pycharm,以及直接去网站上安装相应的包。我比较喜欢控制台命令,因为感觉Pycharm导入某些库是比较慢的。

导入opencv,这和python的版本是有区别的,我的是python3.7版本的。在控制台导入时,我们可以这样导入,opencv是依赖numpy的,我们一般这样导入,首先我们导入cmake,,pip install cmake -i 镜像源。

目前国内的镜像源有如下: 阿里云 http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学 http://pypi.hustunique.com/simple/

山东理工大学 http://pypi.sdutlinux.org/simple/

我们再导入opencv-python,这样导入 pip install opencv-python -i 镜像源 -trusted-host

trusted-host是代表信任该镜像源,这里主要针对可能出现不信任的提示的情况。

同理,我们导入face_recognition时,我们这样在控制台这样写:pip install face_recognition -i 镜像源 -trusted-host

这里可能会出现内存占用很大的问题,不过等一会就好了

实现代码

此代码的目的是实现对图片中人脸的识别,并判断是否是同一张脸,是则返回yes,否则返回no,图片会显示出来,并显示划定人脸的位置框型。yes和no会在图片上方显示。 下面展示一些 内联代码片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#import sys #python内置库
import cv2 #计算机视觉领域
import face_recognition #人脸识别库,如果读取图片的话,会是图像矩阵
#就是每个图片的rgb
# 1.人脸数据
# 2.算法
# 3.建立模型
# 4.训练模型
# 5.测试模型
# 6.上线使用

# 1读取
face_image = face_recognition.load_image_file("E://1.jpg")#读取图片
# 2进行人脸特征提取 向量化
#128维的五官数据
face_encoding = face_recognition.face_encodings(face_image)
# 3人脸位置
face_locations = face_recognition.face_locations(face_image)
# 判断
n = len(face_encoding)
#如果超过连个人就退出来
if n>2:
    print('超过两个人')
    sys.exit()
face1 = face_encoding[0]
face2 = face_encoding[1]
# 4比较   阈值 tolerance指定容错率,越小越严格
result = face_recognition.compare_faces([face1],face2,tolerance=0.5)
if result == [True] :
    print(1)
    name = 'Yes'
else :
    print(0)
    name = 'No'
#绘图

for i in range(len(face_encoding)):
    face_encoding = face_encoding[i]
    face_location = face_locations[i]
    top,right,bottom,left = face_location
    #画框             图像                  位置          颜色     粗细
    cv2.rectangle(face_image,(left,top),(right,bottom),(0,255,0),2)
    #写字
    cv2.putText(face_image,name,(left,top),cv2.FONT_HERSHEY_SIMPLEX,0.8,(255,0,0,2))
face_image_rgb = cv2.cvtColor(face_image,cv2.COLOR_BGR2RGB)
# 展示图像
cv2.imshow("output",face_image_rgb)
#防止闪退
cv2.waitKey(0)

我随便找了一张图,给大家简单演示下这个过程 我们来看实现结果

我们看到结果是这两个人不是同一张脸,当然,这张图可能比较容易辨别。各位可以尝试难度比较大的。据说face_recognition库地识别率达到99.5%以上,这是保底了。 注意代码的指定容错率,这也是和结果很有关系的。

当然对于视频动态图像也是可以的,我们python中也有调用摄像头的模块,以及也有可以将手机的摄像头将摄像头转换地址的,我们可以在代码中加入进来,调用摄像头并控制拍照片,这样就可以和这个结合起来,实现动态人脸识别。我们可以有这个思路,这里只是给大家简单介绍一下python的这个人脸识别库。当然也会有其他的编程语言的实现人脸识别。

后期会写出动态拍照人脸识别。说到底,还是调用库啊,会写库和算法的才是大佬,只会用方法的我还是有很多需要去学习。

毕竟才疏学浅,在下还望各位大佬指正。期待与大家共同进步。 -----jgdabc

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Debian 10服务器上安装LAMP
“LAMP”堆栈是开源软件的集合,通常安装在一起以允许系统部署动态应用程序。 该术语是描述Linux操作系统,Apache Web服务器,MariaDB数据库和PHP编程的首字母缩写。
星哥玩云
2022/07/28
1.6K0
如何在Debian 10服务器上安装LAMP
原生态Ubuntu部署LAMP环境 PHP8.1+MySQL+Apache
如果我们部署WEB环境用于网站项目,我们还是建议用成熟的一键包或者可视化面板这种,毕竟软件的部署和后续的运维方便很多。但是,如果我们有需要学习Linux环境的原理,那还是要学会原生态部署软件的,比如常用的LAMP环境我们这篇文章准备部署一遍。
老蒋
2023/03/26
7780
原生态Ubuntu部署LAMP环境 PHP8.1+MySQL+Apache
如何在Debian 9上安装Linux,Nginx,MySQL,PHP(LEMP堆栈)
LEMP软件堆栈是一组可用于为动态网页和Web应用程序提供服务的软件。这是一个描述Linux操作系统的首字母缩写词,带有Nginx Web服务器。后端数据存储在MySQL数据库中,动态处理由PHP处理。
温浪
2018/11/20
3.6K1
PHP进阶-在Ubuntu上搭建LAMP环境教程
本文将为您提供一个在Ubuntu服务器上搭建LAMP(Linux, Apache, MySQL, PHP)环境的完整指南。通过本文,您将学习如何安装和配置Apache、MySQL、PHP,并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。
Damon小智
2025/01/18
2001
PHP进阶-在Ubuntu上搭建LAMP环境教程
如何在Debian 9上安装Linux,Apache,MariaDB,PHP(LAMP)堆栈
“LAMP”堆栈是一组开源软件,通常安装在一起以使服务器能够托管动态网站和Web应用程序。这个术语实际上是一个缩写,代表L inux操作系统,带有A pache Web服务器。站点数据存储在M ariaDB数据库中,动态内容由P HP 处理。
楠宝宝
2018/10/30
2.2K0
drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明
按照本说明,你就可以成功的在Debian 10(Buster) Linux服务器中安装好drupal 8.8.0版本,已亲测能稳定运行。
全栈程序员站长
2022/09/09
1.4K0
drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明
如何在Debian 8上安装Linux,Apache,MySQL,PHP(LAMP)堆栈
LAMP软件堆栈由Linux操作系统,Apache Web服务器,MySQL数据库和PHP脚本语言组成,是Web或应用程序开发的良好基础。这个软件堆栈安装在一起,使您的服务器可以托管动态网站和Web应用程序。
独木桥先生
2018/10/09
2.3K0
如何在Debian 8上安装ownCloud 8(Jessie)
什么是ownCloud? OwnCloud是OpenSource文件同步和共享可以托管在您自己的服务器上的软件。 它通过直观的Web界面和WEBDAV提供对文件的访问。 还有适用于Windows,Linux,MAC和移动操作系统的本机客户端,可以在本地PC或移动设备的文件夹和服务器上的ownCloud实例之间轻松同步。 ownCloud有许多应用程序和插件,如PDF查看器,电子邮件客户端,日历和任务跟踪器。 可以在这里找到完整的应用列表: https : //apps.owncloud.com/ 。
子润先生
2021/06/14
7390
在Ubunt16.04上安装LAMP
最近经常在自己的测试服务器上部署项目,也开了好几台测试服务器,都是用最简单的LAMP方案来建站的。毕竟是最简单易用的,LAMP即为 Linux、Web 服务器 (Apache)、 数据库服务器 (MySQL / MariaDB) 和 PHP (脚本语言)。由于我使用的都是Ubuntu 16.04的系统,所以我将记录基于Ubuntu16.04的系统中安装LAMP的过程。在这里我将默认你已经安装好Ubuntu 16.04的系统了。
Originalee
2018/08/30
8820
在Ubunt16.04上安装LAMP
如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器
Apache或Apache HTTP服务器是一个免费的开源Web服务器,由Apache软件基金(Apache Software Foundation)开发和维护。它的受欢迎程度可以通过以下事实来判断:全球约有46%的网站由Apache提供支持。 Apache允许网站开发人员通过网络提供他们的内容。
星哥玩云
2022/07/24
4.8K0
如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器
LAMP及部署wordpress/phpMyadmin
引言 lamp含义:黄金组合。简要介绍一下下面这四个东西吧。linux,不用说了有很多发行版本,主流的三大版本是Debian系列,RedHat系列,slackware系列。apache,全称叫Apache HTTP Server,是世界使用排名第一的web服务器软件,httpd是超文本传输协议http服务器的主程序。可通过简单的API扩展,将PHP/Perl/Python等解释器编译到服务器中。PHP是全球最好的脚本语言,主要用于web开发,python是高级编程语言,功能也很强大。 mysql和maria
小小科
2018/05/04
1.6K0
LAMP及部署wordpress/phpMyadmin
如何在Ubuntu 18.04上安装OwnCloud
OwnCloud是领先的开源文件共享和云协作平台,其服务和功能与DropBox和Google云端硬盘提供的服务和功能相似。 但是,与Dropbox不同,OwnCloud没有数据中心的功能来存储托管文件。 不过,您仍然可以共享文件,图像和视频等文件,仅举几例,并可以跨多个设备(例如智能手机,平板电脑和PC)访问它们。
星哥玩云
2022/08/08
7720
如何在Ubuntu 18.04上安装OwnCloud
如何在服务器上安装LAMP
在本教程中,我们将在Ubuntu上安装LAMP。Ubuntu将满足我们的第一个要求:Linux操作系统。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器。
一步
2018/08/01
3.3K0
如何在服务器上安装LAMP
Ubuntu 18.04上安装LAMP完整过程图文详解
在这篇文章中,我将向您展示如何在Ubuntu 18.04 Server上安装LAMP。 LAMP代表Linux,Apache Web服务器,MySQL和PHP。
星哥玩云
2022/07/19
1.3K0
Ubuntu 18.04上安装LAMP完整过程图文详解
linux安装lamp
LAMP是指在Linux操作系统上安装Apache、MySQL、PHP等软件,搭建Web服务器环境。LAMP环境可以方便地搭建各种Web应用程序,如WordPress、Joomla等,本文将介绍在Linux操作系统上安装LAMP环境的步骤。
堕落飞鸟
2023/04/02
2.3K0
ubuntu架设LAMP服务器
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。LAMP是指一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
用户7639835
2021/08/30
5.7K0
如何在CentOS 7安装网页服务器(LNMP)
LNMP是一组可用于为动态网页和Web应用程序提供服务的软件。这是一个描述Linux操作系统的首字母缩略词,带有Nginx Web服务器。后端数据存储在MySQL数据库中,动态处理由PHP 处理。
朝朝
2018/08/03
2.7K1
如何在CentOS 7安装网页服务器(LNMP)
Debian 9.3上安装和配置 Observium 监控平台
Observium是一个免费的开源网络管理和监控工具,可用于监控所有的网络设备。 它是用PHP编写的,使用SNMP从连接的设备收集数据并使用Web界面监视它们。 Observium支持大量的网络硬件和操作系统,包括Linux,Windows,FreeBSD,思科,戴尔,NetApp等等。 Observium提供了一个功能强大,简单易用的界面来监视网络的健康和状态。
Debian中国
2018/12/20
1.4K0
运维之LAMP环境安装与配置
LAMP发展 LAMP这个特定名词最早出现在1998年,是Linux操作系统、Apache网页服务器、MySQL数据库管理系统和PHP程序模块,四种技术名称开头字母缩写组成的。是一组常用来搭建动态网站或者服务器的开源软件组合, 本身都是各自独立的软件,但是因为常被结合在一起使用,并拥有越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
全栈工程师修炼指南
2022/09/28
2.8K0
运维之LAMP环境安装与配置
如何搭建 LAMP 网站服务环境
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。LAMP是指一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
宮園薰
2018/10/23
3.2K0
如何搭建 LAMP 网站服务环境
推荐阅读
相关推荐
如何在Debian 10服务器上安装LAMP
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验