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
猜你喜欢
- 推荐阅读:Oracle读取excel数据oracle导出excel(非csv)的方法有两种,1、使用sqlplus spool,2、使用包体
- context 有什么作用context 主要用来在goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等。
- [Q]怎么样查询特殊字符,如通配符%与_ [Q]如何插入单引号到数据库表中 [Q]怎样设置事务一致性 [Q]怎么样利用光标更新数据 [Q]怎
- 条件查询范围查询模糊查询条件查询all()返回全部结果集filter(**kwargs)返回满足参数定义的结果集 例如Entry.objec
- Django 开发项目是很快的,有多快?看完本篇文章,你就知道了。安装 Django前提条件:已安装 Python。Django 使用 pi
- 相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题。JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作
- SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研
- 以前写JS程序的时候,经常碰到了定位的问题。但每次都看到一半,找到需要的属性就了事了。今天下了狠心,要花点时间,彻底地弄明白他。以下内容看着
- 和以往的总监会议一样,在某个新功能的总监级别讨论会上,很多人再次又说出了同样的看法:“我们网站的界面设计太烂了,不好看、不好用、而且很乱”。
- perl - Practical Extraction and Report Language,Perl有很多命令行参数,通过它可以让你的程
- django中,很多时候我们都需要有一个地方来进行更加详细的权限控制,例如说哪些用户可以访问哪些页面,检查登录状态等,这里的话就涉及到了中间
- 本文实例为大家分享了Python/C++实现字符串逆序的具体代码,供大家参考,具体内容如下题目描述:将字符串逆序输出Python实现一:借助
- QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使
- 你说的就是真正的计数器,它只在有新的用户进入网站时,计数器才会加1,忠实可靠。把下列代码放到的global.asa的sessio
- 函数:len()1:作用:返回字符串、列表、字典、元组等长度2:语法:len(str)3:参数:str:要计算的字符串、列表、字典、元组等4
- <?php 02 if(!function_exists('get_headers')){ 03&
- DataList Web 服务器控件 通过使用模板显示数据源中的项。通过操作组成 DataList
- 假设你需要允许在Hero管理页面上导入CSV数据。为此,您需要添加一个指向更改Hero列表页面的链接,点击这个链接会跳转到上传页面。你需要编
- 互联网的真正算得上成功的产品屈指可数,每年都有成千上万个新网站出现,同时也有成千上万的网站死去,而那些算得上成功的产品,无不是从这些尸骨堆里
- 这是份总结,有不恰达的地方欢迎一同讨论联系方式 : 龙藏 longzang@taobao.com点击这里全幅围观或者点下面大图去 slide