专栏首页漫漫全栈路腾讯云人脸检索引入教程

腾讯云人脸检索引入教程

人脸检索

先说下什么是人脸检索:

本接口用于对一张待识别的人脸图片,在一个 group 中识别出最相似的 Top5 person 作为其身份返回,返回的 Top5 中按照相似度从大到小排列。

Qcloud 官方文档中是这样定义人脸检索的 API 的概述的。

用大白话来说,就是从一张合影中,匹配出与默认添加个体最相似的一个个体(API会给出最高的五个,从匹配度由高到低排列)。

那么接下来看看如何操作:

创建鉴权签名

Qcloud 的付费接口,在调用的时候大多都需要进行鉴权签名的认证,而鉴权签名这需要使用用的 APPID 、Bucket、Secret ID 和 Secret Key。

另外: (1)如果您使用的是 125 开头的 APPID,请使用 API 密钥 ; (2)如果您使用的是 100、101 等开头的 项目 ID,请使用 项目密钥

点击上述链接,进入新建或查看秘钥:

保存如图所示的三个值,而 Bucket 存储桶,则可以前往COS云对象存储 创建并获取其 Bucket 的名称:

现在,我们拥有了创建鉴权签名所需的四个参数,选择合适的环境创建即可:

鉴权签名的官方示例提供了两种方法来完成鉴权签名的生成,分别依托 PHP 和 JAVA 环境,

这里我们使用已有的 PHP 环境来执行,将官方提供的鉴权签名生成代码添加到一个 PHP 页面中,并上传到 PHP 环境下执行:

<?php
$appid = "1252821871";
$bucket = "tencentyun";
$secret_id = "AKIDgaoOYh2kOmJfWVdH4lpfxScG2zPLPGoK";
$secret_key = "nwOKDouy5JctNOlnere4gkVoOUz5EYAb";
$expired = time() + 2592000;
$onceExpired = 0;
$current = time();
$rdm = rand();
$userid = "0";
$fileid = "tencentyunSignTest";
$srcStr = 'a='.$appid.'&b='.$bucket.'&k='.$secret_id.'&e='.$expired.'&t='.$current.'&r='.$rdm.'&u='
.$userid.'&f=';
$srcWithFile = 'a='.$appid.'&b='.$bucket.'&k='.$secret_id.'&e='.$expired.'&t='.$current.'&r='.$rdm.'&u='
.$userid.'&f='.$fileid;
$srcStrOnce= 'a='.$appid.'&b='.$bucket.'&k='.$secret_id.'&e='.$onceExpired .'&t='.$current.'&r='.$rdm
.'&u='.$userid.'&f='.$fileid;
$signStr = base64_encode(hash_hmac('SHA1', $srcStr, $secret_key, true).$srcStr);
$srcWithFile = base64_encode(hash_hmac('SHA1', $srcWithFile , $secret_key, true).$srcWithFile );
$signStrOnce = base64_encode(hash_hmac('SHA1',$srcStrOnce,$secret_key, true).$srcStrOnce);
echo "多次有效签名(不绑定资源) " + $signStr."\n"; 
echo "多次有效签名(绑定资源) " + $srcWithFile ."\n";
echo "单次有效签名 " + $signStrOnce."\n";
?>

注意:将上述php 页面代码的前四项修改为刚才获取到的对应内容!

然后访问当前 php 页面,即可获得鉴权签名的内容!

注意: 鉴权签名是执行请求并计费的秘钥,在使用过程中注意保密,若泄露易导致他人盗用,产生不必要的额外开支。

完成鉴权签名后,就可以开始使用人脸检索的 API 了。

创建个体

在让人脸检索服务能为我们检索到信息之前,我们先需要上传个体。

