百度OCR使用入坑指南
一、背景:什么是OCR
OCR是光学字符识别(Optical Character Recognition)的缩写,是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。通俗来讲就是识别图片里的文字信息,非常适用于提取网络截图或扫描pdf等文件里的文本,可以极大提高生产效率,避免在遇到有大量文本提取需求时仅靠肉眼识别,徒手打字打到头秃的惨状。
目前市面上的OCR工具已经有非常之多,其中百度AI提供的OCR服务算是其中的佼佼者,百度文字识别是百度AI开放平台提供的众多AI在线服务之一,其功能极其丰富,包括通用文字识别、汽车场景文字识别、财务票据、各类卡证等面向不同场景的文字识别服务。除了在线接口OCR服务之外,最近百度还开源了飞桨文字识别套件PaddleOCR,可以基于该工具开展本地化的文字识别,可以说非常良心了。今天主要介绍下通过在线api调用接口与本机部署PaddleOCR模型两种形式实现文字识别的方式,希望能帮到有需要的人。
二、在线调用百度api接口
1. 注册百度智能云账号,创建应用获取key
如果本身有百度账号的话可以直接用百度账号登录,登录成功后界面如下:
之后选择其中的文字识别,进入文字识别应用界面,可以看到可用服务列表中提供了各类文字识别服务的使用状态、调用量限制等信息,一般每天都有几百次的免费调用机会,足以满足非大规模专业性的文字识别需求。初次使用时需要创建应用:
在创建新应用页面中,需要填写使用应用的相关信息,比如选择文字识别中的通用文字识别、以及选择是公司还是个人开发者使用等信息,全部填写完毕即可成功创建应用:
应用创建成功后会生成每个应用唯一的AppID、API Key、Secret Key等秘钥信息,这几个值是后续调用api接口的关键参数
2. 调用api发送请求,获取文字识别结果
2.1 构造请求
利用第一步我们创建应用获取的key,构造url请求,实现图像文字识别。这里的请求分两个阶段,第一步是根据key构造的请求获取access_token;第二步是将获取的access_token所包含的信息作为提交的数据再次向url发送请求,最终得到返回的文本信息,示例代码如下:
'''
构建请求url,获取Access Token,必须参数如下:
grant_type: 必须参数,固定为client_credentials;
client_id: 必须参数,应用的API Key;
client_secret: 必须参数,应用的Secret Key;
'''
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + '替换为自己的API Key' + '&client_secret=' + '替换为自己的Secret Key'
headers = {
'Content-Type': 'application/json;charset=UTF-8'
}
# 获取token
res