Python face_recognition实现AI识别图片中的人物

作者:剑客·阿良 时间:2023-08-14 21:34:35 

前言

最近碰到了照片识别的场景,正好使用了face_recognition项目,给大家分享分享。face_recognition项目能做的很多,人脸检测功能也是有的,是一个比较成熟的项目。该项目的github地址:github仓库

本文主要是对该项目的安装使用,后面会更新一篇我自己写的实现人脸检测的代码,可以直接使用。

环境安装

首先我们看看官方给出的人脸识别效果图

Python face_recognition实现AI识别图片中的人物

我们看一下README关于安装环境的信息

Python face_recognition实现AI识别图片中的人物

官方给出的可安装操作系统是Mac和Linux,但是我想在windows安装,继续往下看。

Python face_recognition实现AI识别图片中的人物

windows虽然不是官方支持,但是也能装,不就是个dlib吗?好的,那就开始装。

我们直接安装requirements_dev.txt,这里要注意,把pip去掉。

Python face_recognition实现AI识别图片中的人物

注意一点安装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的照片

Python face_recognition实现AI识别图片中的人物

看一下需要识别的照片

Python face_recognition实现AI识别图片中的人物

看一下执行结果

Python face_recognition实现AI识别图片中的人物

我们可以看到在拜登的识别中提示false,在奥巴马识别中提示true。这里要注意一点,我们看一下compare_faces方法参数。

Python face_recognition实现AI识别图片中的人物

参数tolerance最佳为0.6,越低越严格,所以可以按照自己的需求调整。

来源:https://www.cnblogs.com/jk-aliang/p/15792428.html

标签:Python,face,recognition,人脸识别
0
投稿

猜你喜欢

  • python爬虫 requests-html的使用

    2023-05-08 02:41:16
  • asp_数据库操作封装

    2010-04-03 21:00:00
  • pytest中的fixture基本用法

    2023-07-14 12:26:45
  • js实现图片加载淡入淡出效果

    2024-04-22 22:41:15
  • python基于opencv批量生成验证码的示例

    2022-04-07 22:42:07
  • Python如何利用Har文件进行遍历指定字典替换提交的数据详解

    2022-04-22 22:35:17
  • 在pytorch中计算准确率,召回率和F1值的操作

    2022-02-13 18:06:40
  • 详解supervisor使用教程

    2022-02-18 09:12:07
  • Asp.net实现简单的文字水印

    2007-08-24 09:28:00
  • Python time库的时间时钟处理

    2022-12-18 23:04:23
  • Python一行代码实现生成和读取二维码

    2023-04-30 15:31:18
  • python实现守护进程、守护线程、守护非守护并行

    2021-02-03 09:06:56
  • Python中的 enum 模块源码详析

    2021-11-19 04:11:10
  • MySQL用户和权限及破解root口令的方法示例

    2024-01-23 23:12:16
  • Go并发编程中sync/errGroup的使用

    2024-02-05 04:40:56
  • pycharm 配置远程解释器的方法

    2022-05-22 05:10:40
  • Linux删除系统自带版本Python过程详解

    2023-10-21 03:12:13
  • PHP实现手机归属地查询API接口实现代码

    2023-11-14 09:10:33
  • tensorflow转onnx的实现方法

    2022-07-08 23:04:51
  • vue在页面中如何使用window全局变量

    2024-05-09 15:14:49
  • asp之家 网络编程 m.aspxhome.com