初步了解tsv文件
在很多 OCR(光学字符识别)项目中,.tsv文件是标准的训练数据标注文件,主要用于存储 “图像路径 - 对应文本标签” 的映射关系,同时可能包含图像尺寸、文本长度等辅助信息,方便模型读取训练数据并建立 “视觉特征→文本内容” 的映射。其核心作用是解决 OCR 训练中 “数据(图像)” 与 “标签(文本)” 的关联问题,兼容大多数深度学习框架(如 PyTorch、TensorFlow)的数据加载逻辑。
1. 基础版格式(最常用)
仅包含 “图像路径” 和 “文本标签” 两个核心字段,满足绝大多数 OCR 训练需求(如文字检测、文本识别任务)。
字段顺序 | 字段名称 | 字段说明 | 示例 |
---|---|---|---|
1 | image_path | OCR 训练图像的相对路径(推荐,避免绝对路径导致的环境适配问题) | data/train/001.jpg |
2 | text_label | 图像中文字的真实标注文本(需与图像内容完全一致,空文本用"" 或null ) | 生产日期合格出厂 |
- 基础版示例(用文本编辑器打开的原始内容):
image_path text_label
data/train/001.jpg 智能化机器视觉技术
data/train/002.jpg 2024 OCR Technology Workshop
data/train/003.jpg Hello, World!
data/train/004.jpg "" # 空文本(如无文字的空白图像)
2. 增强版格式(优化训练效率)
在基础版基础上增加辅助字段,用于过滤异常数据、调整训练策略(如忽略短文本、适配不同尺寸图像),常见于复杂 OCR 场景(如多语言 OCR、不规则文本 OCR)。
字段顺序 | 字段名称 | 字段说明 | 示例 |
---|---|---|---|
1 | image_path | 图像相对路径 | data/train/001.jpg |
2 | text_label | 真实标注文本 | 北京大学图书馆 |
3 | image_width | 图像宽度(像素),用于过滤过小 / 过大图像 | 640 |
4 | image_height | 图像高度(像素),同上 | 320 |
5 | text_length | 文本标签长度(字符数),用于过滤过短 / 过长文本(如单字符、超 100 字文本) | 6 |
6 | language | 文本语言类型(如zh 中文、en 英文、ja 日文),用于多语言 OCR 训练 | zh |
- 增强版示例(用文本编辑器打开的原始内容):
image_path text_label image_width image_height text_length language
data/train/001.jpg 北京大学图书馆 640 320 6 zh
data/train/002.jpg 2024 OCR Technology Workshop 800 200 24 en
data/train/003.jpg こんにちは 480 180 5 ja
data/train/004.jpg "" 200 200 0 null
- 格式注意事项
- 编码格式:必须使用 UTF-8 编码(避免中文、特殊字符乱码,尤其是 Windows 系统默认的 GBK 编码会导致标签读取错误)。
- 分隔符:严格使用单个制表符(
\t
) 分隔字段,不可用空格、多个制表符或逗号替代。 - 空值处理:无文本的图像(如背景图),
text_label
用""
或null
填充,不可留空(避免字段错位)。 - 路径规范:优先使用相对路径(如
data/train/xxx.jpg
),路径中避免含空格或特殊字符(如#
、&
),可将空格替换为_
。 表头可选:若框架要求无表头(如部分自定义数据加载器),可删除第一行表头,但需确保字段顺序固定且与代码读取逻辑一致。
3.有些特殊要求:
有些OCR软件,对tsv文件有特殊要求,比如cnocr,要求第一行没有表头,文本标签的每个字符用空格隔开,空格字符用<space>代替。
例如,helloworld.jpg:
其tsv文件的内容: