问题描述
在执行re训练的时候报错:
...
, error happened with msg: Traceback (most recent call last):
File "/paddle/PaddleOCR/ppocr/data/simple_dataset.py", line 137, in __getitem__
outs = transform(data, self.ops)
File "/paddle/PaddleOCR/ppocr/data/imaug/__init__.py", line 56, in transform
data = op(data)
File "/paddle/PaddleOCR/ppocr/data/imaug/label_ops.py", line 1093, in __call__
gt_label = self._parse_label(label, encode_res)
File "/paddle/PaddleOCR/ppocr/data/imaug/label_ops.py", line 1177, in _parse_label
gt_label.append(self.label2id_map[("b-" + label).upper()])
KeyError: 'B-NONE'
问题分析
查了很多资料,也没有找到具体的解决方案,安装官方示例对比,发现可能是我使用PPOCRLabel进行打标,而PPOCR打标工具生成的Label.txt文件缺少了训练必须的属性。
解决方案
编辑我们的Label.txt文件,在"points"字段前添加一个"label","id","linking"等字段。
每个文本行字段中,需要添加id与linking字段信息,id记录该文本行的唯一标识,同一张图片中的不同文本内容不能重复,linking是一个列表,记录了不同文本之间的连接信息。
标准格式
" 图像文件名 图像标注信息 "
zh_train_0.jpg [{"transcription": "汇丰晋信", "label": "other", "points": [[104, 114], [530, 114], [530, 175], [104, 175]], "id": 1, "linking": []}, {"transcription": "受理时间:", "label": "question", "points": [[126, 267], [266, 267], [266, 305], [126, 305]], "id": 7, "linking": [[7, 13]]}, {"transcription": "2020.6.15", "label": "answer", "points": [[321, 239], [537, 239], [537, 285], [321, 285]], "id": 13, "linking": [[7, 13]]}]
]
...
总结
使用PPOCRLabel标注不能直接生成RE训练的文件,需要对标注文件进行修改,添加一些必要的属性,如id:,label,linking等属性,还需要注意id不能重复。