Python调用百度AI实现图片上文字识别功能实例

 更新时间:2021年09月06日 11:01:35   作者:鱼尾努力淦饭  
百度AI功能还是很强大的,百度AI开放平台真的是测试接口的天堂,免费接口很多,当然有量的限制,但个人使用是完全够用的,下面这篇文章主要给大家介绍了关于Python调用百度AI实现图片上文字识别功能的相关资料,需要的朋友可以参考下

简介

Python免费调用百度AI实现图片上面的文字识别

步骤

安装百度AI库

!pip install baidu-aip

注册百度AI开放平台

先注册百度AI,获得ID和密钥。注册方法可参考:注册方法 只需走到 “1.6 获取密钥” 即可。然后记录下自己的APP_ID、API_KEY、SECRET_KEY,就可以开始了。

调用glob库

glob库用于获得指定路径下的指定后缀的文件,图片使用的是《数学模型》pdf扫描版,部分如下:

import glob
path = "数学模型\\"
glob.glob(path+"*.png")

指定文件夹中的指定的.png后缀的文件,全部提取出来了:

选取第一张图片 “数学模型1.png” 做测试:

files = glob.glob(path+"*.png")
file = files[0]

调用AipOcr库识别文字

导入AipOcr模块,这个模块是用于做文字识别的(OCR即Optical Character Recognition,光学字符识别)。填入你申请的ID和KEY,client = AipOcr()是固定写法。先用二进制方式rb打开,然后读取,再调用百度AI进行识别,并将识别结果存入message变量。

from aip import AipOcr #导入AipOcr模块,用于做文字识别
import glob

APP_ID = '*********' # 你申请的
API_KEY = '*********'# 你申请的
SECRET_KEY = '*********'# 你申请的
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

pic = open(file,'rb')# 以二进制(rb)打开
img = pic.read() # 读取
message = client.basicGeneral(img) # 调用百度AI识别图片中的文字

查看message参数,结果如下:

可见,message参数的结果为 “大字典” 形式,其中的键 words_result 所对应的值为一个 “大列表” ,这个列表里又有很多键值对,键都是words,值就是AI从图片上识别出来的内容。使用语句message['words_result'][0...n]['words']可以筛选出该页的标题:

message['words_result'][1]['words']

for循环逐行提取:

for words in message['words_result']:
    word = words['words'] # 提取文字
    print(word)

识别效果图:

识别也不是完美的,有很多识别错误与未识别出的文字。当然,原图字体越清晰,识别度越高。

可能会遇到的问题

识别过程中可能会遇到类似识别错误(无法识别)问题,原因是未领取免费识别次数,解决过程如下:

百度OCR API识别失败:Open api qps request limit reached 错误 解决方法

几个月前,用Python写了个小工具,主要是用到了百度的OCR API做了个文字识别的小工具,前面一直能用,然而今天,在使用的时候,报错了。
错误如下:Open api qps request limit reached

最后终于找到了解决方法,原来,现在要自己去领取免费的测试额度了!!!

领取免费测试额度的地址:(或者你在你原来那个调用的那个项目里也可以找到免费领取测试额度,见下图)

https://console.bce.baidu.com/ai/#/ai/ocr/overview/resource/getFree

领取完之后,还是用原来项目的appID,apiKey,secretKey即可。

然后等领取额度到账后,重新运行就行了。

批量操作

批量操作的核心为for循环,txt_file = open('数学模型.txt', 'a')指打开名字为“数学模型”的文本文件(若不存在则自动新建),模式为添加模式,即'a'模式。添加模式是指,如果文本中已经有一些内容,则接着往下写,不会影响原来的内容。如果是'w'模式,则会将之前的内容全部覆盖。然后遍历待处理的图片,逐个处理:

from aip import AipOcr #导入AipOcr模块,用于做文字识别
import glob

APP_ID = '*********' # 你申请的
API_KEY = '*********'# 你申请的
SECRET_KEY = '*********'# 你申请的
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

path = "数学模型\\"
files = glob.glob(path+"*.png")

txt_file = open('数学模型.txt', 'a')

for file in files:
    pic = open(file,'rb')# 以二进制(rb)打开
    img = pic.read() # 读取
    message = client.basicGeneral(img) # 调用百度AI识别图片中的文字
    for words in message['words_result']:
        word = words['words'] # 提取文字
        print(word)

        txt_file.write(word) # 将文字写入文本文件

txt_file.close() # 关闭文本文件

总结

到此这篇关于Python调用百度AI实现图片上文字识别功能的文章就介绍到这了,更多相关Python图片上文字识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python字符串格式化str.format()方法的实现

    Python字符串格式化str.format()方法的实现

    字符串的格式化是一个非常重要的功能,用于创建包含变量值的字符串,本来就来介绍一下Python字符串格式化str.format()方法的实现,感兴趣的可以了解一下
    2023-11-11
  • matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小

    matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小

    在撰写论文时常常会用到matplotlib来绘制三维散点图,下面这篇文章主要给大家介绍了关于matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程

    python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程

    今天小编就为大家分享一篇python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python简单实现获取当前时间

    python简单实现获取当前时间

    最近项目中经常需要python去取当前的时间,虽然不是很难,但是老是忘记,用一次丢一次,为了能够更好的记住,我今天特意写下python 当前时间这篇文章,如果你觉的对你有用的话,可以收藏下。
    2016-08-08
  • Python中的pip命令安装与使用轻松入门教程

    Python中的pip命令安装与使用轻松入门教程

    pip是Python的包管理工具,用于安装、卸载和管理第三方库,本文详细介绍了pip的安装和使用方法,包括检查pip是否已安装、手动安装或升级pip以及pip的基本使用,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • Python环境搭建以及Python与PyCharm安装详细图文教程

    Python环境搭建以及Python与PyCharm安装详细图文教程

    PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,这篇文章主要给大家介绍了关于Python环境搭建以及Python与PyCharm安装的详细图文教程,需要的朋友可以参考下
    2024-03-03
  • 基于python时间处理方法(详解)

    基于python时间处理方法(详解)

    下面小编就为大家带来一篇基于python时间处理方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • python读取txt文件并逐行输出字符串

    python读取txt文件并逐行输出字符串

    Python提供了简单且方便的方法来读取txt文件,使用open()函数和readlines()方法逐行输出文件中的字符串内容,我们可以轻松地读取文件内容,并通过循环遍历的方式逐行处理,读取txt文件的方法在各种应用场景中非常常见,可以用于数据分析、文本处理、日志分析等
    2023-10-10
  • Python通过90行代码搭建一个音乐搜索工具

    Python通过90行代码搭建一个音乐搜索工具

    这篇文章主要介绍了Python通过90行代码搭建一个音乐搜索工具,需要的朋友可以参考下
    2015-07-07
  • 利用Python求解阿基米德分牛问题

    利用Python求解阿基米德分牛问题

    这篇文章主要为大家详细介绍了如何利用Python优雅地求解阿基米德分牛问题,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-03-03

最新评论