Android文字識(shí)別tesseract ocr -訓(xùn)練樣本庫(kù) 識(shí)別字庫(kù)

目錄

  1. 安裝tesseract ocr引擎和jTessBoxEditor
  2. 安裝jTessBoxEditor
  3. 開(kāi)始制作box
  4. 準(zhǔn)備好訓(xùn)練的圖片
  5. 將圖片轉(zhuǎn)為tif格式的樣本圖片
  6. 合并樣本圖片
  7. 修改box文件
  8. 用腳本生成 或按下面步驟
  9. 生成font_properties
  10. 生成
  11. 訓(xùn)練
  12. 生成字符集文件
  13. 生成shape文件
  14. 生成聚集字符特征文件
  15. 生成字符正嘲苌埃化特征文件
  16. 合成最終文件
  17. 改名
    2.合并字庫(kù)文件

在上一篇文章tess_two Android圖片文字識(shí)別中姻乓,使用tess_two完成了簡(jiǎn)單的文字識(shí)別丽啡。
博客地址
但是發(fā)現(xiàn)一個(gè)很明顯的問(wèn)題是杯道,默認(rèn)的識(shí)別速度比較慢编丘。識(shí)別四個(gè)很明顯的字需要將近兩秒买窟。
DemoGitHub可以試試胚迫。


tess_two用的是tesseract ocr引擎
查看用到的官方提供的中文識(shí)別庫(kù)chi_sim.traineddata文件有52M。里面肯定是包含了很多的訓(xùn)練和文字的汇恤。

我用不了那么多字庞钢,然后就按官方和網(wǎng)上的資料自己做了一個(gè)識(shí)別庫(kù),這個(gè)庫(kù)只能識(shí)別訓(xùn)練過(guò)的文字因谎。速度生成的文件應(yīng)該跟訓(xùn)練的字?jǐn)?shù)有關(guān)的基括,我實(shí)驗(yàn)了幾個(gè)字橙数,只有100多k。
看看速度,快了很多潦蝇。


下面大致記錄一下制作訓(xùn)練識(shí)別庫(kù)的方法碍遍。相對(duì)比較簡(jiǎn)單。

安裝tesseract ocr引擎和jTessBoxEditor

官網(wǎng)上可以找到Window和Mac的安裝方法挫鸽,window的有專(zhuān)門(mén)的額客戶(hù)端。我的是Mac,所以選的是Homebrew安裝患朱。

Homebrew 是一個(gè)包管理器,如果沒(méi)裝的話(huà)炊苫,在終端執(zhí)行ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"就會(huì)自動(dòng)裝好裁厅。

單純的安裝tesseract ocr引擎是可以直接用官網(wǎng)的命令brew install tesseract

但是,我后面要用到訓(xùn)練樣本的命令侨艾,所以我們要用到的安裝命令是brew install --with-training-tools tesseract,否則后面一些命令會(huì)找不到执虹。

如果初次安裝用了第一個(gè),那么可以先用brew uninstall tesseract卸載掉唠梨,然后執(zhí)行brew install --with-training-tools tesseract重新安裝袋励。

裝好之后,找到在上篇文章中下載的chi_sim.traineddata。

然后復(fù)制到/usr/local/Cellar/tesseract/3.05.00/share/tessdata中備用茬故。里面已經(jīng)自帶了eng.traineddata盖灸。 這一步不是必須的,而且我這樣好想還容易出錯(cuò)磺芭。

安裝jTessBoxEditor

這里提供了很多第三方的訓(xùn)練工具赁炎,我選第一個(gè)jTessBoxEditor。

jTessBoxEditor是基于java的钾腺,多以可以跨平臺(tái)徙垫,下載下來(lái)在Mac和Windows上都能運(yùn)行。
下載下來(lái)是這樣的


jTessBoxEditor

啟動(dòng)jTessBoxEditor.jar就能打開(kāi)客戶(hù)端垮庐。

這里我有一個(gè)疑問(wèn)松邪,別人電腦上都能雙擊這個(gè)文件打開(kāi),而我的電腦雙擊一閃就沒(méi)了哨查,只能用在終端里打開(kāi)逗抑。。

開(kāi)始制作box

準(zhǔn)備好訓(xùn)練的圖片:


什么格式應(yīng)該沒(méi)關(guān)系寒亥,反正都要轉(zhuǎn)化成tif格式的邮府。

將圖片轉(zhuǎn)為tif格式的樣本圖片

方法有很多,我用的在線(xiàn)轉(zhuǎn)化溉奕。
下載下來(lái)的文件是


要手動(dòng)吧后綴的.html去掉變成.tif文件褂傀,比較麻煩。所以不推薦用這個(gè)轉(zhuǎn)換工具加勤。仙辟。
改名后

合并樣本圖片

大家應(yīng)該注意到有一個(gè)new文件夾,這個(gè)文件夾用來(lái)放之后生成的各種文件的鳄梅,包括最終的traineddata文件叠国。
打開(kāi)jTessBoxEditor.jar,然后點(diǎn)菜單上的Tool->Merge TIFF


保存到new文件夾中戴尸,保存的時(shí)候注意名字sll.normal.exp0.tif

關(guān)于名字 sll.normal.exp0.tif
官網(wǎng)的寫(xiě)法是這樣的
[lang].[fontname].exp[num].tif
[lang]是語(yǔ)言粟焊,隨便起,這里的叫sll
[fontname]是字體孙蒙,隨便起项棠,這里叫 normal
[num]我也不知道啥意思,寫(xiě)的是數(shù)字0
這兩個(gè)都是自定義的挎峦,后面會(huì)用到香追,所以要記住。

