PaddlePaddle / PaddleOCR

Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
Apache License 2.0
40.31k stars 7.46k forks source link

文字识别 rec_img_aug 增强 有没教程,怎么使用 #5790

Closed monkeycc closed 5 months ago

monkeycc commented 2 years ago

文字识别 rec_img_aug 增强 有没教程,怎么使用

tink2123 commented 2 years ago

默认按50%的概率使用,具体的较优组合实现在代码里,可以阅读源码:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/ppocr/data/imaug/rec_img_aug.py

monkeycc commented 2 years ago

比如 我有 Label.txt 标注好的 如何用 imaug 进行数据增强

应该要怎么调用读取Label.txt 批量增强? @tink2123

tink2123 commented 2 years ago

是要在训练过程中增强吗?还是使用离线增强。

如果是训练过程中使用数据增强,可以直接在配置文件中添加 RecAug 字段,参考: https://github.com/PaddlePaddle/PaddleOCR/blob/e0a52ee5110235d5ba5313f95726110e11eb16bf/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec.yml#L74

如果希望离线处理数据,可以把源码复制下来,写一个自定义读图的代码,加载RecAug 类就好:https://github.com/PaddlePaddle/PaddleOCR/blob/e0a52ee5110235d5ba5313f95726110e11eb16bf/ppocr/data/imaug/rec_img_aug.py#L23

song4875343 commented 2 years ago

recaug字段应该用True,Flase还是应该什么。另外如果是离线处理,处理完图像的尺寸会变小,经常会出现字符的一部上边或者下边的一部分被切掉的问题。是程序的bug还是需要怎么调整

song4875343 commented 2 years ago

word_5 word_5

monkeycc commented 2 years ago

希望离线处理数据 能否给个简单的演示代码 @tink2123

song4875343 commented 2 years ago

利用paddleocr里面的模块调整图片的规则性

import sys sys.path.append('D:/ProgramData/PaddleOCR-release-2.4/') import paddleocr.ppocr.data.imaug.rec_img_aug as recaug import cv2 import os

def fileNames(root, suffix=None): names = os.listdir(root) result = [] if suffix: for name in names: if os.path.splitext(name)[1] == suffix: result.append(root + name) else: result = names return result

pas = fileNames('C:/Users/Administrator/train_img/', '.png') print(pas) for pa in pas: aug = recaug.RecAug(True, 0.4) img = cv2.imread(pa) data = {'image': img} k = aug(data) cv2.imwrite(pa, k['image'])

monkeycc commented 2 years ago

@song4875343 感谢 抱抱大佬的大腿

hellohahaw commented 1 year ago

是要在训练过程中增强吗?还是使用离线增强。

如果是训练过程中使用数据增强,可以直接在配置文件中添加 RecAug 字段,参考:

https://github.com/PaddlePaddle/PaddleOCR/blob/e0a52ee5110235d5ba5313f95726110e11eb16bf/configs/rec/ch_PP-OCRv2/ch_PP-OCRv2_rec.yml#L74

如果希望离线处理数据,可以把源码复制下来,写一个自定义读图的代码,加载RecAug 类就好:

https://github.com/PaddlePaddle/PaddleOCR/blob/e0a52ee5110235d5ba5313f95726110e11eb16bf/ppocr/data/imaug/rec_img_aug.py#L23

大佬,请问能否在配置文件中添加两种数据增强方式,比如再添加一个--ABINetRecAug

github-actions[bot] commented 6 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.