简体中文 | English
PPOCRLabel 是一款适用于OCR领域的半自动化图形标注工具,内置PP-OCR模型对数据自动标注和重新识别。使用Python3和PyQT5编写,支持矩形框标注、表格标注、不规则文本标注、关键信息标注模式。在OCR的标注任务中,标签存储为 txt 文件。
PPOCRLabel可通过whl包与Python脚本两种方式启动,whl包形式启动更加方便,这里只提供whl包说明:
windows 安装:
pip install PPOCRLabel # 安装
# 选择标签模式来启动
PPOCRLabel --lang ch # 启动【普通模式】,用于打【检测+识别】场景的标签
[!NOTE] 通过whl包安装PPOCRLabel会自动下载
paddleocrwhl包,其中shapely依赖可能会出现[winRrror 126] 找不到指定模块的问题。的错误,建议下载shapely安装包完成安装。
MacOS
pip3 install PPOCRLabel
pip3 install opencv-contrib-python-headless==4.2.0.32 # 如果下载过慢请添加"-i https://mirror.baidu.com/pypi/simple"
# 选择标签模式来启动
PPOCRLabel --lang ch # 启动【普通模式】,用于打【检测+识别】场景的标签
Label.txt中。在菜单栏点击 “文件” - "导出识别结果"后,会将此类图片的识别训练数据保存在crop_img文件夹下,识别标签保存在rec_gt.txt中。|文件名|说明|
|-|-|
|Label.txt|检测标签,可直接用于PPOCR检测模型训练。用户每确认5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。|
|fileState.txt|图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。|
|Cache.cach|缓存文件,保存模型自动识别的结果。|
|rec_gt.txt|识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "导出识别结果"后产生。|
|crop_img|识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。|
如果需要数据划分,可以按照如下步骤操作:
cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下
python gen_ocr_train_val_test.py --trainValTestRatio 7:3:0 --datasetRootPath ../train_data
trainValTestRatio 是训练集、验证集、测试集的图像数量划分比例,根据实际情况设定,默认是6:2:2datasetRootPath 是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
| ...
更多工具使用说明请参考详细说明
PaddleX针对文本检测任务定义的数据集,名称是TextDetDataset,整理标注完成的数据为如下文件组织形式和命名:
dataset_dir # 数据集根目录,目录名称可以改变
├── images # 存放图像的目录,目录名称可以改变,但要注意和train.txt val.txt的内容对应
├── train.txt # 训练集标注文件,文件名称不可改变,内容举例:images/img_0.jpg \t [{"transcription": "MASA", "points": [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]
└── val.txt # 验证集标注文件,文件名称不可改变,内容举例:images/img_61.jpg \t [{"transcription": "TEXT", "points": [[31, 10], [310, 140], [420, 220], [310, 170]]}, {...}]
将图像放置在images目录下,产生的Label.txt标注文件,重新命名为train.txt,同时标注验证集图像时产生的Label.txt标注文件,重新命名为val.txt文件,均放置在dataset_dir(名称可变)目录下。注意train.txt/val.txt中的图像的路径应是images/xxx。
标注文件的每行内容是一张图像的路径和一个组成元素是字典的列表,路径和列表必须使用制表符’\t‘进行分隔,不可使用空格进行分隔。
对于组成元素是字典的列表,字典中 points 表示文本框的四个顶点的坐标(x, y),从左上角的顶点开始按顺时针排序;字典中transcription表示该文本框的文字,若transcription 的内容为“###”时,表示该文本框无效,不参与训练。具体可以参考示例数据集。
如果您使用了PPOCRLabel标注数据,只需要在完成数据集划分后将文字检测(det)目录中的det_gt_train.txt改名为train.txt、det_gt_test.txt改名为val.txt即可。