文章目录
一、基本介绍1.概述2.功能特点3.使用场景二、术语概述基础参数说明DetectAuth(实名核身鉴权)GetDetectInfo(获取实名核身结果信息)三、基本接口说明使用DetectAuth(实名核身鉴权)GetDetectInfo(获取实名核身结果信息)四、开发工具类这里我们使用腾讯云的人脸核身来给大家做一个基础的介绍和使用
一、基本介绍
1.概述
人脸核身:一般是对一组对用户身份信息真实性进行验证审核的服务套件提供各类认证功能模块,包含证件 OCR 识别、活体检测、人脸1 : 1对比等能力,以解决行业内大量对用户身份信息核实的需求。
2.功能特点
OCR 识别
支持识别身份证正反面,一次扫描即可返回身份证号、姓名、有效时间等所有字段,数字识别准确率达到 99.9%以*上,在多个字段上处于领先水平。处理倾斜、暗光、曝光、阴影等异常情况稳定性好,自适应判别纠正技术大大提高识别准确率。
活体检测
活体检测, 主要针对高安全性要求的人脸核身验证而研发的一种技术,防止照片、视频、静态3D建模等各种不同类型的攻击; 目前支持唇语读数、动作、静默等多种活体模式,适用于多类验证场景。
1:1人脸比对
人脸比对,根据面部特征,计算两张人脸的相似度,自动进行身份鉴别。立足于腾讯社交数据大平台收集的海量人脸训练集,结合高维 LBP、PCA、LDA 联合贝叶斯、度量学习、迁移学习、深度神经网络, LFW 测评准确度为 99.80%。并支持多场景下的识别验证,对年龄、姿态及光强均有较好的支持度。
3.使用场景
综合政务服务、公安微警务、工商企业注册、养老金领取生存验证等银行开户、保险验证各大运营提供的在线申请号码、购买手机卡、预装宽带等 网吧上网实名登记、酒店住宿实名登记等机场安检登机、铁路安检购票、长途客运购票、边检口岸通关等二、术语概述
我们主要是使用其中的两个接口,DetectAuth(实名核身鉴权)、GetDetectInfo(获取实名核身结果信息)。这两个功能基本可以实现我们的的人脸核身这个功能需求。
基础参数说明
DetectAuth(实名核身鉴权)
在使用人脸核身之前需要:先调用本接口获取BizToken,用来串联核身流程,在验证完成后,用于获取验证结果信息。
GetDetectInfo(获取实名核身结果信息)
为了获取用户的验证信息,是否通过。如果通过可以指定拉取的结果信息,取值(0:全部;1:文本类;2:身份证正反面;3:视频最佳截图照片;4:视频)
三、基本接口说明使用
DetectAuth(实名核身鉴权)
输入参数
这里我们就只要一些基础信息就可以完成集成,如果有其它需求请根据参数再传递即可。
这里我们就只用一些它的必传参数,还有一个回调地址即可。
输出参数
GetDetectInfo(获取实名核身结果信息)
输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
输出参数
四、开发工具类
maven导包
<!-- 腾讯人脸核身--><dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.0.112</version></dependency>
常量管理
/*** 人脸核身相关参数*/public static final String FACEKERNEL_SECRETID = "标识身份的 SecretId |";public static final String FACEKERNEL_SECRETKEY = "标识身份的SecretKey ,SecretKey 会用来生成请求签名 Signature。 ";public static final Object FACEKERNEL_RULEID = "用于调用配置的业务流程";
代码
import mon.collect.MapUtils;import mon.mapper.JsonMapper;import mon.constant.TencentFaceConstant;import mon.Credential;import mon.exception.TencentCloudSDKException;import mon.profile.ClientProfile;import mon.profile.HttpProfile;import com.tencentcloudapi.faceid.v0301.FaceidClient;import com.tencentcloudapi.faceid.v0301.models.DetectAuthRequest;import com.tencentcloudapi.faceid.v0301.models.DetectAuthResponse;import com.tencentcloudapi.faceid.v0301.models.GetDetectInfoRequest;import com.tencentcloudapi.faceid.v0301.models.GetDetectInfoResponse;import java.util.Map;/*** 人脸识别工具类*/public class RealNameAuthUtils {/*** 获取实名核身鉴权结果* @param redirectUrl 认证结束后重定向的回调链接地址。最长长度1024位* @return*/public static String getDetectAuthResult(String redirectUrl){String result = "";try{//用户验证 id和对应密钥Credential cred = new Credential(TencentFaceConstant.FACEKERNEL_SECRETID, TencentFaceConstant.FACEKERNEL_SECRETKEY);HttpProfile httpProfile = new HttpProfile();httpProfile.setEndpoint("faceid.ap-");ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);//设置前置信息,如用户验证信息,地域信息(越近越快),请求域名地址FaceidClient client = new FaceidClient(cred, "ap-chengdu", clientProfile);Map<String,Object> paramMap = MapUtils.newHashMap();//paramMap.put("RedirectUrl",Constant.FACEKERNEL_REDIRECTURL);//设置了一个回调地址链接paramMap.put("RedirectUrl",redirectUrl);paramMap.put("RuleId", TencentFaceConstant.FACEKERNEL_RULEID);String params = JsonMapper.toJson(paramMap);DetectAuthRequest req = DetectAuthRequest.fromJsonString(params, DetectAuthRequest.class);DetectAuthResponse resp = client.DetectAuth(req);result = DetectAuthRequest.toJsonString(resp);System.out.println(result);} catch (TencentCloudSDKException e) {System.out.println(e.toString());result = "error";}return result;}/*** 获取实名核身结果信息* @param bizToken* @return*/public static String getDetectInfo(String bizToken){String result = "";try{Credential cred = new Credential(TencentFaceConstant.FACEKERNEL_SECRETID, TencentFaceConstant.FACEKERNEL_SECRETKEY);HttpProfile httpProfile = new HttpProfile();httpProfile.setEndpoint("faceid.ap-");ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);FaceidClient client = new FaceidClient(cred, "ap-chengdu", clientProfile);Map<String,Object> paramMap = MapUtils.newHashMap();paramMap.put("BizToken",bizToken);paramMap.put("RuleId", TencentFaceConstant.FACEKERNEL_RULEID);String params =JsonMapper.toJson(paramMap);GetDetectInfoRequest req = GetDetectInfoRequest.fromJsonString(params, GetDetectInfoRequest.class);GetDetectInfoResponse resp = client.GetDetectInfo(req);result = GetDetectInfoRequest.toJsonString(resp);System.out.println(result);} catch (TencentCloudSDKException e) {System.out.println(e.toString());result = "error";}return result;}}