近几天在做毕业设计获取数据,需要将电子书数据转化成文字,其中需要对图像中的文字进行识别,看了前辈们的文章,找到一个较简单的方法:使用python调用百度AI平台接口。写下这篇文章做一个比较简短的记录和学习,后期如果有新内容再行补充。
调用百度AI平台接口(有调用次数限制,通用50000次/天,学习完全够用)
这个类似于调用接口实现词法分析等操作,首先通过注册获得APP_ID、API_KEY、SECRET_KEY,然后调用接口实现OCR。由于是在线API,如果图片体积比较大,涉及到上传数据、分析数据、返回数据等一系列操作,需要一定的时间。此外,因为返回的是 dict 类型数据,所以需要对结果进行处理(这套算法是按行识别文字的,准确率较高,基本可以直接将结果进行提取和拼接)。
Python SDK文档 http://ai.baidu.com/docs#/OCR-Python-SDK/53932383
一、接口调用准备:
1、进入网站
https://console.bce.baidu.com/ai/?_=1577158208815&fromai=1#/ai/ocr/overview/index
2、选择产品服务里的文字识别,点击创建应用。
3、选择文字识别,创建完成。
4、创建后可以选择应用,可以看到里面有AppID、API Key、Secret Key三个参数,将三个参数放入下面实例对应三个地方。
二、百度AipOcr接口能力
三、安装接口模型
pip install baidu-aip
四、通用文字识别 请求参数详情
五、通用文字识别 返回数据参数详情
六、最终代码
from aip import AipOcr
#定义常量
APP_ID = '18096082'
API_KEY = 'nTV3rarsqUNlzGibGw6Q3Bl5'
SECRET_KEY = '4CbWiosVLTPzZbwBTZ86dE9bkTK70NQR'
# 初始化AipFace对象
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 读取图片
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('ocr_test.jpg')
# 调用通用文字识别, 图片为本地图片
res = client.general(image)
print(res)
for item in res['words_result']:
print(item['words'])
七、识别结果
识别的图片为:
识别结果为:
八、小结:
主要是初次接触OCR这个领域所做的一些笔记,后续再深入进行学习。