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人脸识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python for Informatics 第11章之正则表达式(二)

    Python for Informatics 第11章之正则表达式(二)

    这篇文章主要介绍了Python for Informatics 第11章 正则表达式(二)的相关资料,需要的朋友可以参考下
    2016-04-04
  • python实现简单井字棋游戏

    python实现简单井字棋游戏

    这篇文章主要为大家详细介绍了python实现简单井字棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Python爬虫之解析HTML页面详解

    Python爬虫之解析HTML页面详解

    本文介绍了Python中用于解析HTML页面的重要工具之一——BeautifulSoup库,详细讲解了BeautifulSoup库的基本使用方法、标签选择器、CSS选择器、正则表达式、遍历文档树等内容,并结合实例代码展示了BeautifulSoup库的应用场景
    2023-04-04
  • pytorch人工智能之torch.gather算子用法示例

    pytorch人工智能之torch.gather算子用法示例

    这篇文章主要介绍了pytorch人工智能之torch.gather算子用法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 源码解读Python中Event事件的使用

    源码解读Python中Event事件的使用

    事件(Event)主要负责多任务之间的同步,这篇文章主要来和大家详细介绍一下它的原理以及简单使用,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2023-12-12
  • Python docx库用法示例分析

    Python docx库用法示例分析

    这篇文章主要介绍了Python docx库用法,结合实例形式分析了docx库相关的docx文件读取、文本添加、格式操作,需要的朋友可以参考下
    2019-02-02
  • Python开发之os与os.path的使用小结

    Python开发之os与os.path的使用小结

    这篇文章主要介绍了Python开发之os与os.path的使用小结,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-05-05
  • Python判断和循环语句的分析与应用

    Python判断和循环语句的分析与应用

    判断语句是用来筛选条件,过滤条件的。循环语句是用来解决重复性代码的问题,提高工作效率。今天的知识点不多,耐心看完吧
    2022-07-07
  • pytorch实现用Resnet提取特征并保存为txt文件的方法

    pytorch实现用Resnet提取特征并保存为txt文件的方法

    今天小编大家分享一篇pytorch实现用Resnet提取特征并保存为txt文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python常用模块os.path之文件及路径操作方法

    Python常用模块os.path之文件及路径操作方法

    os.path 模块主要用于获取文件的属性。这篇文章主要介绍了Python常用模块os.path——文件及路径操作,需要的朋友可以参考下
    2019-12-12

最新评论