📜  使用 Face++ 和Python进行人脸比较

📅  最后修改于: 2022-05-13 01:54:46.546000             🧑  作者: Mango

使用 Face++ 和Python进行人脸比较

先决条件: Python编程语言

Python是一种高级通用语言。它用于多种用途,例如 AI、Web 开发、Web Scraping 等Python的其中一种用途可以是人脸比较。一个模块名称python-facepp可以用来做同样的事情。该模块用于与 Face++ 人脸识别服务进行通信。

所需模块

  • python-facepp -要安装此模块,请在终端中键入以下命令。
    pip install python-facepp
  • 表情符号 -要安装此模块,请在终端中键入以下命令。
    pip install emoji

应用详情

这个应用程序将同一个人或两个不同人的两张照片与他/她的面部特征,如面部标志、美容分数、面部情绪等进行比较。如果两张照片相互匹配,则应用结果为“两张照片相同人” ,否则应用程序结果是“两张照片都是两个不同的人”。

这个应用程序主要用于人脸验证过程,例如“提供一些机密
文件给你,快递小哥先验证你的脸,再送快递。”

注意: facepp API 只允许比较两张照片的图片 URL 链接。

使用postimages.org将图像转换为 URL。

在本网站中,通过单击“选择图像”按钮从本地驱动器中选择您的照片,然后本网站将在处理您的照片后创建不同的 URL 链接。
(见下图)

图片到网址
图片到网址
图片到网址
图片到网址

我们将使用两对照片进行比较。

一对:

蟒蛇脸比较
蟒蛇脸比较


对二:

蟒蛇脸比较
蟒蛇脸比较

下面是实现。

# Python program for face
# comparison
  
  
from __future__ import print_function, unicode_literals
from facepplib import FacePP, exceptions
import emoji
  
   
# define global variables
face_detection = ""
faceset_initialize = ""
face_search = ""
face_landmarks = ""
dense_facial_landmarks = ""
face_attributes = ""
beauty_score_and_emotion_recognition = ""
   
# define face comparing function
def face_comparing(app, Image1, Image2):
      
    print()
    print('-'*30)
    print('Comparing Photographs......')
    print('-'*30)
  
   
    cmp_ = app.compare.get(image_url1 = Image1,
                           image_url2 = Image2)
   
    print('Photo1', '=', cmp_.image1)
    print('Photo2', '=', cmp_.image2)
   
    # Comparing Photos
    if cmp_.confidence > 70:
        print('Both photographs are of same person......')
    else:
        print('Both photographs are of two different persons......')
  
          
# Driver Code 
if __name__ == '__main__':
   
    # api details
    api_key ='xQLsTmMyqp1L2MIt7M3l0h-cQiy0Dwhl'
    api_secret ='TyBSGw8NBEP9Tbhv_JbQM18mIlorY6-D'
   
    try:
   
        # create a logo of app by using iteration,
        # unicode and emoji module-------------
        for i in range(1,6):
              
            for j in range(6,-i):
                print(" " , end = " ")
                  
            for j in range(1,i):
                print('\U0001F600', end =" ")
                  
            for j in range(i,0,-1):
                print('\U0001F6A3', end= " ")
                  
            for j in range(i,1,-2):
                print('\U0001F62B', end= " ")
                  
            print()
              
        print()
   
        #print name of the app--------
        print("\t\t\t"+"Photo Comparing App\n")
       
        for i in range(1,6):
              
            for j in range(6,-i):
                print(" " , end = " ")
                  
            for j in range(1,i):
                print(emoji.emojize(":princess:"), end =" ")
                  
            for j in range(i,0,-1):
                print('\U0001F610', end= " ")
                  
            for j in range(i,1,-2):
                print(emoji.emojize(":baby:"), end= " ")
                  
            print()
           
        # call api
        app_ = FacePP(api_key = api_key, 
                      api_secret = api_secret)
        funcs = [
            face_detection,
            face_comparing_localphoto,
            face_comparing_websitephoto,
            faceset_initialize,
            face_search,
            face_landmarks,
            dense_facial_landmarks,
            face_attributes,
            beauty_score_and_emotion_recognition
        ]
          
        # Pair 1
        image1 = 'Image 1 link'
        image2 = 'Image 2 link'
        face_comparing(app_, image1, image2)
          
        # Pair2
        image1 = 'Image 1 link'
        image2 = 'Image 2 link'
        face_comparing(app_, image1, image2)        
   
    except exceptions.BaseFacePPError as e:
        print('Error:', e)

输出:

蟒蛇脸比较