人脸识别如果无特殊要求的话流程应该是:

  1. 通过前端传来的图片检测是否为活体。
  2. 通过用户或其他方式获取当前用户所在人员库,没有时自动创建。
  3. 判断当前用户是否为第一次使用人脸识别,第一次使用时应该是收入用户人脸数据(创建人员)。
  4. 如果用户是第二次使用人脸识别,应该走人员检测接口,通过当前用户的人员ID和当前获取到的图片检测。
  5. 第三步和第四步是同一等级,一次只能走其中一个,再判断结果并把处理结果返还给前端。

安装腾讯云SDK

composer安装

  • 选择需要的版本添加到项目的composer.json文件中。
  • 添加完以后直接composer更新即可。

获取图片

人脸识别都依赖于图像,所以第一步我们应该获取前端传过来的图片,如果不需要保存的话让前端传一个Base64字符串,直接用base64来进行活体检测,如果需要保存就先保存图片再拿到图片的URL地址,也可以直接获取到当前图片的base64字符串。

如果图片不需要前端及时上传,那直接获取数据库保存的URL即可。

use文件

use TencentCloud\Bda\V20200324\Models\CreateGroupRequest;
use TencentCloud\Bda\V20200324\Models\DeletePersonRequest;
use TencentCloud\Iai\V20200303\Models\CreatePersonRequest;
use TencentCloud\Common\Credential;
use TencentCloud\Common\Exception\TencentCloudSDKException;
use TencentCloud\Common\Profile\ClientProfile;
use TencentCloud\Common\Profile\HttpProfile;
use TencentCloud\Iai\V20200303\IaiClient;
use TencentCloud\Iai\V20200303\Models\DetectLiveFaceRequest;
use TencentCloud\Iai\V20200303\Models\VerifyPersonRequest;

引用的文件可根据自己的需求进行删减
注意:SDK中会包含低版本的代码,所以引用的文件一定要跟API Explorer中生成的一样,我就引用过低版本,跟腾讯技术人员找了半天都没找到问题。

活体检测

全称是:人脸静态活体检测,点击进入腾讯云官方文档

//实例化一个证书对象,入参需要腾讯云账户secretId,secretKey
$cred = new Credential("", "");
// 实例化一个http选项
$httpProfile = new HttpProfile();
// 指定接入地域(默认就近接入)
$httpProfile->setEndpoint("iai.tencentcloudapi.com");
//实例化客户端
$clientProfile = new ClientProfile();
//配置http
$clientProfile->setHttpProfile($httpProfile);
//实例化人脸识别对象 第二个参数是地域参数
$client = new IaiClient($cred, "ap-chongqing", $clientProfile);
//人脸识别图像对象
$req = new DetectLiveFaceRequest();
//组装请求参数 我当前使用的是URL 如果是base64的话可以使用:["Image"=>$base64]
$params = array("Url" => $imgUrl
);
//赋值json化数据
$req->fromJsonString(json_encode($params));
//这里加try的原因是如果当前图像检测有误,或参数有误如直接报错
try {//进行活体检测$resp = $client->DetectLiveFace($req);//获取请求结果$res = $resp->toJsonString();//请求结果转数组$res = json_decode($res, true);
}catch(TencentCloudSDKException $e) {return $this->setErrorData(40006,$e->getMessage());
}
//判断结果 这一步是进一步判断 也可以省掉 直接进行下一步判断
if(empty($res["Score"])){return $this->setErrorData(40005,"验证失败,请重新获取认证图像");
}
//判断活体值 腾讯云判断小于87分的不为活体 一般只要是自拍照 无美颜 没有遮挡的图片活体值都是95以上
if($res["Score"] < 85){return $this->setErrorData(40006,"验证失败,请重新获取认证图像");
}
//当前图像是活体,可以直接跟上自己的业务逻辑

创建人员库

