调用百度智能云 api --新手入门教程

14 篇文章 1 订阅
订阅专栏

登录或者注册用户

百度找到官网链接:

在这里插入图片描述
点击控制台:

在这里插入图片描述

登录上去,没有百度账户的可以先注册:

在这里插入图片描述

点击产品服务,找到人工智能,然后点击文字识别(下面的图片是老版的智能云):
这里写图片描述
点击创建应用
这里写图片描述
随便填自己的想要的名字,应用类型也可以自己选一个:
这里写图片描述
自己填点内容进去,点击立即创建即可:
这里写图片描述
创建成功,这两个东西以后要用到的:
这里写图片描述

下面是代码调用api

分两种方式:
第一是直接url调用api
官方api链接:http://ai.baidu.com/docs#/OCR-API/top
下面是java实现方式,案例是表格文字识别

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Base64;
import java.util.List;
import java.util.Map;

import org.json.JSONObject;

import com.alibaba.fastjson.JSON;


public class TestApi {  
    public static void main(String[] args) throws Exception {
    /*  String ss= "中国";
        String  s=Base64.getEncoder().encodeToString(ss.getBytes("gbk"));
        System.out.println(s);
        byte[] b = Base64.getDecoder().decode(s);
        System.out.println(new String(b,"gbk"));*/
        //第一步,官方要求需要把图片转base64再转URLEncoder
        //获取图片base64编码
        String image =getImageStr("D:\\360Rec\\183410564149088537.jpg");
        String APIKey = "你的APIKey";
        String SecretKey = "你的SecretKey";
        //第二步, 通过API Key和Secret Key获取的access_token
        String access_token = getAuth(APIKey, SecretKey);
        System.out.println("access_token:  " + access_token);
        //拼接请求体
         String content = "access_token=" + URLEncoder.encode(access_token, "gbk")
         + "&image=" + URLEncoder.encode(image, "gbk");
         //表格识别url
         String imageUrl= "https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request";
        //第三步,发送请求
        String response = sendPost(imageUrl, content);
       //解析结果拿到request_id再次发送结果接口请求获取识别内容
        String result = JSON.parseObject(response).get("result").toString();
        String request_id = JSON.parseObject(result.substring(1,result.length()-1)).get("request_id").toString();
        System.out.println("request_id: " + request_id);

        Thread.sleep(1000*10);//由于解析有延时,所以睡眠一下
        //第四步,通过上面获取到的request_id去获取解析结果
        //获取结果url
        String resultURL= "https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result";
        //拼接结果请求体
        String requestData = "access_token=" + URLEncoder.encode(access_token, "gbk")
         + "&request_id=" + URLEncoder.encode(request_id, "gbk") 
         + "&result_type=excel";
        //发送结果请求
        sendPost(resultURL,requestData);
    }

    /**
     * 解析图片转成base64编码
     * @param imgFile
     * @return
     * @throws Exception
     */
    public static String getImageStr(String imgFile) throws Exception {
        // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
        //String imgFile = "d:\\111.jpg";// 待处理的图片
       /* InputStream in = null;
        byte[] data = null;
        // 读取图片字节数组
        try {
            in = new FileInputStream(imgFile);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }*/

        StringBuffer buffer = new StringBuffer();
        BufferedReader bf= new BufferedReader(new FileReader(imgFile));
        String s = null;
        while((s = bf.readLine())!=null){//使用readLine方法,一次读一行
            buffer.append(s.trim());
        }
        String data = buffer.toString();
        // 对字节数组Base64编码
      //  BASE64Encoder encoder = new BASE64Encoder();

        // 返回Base64编码过的字节数组字符串
       // return encoder.encode(data.getBytes("gbk"));
        return Base64.getEncoder().encodeToString(data.getBytes("gbk"));
    }

