通用文字识别攻略
作者:才能我浪费99
1.功能描述:
百度通用文字识别基于业界领先的深度学习技术,提供多场景、多语种、高精度的整图文字检测和识别服务,印刷体文字识别准确率高达99%,多项ICDAR指标居世界第一。有以下一些版本:
通用文字识别
对图片中的文字进行检测和识别,支持中、英、法、俄、西、葡、德、意、日、韩、中英混合等多语种识别,同时支持中、英、日、韩四语种的类型检测
高精度版
在通用文字识别的基础上,提供更高精度的识别服务,并将字库从1w+扩展到2w+,能识别所有常用字和大部分生僻字
含位置信息版
在通用文字识别的基础上,返回文字在图片中的位置信息,方便用户进行版式的二次处理
高精度含位置版
在通用文字识别(高精度版)的基础上,返回文字在图片中的位置信息,方便用户进行版式的二次处理
2.平台接入
具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:
http://ai.baidu.com/forum/topic/show/943327
3.调用攻略(Python3)及评测
3.1首先认证授权:
在开始调用任何API之前需要先进行认证授权,具体的说明请参考:
http://ai.baidu.com/docs#/Auth/top
具体Python3代码如下:
#!/usr/bin/env python
import urllib
import base64
import json
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】
#获取token
def get_token():
host = ‘https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=’ + client_id + ‘&client_secret=’ + client_secret
request = urllib.request.Request(host)
request.add_header(‘Content-Type’, ‘application/json; charset=UTF-8’)
response = urllib.request.urlopen(request)
token_content = response.read()
#print (token_content)
if token_content:
token_info = json.loads(token_content)
token_key = token_info[‘access_token’]
return token_key
3.2百度通用文字识别分析接口调用:
详细说明请参考: https://ai.baidu.com/docs#/OCR-API-GeneralBasic/db0895e7
说明的比较清晰,这里就不重复了。
大家需要注意的是:
API访问URL:https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic
图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式
返回示例:
{
“log_id”: 2471272194,
“words_result_num”: 2,
“words_result”:
[
{“words”: " TSINGTAO"},
{“words”: “青島睥酒”}
]
}
Python3调用代码如下:
def general_basic(filename):
request_url = “https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic”
# 二进制方式打开图片文件
f = open(filename, 'rb')
img = base64.b64encode(f.read())
params = dict()
params['image'] = img
params = urllib.parse.urlencode(params).encode("utf-8")
access_token = get_token()
begin = time.perf_counter()
request_url = request_url + "?access_token=" + access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib.request.urlopen(request)
content = response.read()
end = time.perf_counter()
print('处理时长:'+'%.2f'%(end-begin)+'秒')
if content:
#print(content)
content=content.decode('utf-8')
#print(content)
data = json.loads(content)
print(data)
words_result=data['words_result']
print ("识别结果")
for item in words_result:
print (item['words'])
general_basic(’…/img/general3.jpg’)
4.功能评测:
选用不同的数据对效果进行测试,具体效果如下(以下例子均来自网上):
处理时长:13.07秒
识别结果:
ACKNOWLEDGEMENTS
We would like to thank all the designers and
contributors who have been involved in the
production of this book; their contributions
have been indispensable to its creation. We
would also like to express our gratitude to all
the producers for their invaluable opinions
and assistance throughout this project And to
the many others whose names are not credited
but have made specific input in this book, we
thank you for your continuous support
5.测试结论和建议
测试下来,整体识别效果不错。百度通用文字识别的很准确,速度也很快,用起来非常的方便。可以应用于
拍照/截图识别
使用通用文字识别技术,实现拍照文字识别、相册图片文字识别和截图文字识别,可应用于搜索、书摘、笔记、翻译等移动应用中,方便用户进行文本的提取或录入,有效提升产品易用性和用户使用体验
内容审核与监管
使用通用文字识别技术,实现对图像中文字内容的提取,结合文本审核技术识别违规内容,提示相应风险,协助进行违规处理,可应用于电商广告审核、舆情监管等场景,帮助用户有效规避业务风险
视频内容分析
使用通用文字识别技术,实现对视频中的字幕、标题、弹幕等文字内容的检测和识别,并根据文字位置判断文字类型,可应用于视频分类和标签提取、视频内容审核、营销分析等场景,有效降低人力成本,控制业务风险
纸质文档电子化
使用通用文字识别技术,实现对各类医疗单据、金融财税票据、法律卷宗等纸质文档的识别,并返回文字在图片中的位置信息以便于进行比对、结构化等处理,可满足医疗、金融、政务、法务、教育等行业文档快速录入、存档和检索的需求,有效降低企业人力成本,提高信息录入效率