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

 更新时间:2022年01月13日 11:30:23   作者:剑客·阿良  
最近碰到了照片识别的场景,正好使用了face_recognition项目,给大家分享分享。face_recognition项目能做的很多,人脸检测功能也是有的,是一个比较成熟的项目。感兴趣的可以了解一下

前言

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

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

环境安装

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

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

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

file

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

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

file

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

file

看一下需要识别的照片

看一下执行结果

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

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

总结

经过我多次测试,在脸型比较接近的情况下,还是会有误差,需要按照自己的情况进行调整。

到此这篇关于Python face_recognition实现AI识别图片中的人物的文章就介绍到这了,更多相关Python face_recognition人脸识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Flask SQLAlchemy一对一,一对多的使用方法实践

    Flask SQLAlchemy一对一,一对多的使用方法实践

    Flask-SQLAlchemy一对一,一对多的使用方法实践,需要的朋友可以参考下
    2013-02-02
  • Python学习之字符串常用方法总结

    Python学习之字符串常用方法总结

    这篇文章主要为大家介绍了Python中字符串的几个常用方法总结,文中的示例代码讲解详细,对我们学习Python字符串有一定帮助,需要的可以参考一下
    2022-03-03
  • python3图片转换二进制存入mysql

    python3图片转换二进制存入mysql

    MYSQL是支持把图片存入数据库的,也相应的有一个专门的字段BLOB (Binary Large Object),即较大的二进制对象字段,看下面代码
    2013-12-12
  • python sklearn中tsne算法降维结果不一致问题的解决方法

    python sklearn中tsne算法降维结果不一致问题的解决方法

    最近在做一个文本聚类的分析,在对文本数据embedding后,想着看下数据的分布,于是用sklearn的TSNE算法来降维embedding后的数据结果,当在多次执行后,竟发现TSNE的结果竟然变了,而且每次都不一样,所以本文就给大家讲讲如何解决sklearn中tsne算法降维结果不一致的问题
    2023-10-10
  • python DataFrame转dict字典过程详解

    python DataFrame转dict字典过程详解

    这篇文章主要介绍了python DataFrame转dict字典过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python中使用matplotlib绘制热力图

    python中使用matplotlib绘制热力图

    热力图,是一种通过对色块着色来显示数据的统计图表,它通过使用颜色编码来表示数据的值,并在二维平面上呈现出来,本文就给大家介绍一下python使用matplotlib绘制热力图的方法,需要的朋友可以参考下
    2023-08-08
  • python实现用户登录系统

    python实现用户登录系统

    这篇文章主要为大家详细介绍了python实现用户登录系统的相关资料,感兴趣的朋友可以参考一下
    2016-05-05
  • 在 Python 中如何为对象添加属性

    在 Python 中如何为对象添加属性

    在本文中我们将介绍如何在Python中为对象添加属性,我们还将通过示例介绍如何在Python中更改对象的属性,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-06-06
  • 利用Python Django实现简单博客系统

    利用Python Django实现简单博客系统

    这篇文章主要介绍了利用Python Django实现简单博客系统,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)

    python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)

    Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。下面这篇文章主要给大家介绍了python爬虫之HTML文本的解析库BeautifulSoup的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05

最新评论