简单调用face++人脸识别

前言

文章演示如何调用face++实现人脸对比。使用工具python。这里只演示一个对比的接口,接口的应用场景有登录验证,证件对比等。除此之外face++还提供了许多接口,和离线sdk。具体接口文档face++官方都非常详细,没必要每个接口都进行说明。

接口调用

# coding=utf-8
# face++ 人脸识别对比
import requests
import base64



def file_base64(file_name):
    with open(file_name, 'rb') as fin:
        file_data = fin.read()
        base64_data = base64.b64encode(file_data)
    return base64_data

def post_pic():
    url = 'https://api-cn.faceplusplus.com/facepp/v3/compare'
    image_1 = file_base64('1.png')
    image_2 = file_base64('3.png')

    postData = {
        'api_key': 'ZSj******4kE',
        'api_secret': 'Ve9******JcJ',
        'image_base64_1': image_1,
        'image_base64_2': image_2,
    }
    back = requests.post(url, data = postData)
    print back.text

if __name__=="__main__":
    post_pic()

接口调用通过post方式传参。只要注册了face++,基本上每个接口都能免费调用。

接口支持四种图片上传的方式。

  1. face_token1 人脸标识 face_token。face_token是face++提供的唯一标识照片的token。在图片上传之后,会返回这个参数。
  2. image_url1 这是一个url图片地址。
  3. image_file1 二进制文件,需要用 post multipart/form-data 的方式上传。
  4. base64 编码的二进制图片数据

如果同时传入了 image_url1、image_file1 和 image_base64_1 参数,API 使用顺序为image_file1 优先,image_url1 最低。这四个参数里面face_token优先使用。

接口返回

接口请求成功后会返回许多参数,包括图片信息,图片的face_token。
这些参数没有什么好说明的。一般的api都会返回类似的参数。但是有两个参数需要说明一下。

  1. confidence 比对结果置信度,范围 [0,100],小数点后3位有效数字,数字越大表示两个人脸越可能是同一个人。
  2. thresholds 一组用于参考的置信度阈值,包含以下三个字段。每个字段的值为一个 [0,100] 的浮点数,小数点后 3 位有效数字。
    (1).1e-3:误识率为千分之一的置信度阈值;
    (2).1e-4:误识率为万分之一的置信度阈值;
    (3).1e-5:误识率为十万分之一的置信度阈值;
    如果置信值低于“千分之一”阈值则不建议认为是同一个人;如果置信值超过“十万分之一”阈值,则是同一个人的几率非常高。
    请注意:阈值不是静态的,每次比对返回的阈值不保证相同,所以没有持久化保存阈值的必要,更不要将当前调用返回的 confidence 与之前调用返回的阈值比较。

简单的说。接口调用成功后,返回的参数并不会告诉你这两张图片中是否是同一个人。而是通过两个参数,让你自己做判断。当然,其中一个参数(thresholds—-置信度阀值)会给以你个参考标准。

实际调用结果

这里样本太少,不具备参考依据。
实验过程中,使用同一个人的照片返回的置信值88。比“十万分之一”阈值高。而使用两个人的照片进行对比。返回的置信值只有22左右。比“千分之一”阈值要低。从官方的判断方法上来说,结果是准确的。但是又一个地方不太明白。两次的结果中,“十万分之一”阈值要比“万分之一”阈值低很多。

图片的对比,没有使用跨年龄较大的图片,后面有兴趣可以试一下,看一下结果是否准确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值