国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Tesseract 進(jìn)行圖像識(shí)別

Tecode / 1181人閱讀

摘要:目前已作為開源項(xiàng)目發(fā)布在,其最新版本已經(jīng)支持中文,并提供了一個(gè)命令行工具。他能夠用來識(shí)別英文,但是不能識(shí)別中文。所以要下載中文的識(shí)別包這樣就能識(shí)別中文。至少對印刷的中文字識(shí)別效果是很好的。

1. Tesseract 介紹

Tesseract的OCR引擎最先由HP實(shí)驗(yàn)室于1985年開始研發(fā),至1995年時(shí)已經(jīng)成為OCR業(yè)內(nèi)最準(zhǔn)確的三款識(shí)別引擎之一。然而,HP不久便決定放棄OCR業(yè)務(wù),Tesseract也從此塵封。

數(shù)年以后,HP意識(shí)到,與其將Tesseract束之高閣,不如貢獻(xiàn)給開源軟件業(yè),讓其重?zé)ㄐ律?005年,Tesseract由美國內(nèi)華達(dá)州信息技術(shù)研究所獲得,并求諸于Google對Tesseract進(jìn)行改進(jìn)、消除Bug、優(yōu)化工作。

Tesseract目前已作為開源項(xiàng)目發(fā)布在Google Project,其最新版本3.0已經(jīng)支持中文OCR,并提供了一個(gè)命令行工具。

2. Tesseract 安裝

Tesseract 可以在 linux、windows 和 macOS 下使用。這里以 macOS 為例。

2.1 使用 homebrew 安裝 Tesseract 同時(shí)安裝訓(xùn)練工具:

brew install --with-training-tools tesseract

雖然官方提供了多種語言的識(shí)別數(shù)據(jù)包,但是在很多情況下都需要在其基礎(chǔ)上自己進(jìn)行訓(xùn)練,所以記得安裝訓(xùn)練工具

2.2 安裝語言識(shí)別包

從官網(wǎng)地址下載對應(yīng)的識(shí)別包 [官網(wǎng)地址](https://github.com/tesseract-...
) 比如中文識(shí)別選擇 chi_sim 這個(gè)包

再將識(shí)別包放置到系統(tǒng)的相應(yīng)目錄中,比如我用 hoembrew 安裝,地址位于:

/usr/local/Cellar/tesseract/3.05.01/share/tessdata

2.3 下載訓(xùn)練工具

tesseract 的好處就在能夠自己訓(xùn)練需要識(shí)別的字符,如果只是識(shí)別印刷字體這樣的需求還是調(diào)用 API 比較方便,比如說百度云的文字識(shí)別 API。

要進(jìn)行訓(xùn)練就下載 jTessBoxEditor 樣本訓(xùn)練工具

3. 基本概念 3.1 基本命令

查看版本

tesseract -v

查看幫助

tesseract --help

進(jìn)行識(shí)別的命令

tesseract in.jpg out.txt -l chi_sim -psm 6
in.jpg:需要識(shí)別的圖片
out.jpg:圖片的結(jié)果輸出到的位置
-l:后跟用于進(jìn)行識(shí)別的數(shù)據(jù)包,這里是中文
-psm:識(shí)別方式

3.2 語言識(shí)別包

查看已有的語言識(shí)別包

?libai tesseract --list-langs
List of available languages (4):
chi_sim
eng
libai
number

語言識(shí)別的包是識(shí)別的基礎(chǔ),下載之后默認(rèn)自帶的是 eng.traineddata 英文識(shí)別包。他能夠用來識(shí)別英文,但是不能識(shí)別中文。所以要下載中文的識(shí)別包 ch_sim.traineddata 這樣就能識(shí)別中文。但是發(fā)現(xiàn)準(zhǔn)確率不高,不符合需求就要訓(xùn)練自己的包。

總之核心就在 traineddata 文件。

3.3 psm的參數(shù)

psm 的參數(shù)很重要,表示 tesseract 識(shí)別圖像的方式,比如說是一行一行識(shí)別還是逐字識(shí)別。希望逐字識(shí)別可以使用 -psm 10,希望逐行識(shí)別可以使用 -psm 6,其他沒怎么用以后有機(jī)會(huì)補(bǔ)充。總之,希望有更好的識(shí)別效果需要選擇合適的 psm。

tesseract --help-psm
  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single word.
  9    Treat the image as a single word in a circle.
 10    Treat the image as a single character.

谷歌翻譯結(jié)果,自己嘗試一下會(huì)有體會(huì)

方向和腳本檢測(OSD)。
  1自動(dòng)頁面分割與OSD。
  2自動(dòng)頁面分割,但沒有OSD或OCR。
  3全自動(dòng)頁面分割,但沒有OSD。 (默認(rèn))
  4假設(shè)單列可變大小的文本。
  5假設(shè)一個(gè)垂直對齊的文本的統(tǒng)一塊。
  6假設(shè)單個(gè)統(tǒng)一的文本塊。
  7將圖像視為單個(gè)文本行。
  8將圖像視為單個(gè)字。
  9將圖像視為一個(gè)單個(gè)的單詞。
 10將圖像視為單個(gè)字符。
4. 識(shí)別與訓(xùn)練

libai

4.1 識(shí)別

tesseract libai.jpg libai -l chi_sim -psm 6

抹甫曰月閆充,
屁是訛上霜;
亭孰塑明汛
佃爽崽故歹o

顯然準(zhǔn)確率不高,進(jìn)行訓(xùn)練。

4.2 訓(xùn)練

1.生成字體文件

打開jTessBoxEditor工具,菜單欄:tools->Merge TIFF...,選中要合成的圖片并保存為為:libai.tif

