腾讯云 - OCR-身份证识别

腾讯云文档地址:https://cloud.tencent.com/document/product/866/17597

一、使用前准备

 1. 前往注册: 腾讯云账号注册 (详细指引见 注册腾讯云)。
 2. 取得 APPID、SecretId、SecretKey:请前往
        云API密钥 ,单击“新建密钥”(目前只支持主账号及密钥进行调用)。

二、导入腾讯云识别jar

          <dependency>
			<groupId>com.qcloud</groupId>
			<artifactId>qcloud-image-sdk</artifactId>
			<version>2.3.3</version>
	 </dependency>

三、代码展示

  1、测试

// upImgPath  (身份证正面网络地址)downImgPath   (身份证反面网络地址)
 public Map<String, Object> ocrIdCard(User user,String upImgPath, String downImgPath) {
        user.setUpCardImg(upImgPath);
        user.setDownCardImg(downImgPath);
        Map<String,Object> resultMap = new HashMap<>();
        String appId = "1257817658";
        ImageClient imageClient = new ImageClient(appId, secretId, secretKey, ImageClient.NEW_DOMAIN_recognition_image_myqcloud_com/*根据文档说明选择域名*/);
        String ret = null;
        // 1. url方式,识别身份证正面【0.取第1张,正面】
        String[] idcardUrlList = new String[2];
        idcardUrlList[0] = upImgPath;
        idcardUrlList[1] = downImgPath;
        IdcardDetectRequest idReq = new IdcardDetectRequest(bucketName, idcardUrlList, 0);
        try {
            ret = imageClient.idcardDetect(idReq);
             //参数解析
            JSONObject stringObjectMap = (JSONObject) JSON.parse(ret);
            logger.info("result_list: "+stringObjectMap.get("result_list"));
            JSONArray json = JSON.parseArray(stringObjectMap.get("result_list").toString());
            JSONObject jsonObject = (JSONObject) json.get(0);
            if(jsonObject.get("code").toString().equals("0")){
                Map<String,Object> jx = (Map<String, Object>) JSON.parse(jsonObject.get("data").toString());
                resultMap.put("name",jx.get("name"));
                logger.info("name: "+jx.get("name"));
                resultMap.put("identityCard",jx.get("id"));
                logger.info("identityCard: "+jx.get("id"));
            } else {
               logger.info("error...");
            }
            logger.info("upIdCard detect ret:" + ret);
        } catch (AbstractImageException e) {
            e.printStackTrace();
        }
        //身份证反面 【1.取第二张,反面】
        IdcardDetectRequest idReq1 = new IdcardDetectRequest(bucketName, idcardUrlList, 1);
        try {
            ret = imageClient.idcardDetect(idReq1);
            logger.info("downIdCard detect ret:" + ret);
            //参数解析
            JSONObject stringObjectMap = (JSONObject) JSON.parse(ret);
            logger.info("result_list: "+stringObjectMap.get("result_list"));
            JSONArray json = JSON.parseArray(stringObjectMap.get("result_list").toString());
            JSONObject jsonObject = (JSONObject) json.get(1);
            if(jsonObject.get("code").toString().equals("0")){
                Map<String,Object> jx = (Map<String, Object>) JSON.parse(jsonObject.get("data").toString());
                resultMap.put("validDate",jx.get("valid_date"));
                logger.info("name: "+jx.get("name"));
                //设置有效期
                user.setPeriodOfValidity(jx.get("valid_date").toString());
            } else {
                logger.info("error...");
            }
        } catch (AbstractImageException e) {
            e.printStackTrace();
        }
        //修改身份证信息
        baseMapper.updateCardImg(user);
        return resultMap;
    }

2、也可以直接图片上传进行ocr识别,详情请看

GitHub地址:https://github.com/tencentyun/image-java-sdk-v2.0](https://github.com/tencentyun/image-java-sdk-v2.0

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值