簡述
光學字符識別(英語: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,把需要轉換的文字直接拷貝到下面空白處

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文件)

點擊文字之后可以修改識別區(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文件的時候確實是需要花費很久的時間的