    /**
     * 
     * @param u url地址
     * @param param 跟在?后面的参数 
     * @return
     */
      public static String sendPost(String u, String param) {
            StringBuffer sbf = new StringBuffer();
            try {
                URL url = new URL(u);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setDoInput(true);
                connection.setDoOutput(true);
                connection.setRequestMethod("POST");
                connection.setUseCaches(false);
                connection.setInstanceFollowRedirects(true);
               // connection.addRequestProperty("role", "Admin");
                connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
              //  connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
                connection.connect();
                DataOutputStream out = new DataOutputStream(connection.getOutputStream());
                if (!"".equals(param)) {
                     // 正文,正文内容其实跟get的URL中 '? '后的参数字符串一致
                  //  String content = "字段名=" + URLEncoder.encode("字符串值", "编码");
                    out.writeBytes(param);
                }
                out.flush();
                out.close();

                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String lines;
                while ((lines = reader.readLine()) != null) {
                    lines = new String(lines.getBytes(), "utf-8");
                    sbf.append(lines);
                }
                System.out.println(sbf);
                reader.close();
                // 断开连接
                connection.disconnect();
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return sbf.toString();
        }
      /**
       * 通过API Key和Secret Key获取的access_token
       * @param ak API Key
       * @param sk Secret Key
       * @return
       */
      public static String getAuth(String ak, String sk) {  
          // 获取token地址  
          String authHost = "https://aip.baidubce.com/oauth/2.0/token?";  
          String getAccessTokenUrl = authHost  
                  // 1. grant_type为固定参数  
                  + "grant_type=client_credentials"  
                  // 2. 官网获取的 API Key  
                  + "&client_id=" + ak  
                  // 3. 官网获取的 Secret Key  
                  + "&client_secret=" + sk;  
          try {  
              URL realUrl = new URL(getAccessTokenUrl);  
              // 打开和URL之间的连接  
              HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();  
              connection.setRequestMethod("GET");  
              connection.connect();  
              // 获取所有响应头字段  
              Map<String, List<String>> map = connection.getHeaderFields();  
              // 遍历所有的响应头字段  
              for (String key : map.keySet()) {  
                  System.err.println(key + "--->" + map.get(key));  
              }  
              // 定义 BufferedReader输入流来读取URL的响应  
              BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));  
              String result = "";  
              String line;  
              while ((line = in.readLine()) != null) {  
                  result += line;  
              }  
              /** 
               * 返回结果示例 
               */  
              System.out.println("result:" + result);  
              JSONObject jsonObject = new JSONObject(result);  
              String access_token = jsonObject.getString("access_token");  
              return access_token;  

          } catch (Exception e) {  
              System.err.printf("获取token失败!");  
              e.printStackTrace(System.err);  
          }  
          return null;  
      } 
}

如果有错误可以参考官方的错误信息说明:
链接1: https://cloud.baidu.com/doc/IMAGERECOGNITION/ImageClassify-API/1B.5C.E9.94.99.E8.AF.AF.E7.A0.81.html
链接2: https://cloud.baidu.com/doc/NLP/NLP-Cpp-SDK/36.5C.E9.94.99.E8.AF.AF.E8.BF.94.E5.9B.9E.E6.A0.BC.E5.BC.8F.html
或者上官网社区找: http://ai.baidu.com/forum
第二种sdk方式调用
首先下载jar包,或者maven引入,下面是maven的方式,我用的版本是4.4.1的,下面的${aip.version}可以替换成这个版本号
官网学习链接参考: http://ai.baidu.com/docs#/OCR-Java-SDK/top
官网sdk下载地址: http://ai.baidu.com/sdk

 <!--百度云api  -->
    <dependency>
    <groupId>com.baidu.aip</groupId>
    <artifactId>java-sdk</artifactId>
    <version>${aip.version}</version>
</dependency>

下面是使用案例代码:

import java.util.HashMap;

import org.json.JSONObject;

import com.baidu.aip.ocr.AipOcr;

public class TestAip {
    //设置APPID/AK/SK
    public static final String APP_ID = "你的APP_ID";
    public static final String API_KEY = "你的API_KEY";
    public static final String SECRET_KEY = "你的SECRET_KEY";

    public static void main(String[] args) {
        // 初始化一个AipOcr
        AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);

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

        // 可选:设置代理服务器地址, http和socket二选一,或者均不设置
     //   client.setHttpProxy("proxy_host", proxy_port);  // 设置http代理
       // client.setSocketProxy("proxy_host", proxy_port);  // 设置socket代理

        // 可选:设置log4j日志输出格式,若不设置,则使用默认配置
        // 也可以直接通过jvm启动参数设置此环境变量
        System.setProperty("aip.log4j.conf", "log4j.properties");

        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("result_type", "json");

        //解析结果拿到request_id再次发送结果接口请求获取识别内容
        String result = JSON.parseObject(res.toString(2)).get("result").toString();
        String request_id = JSON.parseObject(result.substring(1,result.length()-1)).get("request_id").toString();
        System.out.println("request_id: " + request_id);

        //String requestId = "11253090_374367";
        //睡眠10秒,由于上面请求后,图片解析需要一点时间,这里睡眠一会再去调用结果接口,不然会返回的状态ret_msg是未开始或者进行中
        Thread.sleep(1000*10);
        // 表格识别结果
        JSONObject ress = client.tableResultGet(request_id, options);
        System.out.println(ress.toString(2));

    }
}

运行结果:
这里写图片描述

同时可以参考另外两篇相关博文:
百度智能云api的使用(python)、 SDK和API的区别是什么?

原文作者:Tlimited
原文链接:https://blog.csdn.net/u014204541/article/details/80944884