點(diǎn)擊保存后坦胶,會(huì)在new文件夾中生成合并的sll.normal.exp0.tif文件



然后執(zhí)行命令翅阵,
如果前面復(fù)制了chi_sim.traineddata文件的話(huà)用下面的

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

否則用這個(gè),默認(rèn)的歪玲。上面那個(gè)有時(shí)候會(huì)出錯(cuò)沒(méi)我也不知道為什么。

tesseract sll.normal.exp0.tif sll.normal.exp0 -l eng batch.nochop makebox

會(huì)在當(dāng)前文件夾下生成sll.normal.exp0.box文件


修改box文件

打開(kāi)jTessBoxEditor.jar掷匠,點(diǎn)擊Box Editor->open
然后選上一步的tif文件滥崩,會(huì)自動(dòng)打開(kāi)綁定的box文件。



在里面可以對(duì)他的識(shí)別區(qū)域讹语,識(shí)別結(jié)果進(jìn)行一些修改钙皮,達(dá)到我們正確的識(shí)別目的






全部修改完后點(diǎn)擊save。

用腳本生成

下面的步驟可以寫(xiě)一個(gè)腳本自動(dòng)完成顽决。生成box文件就一行代碼短条,就不用寫(xiě)了。
比如才菠,在new文件夾下創(chuàng)建一個(gè)gettraineddata.shell,里面寫(xiě)

#!/bin/sh
read -p "輸入你語(yǔ)言:" lang
echo ${lang}
read -p "輸入你的字體:" font
echo ${font}
echo "所以完整文件名為:"
echo ${lang}.${font}.exp0.tif
echo "開(kāi)始茸时。。赋访。"
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 "開(kāi)始重命名文件"
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 "完成"

當(dāng)然里面的東西可以改可都,要輸入的語(yǔ)言和字體是根據(jù)tif文件的名字來(lái)的
比如我的文件是sll.normal.exp0.tif
所以就這樣輸入



如果不出錯(cuò),就能看見(jiàn)new里面變成了這樣



有了我們需要的normal.traineddata識(shí)別庫(kù)蚓耽。

生成font_properties

在new文件夾中執(zhí)行下面命令,會(huì)生成一個(gè)font_properties文件渠牲,里面的內(nèi)容是normal 0 0 0 0 0 。

echo normal 0 0 0 0 0 >font_properties


六個(gè)代表的東西是 fontname italic bold fixed serif fraktur
像第一個(gè)是字體名步悠,前面我起的是normal签杈。
后面的值是0或1,可以看一下默認(rèn)的文件font_properties

生成

接下來(lái)就是一條條命令生成一個(gè)個(gè)文件了

訓(xùn)練

tesseract sll.normal.exp0.tif sll.normal.exp0 nobatch box.train

生成字符集文件

unicharset_extractor sll.normal.exp0.box

生成shape文件

shapeclustering -F font_properties -U unicharset sll.normal.exp0.tr


生成聚集字符特征文件

mftraining -F font_properties -U unicharset -O unicharset sll.normal.exp0.tr

生成字符正扯κ蓿化特征文件

cntraining sll.normal.exp0.tr

合成最終文件

改名

上面幾步完成后答姥,會(huì)看到下面五個(gè)文件



然后全部重命名,前面加上normal. 就是字體名谚咬,變成


合并字庫(kù)文件

combine_tessdata normal.



看 哇 拿到了我們需要的normal.traineddata文件鹦付。
必須確定的是第type 1、3序宦、4睁壁、5的數(shù)據(jù)不是-1背苦,才算成功互捌。
然后按上一篇的方法用吧!

參考http://www.cnblogs.com/zhongtang/p/5555950.html?utm_source=tuicool&utm_medium=referral
參考http://www.cnblogs.com/wzben/p/5930538.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市行剂,隨后出現(xiàn)的幾起案子秕噪,更是在濱河造成了極大的恐慌,老刑警劉巖厚宰,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腌巾,死亡現(xiàn)場(chǎng)離奇詭異遂填,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)澈蝙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)吓坚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人灯荧,你說(shuō)我怎么就攤上這事礁击。” “怎么了逗载?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵哆窿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我厉斟,道長(zhǎng)挚躯,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任擦秽,我火速辦了婚禮码荔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘号涯。我一直安慰自己目胡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布链快。 她就那樣靜靜地躺著誉己,像睡著了一般。 火紅的嫁衣襯著肌膚如雪域蜗。 梳的紋絲不亂的頭發(fā)上巨双,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音霉祸,去河邊找鬼筑累。 笑死,一個(gè)胖子當(dāng)著我的面吹牛丝蹭,可吹牛的內(nèi)容都是我干的慢宗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼奔穿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼镜沽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起贱田,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缅茉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后男摧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔬墩,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡译打,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拇颅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奏司。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖樟插,靈堂內(nèi)的尸體忽然破棺而出结澄,到底是詐尸還是另有隱情,我是刑警寧澤岸夯,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布麻献,位于F島的核電站,受9級(jí)特大地震影響猜扮,放射性物質(zhì)發(fā)生泄漏勉吻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一旅赢、第九天 我趴在偏房一處隱蔽的房頂上張望齿桃。 院中可真熱鬧,春花似錦煮盼、人聲如沸短纵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)香到。三九已至,卻和暖如春报破,著一層夾襖步出監(jiān)牢的瞬間悠就,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工充易, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梗脾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓盹靴,卻偏偏與公主長(zhǎng)得像炸茧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子稿静,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容