Python face_recognition实现AI识别图片中的人物
作者:剑客·阿良 发布时间:2023-08-14 21:34:35
前言
最近碰到了照片识别的场景,正好使用了face_recognition项目,给大家分享分享。face_recognition项目能做的很多,人脸检测功能也是有的,是一个比较成熟的项目。该项目的github地址:github仓库
本文主要是对该项目的安装使用,后面会更新一篇我自己写的实现人脸检测的代码,可以直接使用。
环境安装
首先我们看看官方给出的人脸识别效果图
我们看一下README关于安装环境的信息
官方给出的可安装操作系统是Mac和Linux,但是我想在windows安装,继续往下看。
windows虽然不是官方支持,但是也能装,不就是个dlib吗?好的,那就开始装。
我们直接安装requirements_dev.txt,这里要注意,把pip去掉。
注意一点安装dlib的时候会报错,需要先安装cmake,安装命令如下:
pip install cmake -i https://pypi.douban.com/simple
除此之外,项目还需要安装opencv-python,安装命令如下:
pip install opencv-python -i https://pypi.douban.com/simple
代码使用
先做一下说明,在使用face_recognition运行的时候,可以选择安装face_recognition命令进行运行的模式,也可以使用face_recognition模块构建代码运行。为了二次开发,我还是先试试代码的方式,主要试试人脸识别模块。
官方代码如下:
import face_recognition
# Load the jpg files into numpy arrays
biden_image = face_recognition.load_image_file("biden.jpg")
obama_image = face_recognition.load_image_file("obama.jpg")
unknown_image = face_recognition.load_image_file("obama2.jpg")
# Get the face encodings for each face in each image file
# Since there could be more than one face in each image, it returns a list of encodings.
# But since I know each image only has one face, I only care about the first encoding in each image, so I grab index 0.
try:
biden_face_encoding = face_recognition.face_encodings(biden_image)[0]
obama_face_encoding = face_recognition.face_encodings(obama_image)[0]
unknown_face_encoding = face_recognition.face_encodings(unknown_image)[0]
except IndexError:
print("I wasn't able to locate any faces in at least one of the images. Check the image files. Aborting...")
quit()
known_faces = [
biden_face_encoding,
obama_face_encoding
]
# results is an array of True/False telling if the unknown face matched anyone in the known_faces array
results = face_recognition.compare_faces(known_faces, unknown_face_encoding)
print("Is the unknown face a picture of Biden? {}".format(results[0]))
print("Is the unknown face a picture of Obama? {}".format(results[1]))
print("Is the unknown face a new person that we've never seen before? {}".format(not True in results))
代码说明:
1、首先可以看到将两个人脸的数据加到了known_faces列表内。
2、然后用未知图数据进行识别判断。
看一下加入到known_faces的照片
看一下需要识别的照片
看一下执行结果
我们可以看到在拜登的识别中提示false,在奥巴马识别中提示true。这里要注意一点,我们看一下compare_faces方法参数。
参数tolerance最佳为0.6,越低越严格,所以可以按照自己的需求调整。
来源:https://www.cnblogs.com/jk-aliang/p/15792428.html


猜你喜欢
- items()方法返回字典的(键,值)元组对的列表语法以下是items()方法的语法:dict.items()参数 &
- 前言:内容提要:本文比较了 Python 中用于列表排序的两种函数 sort() 和 sorted(),帮助您选择合适的排序函数。对列表排序
- Java基础—学生信息管理系统(使用数据库),供大家参考,具体内容如下前一段时间写了学生信息管理系统(使用ArrayLi
- 本文实例为大家分享了python sklearn分类算法模型调用的具体代码,供大家参考,具体内容如下实现对'NB',&nbs
- 将汉字转为拼音,可以用于批量汉字注音、文字排序、拼音检索文字等常见场景。现在互联网上有许多拼音转换工具,基于Python的开源模块也不少,今
- 一.引言先看获取到的效果拍摄时间:2021:12:18 16:22:13照片拍摄地址:('内蒙古自治区包头市昆都仑区', &
- 最简单的:<textarea name="A" cols="45" rows="2&
- 前言python中进行面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在
- 之前写过一篇 MySQL通过自定义函数的方式,递归查询树结构,从MySQL 8.0 开始终于支持了递归查询的语法CTE首先了解一下什么是 C
- 1.进入mysql/bin目录下输入mysqladmin processlist; 2.启动mysql,输入show processlist
- 在第1章项目结构分析中,我们提到Startup.cs作为整个程序的入口点,等同于传统的Global.asax文件,即:用于初始化系统级的信息
- 有时候有很多逗号,这样我们就不好处理了,下面的函数就是将多个逗号替换为一个逗号,方便后面的处理。<script language=&q
- 前言项目中一般分测试环境(QAS),生产环境(PRD),当我们的项目经历了一次周期跨度较长的更新后,当我们发布到生产环境时,首要的任务是将新
- 在SQL查询分析器执行以下代码就可以了。declare @t varchar(255),@c varchar(255)declare tab
- ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(s
- 一. 数据的格式首先我们需要x,y,z三个数据进行画图。从本实验用到的数据集KITTI 00.txt中举例:1.000000e+00 9.0
- 本文实例为大家分享了Python实现感知器模型、两层神经网络,供大家参考,具体内容如下python 3.4 因为使用了 numpy这里我们首
- dim sql_injdata,SQL_inj,SQL_Get,SQL_Data,Sql_PostSQL_injdata = "&
- 本文实例讲述了Python3.5迭代器与生成器用法。分享给大家供大家参考,具体如下:1、列表生成式通过列表生成式可以直接创建一个列表。代码:
- PHP mysqli_set_charset()函数设置默认客户端字符集:<?php// 假定数据库用户名:root,密码:12345