java调用百度AI识别身份证照片获取信息

java调用百度AI识别身份证照片获取信息

  • 一、前期准备
    • 1、创建账号
    • 2、获得API Key 和Secret Key
  • 二、使用步骤
    • 1、依赖
    • 2、代码


一、前期准备

1、创建账号

在这里插入图片描述
在这里插入图片描述

2、获得API Key 和Secret Key

在这里插入图片描述

二、使用步骤

http调用工具用了hutool工具库

1、依赖

        <!--百度身份证识别AI依赖-->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.12.0</version>
        </dependency>
        <!--工具依赖-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.16</version>
        </dependency>

2、代码

    public static final String API_KEY = "xxxxxxx";
    public static final String SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

    /**
     * 从用户的AK,SK生成鉴权签名(Access Token)
     */
    String getAccessToken() throws IOException {
        Map data = new HashMap();
        data.put("grant_type", "client_credentials");
        data.put("client_id", API_KEY);
        data.put("client_secret", SECRET_KEY);

        String body = HttpRequest.post("https://aip.baidubce.com/oauth/2.0/token")
                .header("Content-Type", "application/x-www-form-urlencoded")
                .form(data)
                .execute()
                .body();
        String accessToken = String.valueOf(JSONObject.parseObject(body).get("access_token"));
        return accessToken;
    }

    /**
     * 获取文件base64编码
     *
     * @param path      文件路径
     * @param urlEncode 如果Content-Type是application/x-www-form-urlencoded时,传true
     * @return base64编码信息,不带文件头
     * @throws IOException IO异常
     */
    String getFileContentAsBase64(String path, boolean urlEncode) throws IOException {
        byte[] b = Files.readAllBytes(Paths.get(path));
        String base64 = Base64.getEncoder().encodeToString(b);
        if (urlEncode) {
            base64 = URLEncoder.encode(base64, "utf-8");
        }
        return base64;
    }

    @Test
    void contextLoads() throws IOException {
        String path = "C:/xxxxxxxx/sfz.JPG";

        //设置请求头
        Map<String, String> headers = new HashMap<>();
        headers.put("Content-Type", "application/x-www-form-urlencoded");
        headers.put("Accept", "application/json");

        //入参
        Map data = new HashMap();
        data.put("id_card_side", "front");//正面
        //data.put("id_card_side", "back");//反面
        data.put("image", getFileContentAsBase64(path, false));

        //调用识别接口
        String body = HttpRequest.post("https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" + getAccessToken())
                .addHeaders(headers)
                .form(data)
                .execute()
                .body();
        Map map = JSONObject.parseObject(body, Map.class);
        System.out.println(map.toString());
    }

在这里插入图片描述

  • 坚持不懈,才能登上成功的巅峰。每一次努力都是一份积累,每一次拼搏都是一个契机。在追逐梦想的路上,不要停下脚步,因为只有持之以恒,才能收获辉煌的成就。
  • 拥有梦想是第一步,实现梦想是下定决心。不要被困难吓倒,不要被挫折击倒。勇敢面对困境,坚定前行的步伐,相信自己,勇往直前,终将创造属于自己的传奇。
  • 人生如修行,总有风雨雷电。但只要心怀希望,执着追求,越是曲折越要坚定信念。失去过的梦想、受过的伤害,都是磨砺内心的机会,将坎坷化作阶梯,走出一条光明之路。
  • 成功不是偶然,而是每一次坚持的积累。不论遇到多大的困难和挑战,都不要轻言放弃。相信自己的力量,勇敢面对挑战,勤奋耕耘,每一份付出都将开启通往成功的大门。
  • 人生没有白走的路,每一步都是成长的印记。无论遭遇怎样的逆境,都要保持乐观与坚韧,给自己一个机会,给梦想一个舞台。记住,坚持与执着是通往光明的钥匙,不要放弃,勇往直前,胜利必将属于你。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/498992.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读-Policy Optimization for Continuous Reinforcement Learning

摘要 我们研究了连续时间和空间环境下的强化学习( RL )&#xff0c;其目标是一个具有折扣的无限时域&#xff0c;其动力学由一个随机微分方程驱动。基于连续RL方法的最新进展&#xff0c;我们提出了占用时间(专门针对一个折现目标)的概念&#xff0c;并展示了如何有效地利用它…

qt学习第三天,qt设计师的第一个简单案例

3月25&#xff0c;应用qt设计师&#xff0c;手动设计界面形状 ​ 如何启动qt设计师&#xff0c;找到对应的安装地点&#xff0c;对应你自己安装的pyside6或其他qt的安装路径来找 ​ 应用qt设计师的优点是不用敲代码然后慢慢调节框框大小&#xff0c;位置等、可以直接修改…

知识图谱构建三要素:实体、关系与属性技术与实战全解析

目录 一、知识图谱三要素简介实体&#xff08;Entity&#xff09;的重要性关系&#xff08;Relationship&#xff09;的作用属性&#xff08;Attribute&#xff09;的应用 二、实体&#xff08;Entity&#xff09;理论介绍实体的概念细节实体的分类实体识别的技术细节实体识别的…

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程 摘要个人简介下载Mysql安装Mysql配置环境变量 摘要 MySQL 8.0.11的安装过程涉及几个关键步骤&#xff0c;首先访问MySQL官方网站下载页面&#xff0c;选择操作系统相对应的MySQL版本进行下载。对于Windows用户&#xff0c;启动下…

读写锁 应用/原理

