百度AI攻略:百度通用文字识别

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代码如下:

# -*- coding: utf-8 -*-

#!/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.功能评测:

选用不同的数据对效果进行测试,具体效果如下(以下例子均来自网上):

处理时长:0.89秒

利洗手间

Toile

处理时长:0.63秒

POSTCARD

处理时长: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.测试结论和建议

测试下来,整体识别效果不错。百度通用文字识别的很准确,速度也很快,用起来非常的方便。可以应用于

拍照/截图识别

使用通用文字识别技术,实现拍照文字识别、相册图片文字识别和截图文字识别,可应用于搜索、书摘、笔记、翻译等移动应用中,方便用户进行文本的提取或录入,有效提升产品易用性和用户使用体验

内容审核与监管

使用通用文字识别技术,实现对图像中文字内容的提取,结合文本审核技术识别违规内容,提示相应风险,协助进行违规处理,可应用于电商广告审核、舆情监管等场景,帮助用户有效规避业务风险

视频内容分析

使用通用文字识别技术,实现对视频中的字幕、标题、弹幕等文字内容的检测和识别,并根据文字位置判断文字类型,可应用于视频分类和标签提取、视频内容审核、营销分析等场景,有效降低人力成本,控制业务风险

纸质文档电子化

使用通用文字识别技术,实现对各类医疗单据、金融财税票据、法律卷宗等纸质文档的识别,并返回文字在图片中的位置信息以便于进行比对、结构化等处理,可满足医疗、金融、政务、法务、教育等行业文档快速录入、存档和检索的需求,有效降低企业人力成本,提高信息录入效率

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天要记录的 是那 一潭子被风吹皱的水 露出千道万道纹理 娃儿爬上爬下的欢乐 还有那摇摇摆摆的步履 今天要记录的 ...
    安静的影子阅读 192评论 0 3
  • 今日份的梦。 人群中,一个人身穿黑色呢大衣,厚重的卡其色围巾看上去很暖,偏分的头发梳理出整齐的线条,他眼角带笑的走...
    李小蔫儿阅读 315评论 0 1
  • 本文是一篇《Java 8实战》的阅读笔记,阅读大约需要5分钟。 有点标题党,但是这确实是我最近使用Lambda表达...
    程序熊大阅读 1,669评论 3 12