研究百度OCR的API,主要是向作对扫描版的各类PDF进行文字识别并转Word文档的需求。html
这里用Postman客户端进行测试和演示。由于Postman是对各类API操做的最佳入门方式。一旦在Postman里实现了正确的调用,剩下的就只是一键生成代码,和一些细节的修改了。git
参考百度云官方文档:文字识别API参考
下载官方文档PDF:OCR.zh.pdfgithub
Token字符串
永远是你使用别人API的第一步,简单说,就是只有你本身知道的密码,在你每次向服务器发送的请求里面加上这个字符串,就至关于完成了一次登陆。web
若是没有Token受权认证,API的访问可能会像浏览网页同样简单。
Access Token
通常是调用API最重要也最麻烦的地方了:每一个公司都不同,各类设置安全问题让你的Token复杂化。而百度云的Token,真的是麻烦到必定地步了。安全
参考:百度API的鉴权认证机制 (建议你不要参考,由于它的流程图会先把你镇住的)服务器
简单说,获取百度云token字符串的主要流程就是:网络
https://aip.baidubce.com/oauth/2.0/token
app
其中,须要你向这个地址传送三个参数:测试
grant_type = client_credentials
这个是固定的client_id = xxx
这个是你在百度云管理后台建立OCR应用的时候,那个应用的API Key
client_secret = xxx
这个是你的应用的Secret Key
来看看怎么利用Postman操做,以下图所示:url
填好之后点击Send发送,就会得到一个JSON数据,以下图:
而后你用你的程序(Python, PHP, Node.js等,随便),获取这个JSON中的access_token
,
便可用到正式的API请求中,作为受权认证。
API连接:https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic
提交方式:POST
调用方式有两种:
直接把API所需的认证信息放在URL里是最简单最方便的。
建议忽略这种方式,须要填写不少request的标准headers,太麻烦。
Headers设置:
Content-Type = application/x-www-form-urlencoded
只要填这一项就够了。
Body数据传送的各项参数:
access_token = xxx
把以前获取到的token字符串填到这里来image = xxx
把图片转成base64字符串填到这里,不须要开头的data:image/png;base64,
url = xxx
也能够不用传图片而是传一个图片的连接。可是百年无效,不要用! language_type = CHN_ENG
识别语言类型。默认中英。Body的数据如图所示:
而后就能够点Send发送请求了。
成功后,能够获得百度云返回的一个JSON数据,相似下图:
返回的是一行一行的识别字符。百度云的识别率是至关高的,几乎100%吧。毕竟是国内本土的机器训练出来的。
如下是百度云的OCR经常使用API地址,每一个API所需的参数都差很少,略有不一样。全部的API和地址以及详细所需的参数,参考官方文档,很简单。一个弄明白了就其余的都明白了。
API | 请求地址 | 调用量限制 |
---|---|---|
通用文字识别 | https://aip.baidubce.com/rest... | 50000次/天免费 |
通用文字识别(含位置信息版) | https://aip.baidubce.com/rest... | 500次/天免费 |
通用文字识别(高精度版) | https://aip.baidubce.com/rest... | 500次/天免费 |
通用文字识别(高精度含位置版) | https://aip.baidubce.com/rest... | 50次/天免费 |
网络图片文字识别 | https://aip.baidubce.com/rest... | 500次/天免费 |