【教程】从人脸检测与比对,实测七牛云人脸核验 API

本文通过PHP实测七牛云的人脸识别API,包括人脸比对、权威人脸比对和人脸检测。使用Composer安装依赖,通过命令行运行代码,展示调用过程和结果,验证API的可用性和可靠性。
摘要由CSDN通过智能技术生成

关注公众号,发现CV技术之美

导言:

08c6854e9fc8a4e65f684ae41273ed20.png

      本文将会实测七牛云的人脸识别 API,从应用开发者的角度来验证这套 API 的可用性。文中会选用人脸比对、权威人脸比对和人脸检测这3个API来进行测试。

本文使用 PHP 作为编程语言,需要安装 Composer,这是 PHP 开发中广泛使用的依赖库管理工具,相当于 JavaScript 里的 npm。七牛云提供的官方 PHP SDK 也是通过 Composer 来安装的。

为了尽可能排除不相关的细节,代码是以命令行方式来运行的,每个 API 对应一个 PHP 代码文件。

8b074f3fa028a17890f13e83f4d1e75b.gif

预备工作

1. 建立工作目录并安装依赖

首先建立一个目录存放项目代码,并进入该目录,后续所有的操作都在该目录下:

mkdir qiniu-api
cd qiniu-api

接下去用 Composer 安装依赖包,除了安装七牛云官方提供的 SDK 外,我们还要安装一个 HTTP 库,用来发送 API 请求。虽然用原生 PHP 函数也能发送 API 请求,但用库的好处是库为我们处理了很多细节,让我们不用为此操心,而且库封装后的发送代码很简洁,即便不熟悉 PHP 的开发者也容易读懂。在本文中,我们选用 Symfony 的 HTTP Client 库来发送 API 请求。

用以下的命令来安装上述的 2 个库:

composer require qiniu/php-sdk
composer require symfony/http-client

安装成功后,目录内会生成 composer.json 和 composer.lock 两个文件,库的代码放在生成的 vendors 目录下。我们无需关心这些生成的代码。

2. 获取七牛云账号的密钥

注册或登录七牛云的账户,在“个人中心”的“密钥管理”里,七牛云会自动生成两对 Access Key 和 Secret Key,选择其中一对,复制出来。


6e66ed6551eddfe435f42f0c3d8c377a.gif

人脸比对


这个 API 主要的功能是接收 2 张发送过来的照片,根据照片上人脸的相似度给出一个分值,用以判断 2 张照片中的是否为同一人。

新建一个名为 face-compare.php 的文件,这里的代码主要分为 3 部分,第 1 部分校验命令行传入的参数并返回结构化后的命令行参数数据,第 2 部分根据命令行参数来准备发送到 API 的请求数据,第 3 部分为实际调用 API。这 3 部分会分别放在 3 个函数中,以便于理解。为了强调 API 本身的调用流程,我们对代码不会做过多的封装,完善的错误处理也不会涉及。

在开始编写那些函数之前,先在代码里做一些预备工作,具体请看代码里的注释:

<?php

// 解决自动加载问题,之后引用的类会被自动加载
require_once __DIR__ . '/vendor/autoload.php';

// 指定使用特定命名空间下的类
use Qiniu\Auth;
use Symfony\Component\HttpClient\HttpClient;

// 定义两个常量,分别对应上文提到的七牛云里复制出的Access Key和Secret Key,这里需要替换成你实际的key
// 实际项目中,这些值可能是从配置文件或环境变量中读取
define('ACCESS_KEY', 'your_own_access_key');
define('SECRET_KEY', 'your_own_secret_key');

接着定义 3 个与人脸比对 API 相关的变量,这些变量的值都是文档里定义的。

// API的调用地址
$apiUrl = 'https://face-compare.qiniuapi.com/facecompare';

// 提交到API时用到的HTTP方法,本文中涉及的3个API都是该方法
$method = 'POST';

// 发送到API的请求body的mime类型,本文中涉及的3个API都是使用该类型
$contentType = 'application/json';

我们定义第一个函数,用来对参数做最基本的检验:

/**
 * @param int    $argc 命令行参数的数量
 * @param array  $argv 存储命令行参数的数组
 * @return array 命令行里得到的数据
 */
function getIn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值