2.生成 box 文件

tesseract libai.tif libai -l chi_sim -psm 6 batch.nochop makebox

3.利用 jTessBoxEditor 校正

說明
校正之后記得保存。

4.生成.tr文件

tesseract libai.tif libai -psm 6 nobatch box.train

5.生成unicharset文件

unicharset_extractor libai.box

6.創(chuàng)建font_properties文件

echo "font 0 0 0 0 0" > font_properties

7.training

shapeclustering -F font_properties -U unicharset libai.tr
mftraining -F font_properties -U unicharset -O l libai.tr

8.Clustering。產(chǎn)生字符形狀正常化特征文件normproto

cntraining libai.tr

9.重命名文件

mv normproto libai.normproto
mv inttemp libai.inttemp
mv pffmtable libai.pffmtable
mv shapetable libai.shapetable
mv unicharset libai.unicharset

10.合并文件生成 traineddata 文件

?  libai combine_tessdata libai.
Combining tessdata files
TessdataManager combined tesseract data files.
Offset for type  0 (libai.config                ) is -1
Offset for type  1 (libai.unicharset            ) is 140
Offset for type  2 (libai.unicharambigs         ) is -1
Offset for type  3 (libai.inttemp               ) is 855
Offset for type  4 (libai.pffmtable             ) is 140145
Offset for type  5 (libai.normproto             ) is 140274
Offset for type  6 (libai.punc-dawg             ) is -1
Offset for type  7 (libai.word-dawg             ) is -1
Offset for type  8 (libai.number-dawg           ) is -1
Offset for type  9 (libai.freq-dawg             ) is -1
Offset for type 10 (libai.fixed-length-dawgs    ) is -1
Offset for type 11 (libai.cube-unicharset       ) is -1
Offset for type 12 (libai.cube-word-dawg        ) is -1
Offset for type 13 (libai.shapetable            ) is 141781
Offset for type 14 (libai.bigram-dawg           ) is -1
Offset for type 15 (libai.unambig-dawg          ) is -1
Offset for type 16 (libai.params-model          ) is -1
Output libai.traineddata created successfully.

11.將文件拷貝到目標(biāo)文件夾

cp libai.traineddata /usr/local/Cellar/tesseract/3.05.01/share/tessdata

12.再次識(shí)別

tesseract libai.jpg trained -l libai -psm 6

?  libai cat trained.txt
床前明月光,
疑是地上霜;
舉頭望明月,
低頭思故鄉(xiāng).
5. 總結(jié)

tesseract 能夠進(jìn)行 OCR 識(shí)別,但是對中文的支持不夠好。所以如果要更好地識(shí)別中文字體需要進(jìn)行大量的訓(xùn)練,有時(shí)間精力當(dāng)然是一個(gè)方案,沒有的話還是調(diào)用現(xiàn)成的 API 比較好。至少對印刷的中文字識(shí)別效果是很好的。

我寫好的放在 Tesseract 和百度識(shí)別的 Demo

參考資料:

Tesseract 3 語言數(shù)據(jù)的訓(xùn)練方法
使用Tesseract-OCR訓(xùn)練文字識(shí)別記錄
如何使用Tesseract-OCR(v3.02.02)訓(xùn)練字庫 - 作業(yè)部落 Cmd Markdown 編輯閱讀器

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67961.html

相關(guān)文章

  • [譯]OpenCV OCR and text recognition with Tesseract

    摘要:納入深度學(xué)習(xí)模型來進(jìn)一步提升準(zhǔn)確率只是時(shí)間問題,事實(shí)上,這個(gè)時(shí)間已經(jīng)到來。最新版本支持基于深度學(xué)習(xí)的,準(zhǔn)確率顯著提高。該函數(shù)使用基于深度學(xué)習(xí)的文本檢測器來檢測不是識(shí)別圖像中的文本區(qū)域。高效使用概率最高的文本區(qū)域,刪除其他重疊區(qū)域。 By Adrian Rosebrock on September 17, 2018 in Deep Learning, Optical Character ...

    gnehc 評(píng)論0 收藏0
  • Python圖像處理之圖片文字識(shí)別(OCR)

    摘要:與介紹將圖片翻譯成文字一般被稱為光學(xué)文字識(shí)別,。是目前公認(rèn)最優(yōu)秀最精確的開源系統(tǒng)。我們以圖片為例輸入命令識(shí)別結(jié)果如下只識(shí)別錯(cuò)了一個(gè)字,識(shí)別率還是不錯(cuò)的。最后加一句,對于彩色圖片的識(shí)別效果沒有黑白圖片的效果好。 OCR與Tesseract介紹 ??將圖片翻譯成文字一般被稱為光學(xué)文字識(shí)別(Optical Character Recognition,OCR)。可以實(shí)現(xiàn)OCR 的底層庫并不多,...

    W4n9Hu1 評(píng)論0 收藏0
  • Python圖像處理之圖片驗(yàn)證碼識(shí)別

    摘要:在上一篇博客圖像處理之圖片文字識(shí)別中我們介紹了在中如何利用軟件來識(shí)別圖片中的英文與中文,本文將具體介紹如何在中利用軟件來識(shí)別驗(yàn)證碼數(shù)字加字母。 ??在上一篇博客Python圖像處理之圖片文字識(shí)別(OCR)中我們介紹了在Python中如何利用Tesseract軟件來識(shí)別圖片中的英文與中文,本文將具體介紹如何在Python中利用Tesseract軟件來識(shí)別驗(yàn)證碼(數(shù)字加字母)。??我們在網(wǎng)...

    kk_miles 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<