OCR訓練中文樣本庫和識別

簡述

光學字符識別(英語:Optical Character Recognition,OCR)是指對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息的過程。關于中文的識別最好的開源庫應該就是Tesseract OCR了。本文則重點介紹訓練出一份自己需要的樣本庫并識別(本文默認你已經會直接導入官方訓練庫識別)

準備工作

1)安裝tesseract ocr引擎

以Mac為例,直接選擇homebrew命令安裝 brew install --with-training-tools tesseract

2)下載chi_sim.traindata(中文識別庫,直接放在tesseract安裝目錄的tessdata目錄下,例如/usr/local/Cellar/tesseract/4.0.0/share/tessdata))

3)下載jTessBoxEditor2.2.0

訓練步驟

1)把樣本圖片或者文字轉換成tif格式(圖片轉tif 可以直接網上搜)這里講文字轉tif

雙擊解壓后的jTessBoxEditor.jar文件,選擇工具欄TIFF/Box Generator,把需要轉換的文字直接拷貝到下面空白處

image

Output為tif文件輸出目錄,其他基本無需修改,然后點擊Generate稍等片刻即可生成生成tif文件。

2)生成box文件

把第二步生成的tif文件改名 sll.normal.exp0.tif ,官網的寫法~ 然后進入tif文件目錄下執(zhí)行命令

tesseract sll.normal.exp0.tif sll.normal.exp0 -l chi_sim batch.nochop makebox1

3)選擇工具欄Box Editor,點擊Open導入第一步生成的tif文件(會自動綁定第二步生成的box文件)

image

點擊文字之后可以修改識別區(qū)域寬高,x,y坐標等,修改完成點擊save保存

4)執(zhí)行腳本

Mac執(zhí)行 sh 腳本文件名.sh,然后回車依次輸入sll(語言)normal(字體)

!/bin/sh
?
read -p "輸入你語言:" lang
echo {lang}
read -p "輸入你的字體:" font
echo {font}
echo "所以完整文件名為:"
echo {lang}.{font}.exp0.tif
echo "開始。。。"
echo {font} 0 0 0 0 0 >font_properties
tesseract {lang}.{font}.exp0.tif {lang}.{font}.exp0 nobatch box.train
unicharset_extractor {lang}.{font}.exp0.box
shapeclustering -F font_properties -U unicharset {lang}.{font}.exp0.tr
mftraining -F font_properties -U unicharset -O unicharset {lang}.{font}.exp0.tr
cntraining {lang}.{font}.exp0.tr
echo "開始重命名文件"
mv inttemp {font}.inttemp
mv normproto {font}.normproto
mv pffmtable {font}.pffmtable
mv shapetable {font}.shapetable
mv unicharset {font}.unicharset
echo "生成最終文件"
combine_tessdata ${font}.
?
echo "完成"

運行成功之后就會生成.traineddata文件,這個文件即只能識別我們訓練的“識別”倆字,所以說在大小,識別速度上會大大優(yōu)于官網的中文包,當然本文只是例子,實踐項目中不可能只是“識別”兩個字那么簡單,比如中文簡體3500字,那在修改box文件的時候確實是需要花費很久的時間的

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容