2024 年最新 Python 基于百度智能云实现文字识别 OCR 详细教程

news2024/11/25 14:49:51

文字识别 OCR 概述

文字识别OCR(Optical Character Recognition)提供多场景、多语种、高精度的文字检测与识别服务,多项ICDAR指标居世界第一。广泛适用于金融服务、财税报销、法律政务、保险医疗、快递物流、交通出行、教育培训等场景,显著提升信息提取和录入效率,实现信息处理的“电子化”、“自动化”,助力企业加快数字化建设和智能化升级。

在这里插入图片描述

文字识别创建应用

在这里插入图片描述
基本信息

在这里插入图片描述

安装 OCR Python SDK

OCR Python SDK 下载安装地址:https://ai.baidu.com/sdk#ocr

OCR Python SDK 目录结构

├── README.md
├── aip                   //SDK目录
│   ├── __init__.py       //导出类
│   ├── base.py           //aip基类
│   ├── http.py           //http请求
│   └── ocr.py //OCR
└── setup.py              //setuptools安装

安装使用 Python SDK

如果已安装 pip,执行 pip install baidu-aip 即可
如果已安装 setuptools,执行 python setup.py install 即可

在这里插入图片描述

C:\Users\Administrator\Downloads\aip-python-sdk-4.16.14>python setup.py install
······
Using e:\environment\python312\lib\site-packages
Finished processing dependencies for baidu-aip==4.16.13

新建 AipOcr

from aip import AipOcr

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

AipOcr 是 OCR 的 Python SDK 客户端,为使用 OCR 的开发人员提供了一系列的交互方法。常量APP_ID可在百度智能云控制台应用列表中创建应用获得,常量API_KEY与SECRET_KEY在创建完毕应用后均可获得,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

注意:如您以前是百度智能云的老用户,其中API_KEY对应百度智能云的“Access Key ID”,SECRET_KEY对应百度智能云的“Access Key Secret”。

配置 AipOcr

在这里插入图片描述

如果用户需要配置 AipOcr 的网络请求参数(一般不需要配置),可以在构造 AipOcr 之后调用接口设置参数。

标准版接口说明

接口说明:用户向服务请求识别某张图中的所有文字。

""" 读取文件 """
def get_file_content(filePath):
	with open(filePath, "rb") as fp:
		return fp.read()

image = get_file_content('文件路径')
url = "https://www.x.com/sample.jpg"
pdf_file = get_file_content('文件路径')

res_image = client.basicGeneral(image)
res_url = client.basicGeneralUrl(url)
res_pdf = client.basicGeneralPdf(pdf_file)
print(res_image)
print(res_url)
print(res_pdf)

options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"
res_image = client.basicGeneral(image, options)
res_url = client.basicGeneralUrl(url, options)
res_pdf = client.basicGeneralPdf(pdf_file, options)
print(res_image)
print(res_url)
print(res_pdf)

详细接口请求说明:https://ai.baidu.com/ai-doc/OCR/7kibizyfm

本地图片识别案例

读取本地图片进行提交识别

baidu_ocr_tool.py

from aip import AipOcr


def get_local_image(filePath: str):
    """
    获取本地图片
    :param filePath:
    :return:
    """
    with open(filePath, "rb") as fp:
        return fp.read()


def post_local_image_recognize(client: AipOcr, filePath: str):
    """
    提交本地图片文本识别请求
    :param client:
    :param filePath:
    :return:
    """
    result = client.basicGeneral(get_local_image(filePath))
    return result


def format_recognize_result(result):
    """
    格式化请求数据
    :param result:
    :return:
    """
    format_text = ""
    for words in result["words_result"]:
        format_text = format_text + words["words"]
    return format_text

主函数源码

import os
import time
from aip import AipOcr
import dotenv

import baidu_ocr_tool

dotenv.load_dotenv(".env")

APP_ID = os.getenv("APP_ID")
API_KEY = os.getenv("API_KEY")
SECRET_KEY = os.getenv("SECRET_KEY")

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

"""记录开始时间"""
start_time = time.time()

"""调用OCR识别函数"""
result = baidu_ocr_tool.post_local_image_recognize(client=client, filePath="./images/test.jpg")
format_text = baidu_ocr_tool.format_recognize_result(result=result)

"""记录结束时间"""
end_time = time.time()

