python + paddleocr
时间: 2025-05-28 07:43:53 浏览: 18
### 如何在Python中使用PaddleOCR进行OCR识别
要在 Python 中使用 PaddleOCR 进行 OCR 识别,可以按照以下方法操作。以下是详细的说明以及代码示例:
#### 安装依赖库
首先需要安装 PaddleOCR 库及其依赖项。可以通过 pip 工具完成安装:
```bash
pip install paddleocr
```
如果遇到 GPU 支持或其他环境配置问题,可以根据具体需求调整安装选项。
---
#### 初始化 PaddleOCR 实例
创建一个 PaddleOCR 对象实例时,可以选择多种参数来优化性能或适配特定场景。例如,启用角度分类 (`use_angle_cls`) 或指定语言类型 (`lang`) 等。
下面是一段初始化代码示例:
```python
from paddleocr import PaddleOCR
# 创建 PaddleOCR 实例
ocr = PaddleOCR(
use_angle_cls=True, # 启用文本方向检测
lang="ch", # 设置语言为中文 (可选其他语言如 en、french 等)[^5]
use_gpu=False # 是否使用 GPU 加速[^1]
)
```
---
#### 执行 OCR 识别
通过调用 `ocr.ocr()` 方法传入目标图像路径即可执行 OCR 识别任务。返回的结果通常是一个嵌套列表结构,其中包含了每一段文字的位置坐标和内容信息。
以下是一个完整的代码示例:
```python
from paddleocr import PaddleOCR
# 初始化 PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=False)
# 图片路径
img_path = 'example_image.png'
# 开始识别
result = ocr.ocr(img_path, cls=True) # cls 表示是否启用文本方向分类[^3]
# 输出结果
for line in result[0]:
position, text_info = line
print(f"位置: {position}, 文本: {text_info[0]}, 置信度: {text_info[1]}")
```
上述代码中的 `result` 是一个多层列表,每一层代表不同的含义:
- 外层列表表示整个文档的不同部分(如多个区域)。
- 内部子列表则对应单个文本框的信息,包括其边界框坐标和对应的文本内容及置信分数。
---
#### 可视化识别结果
为了更直观地查看 OCR 的效果,还可以利用 `draw_ocr` 函数绘制出标注后的图片并保存下来:
```python
from paddleocr import PaddleOCR, draw_ocr
from PIL import Image
# 初始化 PaddleOCR 和加载图片
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=False)
image = Image.open(img_path).convert('RGB')
# 获取 OCR 结果
result = ocr.ocr(img_path, cls=True)
# 提取数据用于绘图
boxes = [line[0] for line in result[0]]
texts = [line[1][0] for line in result[0]]
scores = [line[1][1] for line in result[0]]
# 绘制结果
im_drawn = draw_ocr(image, boxes, texts, scores, font_path='./simfang.ttf')
Image.fromarray(im_drawn).save('output_result.jpg')
```
此过程会生成一张带有标记框的新图片文件 `output_result.jpg`,方便验证识别准确性。
---
### 注意事项
- **模型下载**:首次运行程序时可能会自动下载预训练模型到本地缓存目录下,请确保网络连接正常[^4]。
- **字体支持**:当涉及非拉丁字符集的语言时(比如中文),需提供合适的 TTF 字体文件以便正确显示[^5]。
- **硬件加速**:虽然这里设置的是 CPU 模式(`use_gpu=False`) ,但如果设备具备 NVIDIA CUDA 能力,则建议开启 GPU 来提升速度[^2]。
---
阅读全文
相关推荐

