这里使用 Postman 作为请求处理工具,选择一个我比较喜欢的演员高司令(Ryan Gosling作为个体,然后在使用人脸检索服务,在合影中找出他。

请求头:

参数名

描述

host

recognition.image.myqcloud.com

腾讯云人脸识别服务器域名

content-length

包体总长度

整个请求包体内容的总长度,单位:字节(Byte)

content-type

application/json 或 multipart/form-data

据不同接口选择:1. 使用 application/json 格式,参数为 url,其值为图片的 url ;2. 使用 multipart/form-data 格式,参数为 image,其值为图片的 base64 。

authorization

鉴权签名

多次有效签名,用于鉴权,生成方式见 鉴权签名方法

请求参数

使用 application/json 格式,参数选择 url ;使用 multipart/form-data 格式,参数选择 image。

参数名

必选

类型

参数说明

appid

string

接入项目的唯一标识,可在 账号信息 或 云 API 密钥 中查看。

group_ids

array(string)

加入到组的列表

person_id

string

指定的个体 id

image

binary

图片内容

url

string

图片的 url、image提供一个即可;如果都提供,只使用url

person_name

string

名字

tag

string

备注信息

按照上表,填写请求:

头部信息如下:

参数部分如下:

这里选择如图的所示的 raw 然后使用 json 模式编写,更加直观方便!

注意:图中所有参数请按自己需要请求的内容替换,如 appid 替换为自己的 appid,group 和 person 的 id 都由用户自行划分定义,person_name 为选填参数。

按要求填写完毕后,点击 sent,查看返回值:

返回值如上所示,则表示个体创建成功!

人脸校验

先看下参数:

请求参数

使用 application/json 格式,参数选择 url ;使用 multipart/form-data 格式,参数选择 image。

参数名

必选

类型

参数说明

appid

string

接入项目的唯一标识,可在 账号信息 或 云 API 密钥 中查看。

group_id

string

候选人组 id,与group_ids二选一即可

group_ids

array(string)

候选人组 id列表,与group_id二选一即可

image

binary

图片内容

url

string

image 和 url 只需提供一个;如果都提供,只使用 url

返回内容

字段

类型

说明

data.session_id

string

相应请求的 session 标识符,可用于结果查询

data.candidates

array(IdentifyItem)

识别出的 top5 候选人

code

int

返回状态码

message

string

返回错误消息

人脸校验请求的请求头和创建个体的一样,直接按照上文添加,请求参数如下图所示:

点击 sent

从返回值中可以看出,人脸检索已经成功从合影中检索出了高司令!确认度64!


提供下检索用的两张图片:

声明:图片均来自互联网,不确认版权,若侵权请通知删除!

参考:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ANCWEB - 基于 ASP.NET CORE 2.0 的 WEB 开发 二

    这个结果和所需要的数据库结构有一定的差异,那么,可以通过为Domain Model的相应属性添加一些约束,来进行变更。

    李郑
  • ubuntu配置虚拟内存

    Step1:增加 swap 增加 2G swap 分区,只需要 修改 count=2k sudo dd if=/dev/zero of=/swap.disk b...

    李郑
  • ASP.NET MVC 行为详解

    前面分别介绍了MVC中的三个重要部分,而行为,则是其中C-Controller中的重要内容,下面详解一二。 一般继承自Controller类,类Controll...

    李郑
  • Mybatis操作mysql 8的Json字段类型

    Json字段是从mysql 5.7起加进来的全新的字段类型,现在我们看看在什么情况下使用该字段类型,以及用mybatis如何操作该字段类型

    算法之名
  • 【Vue原理】依赖收集 - 源码版之引用数据类型

    这一篇内容是针对 引用数据类型的数据的 依赖收集分析,因为引用类型数据要复杂些,必须分开写

    神仙朱
  • JavaScript 设计模式——思维导图

    梁源
  • Vue使用小结

    只有当Vue实例被创建时data中存在的属性才是响应式的,当这些数据改变时,视图会进行重渲染;视图接收用户输入时,data中相应的属性值也会发生改变。

    雪飞鸿
  • 美多商城项目(七)

    If you can change your mind, you can change your life.

    小闫同学啊
  • 深度学习能学会幽默吗?TED视频可能有点难

    论文标题:UR-FUNNY: A Multimodal Language Dataset forUnderstanding Humor

    AI科技评论
  • APK接口隐私安全测试

    方案二、服务器过滤: 1、搭建测试服务器,手机代理到测试服务器; 2、配置server,将指定端口接收的请求按照原有域名转发,同时通过lua脚本进行head...

    用户5521279

扫码关注云+社区

领取腾讯云代金券