"""计算并打印执行时间"""
execution_time = end_time - start_time
print(f"Execution time: {execution_time:.4f} seconds")

"""打印格式化后的OCR结果"""
print(format_text)

网络图片识别案例

读取网络图片进行提交识别

baidu_ocr_tool.py

from aip import AipOcr


def post_web_image_recognize(client: AipOcr, imageUrl: str):
    """
    提交网络图片文本识别请求
    :param client:
    :param imageUrl:
    :return:
    """
    result = client.basicGeneralUrl(url=imageUrl)
    return result


def format_recognize_result(result):
    """
    格式化请求数据
    :param result:
    :return:
    """
    format_text = ""
    for words in result["words_result"]:
        format_text = format_text + words["words"]
    return format_text

主函数源码

import os
import time
from aip import AipOcr
import dotenv

import baidu_ocr_tool

dotenv.load_dotenv(".env")

APP_ID = os.getenv("APP_ID")
API_KEY = os.getenv("API_KEY")
SECRET_KEY = os.getenv("SECRET_KEY")

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

"""记录开始时间"""
start_time = time.time()

"""调用OCR识别函数"""
result = baidu_ocr_tool.post_web_image_recognize(client=client, imageUrl="https://ai.bdstatic.com/file/03D0F32FE36C4E3A893D1AD60E797F5B")
format_text = baidu_ocr_tool.format_recognize_result(result=result)

"""记录结束时间"""
end_time = time.time()

"""计算并打印执行时间"""
execution_time = end_time - start_time
print(f"Execution time: {execution_time: .4f} seconds")

"""打印格式化后的OCR结果"""
print(format_text)

运行结果

Execution time: 0.9773 seconds
AI开放平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1803658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【庞加莱几何-02】反演定理和证明

文章目录 一、说明二、 inversion和 reflection三、圆反演的定义四、广义的圆反演成圆 关键词:inversion、reflection 一、说明 这里是庞加莱几何的第二篇文章,是庞加莱基本几何属性的研究。本篇主要说清楚,什么是反演,在反演情况…

ROS基础学习-ROS通信机制进阶

ROS通信机制进阶 目录 0.简介1.常用API1.1 节点初始化函数1.1.1 C++1.1.2 Python1.2 话题与服务相关函数1.2.1 对象获取相关1.2.1.1 C++1.2.1.2 Python1.2.2 订阅对象相关1.2.2.1 C++1.2.2.2 Python1.2.3 服务对象相关函数1.2.3.1 C++1.2.3.2 Python1.2.4 客户端对象相关1.2.4.…

vue 使用 Vxe UI vxe-print 实现复杂的 Web 打印,支持页眉、页尾、分页的自定义模板

Vxe UI vue 使用 Vxe UI vxe-print 实现复杂的 Web 打印,支持页眉、页尾、分页的自定义模板 官方文档 https://vxeui.com 查看 github、gitee 页眉-自定义标题 说明:vxe-print-page-break标签用于定义分页,一个标签一页内容,超…

QT 音乐播放器【二】 歌词同步+滚动+特效

文章目录 效果图概述代码解析歌词歌词同步歌词特效 总结 效果图 概述 先整体说明一下这个效果的实现,你所看到的歌词都是QGraphicsObject,在QGraphicsView上绘制(paint)出来的。也就是说每一句歌词都是一个图元(item)。 为什么用QGraphicsView框架&…

QT中为程序加入超级管理员权限

QT中为程序加入超级管理员权限 Chapter1 QT中为程序加入超级管理员权限1. mingw编译器2. MSVC编译器3. CMAKE Chapter2 如何给QT程序添加管理员权限(UAC)的几种方法1、Qt Creator中方案一:(仅适用于使用msvc编译器)方案二:&#x…

【NI国产替代】产线测试:数字万用表(DMM),功率分析仪,支持定制

数字万用表(DMM) • 6 位数字表显示 • 24 位分辨率 • 5S/s-250KS/s 采样率 • 电源和数字 I/O 均采用隔离抗噪技术 • 电压、电流、电阻、电感、电容的高精度测量 • 二极管/三极管测试 功率分析仪 0.8V-14V 的可调输出电压,最大连…

【NI国产替代】高速数据采集模块,最大采样率为 125 Msps,支持 FPGA 定制化

