PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据

在PaddleOCR的FAQ集合中没有看到一个与PPOCRLabel相关的问题,同时这个工具发布时间也很新,2020年12月左右发布的,尝试一下新事物,但是不要抱太大的希望。

1. 安装

官方说明文档网站:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.0/PPOCRLabel/README_ch.md

不对安装详细过程作说明,只说遇到的两个坑


1.1 报错:ImportError: cannot import name 'inference' from 'paddle'

按照官方文档的安装一遍之后,报错:ImportError: cannot import name 'inference' from 'paddle',根据以下回答:

  • https://github.com/PaddlePaddle/PaddleOCR/issues/1592
    PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第1张图片
  • paddle 下没有 inference方法
    PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第2张图片
    我之前用的是以前的PaddlePaddle1.8.5版本,需要升级到2.0rc1版本,代码
python -m  pip install paddlepaddle==2.0.1 -i https://mirror.baidu.com/pypi/simple

PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第3张图片

1.2 OSError: [WinError 126] 找不到指定的模块。

这个错误见过很多次了,由于shapely库导致的,去这里直接下载wheel文件手动安装。先卸载之前安装的,再安装新的就好了
PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第4张图片

2. 使用

切换到ppocrlabel文件夹中,运行

cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下
conda activate rl37 # (换成自己配置好的那个环境)
python PPOCRLabel.py --lang ch

PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第5张图片
可以看到运行的时候,其实会下载一些之前的预训练模型。然后就可以看到界面

  • 点击自动标注,等一会,图片界面就会出现标记框(会直接标记当前打开目录下的所有图片),右侧就会出现识别的结果和检测框位置。
  • 虽然界面好像丑了点,但是效果确实8错,(๑•̀ㅂ•́)و✧,,早知道就早点用了,哈哈。
  • 然后就自己手动调整不太对的框,然后重新编辑一下识别结果。
  • 可以在图片所在的文件夹(不是ppocrlabel程序所在的文件夹),看到自动标注后,产生了两个文件(除了Cache.cach),fileState.txtLabel.txt文件,根据下面注意中的说明,可以知道这些文件的用途。

注意:

  1. PPOCRLabel不支持对中文文件名的图片进行自动标注
  2. PPOCRLabel以文件夹为基本标记单位,打开待标记的图片文件夹后,不会在窗口栏中显示图片,而是在点击 “选择文件夹” 之后直接将文件夹下的图片导入到程序中。
  3. 图片状态表示本张图片用户是否手动保存过,未手动保存过即为 “X”,手动保存过为 “√”。点击 “自动标注”按钮后,PPOCRLabel不会对状态为 “√” 的图片重新标注。
  4. 点击“重新识别”后,模型会对图片中的识别结果进行覆盖。因此如果在此之前手动更改过识别结果,有可能在重新识别后产生变动。
  5. PPOCRLabel产生的文件放置于标记图片文件夹下,包括以下几种,请勿手动更改其中内容,否则会引起程序出现异常。

PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第6张图片
另外,标注完之后,可以ctrl+S,然后就会提示要不要报错,或者关闭程序界面的时候也会提示,也可以自己每标注完一张,点击右下角的确认

点击过确认后,这张图像在文件列表中的图像名前面的符号就会变成√(绿色的对勾)。

3. 关于标签文件

我的真实数据目前很少,只有6张图,但是每张图中的文字信息很密集,很多,所以标记文件内容也还是比较丰富,大致如下:
PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第7张图片

先是文件名称,然后是一个列表,列表中包括多个文本字典,字典的第一项是文字识别的结果(transcription),第二项是列表,矩形框四个顶点的位置,第三项是识别难度的分级结果。

所以如果单纯像进行识别任务的训练,可以在文件保存识别结果,然后会提示保存到了哪里,一般是当前选定的图片目录下新建一个叫crop_img的文件夹。
PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第8张图片
大致如下:
PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第9张图片
同时,还是在当前选定的图片目录下(不是crop_img目录中),会新产生一个rec_gt.txt的文件,这就是识别的标签文件,大致如下:
PaddleOCR二次全流程——4. 使用PPOCRLabel标注数据_第10张图片
完全符合PaddleOCR模型训练的要求(可能文件名这些需要修改一下,直接python文件处理一下就好。)

4. 关于PPOCRLabel的主观评价

  • 之前一直是使用LabelImg或者是LabelMe的,这个PPOCRLabel没有ctrl+Z返回上一步,也没有ctrl+Y下一步
  • 界面丑了点
  • 自动识别挺好的,哈哈

你可能感兴趣的:(#,OCR数字仪表识别)