使用paddleOCR实现文字识别

本文介绍如何在Ubuntu系统中使用PaddleOCR进行图像文字识别。项目包括了从图片中检测并框选文字,以及解决OCR识别中文时的乱码问题。提供了环境搭建、代码示例及可视化效果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:

Ubuntu 系统,给定一张图,识别图中的文字,以 “文字位置(4个2维坐标,可确定一个四边形)+文字内容 ”的形式返回输出。

效果展示:

下图中左图是原图,将ocr 检测到的文字区域框起来了;右图是按照原图大小生成的黑底图片,将ocr检测到的文字区域框起来,并将文字区域内识别的文字写进框内。

项目代码:

https://github.com/JianTang2000/OCR_certification

在github的 py_env_build.sh  和 requirements.txt 中有环境搭建的指令,可以按照操作;

img_ocr.py 文件给出

### 使用 PaddleOCR 进行文字识别的步骤 PaddleOCR 是一个基于深度学习的开源文字识别工具库,支持多种语言和文字识别任务。其核心优势在于模型性能优越、部署灵活,并支持自定义训练。以下是使用 PaddleOCR 进行文字识别的基本步骤: #### 1. 安装 PaddleOCR 和相关依赖 PaddleOCR 依赖于 PaddlePaddle 框架,因此需要先安装 PaddlePaddle。可以使用 pip 快速安装 PaddlePaddle 和 PaddleOCR: ```bash pip install paddlepaddle pip install paddleocr ``` 如果使用 GPU,确保安装支持 GPU 的 PaddlePaddle 版本。 #### 2. 初始化 PaddleOCR 模型 在 Python 中,可以通过导入 `PaddleOCR` 类并初始化模型来加载预训练模型。默认情况下,PaddleOCR 使用中文识别模型,但也可以根据需求指定其他语言模型。 ```python from paddleocr import PaddleOCR # 初始化 PaddleOCR 模型,使用默认的中文模型 ocr = PaddleOCR(use_angle_cls=True, lang='ch') # 可选参数,如 use_angle_cls 表示是否使用方向分类 ``` #### 3. 读取图像并进行文字识别 PaddleOCR 支持多种图像输入方式,包括本地路径、OpenCV 读取的图像等。以下是一个使用本地图像路径进行识别的示例: ```python # 指定图像路径 img_path = 'example.jpg' # 进行文字识别 result = ocr.ocr(img_path, cls=True) # cls 表示是否使用分类模型 ``` #### 4. 解析并展示识别结果 识别结果通常是一个包含边界框和文本的列表结构。可以通过遍历结果来提取识别的文字内容。 ```python # 遍历识别结果 for line in result: # line[1] 包含识别的文本和置信度 print(line[1][0]) # 输出识别的文本 ``` #### 5. 可选:使用 OpenCV 读取图像 如果需要对图像进行预处理(如调整大小、灰度化等),可以使用 OpenCV 读取图像并将其传递给 PaddleOCR。 ```python import cv2 # 使用 OpenCV 读取图像 img = cv2.imread(img_path) # 进行文字识别 result = ocr.ocr(img, cls=True) ``` #### 6. 部署与优化 PaddleOCR 支持多种部署方式,包括 CPU、GPU、ONNX Runtime 等。可以通过修改配置文件或代码参数来优化性能,例如调整推理设备、设置批处理大小等。 --- ### 示例代码总结 以下是一个完整的示例代码,涵盖安装依赖、初始化模型、读取图像、识别文字和输出结果: ```python from paddleocr import PaddleOCR import cv2 # 初始化 PaddleOCR 模型 ocr = PaddleOCR(use_angle_cls=True, lang='ch') # 图像路径 img_path = 'example.jpg' # 使用 OpenCV 读取图像 img = cv2.imread(img_path) # 进行文字识别 result = ocr.ocr(img, cls=True) # 输出识别结果 for line in result: print(line[1][0]) ``` 通过上述步骤,可以快速实现基于 PaddleOCR文字识别功能。具体参数和优化策略可以根据实际需求进行调整。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clark Kent 2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值