Python整合百度OCR实现图片的文字识别 | 幽络源

Python整合百度OCR实现图片的文字识别 | 幽络源

前言

出这个教程的背景需求是:有的项目需要批量导出Word报告,人工写报告太慢了,于是用Python来批量生成报告,但是报告中的某些文字来源于图片中,免费的OCR库识别率很差,无论怎么调整都会有错误的识别,因为图片背景比较复杂,于是用Python整合百度OCR进行图片文字识别,发现非常的好用,而且每月百度OCR都有1千的免费使用次数额度,完全满足普通场景。

步骤概述

1.百度云开启OCR

2.创建OCR应用并获取密钥

3.Python整合百度云OCR

4.多场景测试

5.封装为工具函数

步骤1:百度云开启OCR

进入百度云网址 https://cloud.baidu.com,搜索OCR,如图

图片 1

点击立即使用,如图

图片 2

完成实名,如图

图片 3

完成实名后还是点击立即使用去控制台,如图

图片 4

点击概述中的去领取,如图

图片 5

选择通用场景OCR,勾选全部,点击0元领取,如图

图片 6

图片 7

步骤2:创建OCR应用并获取密钥

在控制点击创建应用,如图

图片 8

填入任意名称,只勾选通用文字识别(标准版),底部选择个人,描述填入个人测试,然后点击立即创建,如图

图片 9

图片 10

创建后可在控制台的应用列表看到自己的密钥

API Key就是access_key_id,Secret Key就是access_key_secret

建议把这两个密钥保存下来,如图

图片 11

步骤3:Python整合百度云OCR

点击左侧栏目的API在线调试,然后切换到通用文字识别(标准版),如图

图12

图13

在上图此时可以看到右边直接为我们演示了python的示例代码,我们将其复制下来,在pycharm中进行测试修改,然后直接运行看看,可以看到提示我们参数中没有携带图片,如图

图14

来到刚才的示例代码处,切换到技术文档(注意:还是通用文字识别标准版),往下拉可以看到有个image参数,这个参数就是提供给我们传图片的,如图

图15

来到pycharm,我们创建一个函数名为 get_file_content_as_base64,用于获取读取图片数据,代码为如下

def get_file_content_as_base64(path, urlencoded=False):
    """
    获取文件base64编码
    :param path: 文件路径
    :param urlencoded: 是否对结果进行urlencoded
    :return: base64编码信息
    """
    with open(path, "rb") as f:
        content = base64.b64encode(f.read()).decode("utf8")
        if urlencoded:
            content = urllib.parse.quote_plus(content)
    return content

图16

然后我们找一张带文字的图片放在和python文件同目录下,最好是背景比较复杂的,这样更能体现大厂OCR的强大之处,我使用的图为如下

testPic

一定要注意:所使用的图片不可超过8m,因为百度OCR不支持大图的处理,若非要处理,可用其他工具将图片压缩体积

我将图片和python文件放在一起,便于测试,如图

图17

现在我们向代码中传递图片并运行代码,使用刚才创建的函数 get_file_content_as_base64 获取图片数据,然后在payload后拼接图片参数,运行,如图

图18

可以看到控制台中便是OCR识别后响应的JSON数据,至此,幽络源的python整合OCR图像文字识别基础教程结束,后续可根据需要自行封装为工具函数、处理识别后的数据、做成识别软件等。

我们的网络技术交流Q群:307531422

© 版权声明
THE END
喜欢就支持一下吧
分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    暂无评论内容