热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

使用Face++和Python进行人脸比较原文:https

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

原文:https://www . geesforgeks . org/face-comparison-use-face-and-python/

先决条件: Python 编程语言

Python 是一种高级通用语言。它有多种用途,如人工智能、网页开发、网页抓取等。Python 的一个这样的用途可以是面部比较。一个模块名 python-facepp 可以用来做同样的事情。该模块用于与 Face++面部识别服务进行通信。

所需模块



  • python-facepp–要安装该模块,请在终端中键入以下命令。

    py
    pip install python-facepp


  • 表情符号–要安装该模块,请在终端中键入以下命令。

    py
    pip install emoji



应用详情

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

这个 app 主要用于一个类似“给你送一些机密
文件,快递员小子先验证你的脸再送快递员”这样的人脸验证流程

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

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

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

image-to-url
image-to-url
image-to-url
image-to-url

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

第一对:

python-face-comparisonpython-face-comparison

第二对:

python-face-comparisonpython-face-comparison

下面是实现。

# 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)

输出:

python-face-comparison


推荐阅读
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了协程的概念和意义,以及使用greenlet、yield、asyncio、async/await等技术实现协程编程的方法。同时还介绍了事件循环的作用和使用方法,以及如何使用await关键字和Task对象来实现异步编程。最后还提供了一些快速上手的示例代码。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • java多线程获取线程返回结果
    我们在使用java多线程编写相关业务代码时,往往有这样一种情况,某个线程依赖于其他线程执行结果。也就是说,我们需要在一个线程中获取另一个线程的信息。可以分为两种情况,一种是轮询,一 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • python中不同的异常类型,如何进行异常处理?
    一、错误与异常程序中难免会出现错误,而错误分为两种1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)2.逻辑错误:(逻辑错误),比如用户输入 ... [详细]
author-avatar
张量扰动艹_712
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有