Python实现识别图像中人物的示例代码
作者:剑客·阿良 发布时间:2023-11-10 01:59:19
标签:Python,图像,人脸识别
前言
接着上一篇:AI识别照片是谁,人脸识别face_recognition开源项目安装使用
根据项目提供的demo代码,调整了一下功能,自己写了一个识别人脸的工具代码。
环境部署
按照上一篇的安装部署就可以了。
代码
不废话,直接上代码。
#!/user/bin/env python
# coding=utf-8
"""
@project : face_recognition
@author : 剑客阿良_ALiang
@file : test.py
@ide : PyCharm
@time : 2022-01-11 19:50:58
"""
import face_recognition
known_faces = [[], []]
def add_person(image_path: str, name: str):
image = face_recognition.load_image_file(image_path)
try:
encoding = face_recognition.face_encodings(image)[0]
known_faces[0].append(name)
known_faces[1].append(encoding)
except IndexError:
print("I wasn't able to locate any faces in at least one of the images. Check the image files. Aborting...")
def compare(new_image: str):
new1 = face_recognition.load_image_file(new_image)
unknown_face_encoding = face_recognition.face_encodings(new1)[0]
results = face_recognition.compare_faces(known_faces[1], unknown_face_encoding,0.5)
print(known_faces[0])
print(results)
name = ''
for i in range(0, len(known_faces[0])):
if results[i]:
print(i)
name = known_faces[0][i]
break
if name == '':
return 'I do not who'
else:
return name
if __name__ == '__main__':
add_person('data/1.jpg', '杨幂')
add_person('data/2.jpg', '迪丽热巴')
add_person('data/3.jpg', '宋轶')
add_person('data/4.jpg', '邓紫棋')
print(compare('data/121.jpg'))
print(compare('data/123.jpg'))
代码说明:
1、先将一些人脸录进去,指定人物名称,方法为add_person。
2、compare方法用来判断照片是谁。
先看一下我准备的照片。
看一下需要验证的照片
执行结果
可以看出已经识别出杨幂和邓紫棋了。
来源:https://www.cnblogs.com/jk-aliang/p/15796766.html
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 演示技术栈这次用到了关于css的一些功能,和jQuery。CSS3中添加的新属性animation是用来为元素实现动画效果的,但是anima
- 问题:导入数据时是否需要禁用索引?解答:在使用load data导入数据时,如果导入的表是MyISAM的,对于空表,MySQL数据库会把所有
- 1,filesize()函数返回错误的值。 使用curl将某个页面下载到本地时,需要将下载到的临时文件tmpHtml.txt的内容读取到一个
- \\create by ahuinan 2009-6-22 \\up by ahuian 2009-6-23 \\up by ahuinan
- 我们在网页中使用CSS来设置网页、表格和字体大小,一般使用的是网络上较流行的9磅字:<STYLE type=TEXT/CSS
- Altova 公司的 XMLSPY 是个不可多得的好东西,它几乎可以开发所有的 XML 产品。最近用它来做 Schema
- 1、灵活运用样式熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custo
- Serilog是.net下的新兴的日志框架,本文这里简单的介绍一下它的用法。首先安装Nuget包:Install-Package Seril
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 18 - Classes part IClass(
- SQL Server对上亿的表进行排序或者上亿的表之间进行join,会导致系统失去响应。◆1.我确实做了一个很大的查询,涉及的数据表有两亿条
- 由于DOM(文档对象模型)概念的推出,这个API使HTML如虎添翼,但是有些学DHTML的朋友还是有些困挠,只是因为目前的手册的书写不太科学
- 在ASP.NET中,如何连接 SQLServer数据库?连接数据库:<%@ Import Namespace=&q
- 为了使一个MySQL系统安全,强烈要求你考虑下列建议……当你连接一个MySQL服务器时,你通常应
- 其实很简单from keras.models import load_modelbase_model = load_model('m
- 认为整理的还比较详细的,亲们,就快点收藏起来吧!PHP系统类函数assert函数:检查assertion声明是否错误extension_lo
- var str = "pig cat fish、dog horse monkey bear、lion、fox&quo
- 您是否常常在做网页的过程中发现一个问题呢?当图片上传的时候,如果图片太大 ,就会把网页撑破,唯一做的就要先把它用软件缩小,再上传上
- 从MySQL 5.0 开始,支持了一个全新的SQL句法:PREPARE stmt_name FROM preparable_stmt;EXE
- 模式库 在模式库里,我将列出所有电子商务网站需要的模式.以下将罗列出经典常用的模式案例,我也试图让这些模式看起来更有趣味性与实用性。(Yah
- 根据Nicholas的说法,有四种代码会拖慢脚本的运行,并最终导致脚本失控。分别是次数过多的同步循环、庞大的函数体、不恰当的递归和不合理的D