??初步了解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文件的內容: