簡述工具
光學字符識別(英語:Optical Character Recognition,OCR)是指對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息的過程。關於中文的識別最好的開源庫應該就是Tesseract OCR了。本文則重點介紹訓練出一份本身須要的樣本庫並識別(本文默認你已經會直接導入官方訓練庫識別)字體
準備工做spa
1)安裝tesseract ocr引擎code
以Mac爲例,直接選擇homebrew命令安裝 brew install --with-training-tools tesseractorm
2)下載chi_sim.traindata(中文識別庫,直接放在tesseract安裝目錄的tessdata目錄下,例如/usr/local/Cellar/tesseract/4.0.0/share/tessdata))圖片
3)下載jTessBoxEditor2.2.0homebrew
訓練步驟get
1)把樣本圖片或者文字轉換成tif格式(圖片轉tif 能夠直接網上搜)這裏講文字轉tifit
雙擊解壓後的jTessBoxEditor.jar文件,選擇工具欄TIFF/Box Generator,把須要轉換的文字直接拷貝到下面空白處io
Output爲tif文件輸出目錄,其餘基本無需修改,而後點擊Generate稍等片刻便可生成生成tif文件。
2)生成box文件
把第二步生成的tif文件更名 sll.normal.exp0.tif ,官網的寫法~ 而後進入tif文件目錄下執行命令
tesseract sll.normal.exp0.tif sll.normal.exp0 -l chi_sim batch.nochop makebox1
3)選擇工具欄Box Editor,點擊Open導入第一步生成的tif文件(會自動綁定第二步生成的box文件)
點擊文字以後能夠修改識別區域寬高,x,y座標等,修改完成點擊save保存
4)執行腳本
Mac執行 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文件,這個文件即只能識別咱們訓練的「識別」倆字,因此說在大小,識別速度上會大大優於官網的中文包,固然本文只是例子,實踐項目中不可能只是「識別」兩個字那麼簡單,好比中文簡體3500字,那在修改box文件的時候確實是須要花費好久的時間的