//实例化一个证书对象,入参需要腾讯云账户secretId,secretKey
$cred = new Credential("", "");
// 实例化一个http选项
$httpProfile = new HttpProfile();
// 指定接入地域(默认就近接入)
$httpProfile->setEndpoint("iai.tencentcloudapi.com");
//实例化客户端
$clientProfile = new ClientProfile();
//配置http
$clientProfile->setHttpProfile($httpProfile);
//实例化人脸识别对象 第二个参数是地域参数
$client = new IaiClient($cred, "ap-chongqing", $clientProfile);
try {//在这之前一定要先获取当当前人脸使用的人员库名以及人员库ID 并添加到数据库 避免下次还会请求添加人员库//还要开启事务 避免腾讯云添加失败 但数据库已经记录//获取人体库请求对象$req = new CreateGroupRequest();//组装创建人体库所需参数$params = array("GroupName" => $data["group_name"],"GroupId" => $data["group_id"],);//赋值json对象数据$req->fromJsonString(json_encode($params));//创建人员库$resp = $client->CreateGroup($req);//获取请求结果$res = $resp->toJsonString();//请求结果转数组$res = json_decode($res, true);//判断结果if(empty($res["FaceModelVersion"])){//事务回滚 数据库与腾讯云人员库同步$this->rollback();return $this->setErrorData(40005,"创建腾讯云人员库失败");}$this->commit();
}catch(TencentCloudSDKException $e) {$this->rollback();return $this->setErrorData(40006,$e->getMessage());
}
//人员库添加成功 跟上自己的业务逻辑

创建人员

//实例化一个证书对象,入参需要腾讯云账户secretId,secretKey
$cred = new Credential("", "");
// 实例化一个http选项
$httpProfile = new HttpProfile();
// 指定接入地域(默认就近接入)
$httpProfile->setEndpoint("iai.tencentcloudapi.com");
//实例化客户端
$clientProfile = new ClientProfile();
//配置http
$clientProfile->setHttpProfile($httpProfile);
//实例化人脸识别对象 第二个参数是地域参数
$client = new IaiClient($cred, "ap-chongqing", $clientProfile);
//获取创建人员对象
$req = new CreatePersonRequest();
//组装请求参数
$params = array("GroupId" => "人员库ID","PersonName" => "人员姓名","PersonId" => "人员ID",//人员ID一定要保存到数据库 人员的后续操作都依赖于人员ID"Url" => $imgUrl,//图像信息"QualityControl" => 3,//图像要求等级"NeedRotateDetection" => 1,//是否旋转识别
);
//赋值json化数据
$req->fromJsonString(json_encode($params));
try {//创建人员$resp = $client->CreatePerson($req);//获取请求结果$res = $resp->toJsonString();//请求结果转数组$res = json_decode($res, true);
}catch(TencentCloudSDKException $e) {return $this->setErrorData(40006,$e->getMessage());
}
//判断FaceId是否为空 这一步判断是为了严谨一点
if(empty($res["FaceId"])){return $this->setErrorData(40005,"验证失败,当前认证图像有误,请刷新重试");
}
//人员添加成功 可根据自己的需要实现自己的业务逻辑

人员验证

通过人员ID和人脸图片判断是否为同一个人

//实例化一个证书对象,入参需要腾讯云账户secretId,secretKey
$cred = new Credential("", "");
// 实例化一个http选项
$httpProfile = new HttpProfile();
// 指定接入地域(默认就近接入)
$httpProfile->setEndpoint("iai.tencentcloudapi.com");
//实例化客户端
$clientProfile = new ClientProfile();
//配置http
$clientProfile->setHttpProfile($httpProfile);
//实例化人脸识别对象 第二个参数是地域参数
$client = new IaiClient($cred, "ap-chongqing", $clientProfile);
//人员验证对象
$req = new VerifyPersonRequest();
//组装请求参数
$params = array("Url" => $imgUrl,//图像数据"PersonId" => $personId,//人员ID"QualityControl" => 3//图像等级
);
//赋值json化数据
$req->fromJsonString(json_encode($params));
try {//进行人员验证$resp = $client->VerifyPerson($req);//获取请求结果$res = $resp->toJsonString();//请求结果转数组$res = json_decode($res, true);
}catch(TencentCloudSDKException $e) {return $this->setErrorData(40006,$e->getMessage());
}
//判断结果
if(empty($res["IsMatch"]) || $res["IsMatch"] == false){return $this->setErrorData(40005,"验证失败,请账号拥有者验证");
}
//人员验证成功 当前人员ID和人脸是同一个人 可根据自己的需要实现自己的业务逻辑

