PaddleOCR - (1) PPOCRLabel数据标注

本文详细介绍了PPOCRLabel的使用步骤,包括启动标注工具、自动和手动标注、确认与保存标记结果,以及数据集的划分方法。该工具支持检测框绘制、识别结果更改、自动保存等功能,方便进行OCR模型训练数据的准备。同时,提供了数据集划分的Python脚本及参数说明,帮助用户高效地组织训练、验证和测试集。

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

1、启动标注工具

cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下
python PPOCRLabel.py --lang ch

2、标注步骤

  1. 安装与运行:使用上述命令安装与运行程序。
  2. 打开文件夹:在菜单栏点击 “文件” - "打开目录" 选择待标记图片的文件夹[1].
  3. 自动标注:点击 ”自动标注“,使用PPOCR超轻量模型对图片文件名前图片状态[2]为 “X” 的图片进行自动标注。
  4. 手动标注:点击 “矩形标注”(推荐直接在英文模式下点击键盘中的 “W”),用户可对当前图片中模型未检出的部分进行手动绘制标记框。点击键盘Q,则使用四点标注模式(或点击“编辑” - “四点标注”),用户依次点击4个点后,双击左键表示标注完成。
  5. 标记框绘制完成后,用户点击 “确认”,检测框会先被预分配一个 “待识别” 标签。
  6. 重新识别:将图片中的所有检测画绘制/调整完成后,点击 “重新识别”,PPOCR模型会对当前图片中的所有检测框重新识别[3]。
  7. 内容更改:双击识别结果,对不准确的识别结果进行手动更改。
  8. 确认标记:点击 “确认”,图片状态切换为 “√”,跳转至下一张。
  9. 删除:点击 “删除图像”,图片将会被删除至回收站。
  10. 保存结果:用户可以通过菜单中“文件-保存标记结果”手动保存,同时也可以点击“文件 - 自动保存标记结果”开启自动保存。手动确认过的标记将会被存放在所打开图片文件夹下的Label.txt中。在菜单栏点击 “文件” - "保存识别结果"后,会将此类图片的识别训练数据保存在crop_img文件夹下,识别标签保存在rec_gt.txt中[4]

  注意

  [1] PPOCRLabel以文件夹为基本标记单位,打开待标记的图片文件夹后,不会在窗口栏中显示图片,而是在点击 "选择文件夹" 之后直接将文件夹下的图片导入到程序中。

  [2] 图片状态表示本张图片用户是否手动保存过,未手动保存过即为 “X”,手动保存过为 “√”。点击 “自动标注”按钮后,PPOCRLabel不会对状态为 “√” 的图片重新标注。

  [3] 点击“重新识别”后,模型会对图片中的识别结果进行覆盖。因此如果在此之前手动更改过识别结果,有可能在重新识别后产生变动。

  [4] PPOCRLabel产生的文件放置于标记图片文件夹下,包括一下几种,请勿手动更改其中内容,否则会引起程序出现异常。

文件名说明
Label.txt检测标签,可直接用于PPOCR检测模型训练。用户每保存5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。
fileState.txt图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。
Cache.cach缓存文件,保存模型自动识别的结果。
rec_gt.txt识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "保存识别结果"后产生。
crop_img识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。

  保存方式

   PPOCRLabel支持三种保存方式:

  • 自动保存:点击“文件 - 自动保存标记结果”后,用户每确认过一张图片,程序自动将标记结果写入Label.txt中。若未开启此选项,则检测到用户手动确认过5张图片后进行自动保存。
  • 手动保存:点击“文件 - 保存标记结果”手动保存标记。
  • 关闭应用程序保存

  导出部分识别结果

       针对部分难以识别的数据,通过在识别结果的复选框中取消勾选相应的标记,其识别结果不会被导出。

注意:识别结果中的复选框状态仍需用户手动点击保存后才能保留

3、数据集划分

       在终端中输入以下命令执行数据集划分脚本:

cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下
例如:
py gen_ocr_train_val_test.py --trainValTestRatio 6:2:2 --datasetRootPath 需要划分的路径 
我的:
py gen_ocr_train_val_test.py --trainValTestRatio 6:2:2 --datasetRootPath ../train_data

参数说明:

  • trainValTestRatio 是训练集、验证集、测试集的图像数量划分比例,根据实际情况设定,默认是6:2:2

  • datasetRootPath 是PPOCRLabel标注的完整数据集存放路径。默认路径是 PaddleOCR/train_data 分割数据集前应有如下结构:

  • |-train_data
      |-crop_img
        |- word_001_crop_0.png
        |- word_002_crop_0.jpg
        |- word_003_crop_0.jpg
        | ...
      | Label.txt
      | rec_gt.txt
      |- word_001.png
      |- word_002.jpg
      |- word_003.jpg
      | ...

        数据集划分之后的结构:

### 如何使用PPOCRLabel进行OCR数据标注 #### 安装与配置环境 为了能够顺利运行PPOCRLabel,需先安装必要的依赖项以及克隆`PaddleOCR`项目。由于PPOCRLabel是基于Python3和PyQt5开发的应用程序,在开始之前要确保计算机上已正确设置这两个组件。 ```bash git clone https://github.com/PaddlePaddle/PaddleOCR.git cd PaddleOCR pip install -r requirements.txt ``` 上述命令会下载最新的PaddleOCR源码,并安装所需的Python库[^3]。 #### 数据集准备 创建或指定一个目录作为`datasetRootPath`来存储待处理的数据集。该路径下的文件夹结构应该遵循特定格式以便于后续操作: - `|-train_data`: 主文件夹名。 - `- crop_img/`: 存放裁剪后的单字图片。 - `- Label.txt`, `- rec_gt.txt`: 记录标签信息的文本文件。 - 图片文件(如`.png`, `.jpg`),这些将是用来做标注的对象。 按照此方式整理好原始图像后就可以启动PPOCRLabel了[^2]。 #### 启动PPOCRLabel 进入解压好的PaddleOCR文件夹内找到PPOCRLabel的相关脚本执行即可打开软件界面。通常情况下可以通过双击桌面快捷方式或者通过终端输入相应的启动指令完成这一步骤。 #### 自动化标注流程 一旦进入了应用程序窗口,可以看到界面上有一个明显的按钮用于触发自动标注过程——位于左侧下方的一键标注选项。点击它之后,程序将会依次读取目标文件夹里的每一张图片并尝试对其进行文字区域定位及字符识别工作。值得注意的是尽管存在自动化机制但仍建议用户事后仔细核对生成的结果以保证质量[^4]。 #### 导出标注成果 当所有的校验都完成后可以选择保存当前进度至预设位置。此时所得到的就是已经过初步加工可以投入下一步实验使用的高质量训练样本集合了。 ```python # 示例代码片段展示如何调用API接口实现批量导出功能 from paddleocr import PPOCRv3, draw_ocr_box_txt def export_labels(image_folder_path, output_file='output'): ocr = PPOCRv3() images = os.listdir(image_folder_path) results = [] for img_name in images: result = ocr.ocr(os.path.join(image_folder_path, img_name)) txts = [line[1][0] for line in result] res = {"filename":img_name,"texts":txts} results.append(res) with open(f"{output_file}.json", 'w') as f: json.dump(results,f) if __name__ == '__main__': image_dir = './path/to/images' export_labels(image_dir) ``` 这段简单的Python脚本展示了怎样利用PPOCR API来进行大规模的数据转换任务;当然实际应用中可能还需要考虑更多细节比如异常情况处理等[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值