百度AI-文字识别(身份证识别)的实现,大部分识别都通用适合所有人找灵感

最近开发中使用到百度AI-文字识别,找了下网的大部分都是太老没什么作用,所以就把自己实现的方式给大家展示下
写的不是很好大家见谅
如果大家有更好的实现方式希望的大家也发出来大家一起品鉴一番
其中工具类就不用自己下载了,百度SDK中全部都有直接引入依赖即可
APP_ID, API_KEY, SECRET_KEY 照这百度的搬就行了
下面进入正题

百度AI-文字识别(身份证识别)的实现,大部分识别都通用适合所有人找灵感
百度AI-文字识别(身份证识别)的实现,大部分识别都通用适合所有人找灵感百度AI-文字识别(身份证识别)的实现,大部分识别都通用适合所有人找灵感

// An highlighted block
 //设置APPID/AK/SK
    public static final String APP_ID = "*******";
    public static final String API_KEY = "************************";
    public static final String SECRET_KEY = "********************************";

    @RequestMapping(value = "addIdCard", method = RequestMethod.POST)
    @ResponseBody
    public String findFontIdCard(@RequestBody String image) throws IOException {
    	//由于前端传递的base64太大,没找到适合的方式,只好用RequestBody
    	//接收之后就将BASE64编码转为图片保存在本地在进行识别
        JSONObject o = JSONObject.parseObject(image);
        String im = o.getString("image");
        String imgFile = "D:\\";
        String s = im;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            s = s.replaceAll("data:image/jpeg;base64,", "");
            byte[] b = decoder.decodeBuffer(s);
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            OutputStream out = new FileOutputStream(imgFile + "log.jpg");
            out.write(b);
            out.flush();
            out.close();
        } catch (Exception e) {
            return "数据接收不到";
        }
        // 初始化一个AipOcr
        AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);

        // 可选:设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        // 可选:设置log4j日志输出格式,若不设置,则使用默认配置
        // 也可以直接通过jvm启动参数设置此环境变量
        System.setProperty("aip.log4j.conf", "D:\\log4j.properties");
        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("detect_direction", "true");
        options.put("detect_risk", "false");
        String idCardSide = "front";
        // 参数为二进制数组
        byte[] file = Util.readFileByBytes("D:\\log.jpg");
        JSONObject res = client.idcard(file, idCardSide, options);
        return res.toString(2);

    }

百度AI-文字识别(身份证识别)的实现,大部分识别都通用适合所有人找灵感