Trocr Base Handwritten Hist Swe 2
Model Overview
Model Features
Model Capabilities
Use Cases
🚀 瑞典雄獅自由模型(Swedish Lion Libre)
瑞典雄獅自由模型是一款用於識別歷史瑞典語手寫文字的模型,由瑞典國家檔案館聯合斯德哥爾摩市檔案館、芬蘭國家檔案館和耶姆特蘭古文字協會共同開發。該模型基於1600 - 1900年間的瑞典手寫文字數據進行訓練。
🚀 快速開始
單文本行識別
使用以下代碼開始使用該模型,但請記住輸入的圖像必須是單文本行:
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
import requests
img_path = 'path/to/image'
image = Image.open(img_path)
processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-handwritten")
model = VisionEncoderDecoderModel.from_pretrained('Riksarkivet/trocr-base-handwritten-hist-swe-2')
pixel_values = processor(images=image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
整頁識別
如果您想轉錄整頁內容,可以考慮使用HTRflow。這是一個由瑞典國家檔案館開發的用於簡化大規模和小規模手寫文字識別(HTR)/光學字符識別(OCR)項目的包。您需要安裝該包,編寫一個管道配置yaml文件,在其中通過Hugging Face ID指定要使用的模型,添加預處理或後處理步驟,然後使用htrflow pipeline <path/to/yaml> <path/to/image/images>
運行管道。一個用於轉錄整頁內容的.yaml文件示例如下:
# 用於運行文本的演示管道
steps:
# 區域分割
- step: Segmentation
settings:
model: yolo
model_settings:
model: Riksarkivet/yolov9-regions-1
generation_settings:
conf: 0.3
batch_size: 32
# 行分割
- step: Segmentation
settings:
model: yolo
model_settings:
model: Riksarkivet/yolov9-lines-within-regions-1
generation_settings:
conf: 0.3
batch_size: 16
- step: TextRecognition
settings:
model: WordLevelTrocr
model_settings:
model: Riksarkivet/trocr-base-handwritten-hist-swe-2
generation_settings:
batch_size: 16
num_beams: 1
- step: ReadingOrderMarginalia
settings:
two_page: always
- step: RemoveLowTextConfidencePages
settings:
threshold: 0.95
- step: RemoveLowTextConfidenceLines
settings:
threshold: 0.95
# 導出為Alto和Page XML
- step: Export
settings:
dest: outputs/new_models/alto
format: alto
- step: Export
settings:
dest: outputs/new_models/page
format: page
# 設置標籤格式為regionX_lineY_wordZ
labels:
level_labels:
- region
- line
- word
sep: _
template: "{label}{number}"
有關特定步驟和自定義的更多說明,請參閱HTRflow包的文檔。
✨ 主要特性
- 專為歷史瑞典語手寫文字識別而開發。
- 基於TrOCR基礎手寫模型進行微調。
- 可用於單文本行和整頁內容的識別。
📦 安裝指南
文檔未提及具體安裝命令,故跳過此章節。
💻 使用示例
基礎用法
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
import requests
img_path = 'path/to/image'
image = Image.open(img_path)
processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-handwritten")
model = VisionEncoderDecoderModel.from_pretrained('Riksarkivet/trocr-base-handwritten-hist-swe-2')
pixel_values = processor(images=image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
高級用法
使用HTRflow進行整頁內容轉錄:
# 用於運行文本的演示管道
steps:
# 區域分割
- step: Segmentation
settings:
model: yolo
model_settings:
model: Riksarkivet/yolov9-regions-1
generation_settings:
conf: 0.3
batch_size: 32
# 行分割
- step: Segmentation
settings:
model: yolo
model_settings:
model: Riksarkivet/yolov9-lines-within-regions-1
generation_settings:
conf: 0.3
batch_size: 16
- step: TextRecognition
settings:
model: WordLevelTrocr
model_settings:
model: Riksarkivet/trocr-base-handwritten-hist-swe-2
generation_settings:
batch_size: 16
num_beams: 1
- step: ReadingOrderMarginalia
settings:
two_page: always
- step: RemoveLowTextConfidencePages
settings:
threshold: 0.95
- step: RemoveLowTextConfidenceLines
settings:
threshold: 0.95
# 導出為Alto和Page XML
- step: Export
settings:
dest: outputs/new_models/alto
format: alto
- step: Export
settings:
dest: outputs/new_models/page
format: page
# 設置標籤格式為regionX_lineY_wordZ
labels:
level_labels:
- region
- line
- word
sep: _
template: "{label}{number}"
📚 詳細文檔
模型詳情
模型描述
屬性 | 詳情 |
---|---|
開發者 | 瑞典國家檔案館 |
模型類型 | TrOCR基礎手寫模型 |
語言(NLP) | 歷史瑞典語手寫文字 |
許可證 | apache - 2.0 |
微調基礎模型 | trocr - base - handwritten |
用途
直接使用
該模型可以在不進行微調的情況下用於所有手寫文字識別,但在其訓練所用的手寫文字類型(1600 - 1900年間的瑞典手寫文字)上表現最佳。具體的測試和評估結果見下文。
下游使用
該模型可以在其他類型的手寫文字上進行微調。如果您計劃使用它來轉錄模型適用範圍內但未包含在訓練數據中的特定材料,例如有大量17世紀的信件集合,您可以在少量手動轉錄的領域內數據(例如20 - 50封信)上進行微調,然後使用該模型轉錄整個集合。
超出適用範圍的使用
該模型在未進行調整的情況下,對於非瑞典語的其他語言以及印刷文本的識別效果不佳。
訓練詳情
訓練數據
由於並非所有訓練數據均由開發者創建,因此無法公開發布所有訓練數據。以下是可以公開發布的數據集鏈接:
- 哥德堡警察廳1850 - 1900
- 軍事法庭判決書
- 斯維亞高等法院
- 礦業委員會關係及信件
- 自由時代委員會文件
- 卡爾·弗雷德里克·帕爾曼旅行日記
- 巫術委員會
- 約塔高等法院
- 諾拉礦主手寫文字
- 阿爾沃斯堡通行證
- 延雪平市政廳法院及治安官
訓練過程
預處理
將文本行多邊形進行遮罩處理,並放置在白色背景上,其尺寸由多邊形的邊界框決定。
訓練超參數
請參閱模型倉庫中的config.json文件。
- 訓練機制:bf16
- 學習率:5e - 5
- 權重衰減:0.01
評估
領域內評估數據(按字符錯誤率排序)
這些是從與訓練集相同的檔案館獲取的評估數據上的字符和單詞錯誤率。當然,評估樣本不包含在訓練數據中。訓練集中包含的樣本數量可以表明通過在模型範圍內的特定材料上進行微調,模型的性能提升情況。
數據集 | 單詞錯誤率(WER) | 字符錯誤率(CER) | 訓練行數 | 評估行數 |
---|---|---|---|---|
krigshovrattens_dombocker_lines | 0.0330 | 0.0075 | 16,887 | 1,877 |
stockholms_stadsarkiv_allmana_barnhuset_1700_lines | 0.0647 | 0.0120 | 565 | 142 |
stockholms_stadsarkiv_blandat_2_1700_lines | 0.0807 | 0.0170 | 25,024 | 2,781 |
goteborgs_poliskammare_fore_1900_lines | 0.0800 | 0.0187 | 339,297 | 17,858 |
stockholms_stadsarkiv_stockholms_domkapitel_1700_lines | 0.0948 | 0.0187 | 96,409 | 5,075 |
stockholms_stadsarkiv_politikollegiet_1700_lines | 0.1108 | 0.0225 | 120,238 | 6,329 |
bergskollegium_relationer_och_skrivelser_lines | 0.1056 | 0.0253 | 62,201 | 6,912 |
stockholms_stadsarkiv_stadens_kamnarsratt_1700_lines | 0.1252 | 0.0278 | 38,330 | 4,259 |
svea_hovratt_lines | 0.1484 | 0.0313 | 36,884 | 4,099 |
stockholms_stadsarkiv_stockholms_domkapitel_1800_lines | 0.1400 | 0.0324 | 2,070 | 230 |
stockholms_stadsarkiv_handelskollegiet_1600_1700_lines | 0.1785 | 0.0350 | 9,201 | 1,023 |
frihetstidens_utskottshandlingar_lines | 0.1481 | 0.0362 | 13,490 | 1,499 |
stockholms_stadsarkiv_kungliga_hovkonsistoriet_1700_lines | 0.1541 | 0.0364 | 5,753 | 640 |
national_archives_finland_court_records_lines | 0.1607 | 0.0368 | 147,456 | 7,761 |
stockholms_stadsarkiv_blandat_1600_1700_lines | 0.1505 | 0.0379 | 16,137 | 1,794 |
stockholms_stadsarkiv_blandat_3_1600_lines | 0.1633 | 0.0400 | 43,142 | 4,794 |
stockholms_stadsarkiv_norra_forstadens_kamnarsratt_1600_1700_lines | 0.1755 | 0.0463 | 18,474 | 2,053 |
carl_fredrik_pahlmans_resejournaler_lines | 0.1768 | 0.0482 | 7,081 | 787 |
stockholms_stadsarkiv_sollentuna_haradsratt_1700_1800_lines | 0.1921 | 0.0505 | 19,096 | 2,122 |
stockholms_stadsarkiv_byggningskollegium_1600_lines | 0.2262 | 0.0514 | 3,104 | 345 |
ra_enstaka_sidor_lines | 0.1991 | 0.0538 | 5,078 | 565 |
trolldomskommissionen_lines | 0.2321 | 0.0600 | 33,498 | 3,722 |
stockholms_stadsarkiv_stockholms_domkapitel_1600_lines | 0.2170 | 0.0607 | 11,619 | 1,292 |
stockholms_stadsarkiv_botkyrka_kyrkoarkiv_1600_1800_lines | 0.2548 | 0.0627 | 3,617 | 402 |
gota_hovratt_lines | 0.2450 | 0.0630 | 2,421 | 269 |
bergmastaren_i_nora_htr_lines | 0.2558 | 0.0709 | 7,916 | 880 |
bergskollegium_advokatfiskalkontoret_lines | 0.2906 | 0.0722 | 2,411 | 268 |
jl_fornsallskap_jamtlands_domsaga_lines | 0.2585 | 0.0732 | 60,544 | 6,728 |
alvsborgs_losen_lines | 0.1896 | 0.0806 | 5,632 | 626 |
jonkopings_radhusratt_och_magistrat_lines | 0.2864 | 0.0853 | 1,179 | 131 |
national_archives_finland_letters_recipes_lines | 0.3857 | 0.1360 | 651 | 163 |
測試數據
領域外測試數據(按字符錯誤率排序)
這些測試集均來自未包含在訓練數據中的檔案館。因此,如果直接使用該模型處理模型時間範圍內的任何連續文本文件,這些結果就是您可以預期的。整個測試套件可在此處獲取:手寫文字識別測試套件
數據集 | 單詞錯誤率(WER) | 字符錯誤率(CER) | 評估行數 |
---|---|---|---|
1792_R0002231_eval_lines | 0.1190 | 0.0250 | 501 |
1794 - 1795_A0068546_eval_lines | 0.1503 | 0.0303 | 510 |
1775 - 1786_A0068551_eval_lines | 0.2203 | 0.0543 | 525 |
1841_Z0000017_eval_lines | 0.2247 | 0.0555 | 470 |
1690_A0066756_eval_lines | 0.2571 | 0.0611 | 249 |
1716_A0017151_eval_lines | 0.2517 | 0.0650 | 558 |
1824_H0000743_eval_lines | 0.2684 | 0.0674 | 260 |
1699 - 1700_C0113233_eval_lines | 0.2713 | 0.0691 | 394 |
1845 - 1857_B0000011_eval_lines | 0.2546 | 0.0706 | 153 |
1812_A0069332_eval_lines | 0.2868 | 0.0793 | 69 |
1659 - 1674_R0000568_eval_lines | 0.3278 | 0.0886 | 304 |
1755 - 1756_C0112394_eval_lines | 0.3440 | 0.0918 | 248 |
1723_H0000374_eval_lines | 0.3105 | 0.1140 | 378 |
1887 - 1892_A0002409_eval_lines | 0.3670 | 0.1297 | 784 |
1679_R0002397_eval_lines | 0.4768 | 0.1422 | 88 |
1800_C0101725_eval_lines | 0.4459 | 0.1767 | 37 |
1871_K0017448_eval_lines | 0.4504 | 0.1945 | 331 |
1654_R0001308_eval_lines | 0.5200 | 0.2179 | 199 |
評估指標
字符錯誤率(CER)
字符錯誤率(CER)是一種用於評估手寫文字識別(HTR)系統性能的指標,通過在字符級別上將識別文本與參考(真實)文本進行比較來計算。 計算公式如下: $$ CER = \frac{S + D + I}{N} $$ 其中:
- ( S ) = 替換次數(錯誤字符數)
- ( D ) = 刪除次數(缺失字符數)
- ( I ) = 插入次數(多餘字符數)
- ( N ) = 參考文本中的字符總數
較低的CER表示更好的識別準確性。
單詞錯誤率(WER)
單詞錯誤率(WER)是一種用於在單詞級別評估HTR系統準確性的指標,通過將識別文本與參考文本進行比較來計算。 計算公式如下: $$ WER = \frac{S + D + I}{N} $$ 其中:
- ( S ) = 替換次數(錯誤單詞數)
- ( D ) = 刪除次數(缺失單詞數)
- ( I ) = 插入次數(多餘單詞數)
- ( N ) = 參考文本中的單詞總數
與CER類似,較低的WER表示更好的單詞級別準確性。
🔧 技術細節
模型架構
請參閱模型倉庫中的config.json文件。
📄 許可證
本模型使用的許可證為apache - 2.0。
📖 引用