• 双通道高精度数据采集 • 支持 FPGA 定制化 • 双通道高精度采样率 最大采样率为 125 Msps12 位 ADC 分辨率 最大输入电压为 0.9 V -3 dB 带宽为 30 MHz 支持 FPGA 定制化 根据需求编程实现特定功能和性能通过定制 FPGA 实现硬件加速,提高系统的运算速度FPGA…

【每日刷题】Day59

【每日刷题】Day59 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1103. 分糖果 II - 力扣(LeetCode) 2. 1051. 高度检查器 - 力扣&#xff08…

【Vue】Vue路由-重定向

问题 网页打开时, url 默认是 / 路径,未匹配到组件时,会出现空白 解决方案 重定向 → 匹配 / 后, 强制跳转 /home 路径 语法 { path: 匹配路径, redirect: 重定向到的路径 }, 比如: { path:/ ,redirect:/home }代码示例 const…

智慧互联网医院系统的技术架构与实现

随着信息技术的迅猛发展,智慧互联网医院系统成为现代医疗服务的重要组成部分。该系统融合了多种先进技术,旨在提升医疗服务的效率和质量,优化患者体验。本文将深入探讨智慧互联网医院系统的技术架构及其实现方法,并提供相关代码示…

GPT-4o仅排第二!北大港大等6所高校联手,发布权威多模态大模型榜单!

多模态大模型视频分析能力榜单出炉: Gemini 1.5 Pro最强,GPT-4o仅排第二? 曾经红极一时的GPT-4V屈居第三。 3.5研究测试:hujiaoai.cn 4研究测试:askmanyai.cn Claude-3研究测试:hiclaude3.com 最近&#…

数据挖掘--认识数据

数据挖掘--引论 数据挖掘--认识数据 数据挖掘--数据预处理 数据挖掘--数据仓库与联机分析处理 数据挖掘--挖掘频繁模式、关联和相关性:基本概念和方法 数据挖掘--分类 数据挖掘--聚类分析:基本概念和方法 数据对象与属性类型 属性:是一…

接口(API)开发,测试工具-apifox

前言 为什么需要接口(API)? 因为不同的平台或系统可能使用不同的技术栈、编程语言或数据格式。API提供了一个标准化的方式,使得这些不同的系统可以相互交换数据和功能调用,实现互操作性 在开发日常的项目交互中,不…

【数据可视化系列】使用Python和Seaborn绘制相关性热力图

热力图(Heatmap)是一种数据可视化工具,它通过使用颜色的深浅来展示数据矩阵中数值的大小或密度。在热力图中,每种颜色的深浅代表数据的一个特定值或值的范围,通常使用红色、黄色和绿色等颜色渐变来表示数据的热度&…

uinty游戏界面模糊的解决方法

1.把低分辨率关掉 2.调缩放,不要调长宽高 3.调整画布的分辨率 4.调整图片的像素点

mqtt-emqx:paho.mqttv5的简单例子

# 安装emqx 请参考【https://blog.csdn.net/chenhz2284/article/details/139551293?spm1001.2014.3001.5502】 # 下面是示例代码 【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</…

前端多人项目开发中,如何保证CSS样式不冲突?

在前端项目开发中&#xff0c;例如突然来了一个大项目&#xff0c;很可能就需要多人一起开发&#xff0c;领导说了&#xff0c;要快&#xff0c;要快&#xff0c;要快&#xff0c;你们给我快。然后下面大伙就一拥而上&#xff0c;干着干着发现&#xff0c;一更新代码&#xff0…

【介绍下什么是Kubernetes编排系统】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

spark-3.5.1+Hadoop 3.4.0+Hive4.0 分布式集群 安装配置

Hadoop安装参考: Hadoop 3.4.0HBase2.5.8ZooKeeper3.8.4Hive4.0Sqoop 分布式高可用集群部署安装 大数据系列二-CSDN博客 一 下载:Downloads | Apache Spark 1 下载Maven – Welcome to Apache Maven # maven安装及配置教程 wget https://dlcdn.apache.org/maven/maven-3/3.8…

[word] word如何清除超链接 #媒体#笔记#知识分享

word如何清除超链接 办公中&#xff0c;少不了使用word&#xff0c;这个是大家必备的软件&#xff0c;今天给大家分享下word如何清除超链接的操作办法&#xff0c;一起来学习下吧&#xff01; 1、清除所有超链接 按下组合键CtrlshiftF9&#xff0c;就可以将网上复制带有超链…