系统账号需要进行身份认证的时候,注册用户需要上传本人身份z照片。百度云身份z识别接口可以识别身份z照片并提取身份z上面的信息作为响应返回。如姓名,身份z号等。
一、工作准备
1、注册登录百度智能云官网。
2、对百度智能云账号进行个人身份认证。(不知道为什么我的人脸认证一直不通过,可以试试yhk号认证。)
进入控制台,选择产品服务》》人工智能》》文字识别
在应用列表中创建应用
在创建应用的时候,会提醒你领取免费资源(即接口免费使用的次数,身份z识别接口一个月1000次。无时间限制)
2.java代码如何使用接口点击HTTP SDK 可以查看详细教程。
添加以下依赖即可,其中版本号可在maven官网查询
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.12.0</version>
</dependency>
这个是JSONObject转java对象的依赖
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk15</classifier>
</dependency>
进行身份z识别的工具类。返回结果是自定义的类。便于 *** 作相应属性。
/**
* 上传身份z进行提起信息工具类
*/
public class Sample {
//设置APPID/AK/SK
public static final String APP_ID = "26196198";
public static final String API_KEY = "yFlcsaKcpVby8BwE6GZInhsI";
public static final String SECRET_KEY = "ktdE2O0MaY8qTOh7PvPQtT1m7s482aae";
public static IdCard getPictureString(String photoPath){
// 初始化一个AipOcr
AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
// 传入可选参数调用接口
HashMap<String, String> options = new HashMap<String, String>();
// 是否检测图像旋转角度
options.put("detect_direction", "false");
// 是否开启身份z风险类型
options.put("detect_risk", "false");
// 正反面front /back
String idCardSide = "front";
// 参数为本地图片路径
try {
JSONObject res = client.idcard(photoPath, idCardSide, options);
if (res != null) {
//接口返回身份z的数据和坐标,我们从其中取出数据返回
JSONObject idCard = new JSONObject();
JSONObject words_result = res.getJSONObject("words_result");
//依次需要的数据
idCard.put("name", words_result.getJSONObject("姓名").get("words"));
idCard.put("nation", words_result.getJSONObject("民族").get("words"));
idCard.put("address", words_result.getJSONObject("住址").get("words"));
idCard.put("sex", words_result.getJSONObject("性别").get("words"));
idCard.put("birth", words_result.getJSONObject("出生").get("words"));
idCard.put("number", words_result.getJSONObject("公民身份号码").get("words"));
net.sf.json.JSONObject jsonObject= net.sf.json.JSONObject.fromObject(idCard.toString(2));
IdCard idcard=(IdCard)net.sf.json.JSONObject.toBean(jsonObject, IdCard.class);
return idcard;
} else {
return null;
}
}catch (JSONException e){
e.printStackTrace();
}
return null;
}
}
IdCard 类和百度智能云接口返回的结果对应的自定义类。
@Component
public class IdCard {
private String name;
private String nation;
private String address;
private String sex;
private String birth;
private String number;
}
总结
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)