我本来是想找图片清晰化的方法,就搜到百度智能云了,不得不感叹云相关的技术发展的真快,真好!
在这里插入图片描述


京东SDK调用实例(open-api-sdk-2.0.jar)
12-25
对于调用京东商城的API接口有很大帮助,省时又省力。轻松实现调用
图像识别教程(百度AI开放平台)
qq_40649503的博客
03-30 2923
根据百度AI开放平台编写的图像识别代码
百度语音合成与语音识别api使用(Java版本)
weixin_43844158的博客
04-07 1644
先到百度AI开发平台创建一个语音应用 创建成功如下: pom.xml需要导入百度aipJavaSDK,以及mp3转pcm的mp3spi <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www....
使用百度智能api进行图片识别文字以及pdf识别文字
最新发布
qq_45621643的博客
03-14 573
【代码】使用百度智能api进行图片识别文字以及pdf识别文字。
接入百度Api
qq_38789311的博客
04-19 1569
1、依赖百度的skd,maven使用,如果不是maven项目,请移步maven官网下载jar包 <dependencies> <!--引入百度图片识别的sdk--> <dependency> <groupId>com.baidu.aip</groupId> ...
Spring-Cloud服务发现Eureka的服务调用详细入门教程
02-24
案例中有三个角色:服务注册中心、服务提供者、服务消费者,流程是首先启动注册中心,服务提供者生产服务并注册到服务中心中,消费者从服务中心中获取服务并执行。其中我们分别使用到SpringCloudNetflix中的Eureka作为服务发现,而服务提供者和服务消费者均为SpringBoot提供的Restful接口。而Feign则作为调用实现(Feign是一个声明式WebService客户端。使用Feign能让编写WebService客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Fei
百度智能平台api调用菜品识别java实现.rar
07-23
实现效果界面https://www.cnblogs.com/yuanhang110/p/11229358.html 百度智能平台api调用实现菜品识别。通过Java实现。
调用百度智能API,实现身份证智能识别并转语音 | Python
xi
06-04 2074
调用百度智能API,利用 Python 编程,实现身份证智能识别并转语音。
java执行完代码需要不同方式跳转指定路径 非重定向和转发
weixin_42230479的博客
12-25 373
public class HttpUtils { public static String doGet(String url) { HttpClient httpClient = null; HttpGet httpGet = null; String result = null; try { httpClient = new SSLClient()...
百度API使用
weixin_33836223的博客
04-28 2461
为什么80%的码农都做不了架构师?>>> ...
百度智能 API调用PythonSDK
Moxin1044的博客
12-31 1518
这是一个用于百度部分开放AI功能的Python库。主要为ORC功能,可以对各种图像文件进行文字识别,包括车牌、手写文字、通用文字、人脸发现、人脸比对和人流量统计等。更多的功能大家可以提出,后续会慢慢开发这个库。使用这个库,你可以很方便地调用百度OCR API,并将识别结果以json的形式返回。你可以根据自己的需要来使用不同的API,以获得更精确或更快速的识别结果。此外,这个库还提供了URL版本的文字识别功能,可以直接对网络图片进行识别。
金碟二次开发-新手入门指南:Java快速搭建开发_测试环境(测试工程_SDK)k3cloud-webapi-sdk
08-16
金碟二次开发-新手入门指南:Java快速搭建开发_测试环境(测试工程、测试示例)包含WEB API k3cloud-webapi-sdk.jar
调用百度人脸识别API进行登录.zip
03-20
Java EE调用百度API,进行人脸注册,注册后可以登陆,会调用百度API人脸搜索,搜索成功即可登陆,
百度文字识别-调用aip.py
08-22
使用baidu-aip模块,调用百度aip只能识别图片文字,并将文字整合输出,可用于二维码验证登录。
Web Worker版调用Face-Api.js
12-09
webworker封装调用face-api.js
百度直播LSS的api接口连接的C#例子(干货)
01-08
文档里面的CorrectBaiDuYunLss方法为连接百度直播LSS接口的主要方法(GET方法),传入帐号的AK、SK即可,其他参数修改注释有说明,官网文档都没有的东西!是本人跟百度客服沟通后的一起修改出来的,通过测试没问题,方便c#的lssapi接入。
调用百度智能API实现植被识别
05-05
调用百度智能的开放API,使用Python的requests、base64等库实现本地图片的转码、上传、请求等操作。最终对图片中所包含的植物类型进行识别,同时给出相似植物名称,并提供对应的置信度。后期可以用于成品Web端、...
百度个人存储PCS OPEN_API接口帮助文档(个人整理)
12-10
本文主要包括百度个人存储(PCS) REST API:文件API列表、文件API错误码、结构化数据API说明、结构化数据API列表、结构化数据API错误码。 本文属于帮助文档类,仅供开发者参考。如有不明确或不足之处,请参考百度PCS API接口规范文档(现价段还没出)或者参考百度开发者中心(测试版)。
PCS百度个人存储所有API接口代码示例
10-07
PCS百度个人存储所有API接口代码示例 包括上传文件 ,下载文件,删除问就爱你,拷贝文件 所有API都有示例说明
百度智能api接口调用
06-13
百度智能提供了很多有用的 API 接口,可以帮助我们实现各种功能。以下是使用 Python 调用百度智能 API 的基本步骤: 1. 在百度智能官网注册账号,并创建一个应用。创建应用时,需要选择相应的 API 服务,例如语音识别、人脸识别、自然语言处理等。 2. 在应用管理页面中,获取 API Key 和 Secret Key。这两个密钥是调用 API 接口时必须提供的身份认证信息。 3. 安装百度智能 Python SDK。可以使用 pip 命令安装: ``` pip install baidu-aip ``` 4. 在 Python 代码中,使用 API Key 和 Secret Key 创建一个 AipClient 对象,并调用相应的 API 接口。 下面是一个调用百度智能图像识别 API 的示例代码: ```python from aip import AipImageClassify # 定义常量 APP_ID = 'your app id' API_KEY = 'your api key' SECRET_KEY = 'your secret key' # 创建 AipImageClassify 对象 client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY) # 读取图片 def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read() # 调用图像识别 API image = get_file_content('example.jpg') result = client.advancedGeneral(image) print(result) ``` 其中,APP_ID、API_KEY 和 SECRET_KEY 需要替换成你自己的密钥。该代码会读取当前目录下的 example.jpg 文件,并调用百度智能图像识别 API 进行识别。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 数据库系统概论课后习题答案(第五版 王珊、萨师煊) 93274
  • subplot函数用法(MATLAB) 88729
  • 笔记本电脑 F1 至 F12 是功能键,怎么转换成普通键 72419
  • Matlab中 axis 函数用法总结 68420
  • 百度云此链接内容可能涉及侵权,分享的文件已经被取消等屏蔽问题的解决方法 61638

分类专栏

  • Web前端 9篇
  • 面经汇总
  • HTML+CSS 4篇
  • 深度学习 14篇
  • 数据结构与算法 4篇
  • 数字图像处理 16篇
  • 知识图谱 7篇
  • 计算机考研经验分享 11篇
  • Python 69篇
  • C++ 2篇
  • MySQL 6篇
  • LeetCode 7篇
  • MATLAB 19篇
  • 常见函数用法 9篇
  • 本科学习资料 3篇
  • 本科毕设 8篇
  • CSDN 写博客技巧 11篇
  • 杂记 10篇

最新评论

  • Python IDLE 如何设置代码显示行号(亲测可用)

    weixin_42105203: 请问这个= RESTART:这个指令在哪里运行,我用python.exe运行这个指令显示 invalid syntax

  • Python IDLE 如何设置代码显示行号(亲测可用)

    Ariannahhh: 3.6.8 也可\^o^/

  • 【MATLAB】变量似乎会随迭代次数而改变,请预分配内存以获得更高的运算速度。

    m0_75118126: 你这样只是跳过了问题,只是忽略了速度问题。就像看病不解决病原体,而非得让它隐藏症状

  • 怎么彻底删除mysql服务_mysql怎么卸载干净?

    Cr_Cr77: 特别有用!!感谢博主!!

  • 【算法】棋盘覆盖详解,基础教程~

    lili_7: 求课后习题答案表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • h5页面实现图片局部热区跳转
  • 【javaScript】instanceof运算符实现原理及手写代码
  • Leetcode3.无重复字符的最长子串
2024年1篇
2023年21篇
2022年23篇
2021年158篇
2020年16篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司文山品牌网站设计多少钱贺州网站优化按天扣费哪家好德州网站优化按天扣费上饶SEO按天扣费多少钱昭通seo排名哪家好永湖网站优化软件推荐东莞百度网站优化价格茂名外贸网站制作哪家好新乡seo网站推广报价恩施seo排名多少钱孝感建设网站多少钱龙华企业网站制作推荐甘孜企业网站设计价格开封百度标王哪家好佛山网络广告推广报价本溪网站优化按天计费多少钱东莞百搜标王大庆网站优化软件公司烟台百姓网标王价格鄂州网页设计哪家好上饶网站推广方案推荐大丰百姓网标王价格张掖网站建设价格张北企业网站设计哪家好大鹏阿里店铺运营推荐盘锦企业网站改版哪家好邯郸网站优化推广推荐上饶关键词排名价格坪地网站设计哪家好毕节阿里店铺托管价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化