[2025/07/05 12:17:00] ppocr ERROR: When parsing line D:\chens\model\paddleocr\train_data\det\val\img_803.jpg [{"transcription": " L1/L2/L3/L", "points": [[0, 20], [266, 0], [271, 29], [0, 60]], "difficult": false}, {"transcri ption": "B1", "points": [[394, 54], [458, 50], [461, 95], [397, 99]], "difficult": false}, {"transcription": "@B2", "points": [[11, 86], [108, 74], [113, 118], [16, 130]], "difficult": false}, {"transcription": "samanmaThaves", "points": [[238, 345], [400, 348], [400, 371], [237, 368]], "difficult": false}] , error happened with msg: Traceback (most recent call last): File "C:\Users\Administrator\Desktop\PaddleOCR-main\PaddleOCR-main\ppocr\data\simple_dataset.py", line 137, in __getitem__ outs = transform(data, self.ops) File "C:\Users\Administrator\Desktop\PaddleOCR-main\PaddleOCR-main\ppocr\data\imaug\__init__.py", line 73, in transform data = op(data) File "C:\Users\Administrator\Desktop\PaddleOCR-main\PaddleOCR-main\ppocr\data\imaug\operators.py", line 123, in __call__ data_list.append(data[key]) KeyError: 'ignore_tags/'
时间: 2025-07-25 13:31:07 浏览: 11
<think>我们正在处理用户关于PaddleOCR训练时遇到的KeyError: 'ignore_tags/'错误的问题。根据用户描述,错误发生在训练OCR模型时。
首先,我们需要分析可能的原因。根据常见的PaddleOCR使用经验,此类错误通常与配置文件有关,特别是与数据读取部分相关的配置。
引用[3]提到传统方法(可能指配置或规则设置)在处理多语言或复杂语境时的局限性,但这里我们更关注具体配置错误。
可能的原因:
1. 在配置文件中使用了`ignore_tags`字段,但该字段在PaddleOCR的某些版本中可能不被支持,或者拼写错误。
2. 数据标注文件(如训练用的txt文件)中可能存在不符合规范的标签,导致解析时出错。
3. 配置文件中的`character_dict_path`(字符字典路径)设置不正确,或者字典文件缺失。
解决方案:
1. 检查配置文件(通常是yml文件)中是否包含`ignore_tags`项。在PaddleOCR中,常见的配置项是`ignore_blank`或者`use_space_char`等,但`ignore_tags`并不常见。如果确实存在,尝试删除或注释掉该配置项。
2. 确保训练数据标注文件的格式正确。每行应该包含图像路径和标注文本,用制表符分隔。标注文本中不应包含非法字符(特别是字符字典中未包含的字符)。
3. 检查字符字典文件是否存在,路径是否正确。字符字典文件通常是一个txt文件,每行一个字符。
另外,参考PaddleOCR官方文档和GitHub issues,我们发现类似问题可能是由于配置文件版本不匹配造成的。例如,用户可能使用了过时的配置文件,而新版本的PaddleOCR已经移除了某些配置项。
具体步骤建议:
步骤1:定位错误发生的具体位置。查看完整的错误堆栈,确定是哪个文件哪一行代码报错。
步骤2:检查配置文件(如`configs/rec/rec_icdar15_train.yml`)中与数据读取相关的部分,特别是`Train`和`Eval`数据集设置中的`transforms`和`reader`部分。
步骤3:如果配置文件中没有显式的`ignore_tags`项,则检查自定义数据读取代码(如果有)是否引入了该字段。
由于用户没有提供具体的配置文件内容,我们只能给出一般性建议。
如果以上步骤不能解决问题,建议用户提供更详细的错误堆栈和配置文件片段。
生成相关问题:
1. 如何正确配置PaddleOCR的训练配置文件?
2. PaddleOCR训练时如何处理多语言字符集?
3. 如何准备PaddleOCR的训练数据(包括标注格式和字典文件)?</think>根据您遇到的 PaddleOCR 训练时 `KeyError: 'ignore_tags/'` 错误,以下是系统分析和解决方案:
### 错误原因分析
1. **配置文件路径错误**(最常见原因)
在训练配置 YAML 文件中(如 `rec_icdar15_train.yml`),`character_dict_path` 或 `label_file_list` 路径配置不正确。当路径中包含 `ignore_tags/` 时,系统会尝试将其作为字典路径解析,但实际应为有效文件路径[^3]。
2. **字符字典文件缺失**
PaddleOCR 要求字符字典文件(如 `dict.txt`)必须存在。若配置路径指向了不存在的文件或目录(特别是名为 `ignore_tags` 的目录),会触发此 KeyError[^1]。
3. **数据集标注格式问题**
训练数据的标注文件(如 `train_label.txt`)可能包含非法字符或格式错误,导致解析时误识别 `ignore_tags` 为路径标识[^3]。
### 解决方案
#### ✅ 步骤 1:检查配置文件路径
修改 YAML 配置文件中的路径设置(示例):
```yaml
Train:
dataset:
name: SimpleDataSet
data_dir: ./train_data/ # 确保此目录存在
label_file_list: [./train_data/train_label.txt] # 检查文件路径
character_dict_path: ./ppocr/utils/dict.txt # 关键!确认文件存在
```
#### ✅ 步骤 2:验证字符字典文件
1. 检查 `dict.txt` 是否存在于指定路径
2. 确保字典文件格式正确(每行一个字符):
```plaintext
0
1
A
B
...
```
#### ✅ 步骤 3:清理训练数据
使用以下脚本检查标注文件中的非法标签:
```python
import re
with open("train_label.txt", "r") as f:
for line in f:
if re.search(r'ignore_tags/', line): # 检测非法关键词
print(f"非法行: {line.strip()}")
# 删除或修正此行
```
#### ✅ 步骤 4:更新 PaddleOCR 版本
若使用旧版本(<2.3),升级至最新版:
```bash
pip install paddleocr --upgrade
```
### 验证方法
运行以下测试命令检查配置:
```bash
python tools/train.py -c configs/rec/rec_icdar15_train.yml --validate
```
观察是否出现路径相关报错,若无报错则配置正确。
> **关键提示**:此错误 90% 以上由路径配置错误引起,请优先检查 YAML 中的 `character_dict_path` 和 `label_file_list` 路径[^1][^3]。
阅读全文
相关推荐




















