当前位置:主页 > python教程 > python AI人脸对比

使用python AI快速比对两张人脸图像及遇到的坑

发布:2023-03-26 15:30:01 59


为网友们分享了相关的编程文章,网友赖奇志根据主题投稿了本篇教程内容,涉及到python、AI快速比对两张人脸图像、python、AI人脸对比、python AI人脸对比相关内容,已被769网友关注,涉猎到的知识点内容可以在下方电子书获得。

python AI人脸对比

本篇文章的代码块的实现主要是为了能够快速的通过python第三方非标准库对比出两张人脸是否一样。

实现过程比较简单,但是第三方python依赖的安装过程较为曲折,下面是通过实践对比总结出来的能够支持的几个版本,避免大家踩坑。

python版本:3.6.8
dlib版本:19.7.0
face-recognition版本:0.1.10

开始之前,我们选择使用pip的方式对第三方的非标准库进行安装。

pip install cmake

pip install dlib==19.7.0

pip install face-recognition==0.1.10

pip install opencv-python

然后,将使用到的模块cv2/face-recognition两个模块导入到代码块中即可。

# OpenCV is a library of programming functions mainly aimed at real-time computer vision.
import cv2

# It's loading a pre-trained model that can detect faces in images.
import face_recognition

新建一个python函数get_face_encodings,用来获取人脸部分的编码,后面可以根据这个编码来进行人脸比对。

def get_face_encodings(image_path):
    """
    It takes an image path, loads the image, finds the faces in the image, and returns the 128-d face encodings for each
    face

    :param image_path: The path to the image to be processed
    """
    # It's loading a pre-trained model that can detect faces in images.
    image = cv2.imread(image_path)

    # It's converting the image from BGR to RGB.
    image_RGB = image[:, :, ::-1]

    image_face = face_recognition.face_locations(image_RGB)

    # It's taking the image and the face locations and returning the face encodings.
    face_env = face_recognition.face_encodings(image_RGB, image_face)

    # It's returning the first face encoding in the list.
    return face_env[0]

上述函数中注释都是通过Pycharm插件自动生成的,接下来我们直接调用get_face_encodings函数分别获取两个人脸的编码。

# It's taking the image and the face locations and returning the face encodings.
ima1 = get_face_encodings('03.jpg')

# It's taking the image and the face locations and returning the face encodings.
ima2 = get_face_encodings('05.jpg')

# It's taking the image and the face locations and returning the face encodings.
ima1 = get_face_encodings('03.jpg')

# It's taking the image and the face locations and returning the face encodings.
ima2 = get_face_encodings('05.jpg')

上面我们选择了两张附有人脸的图片,并且已经获取到了对应的人脸编码。接着使用compare_faces函数进行人脸比对。

# It's comparing the two face encodings and returning True if they match.
is_same = face_recognition.compare_faces([ima1], ima2, tolerance=0.3)[0]

print('人脸比对结果:{}'.format(is_same))

人脸比对结果:False

这个时候人脸比对结果已经出来了,False代表不一样。这里compare_faces有一个比较重要的参数就是tolerance=0.3,默认情况下是0.6。

tolerance参数的值越小的时候代表比对要求更加严格,因此这个参数的大小需要根据实际情况设置,它会直接影响整个比对过程的结果。

到此这篇关于如何使用python AI快速比对两张人脸图像?的文章就介绍到这了,更多相关python AI快速比对两张人脸图像内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • 分享Python实现选择排序的实例教程

    发布:2022-04-14

    选择法也算是入门的一种排序算法,比起冒泡法,它的方法巧妙了一些,它的出发点在于“挑”,每次挑选数组的最值,与前置元素换位,然后继续挑选剩余元素的最值并重复操作。个人认为选


  • python怎么定义变量

    python怎么定义变量

    发布:2022-09-06

    给网友朋友们带来一篇关于python的教程,python中变量就是代表某个数据(值)的名称。定义变量,如x=5,x是一个变量,它的值是5。变量和值之间用=链接。在赋值时,值是什么数据类型,就决定了这个变量的类型,变量名引用了数值的同


  • Python编程学习之如何判断3个数的大小

    发布:2022-10-21

    给网友朋友们带来一篇关于Python的教程,这篇文章主要给大家介绍了关于Python编程学习之如何判断3个数的大小的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来


  • python pip和anaconda包的安装

    发布:2020-02-11

    今天小编就为大家分享一篇使用anaconda的pip安装第三方python包的操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • python 5个实用的技巧

    发布:2021-06-15

    这篇文章主要介绍了python 5个实用的技巧,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下


  • python调试中print()和断言实例讲解

    发布:2019-09-10

    介绍了python调试中print()和断言的相关知识点内容,实例讲解,有兴趣点朋友们学习下。


  • python http基本验证方法

    发布:2022-10-20

    给网友们整理关于python的教程,今天小编就为大家分享一篇python http基本验证方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • Python中Merge使用的示例详解

    发布:2023-03-31

    Python里的merger函数是数据分析工作中最常见的函数之一,类似于MySQL中的join函数和Excel中的vlookup函数。本文将通过一些简单的实力和大家聊聊Merge的使用,需要的可以了解一下


网友讨论