AI实战:借助Python与PaddleOCR,实现高精度文本检测与识别

news2024/11/15 11:13:46

1、引言

欢迎来到今天的教程:“驾驭PaddleOCR,解锁Python文字识别新技能”。在本篇文章中,我们将手把手教你如何安装及使用这款强大的Python库,轻松应对各类图像中的文字识别问题。

2、安装PaddleOCR

首先确保你的环境中已安装了 Python 和 pip 包管理器。然后,通过以下命令安装PaddleOCR及其依赖项:

# 安装paddleocr
pip3 install paddleocr -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 安装CPU版paddlepaddle
conda install paddlepaddle==2.6.0 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/

若需使用 GPU 加速功能,请额外安装 GPU 版本的 PaddlePaddle(需预先配置CUDA环境):

python -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html

接着,你可以验证一下PaddleOCR是否成功安装:

import paddleocr
print(paddleocr.__version__)

如果出现PaddlePaddle is installed successfully!,说明您已成功安装。

3、示例代码及应用

安装完毕后,我们可以实际操作一下。以下是使用PaddleOCR进行文字识别的基本代码片段:
1、导入需要的包

from paddleocr import PaddleOCR
import cv2
from PIL import ImageDraw, Image, ImageFont

2、初始化PaddleOCR

# 初始化PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='ch')  # 使用方向分类并指定语言为中文

3、读取图片

img = cv2.imread('img/1.png')
img_pil = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # OpenCV读取的图像需要转换为RGB格式供PIL使用
img_draw = Image.fromarray(img_pil)

4、加载字体,显示中文

# 加载字体,显示中文
font = ImageFont.truetype("source/simsun.ttc", size=16, encoding='utf-8')

5、对图像进行检测(返回包含边界框和旋转角度的结果)

result = ocr.ocr(img, det=True)

6、在原图上标注出识别出的文本框

draw = ImageDraw.Draw(img_draw)
for line in result[0]:
    bbox, text = line[:4], line[-1]
    bbox_xyxy = bbox[0][0]+bbox[0][2]
    text = str(list(text)[0])
    print("Box coordinates:", bbox[0][0]+bbox[0][2])
    print("Recognized text:", text)

    draw.rectangle(tuple(bbox_xyxy), outline='red')  # 画出红色边框
    draw.text((bbox_xyxy[0], bbox_xyxy[1] - 10), text, fill='blue', font=font)  # 在框上方写入文字(根据实际情况调整偏移量)

# 将标注后的图像保存或显示
# img_draw.save('annotated_image.jpg', 'JPEG')
# 或者显示图像
img_draw.show()

输入一张图片测试效果如下:

从此刻起,无论是初级开发者还是高级用户,都能通过PaddleOCR在 Python 世界里游刃有余地解决各种文字识别任务!

完整源代码请关注微信公众号后回复 OCR 获取网盘下载链接。
手把手PythonAI编程

往期推荐:

手把手教你玩转人工智能算法,Yolov5实践教程(1)(附源码)

手把手教你玩转人工智能算法,Yolov5实践教程(2)(附源码)

手把手教你生成有趣有料的素描图(附代码)

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

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

相关文章

苹果电脑下载crossover对电脑有影响吗 crossover mac 好用吗CrossOver虚拟机 CrossOver打游戏

苹果电脑下载crossover对电脑有影响吗? 在苹果电脑下载安装crossover对电脑没有什么影响,并且可以解决macOS系统不能安装Windows应用程序的问题。相较于虚拟机和双系统而言,crossover安装软件更简单,占用内存也更小。下面我们来看…

Css基础——精灵图(sprites)和字体图标

1、精灵图 1.1、精灵图的由来 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送 请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。 因此,为了有效地减…

可行性研究报告模板

1业务需求可行性分析 2技术可行性分析 2.1规范化原则 2.2高度的兼容性和可移植性 2.3人性化、适用性 2.4标准化统一设计原则 2.5先进安全可扩展性原则 3开发周期可行性分析 4人力资源可行性分析 5成本分析 6收益分析 7结论 软件项目全套资料获取下载:软件开发全套资…

链路聚合练习