腾讯云人脸识别 活体检测 人员库管理相关推荐

  1. 腾讯云—人脸识别应用实践

    序: 人脸识别是目前应用较广泛的AI产品服务,但在售前接触客户中,发现很多销售同学和客户对于人脸识别的认识不够全面,从而在使用和计价过程中遇到较多的问题,所以通过这篇博客个人总结一些应用架构实践,帮助 ...

  2. java腾讯云人脸识别接口

    1,引入maven依赖 2, public class TenXunUtil { // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密 // ...

  3. dlib实现人脸识别+活体检测

    目录: 一:dlib的shape_predictor_68_face_landmarks模型 二.眨眼检测 三.张口检测 四.眨眼检测+张口检测 五.人脸识别 六.人脸识别+活体检测 七.人脸识别破解 ...

  4. 人脸识别活体检测之张张嘴和眨眨眼

    暑 [这段时间有点忙,终于截止今天2018.06.22完成了人脸识别的最后一道程序--活体检测之眨眨眼和张张嘴] 关于人脸识别的内容我之前也写过好几篇博文,其中有:  {java实现人脸识别源码}  ...

  5. 人脸识别--活体检测(眨眼检测)

    人脸识别在现在很多的项目中都有应用,最常见的就属此次315曝光的支付宝刷脸登录,当然支付宝也出来做了澄清,我们还是需要相信科技的.支付宝的刷脸可谓是相当成熟了.下面我们来简单的分析一下支付宝的刷脸登录 ...

  6. Python爬取《创造营2020》小姐姐数据并用腾讯云人脸识别做颜值评分

    最近 创造营2020好多小姐姐吸引到我了,于是就有这这个 颜值100分的小姐姐高达21位 比如前段时间抖音很火的 凡凡 以下是代码,需要你在申请腾讯云有关参数替换哦 # -*- coding: utf ...

  7. Python爬取《创造营2020》小姐姐数据用腾讯云人脸识别做颜值评分

    最近 创造营2020好多小姐姐吸引到我了,于是就有这这个 颜值100分的小姐姐高达21位比如前段时间抖音很火的 凡凡 以下是代码,需要你在申请腾讯云有关参数替换哦 # -*- coding: utf- ...

  8. 腾讯云多维活体检测,让人脸识别更安全

    推荐理由 现如今密码验证已经变得越加越方便简洁了,从以前的密码到现在的人脸识别已经有了质的飞跃.但随着密码验证变得越加越简单,密码安全这个问题便铺面而来,如何保证密码的安全,在如今的时代,如何保证人脸 ...

  9. Android开发之虹软人脸识别活体检测基本步骤

    首先,我简单说下虹软的人脸识别基本步骤: 1.你的设置好设置视频模式方向用于人脸检测 有如下几个可设置方向 //设置视频模式全方向人脸检测ConfigUtil.setFtOrient(this, Fa ...

  10. 腾讯云人脸识别接口的使用

    文档地址:人脸识别简介_人脸识别购买指南_人脸识别操作指南-腾讯云 API Explorer 该工具提供了在线调用.签名验证.SDK 代码生成和快速检索接口等能力,能显著降低使用云 API 的难度,推 ...

最新文章

  1. 为什么php动态语言,动态语言静态化
  2. R语言层次聚类(hierarchical clustering):使用scale函数进行特征缩放、hclust包层次聚类(创建距离矩阵、聚类、绘制树状图dendrogram,在树状图上绘制红色矩形框)
  3. 运行第一个 Service - 每天5分钟玩转 Docker 容器技术(96)
  4. UIView加任意边框(Masonry)
  5. ubuntu19 安装git_如何在Ubuntu 20.04上安装Git
  6. DirectX 基础学习系列5 纹理映射
  7. SAP License:无奈的采购处理时间
  8. 小程序开发组件的使用
  9. y105 usb转rs232驱动
  10. 两种实现视频倍速播放的方法(视频播放器倍速1.5x/2x)
  11. Sentaurus TCAD 2013 在RedHat7.0 Linux系统的安装教程
  12. linux飞行模式切换,光遇飞行的两种模式区别 飞行模式切换和区别分析
  13. 10款微信公众平台相关的开源软件
  14. linux安装程序企鹅,在linux下安装fcitx(小企鹅)中文输入法
  15. 计算两条线或多边形的交点(LineString | MultiLineString | Polygon )
  16. Android显示图片崩溃的解决办法
  17. skylake服务器处理器M系列,瞄三大产品线!谈Intel Skylake架构CPU
  18. 以下11條小建議,幫助你們的異地戀一直保持活力
  19. Haar-like特征计算和积分图详解
  20. java学习(类和对象)

热门文章

  1. 电路复习——含耦合电感的电路与变压器
  2. 首台自主创新全空冷机组在三峡运行,图扑数字孪生机体
  3. 黑盒测试VS白盒测试
  4. 基于tcp文件传输协议C语言,文件传输协议的(C语言)实现
  5. window10截取动图(录制视频转gif)
  6. Myeclipse 6.0 regester NO
  7. 于的繁体字有几种写法_人字繁体字有几种写法
  8. nginx 解析二级域名
  9. SkipList 一种使用概率替代平衡树的数据结构
  10. c语言运算符的三大特性,逻辑运算符及其优先级,C语言逻辑运算符及其优先级详解...