一、ReentrantReadWriteLock 让 读-读 操作可并发&#xff0c;写-写、写-读、读-写不可并发 (一)、基本使用 class DataContainer {private Object data;private ReentrantReadWriteLock rw new ReentrantReadWriteLock();private ReentrantReadWriteLock.ReadLock r rw.r…

Qt扫盲-QAssisant 集成其他qch帮助文档

QAssisant 集成其他qch帮助文档 一、概述二、Cmake qch例子1. 下载 Cmake.qch2. 添加qch1. 直接放置于Qt 帮助的目录下2. 在 QAssisant中添加 一、概述 QAssisant是一个很好的帮助文档&#xff0c;他提供了供我们在外部添加新的 qch帮助文档的功能接口&#xff0c;一般有两中添…

软件开发订制:使用LabVIEW软件的10大理由

1.通过软件增加处理能力及灵活性   使用基于计算机进行数据采集设备的最大优势之一是您可以使用软件来定制您的测试系统的功能和可视化特性&#xff0c;以满足您的应用需求。人工测试代价高&#xff0c;速度慢&#xff0c;且容易出错&#xff0c;而基于软件定义的系统可以更快…

景联文科技高质量大模型训练数据汇总!

3月25日&#xff0c;2024年中国发展高层论坛年会上&#xff0c;国家数据局局长刘烈宏在“释放数据要素价值&#xff0c;助力可持续发展”的演讲中表示&#xff0c;中国10亿参数规模以上的大模型数量已超100个。 当前&#xff0c;国内AI大模型发展仍面临诸多困境。其中&#xff…

ctf-36C3解析

一、环境 unbentu 这道题给了docker环境&#xff0c;gethub上面自己找 一个好用的linux全局切换梯子proxychains 二、开始解析 2.1初始 2.2编译 docker build . 2.3代理设置完毕 我试了一下代理还是不行&#xff0c;我们换源尝试一下 RUN sed -i s/deb.debian.org/mirro…

MYSQL数字函数实操宝典:场景化SQL语句一网打尽

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MYSQL数字函数&#xff1a;不可不知的数据处理利器 文章目录 Part 1: 准备 &#x…

基于STM32C8T6的智能蓝牙小车控制设计

**单片机设计介绍&#xff0c;基于STM32C8T6的智能蓝牙小车控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于STM32C8T6的智能蓝牙小车控制设计是一个综合了硬件与软件设计的项目&#xff0c;旨在实现小车的智能控制、…

如何使用固定公网地址远程连接Python编译器并将运行结果返回到Pycharm

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…

K8S Pod状态为“被驱逐(evicted)”的解决方法

文章目录 驱逐原因问题复现解决方案 在Kubernetes中&#xff0c;pod是最小的调度单元。当Pod无法在所分配的节点上正常运行时&#xff0c;它可能会被驱逐(evicted)。这种情况可能是由多种原因引起&#xff0c;比如节点资源不足、Pod超出了所分配的资源限制、镜像拉取失败等。 …

哈希表(hash_table) 哈希存储 算法相关知识 稳定性 时间复杂度

哈希存储(散列存储) 为了快速定位数据 哈希表 哈希冲突 / 哈希矛盾 关键字不一样&#xff0c;但是映射之后结果一样 如何避免 哈希矛盾&#xff1f; 1、重新设计哈希函数&#xff0c;尽可能均匀散列分布在哈希表 2、开放定址法&#xff1a;向下寻找未存储的位置进行存放数…

《Invariant Feature Learning for Generalized Long-Tailed Classification》阅读笔记

论文标题 《Invariant Feature Learning for Generalized Long-Tailed Classification》 广义长尾分类的不变特征学习 作者 Kaihua Tang、Mingyuan Tao、Jiaxin Qi、Zhenguang Liu 和 Hanwang Zhang 来自南洋理工大学、阿里达摩院和浙江大学 初读 摘要 属性不平衡&#…

基于 FFmpeg 和 SDL 的音视频同步播放器

基于 FFmpeg 和 SDL 的音视频同步播放器 基于 FFmpeg 和 SDL 的音视频同步播放器前置知识音视频同步简介复习DTS、PTS和时间基 程序框架主线程解复用线程音频解码播放线程视频解码播放线程 音视频同步逻辑源程序结果工程文件下载参考链接 基于 FFmpeg 和 SDL 的音视频同步播放器…

vue 元素拖动,复制,已复制元素可移动,快捷方便,已解决

注意&#xff1a;使用当前组件时&#xff0c;请先了解组件代码逻辑 下方组件根据自己的需求来更改响应的元素id&#xff0c;调整代码实现逻辑&#xff0c;这里不过多解释 import Vue from "vue";/*** 拖拽*/ Vue.directive("Drag", (el) > {const move…

MySQL---函数

目录 一、概述 二、字符串函数 三、数值函数 四、日期函数 五、流程函数 一、概述 函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着&#xff0c;这一段程序或代码在MySQL 中 已经给我们提供了&#xff0c;我们要做的就是在合适的业务场景调用对应的函数完…

课堂练习:环境体验——Linux 文件操作命令

任务描述 第二个任务就是了解Linxu的文件查看命令&#xff0c;文件编辑基本命令。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.文件查看命令。 2.文件编辑基本命令。 文件查看命令 我们要查看一些文本文件的内容时&#xff0c;要使用文本编辑器来查看…

vue3+ts白屏问题解决

文章目录 打开白屏解决方法可能出现问题使用base导致的使用baseUrl导致的 注意点vue3ts白屏问题知识分享 打开白屏 解决方法 在vue.config.js页面 添加publicPath:./, const { defineConfig } require(vue/cli-service)module.exports defineConfig({ transpileDependenci…