下面的接口都改为Etherent [LSW1]int Eth-Trunk 1 创建一个eth-trunk 1[LSW1-Eth-Trunk1]int g0/0/1[LSW1-GigabitEthernet0/0/1]eth-trunk 1 将接口0/0/1加入eth-trunk 1[LSW1-GigabitEthernet0/0/1]int g0/0/2[LSW1-GigabitEthernet0/0/2]eth-trunk 1[LSW1-GigabitEthernet…

CAQ六西格玛绿带认证流程:从能力考试到评价全解析

六西格玛绿带认证,作为质量管理领域的一个重要里程碑,对于专业人士来说是一项极具价值的认证。张驰咨询将详细解读这一流程,包括理论知识考试、项目实践能力评价,以及期满换证的相关细节。 一、理论知识考试 六西格玛绿带的理论…

OpenAI机器人,一出手就是王炸

「借助 OpenAI 的能力,Figure 01 现在可以与人全面对话了!」 本周三,半个硅谷都在投的明星机器人创业公司Figure,发布了自己第一个 OpenAI 大模型加持的机器人 demo。 这家公司在 3 月 1 日刚刚宣布获得 OpenAI 等公司的投资&…

论文阅读——VSA

VSA: Learning Varied-Size Window Attention in Vision Transformers 方法: 给定输入特征X,VSA首先按照基线方法的例程,将这些标记划分为几个窗口Xw,窗口大小为预定义的w。我们将这些窗口称为默认窗口,并从默认窗口中…

(一)搭建Android Studio开发环境

一、JDK 1、下载 2、安装 双击进行安装,修改安装路径为:D:\Java\jdk-17.0.4.1即可,安装完成后目录如下: 配置环境变量 3、测试 WinR,输入cmd,按Enter后,键入:java --version&…

面试经典-18-合并两个有序链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 解 class Solution {// 成功public ListNode mergeTwoLists(ListN…

探索世界的第一步:新生儿抬头指南

引言: 新生儿的抬头能力是他们发展早期的重要里程碑之一。这不仅是对颈部肌肉的锻炼,更是对视觉和感觉系统的发展的重要促进。在这个阶段,父母的关注和引导至关重要,以帮助宝宝安全地探索和发展。 1. 激发兴趣: 从宝宝…

matlab调用nlopt时向目标函数中传入数据的案例

matlab调用nlopt时向目标函数中传入数据的案例,如代码所示: clc,clear,close allopt.algorithm NLOPT_LN_AUGLAG; opt.lower_bounds -10; opt.upper_bounds 10; opt.min_objective (x) goal_function(x,[1,2,3,4,5,6,7,8,9]); opt.xtol_rel 1e-8; …

week07day01(powerbi)

一. Power BI简介 1. 构成部分 power query: 进行简单的数据清洗power pivot : 进行指标计算power view : 进行报表视图 二. Power Query (进行数据清洗) 1. 如何获取数据: 点击获取数据 ——> 选择导入数据的类型——> 会出现 "加载&…

Python学习:数据类型转换

数据类型转换 对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。 Python 数据类型转换可以分为两种: 隐式类型转换 - 自动完成显式类型转换 - 需要使用类型函数来转换 隐式类型转换 Python 会自动…

c/c++ | 求叶子结点个数 |构建B树 | 动态规划--找叶子结点个数

是这样的&#xff0c;一道代码题&#xff0c;根据输入数据&#xff0c;计算运行结果 #include<bits/stdc.h> using namespace std; vector<int>g[10]; int ans 0; void dfs(int x){if(g[x].size() 0){ans;return;}for(int i 0; i < g[x].size(); i){dfs(g[x]…

CVE-2019-5782:kArgumentsLengthType 设置偏小导致优化阶段可以错误的去除 CheckBound 节点

文章目录 环境搭建漏洞分析笔者初分析笔者再分析漏洞触发源码分析 漏洞利用总结 环境搭建 sudo apt install pythongit reset --hard b474b3102bd4a95eafcdb68e0e44656046132bc9 export DEPOT_TOOLS_UPDATE0 gclient sync -D// debug version tools/dev/v8gen.py x64.debug ni…

学会这几步,让酷开系统的使用体验更加出色!

在当今数字化快速发展的时代&#xff0c;用户体验&#xff08;User Experience, UX&#xff09;已成为产品和服务成功的关键因素之一。随着市场竞争的加剧&#xff0c;仅仅提供功能性强大的产品已不足以满足用户的需求&#xff0c;如何提升整体体验、确保用户的满意度和忠诚度&…

uniapp开发的跳转到小程序

uniapp开发的h5跳转到小程序 https://www.cnblogs.com/xiaojianwei/p/16352698.html官方&#xff1a;使用 URL Scheme 打开小程序 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html 链接代码 <a href"weixin://dl/business/…

标准砂轮加工麻花钻或者铣刀螺旋槽齿形

螺旋槽与砂轮的空间位置运动关系可用下图表示&#xff0c;螺旋槽的形成靠工件绕轴线的旋转以及砂轮沿轴线的移动来完成的&#xff0c;以下坐标系可以清楚的描述二者之间的运动关系&#xff1a; 砂轮的形状如下&#xff1a; 经过坐标变换和下面这个重要的公式来计算工件的齿形…

【Docker】在 Ubuntu20.04 上配置 Docker 开发环境

【Docker】在 Ubuntu20.04 上配置 Docker 开发环境 1 安装 Docker2 加入 Docker 用户组 1 安装 Docker 参考文档: Link 卸载以避免冲突 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done设…

水文监测站的工作原理

TH-SW3水文监测站是一种专门用于监测水文气象数据的设施或场所&#xff0c;通常位于河流、湖泊、水库或其他水体附近。其主要功能包括收集和记录与水文气象相关的数据&#xff0c;如降雨量、水位、水温、流量、蒸发量等信息。这些数据对于水资源管理、防洪抗旱、生态环境保护等…