PaddleOCR使用与部署

目录

前言

一、PaddleOCR是什么?

二、使用与部署

1.初步使用

 2.服务调用

3.Docker部署

4.问题与解决

5.云上部署

6.另一条路径

7.PaddleOCR官方文档

总结


前言

随着人工智能的不断发展,大模型技术的发展也加速迭代,由此衍生出来的RAG等技术也在不断进入使用场景。对于OCR的需求也在不断增加。

正好用到了PaddleOCR,然后借机就对其使用和部署做了一些工作,然后把过程与问题解决正好记录下,以备不时之需。


一、PaddleOCR是什么?

PaddleOCR是一个基于飞桨(PaddlePaddle)深度学习平台开发的开源OCR工具库。OCR(Optical Character Recognition)即光学字符识别,是指将图片中的文字转化为可编辑、可搜索的文本。PaddleOCR能够识别图片、视频等多种形式的文字信息,并且支持中、英、法、德、韩、日等多种语言的识别。该工具库提供了丰富的预训练模型和API接口,可用于快速、高效地进行文字识别任务的开发。

PaddleOCR具有较高的性能表现和良好的扩展性,广泛应用于文档识别、车牌识别、票据识别、表格识别、印刷体识别等领域。

二、使用与部署

1.初步使用

我们先从简单的使用入手,开发环境Windows 11

import os
from paddleocr import PaddleOCR, draw_ocr  
from PIL import Image  
import matplotlib.pyplot as plt  

# 初始化 PaddleOCR,选择使用的语言('ch' 表示中文,'en' 表示英文,可以指定多个语言)  
ocr = PaddleOCR(use_angle_cls=True, lang='ch')  # 需要识别中文  
# 读取图片  
img_path = 'orc_test.png'  # 替换为你的图片路径  
img = Image.open(img_path).convert('RGB')

# 使用 PaddleOCR 识别图片中的文本  
result = ocr.ocr(img_path, cls=True)  

如上就是最简单的调用,定义PaddleOCR对象,读取一个图片对象,调用.ocr方法即可。

返回结果是一个多层级数组,每个文字识别结果是一个键值对,大概格式如下:

[[[位置信息],(文字,可信度)]]

第一层数组是代表图片数组,第二层数组就是每个图片的所有识别结果

可以通过如下代码对结果进行打印

# 打印识别结果  
for line in result:  
    print(line)  
    for part in line:
        pos=part[0]
        txt,r=part[1]
        print(pos,txt,r)

我测试的时候,正好用到了一个比较长的微信聊天截图,然后调用ocr结果过了好几秒返回结果为空,然后问了下AI反正意思是可能图片太大,需要对图片切分后分别调用再对结果合并处理。

后来又看了下,其实PaddleOCR已经解决了这个问题,有个参数就是可以进行分片识别的

slice = {
    "horizontal_stride": w,
    "vertical_stride": 10 * w,
    "merge_x_thres": 30,
    "merge_y_thres": 30,
}
# 使用 PaddleOCR 识别图片中的文本
result = ocr.ocr(img_path, cls=True, slice=slice)

如上,增加slice参数即可。slice参数主要是设置每一帧识别的范围,我这里是按照宽就是图片宽,长是10被图片宽。因为我要识别微信聊天记录截图就是因为非常长,ocr一次读入会导致内存溢出的问题,所以这么设置的。大家根据自己的情况设置即可。后两个参数大意是x、y方向在一个距离范围内识别为一个结果,设置一个比较小的值即可

 2.服务调用

按如上方式测试了下,效果基本还行,但是为了更方便的应用,我就需要将这个ocr功能封装为一个服务接口,方便调用。

那么,首先就需要将ocr方法提取为一个通用方法

# ocrpaddle.py
import io
im
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值