0、PaddleOCR实战-OCR

github地址

官方repo

一、视频教程

视频1 开源最强OCR系统PP-OCRv3揭秘
视频2 云边端全覆盖的PP-OCRv3训练部署实战
视频3 OCR产业应用全流程拆解与实践
视频4 车牌识别

二、Paddlehub模型实战

2.1、旧版本

chinese_ocr_db_crnn_server 一键使用
chinese_ocr_db_crnn_mobile 手机端一键使用

2.2、最新版本

ch_pp-ocrv3 一键使用

2.3、数据集说明

2.3.1、文本检测

标注文件格式如下,中间用’\t’分隔:

" 图像文件名 json.dumps编码的图像标注信息"
ch4_test_images/img_61.jpg [{“transcription”: “MASA”, “points”: [[310, 104], [416, 141], [418, 216], [312, 179]]}, {…}]
json.dumps编码前的图像标注信息是包含多个字典的list,字典中的 points 表示文本框的四个点的坐标(x, y),从左上角的点开始顺时针排列。 transcription 表示当前文本框的文字,当其内容为“###”时,表示该文本框无效,在训练时会跳过。

2.3.2、文本识别

注意 PP-OCRv3的识别模型使用的输入shape为3,48,320, 如果使用其他识别模型,则需根据模型设置参数–rec_image_shape。此外,PP-OCRv3的识别模型默认使用的rec_algorithm为SVTR_LCNet,注意和原始SVTR的区别。

标注文件的格式如下, txt文件中默认请将图片路径和图片标签用’\t’分割,如用其他方式分割将造成训练报错。

" 图像文件名 图像标注信息 "

train_data/rec/train/word_001.jpg 简单可依赖
train_data/rec/train/word_002.jpg 用科技让复杂的世界更简单

2.3.3、方向检测

文本方向分类器主要用于图片非0度的场景下,在这种场景下需要对图片里检测到的文本行进行一个转正的操作。在PaddleOCR系统内, 文字检测之后得到的文本行图片经过仿射变换之后送入识别模型,此时只需要对文字进行一个0和180度的角度分类,因此PaddleOCR内置的 文本方向分类器只支持了0和180度的分类。如果想支持更多角度,可以自己修改算法进行支持。

0和180度数据样本例子:
在这里插入图片描述

预测图片:
在这里插入图片描述

得到输入图像的预测结果:

infer_img: doc/imgs_words/ch/word_1.jpg
result: (‘0’, 0.9998784)

2.3.4、目标检测评估指标

hmean(F1-measure)

2.3.5、知识蒸馏,互学习的模型训练

知识蒸馏
深度神经网络一般有较多的参数冗余,目前有几种主要的方法对模型进行压缩,减小其参数量。如裁剪、量化、知识蒸馏等,其中知识蒸馏是指使用教师模型(teacher model)去指导学生模型(student model)学习特定任务,保证小模型在参数量不变的情况下,得到比较大的性能提升。

此外,在知识蒸馏任务中,也衍生出了互学习的模型训练方法,论文Deep Mutual Learning中指出,使用两个完全相同的模型在训练的过程中互相监督,可以达到比单个模型训练更好的效果。

无论是大模型蒸馏小模型,还是小模型之间互相学习,更新参数,他们本质上是都是不同模型之间输出或者特征图(feature map)之间的相互监督,区别仅在于 (1) 模型是否需要固定参数。(2) 模型是否需要加载预训练模型。

对于大模型蒸馏小模型的情况,大模型一般需要加载预训练模型并固定参数;对于小模型之间互相蒸馏的情况,小模型一般都不加载预训练模型,参数也都是可学习的状态。

在知识蒸馏任务中,不只有2个模型之间进行蒸馏的情况,多个模型之间互相学习的情况也非常普遍。因此在知识蒸馏代码框架中,也有必要支持该种类别的蒸馏方法

三、案例

十分钟完成 PP-OCRv3 识别全流程实战
基于PaddleOCR的轻量级车牌识别范例
基于PP-OCRv3实现PCB字符识别

四、服务化部署

PPOCR paddleserving服务化部署
AIstudio服务化部署案例
部署精度问题

五、产业化案例实战

产业化案例集合

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PaddleOCR PP-Structurev2是一个基于PaddlePaddle深度学习框架的OCR工具,可以实现文字识别、表格识别、印章识别等功能。以下是PP-Structurev2的使用教程: 1. 安装PaddleOCR 首先需要安装PaddleOCR。可以使用以下命令进行安装: ``` pip install paddleocr ``` 2. 下载PP-Structurev2模型 PP-Structurev2依赖于特定的模型,需要下载对应的模型文件。可以从PaddleOCR的GitHub仓库中下载: ``` git clone https://github.com/PaddlePaddle/PaddleOCR.git cd PaddleOCR wget https://paddleocr.bj.bcebos.com/PP-Structure_v2/ch/ch_ppocr_server_v2.0_rec_infer.tar wget https://paddleocr.bj.bcebos.com/PP-Structure_v2/ch/ch_ppocr_mobile_v2.0_cls_infer.tar wget https://paddleocr.bj.bcebos.com/PP-Structure_v2/ch/ch_ppocr_mobile_v2.0_det_infer.tar tar xf ch_ppocr_server_v2.0_rec_infer.tar tar xf ch_ppocr_mobile_v2.0_cls_infer.tar tar xf ch_ppocr_mobile_v2.0_det_infer.tar ``` 3. 使用PP-Structurev2 使用PP-Structurev2需要先加载模型。可以使用以下代码加载模型: ``` import paddleocr ocr = paddleocr.OCR( det_model_dir='ch_ppocr_mobile_v2.0_det_infer', rec_model_dir='ch_ppocr_server_v2.0_rec_infer', cls_model_dir='ch_ppocr_mobile_v2.0_cls_infer', use_angle_cls=True, lang='ch' ) ``` 加载模型后,就可以使用PP-Structurev2进行文字识别、表格识别、印章识别等操作。以下是一些示例代码: ``` # 文字识别 result = ocr.ocr('example.jpg') for line in result: print(line) # 表格识别 result = ocr.table_ocr('example.jpg') for table in result: for row in table: print(row) # 印章识别 result = ocr.seal_ocr('example.jpg') print(result) ``` 以上就是PP-Structurev2的使用教程。需要注意的是,PP-Structurev2的模型文件比较大,下载和加载模型可能需要花费一些时间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值