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


猜你喜欢
- 鼠标回调函数:def setMouseCallback(windowName, #窗口名称onMouse, &n
- 呵,以前也没考虑过这方面的东西,现在写的代码越来越多,越来越复杂,如果再不把不用的变量及时释放掉,到时肯定会出问题。今天无意中在无忧Q群里看
- math常用方法1.math.ceil()向上取整import mathprint(math.ceil(56.1))572.math.flo
- 1 解决方案【方案一】载入模型结构放在全局,即tensorflow会话外层。'''载入模型结构:最关键的一步'
- asp中fso怎样判断一个盘上是否有文件,实例代码,需要的朋友可以试试:<% dim objfolder dim
- 概述TensorFlow2 的基本操作和 Numpy 的操作很像. 今天带大家来看一看 TensorFlow 的基本数据操作.创建数据详细讲
- 笔者通过一周的时间,询问了许多设计人员真实用户,以便确保这六个方面确实是大多数用户所不喜并且有非常大的概率普遍存在于众多的医疗网站之中。那么
- 首先看middleware的定义:auth模块有两个middleware:AuthenticationMiddleware和SessionA
- python jenkins 打包构建代码# pip install python-jenkinsimport jenkinsimport
- 引言opencv调用yolov3模型进行深度学习目标检测,以实例进行代码详解对于yolo v3已经训练好的模型,opencv提供了加载相关文
- 昨天在W3C看到,6月10日发布了新的 HTML 5 草案(Working Draft)。粗略的读了一下它提供的 新版本说明文档 ,作了一点
- map是key-value数据结构,又称为字段或者关联数组。类似其他编程语言的集合一、基本语法var 变量名 map[keyty
- ConfigParser模块在Python3修改为configparser,这个模块定义了一个ConfigeParser类,该类的作用是让配
- requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多因为是第三方库,所以使用前需要cmd安装pip in
- 引言:我们在页面上会看到,谁登录的就会显示谁的信息,那么这个页面上的变量信息是怎样实现的呢?这就是本文要讲述的内容——Django中的模板变
- 一. torch.stack()函数解析1. 函数说明:1.1 官网:torch.stack(),函数定义及参数说明如下图所示:1.2 函数
- 首先 下载 jedis.jar包然后再 工程设置里面找到Libraries,点击+。添加下载好的jedis.jar包。点击OK退出即可创建J
- Tornado是一个python的开源web框架,它比django要轻量级到多,也没有什么组件,只有运用到对应到业务场景下我才使用这个框架,
- 写在前面这篇文章主要让大家明白多线程爬虫,因为go语言实现并发是很容易的。这次的服务端,是我们之前搭建的电子商城平台,所以我们不担心ip被封
- []*int是一个指向指针的切片,本质上是切片,只不过切片里面存放的元素是指针;*[]int是一个指向切片的指针,本质上是指针,可以用*来获