Tika結合Tesseract-OCR 實現光學漢字識別(簡體、宋體的識別率百分之百)—附Java源碼、測試數據和訓練集下載地址


 

 OCR(Optical character recognition) —— 光學字符識別,是圖像處理的一個重要分支,中文的識別具有一定挑戰性,特別是手寫體和草書的識別,是重要和熱門的科學研究方向。可惜國內的科研院所,基本沒有幾個高識別率的訓練集——筆者聯系過北京語言大學研究生一篇論文的作者,他們論文說有%90的正確識別率,結果只做了20個筆畫簡單的漢字(20/6753 = %0.3 常用簡體漢字的千分之三),然后找了20個學生,各自手寫了一遍。真的是為了論文而論文,而且很會選擇樣本(小而簡單)

斯坦福大學有個工程項目,專門做中文漢字的識別——歐美發達國家的科研院所更有研究精神

 

 提高識別率,訓練集是關鍵!

 提高識別率,訓練集是關鍵!!

 提高識別率,訓練集是關鍵!!!

 

下載訓練集—traineddata請移步:

https://github.com/tesseract-ocr/tessdata

中文請選如下4個:

chi_sim.traineddata (簡體— 對於宋體,像素>= 300dpi:識別率高達%100,同時對英文阿拉伯數字識別率高達百分之90以上
chi_sim_vert.traineddata (簡體,豎排)
chi_tra.traineddata (繁體)
chi_tra_vert.traineddata(繁體,豎排)【CoderBaby

 

  •  如何做自己的測試數據集

請參考官網:  how to train tesseract

 

經過測試得出如下結論:

  • 對於宋體,白色背景,非傾斜等,像素大於等於300dpi—識別率%100
  • 英文和數字,識別率超過90%
  • 特殊字符識別率不高
  • 像素太低,識別率急劇下降
  • 多種背景顏色變化,識別率極低
  • 字體換成草書等,識別率大幅降低
  • 電影屏幕字幕和網頁截圖識別率較低
  • 掃描件如果字體太淡,太小,完全識別不出來
  • 提高識別率,需要自己做訓練集,工作量巨大的體力活(簡體漢字最少6753個,混合一些復雜的,至少要10000個字符;不同字體要重新做,因為本質上是圖形幾何計算,國內科研院所和開源的做的不多)

 

  • Java源碼實現,tika結合Tesseract-OCR

1)源碼如下(支持多個圖片識別)

    @Test
    public void testCode() throws IOException, SAXException, TikaException, InterruptedException { List<String> fileNames = new ArrayList<>(); fileNames.add("chi_eng.png"); fileNames.add("chi_eng01.png"); fileNames.add("chi_old.png"); fileNames.add("chi-scan-75dpi.jpg"); fileNames.add("chi-scan-100dpi.jpg"); fileNames.add("chi-scan-300dpi.jpg"); fileNames.add("chi-smartphone.jpg"); fileNames.add("chi-subtitle-v1.jpg"); fileNames.add("english00.png"); fileNames.add("pdf_shaomiao.png"); fileNames.add("test.tiff"); fileNames.add("weather.png"); // 轉載請注明出處:https://www.cnblogs.com/NaughtyCat/p/tika-support-Tesseract-OCR-with-source-code-and-test-data.html TesseractOCRParser parser = new TesseractOCRParser(); TesseractOCRConfig config = new TesseractOCRConfig(); // 設置簡體中文訓練集 config.setLanguage("chi_sim"); // 設置Tesseract 安裝路徑 config.setTesseractPath("C:/Program Files/Tesseract-OCR"); // 設置train data 路徑 config.setTessdataPath("C:/Program Files/Tesseract-OCR/tessdata"); ParseContext context = new ParseContext(); context.set(TesseractOCRConfig.class, config); context.set(TesseractOCRParser.class, parser); fileNames.forEach(filename -> { BodyContentHandler handler = new BodyContentHandler(); File file = new File("E:/tika/testData" + File.separator + filename); if (file.exists()) { Metadata metadata = new Metadata(); try (InputStream stream = new FileInputStream(file)) { parser.parse(stream, handler, metadata, context); } catch (Exception e) { } handler.toString(); } }); } }
  • 測試數據(圖片)說明及下載地址

具體說明及測試效果請參見:https://ocr.space/blog/2015/03/best-ocr-software-for-chinese.html

相關測試圖片請參見:https://github.com/A9T9/OCR-Benchmark

 

(2)原始圖片及效果 ()

基於“chi_sim.traineddata ”— 即簡體中文訓練集

圖1

 

轉換效果如下:

 

【結論】

300dpi,識別率:%100

 


 

圖2

轉換效果如下:

Brief history

Tesseractwes orginally developed at HewlettPackard Laboratones Bristol and
atHewettPackard Co Greeley Colorado beween 1985 and 1994 wthsome
more changes made in 1996 to portto Windows and some C++zing in1998
In2005 Tesseract was open sourced by HP Since 2006 itis developed by Goosgle

Thelatest (LSTM based]j stableversionis4.10, released on July 7.2019.Latest source codes avaable from
master branch on GlHub.Openissues can be foundin ssue racker and Planning iki

 

Thelatest35 version 5 3.05.02 released onjune 19,2018.Latestsource code for3.055 avaable from
305 branch on GlHHub.There sno development forthisversion,butitcan be used forspecial cases .
see Regression offeatures from 30x

 

See Release Notes and Change Log formore detas ofthe releases-
Installing Tesseract

You can ettherInstall Tesseractvia prepulltbinary package or pulld iLfrom sourcey
Supported Complersare:

* GCC48 and above
* ang34and above
* MSVC 2015.2017.2019

Othercompllersmightwork butare notofially supportedl
Running Tesseract
Basiccommand line usage:

tesseract inagenane outputbase [-1 ]ang】 [--osn ocrenginenode] [--psn pagesegnode
[configfiles...]

Formore information aboutthe various command line options use esseract --henp or man tesseract .

Examples can befoundin thewiki
For developers

Developers can use Tbtessaract Cor

【結論】
英文,特殊符號等會識別失敗。識別率:>%80


 

圖3.

 轉換效果如下:

E g 氣

 

Even as Tvanja praised 8e parties Envoyed i 功 i5 7el gzamt7 comgpi 地 08
Qchieveze1 Q 7W7Der- Ofsocial media lsers appeared crilical of er as-
Sesszet 0f 加 e Trip adiistration「5 role 加 功 i5 endeavou7
IBM 表 示 不 服 ,Google 不 care。 下 而 讓 我 們 逐 字 逐 句 來 看 他 們 的 論 文
吧 , 對 於 爭 論 的 事 情 , 自 己 下 功 夫 搞 清 楚 。

 

松 貴 瑩 坊 辦 少
忠 : https:/ww.cnblogs-com/NaughtyCatpytranslate-of-google-
Quantum-supremacy-article-published-on-nature.html

Quantum supremacy using
a programmable

 

superconducting
processor

基 於 可 編 程 的 超 導 處 理 器 實 現 的 量 子 霸

 

動 關 盤 源 ,https://doorg/10.1038/s41586-019-1666-5
煌 收 船 2019 樂 7 歷 20 歷
旋 准 8 船 2019 樂 9 歷 20 廠
坊 終 發 療 2019 知 10 月 23 廳

Abstract
引 言

 

量 子 計 算 機 吹 牛 遢 說 , 對 於 特 定 的 計 算 任 務 , 基 於 量 子 處 理 器 的 計 算
機 , 其 速 度 相 較 於 經 典 處 理 器 呈 指 數 級 增 長 。 根 本 的 挑 戰 在 於 構 建 一

 【結論】
宋體,加粗,黑色——識別率%100;傾斜,綠色等——識別率:%70

圖4(掃描件).

 

 

 

 轉換效果如下:

節 P a
為客戶服務是華為存在的睢一理由” 從 公 司 層 面
看 , 為客戶創造價值的主業務流只有一個!

Ipo - nisgniedProductDevelopment

B croeis PaFA 4 辜蒙扁)




Unc - LomdTocash
芸 a npe waa8 2 菅墨

E Ig - ssueToResoliton 林
P L a 顫〉

 

n i t t

 

 

 

6 P: 01

IP0 主 業 務 流 包 括 : MW 流 程 、0R 流 程 、IPD 流 程

 

 

D
4 一


【結論】
pdf掃描件,只有比較大,比較粗的字能識別出來,顏色較淡的識別不出來
識別率:約%10


 圖5.

 

 

轉化效果如下:

大 行 佳 孔 當 自 弼 不 。

巧 者 勞 而 春 者 忱 , 無 能 者 無 所 必 , 作 食 而 邀
游 , 陸 若 不 系 之 舟 。

Chacgyuisdt.

124565.


12256 dogdogunnn

【結論】
漢字、英文、數字混合
識別率:%60~%70


 

圖6(天氣網頁截圖)

 

轉換效果如下:

L f

全 國 > 囚 川 > 尿 膳 > 坂 區
今 奪 偉 8-15 天

 

llc/4rc

 

 

 

 

 

208 238 028 058
人 [ [ 92
s
c E E
無 RR 無 RR 無 RR 無 RR

< < < <

【結論】
背景顏色(藍色,灰色,黑色、橙色);字體顏色(黑色、白色)。識別率:不到%10


 

圖7.

轉換效果如下:

機 器 人 餐 廳

cra arenzanmu nnanmes
seeu xraguagpt. ssepumes
人 吊 pahs ztpznaapsus anea
an sro an sessuassnet
e ssoangm crmazees aas
iusiaanorg.mmouz rpeae
snreenatesezur eeae t
+ngszensenapenecieme
礦 svapgzanohat


【結論】
75dpi,識別率:約為%5 CoderBaby

 


 

圖8(電影字幕截圖).

轉換效果如下:

 

E
1 30
E
55

【結論】

背景顏色(漸變灰),字體為白色——識別率:%0


 

圖9(古籍).

 

 

轉換效果如下:

 

茂 長 萬 灰 咆
恍 “ 望 瀧 “ 松 驅
明 匹 一 圖 撫 札 狐
東 非 “ 柳 一 吳
埕 躍 X“ 埋 煌 弟
儀 懷 坂 稱 鳥 場 “
下 泊 聰 遇 林固 “
| 靴 猶 “

 

【結論】

豎排,古籍版 (需要“chi_tra.traineddata及“chi_tra_vert.traineddata”)——識別率:%0

 


 

圖9(手機拍照圖片).

轉換效果如下:

 

 

 

 

在 中 國 , 餐 廳 里 的 菜 通 常 很 特 別 , 但 是 有 時 候 做 菜 和 服 務
的 人 也 很 特 別 : 不 久 前 昆 山 一 家 餐 廳 開 業 , 這 家 餐 廳 從 歡 迎 宰
人 、 點 菜 、 制 作 到 上 菜 , 大 部 分 工 作 都 由 機 器 人 完 成 。 餐 廳 經 理
宋 育 剛 對 他 的 “ 員 工 “ 很 滿 意 。 這 些 機 吒 人 能 理 解 40 句 日 常 生

 

 

 

 

活 用 語 , 因 此 可 以 與 顧 客 交 流 。 讓 宋 育 剛 最 滿 意 的 是 , 他 的 這 些
員 工 們 既 不 會 生 病 也 不 會 請 假 。 充 電 兩 個 小 時 后 , 它 們 就 又 能
投 入 使 用 了 , 因 此 它 們 要 比 普 通 員 工 優 秀 。 對 於 顧 客 來 說 , 技 術
水 平 有 沒 有 達 到 能 使 這 些 機 蹇 人 廚 師 很 好 地 調 味 還 不 得 而 知 。
不 過 , 機 器 人 廚 師 倒 是 非 常 令 人 期 待 。

【結論】
手機拍照圖片,還算清晰的——識別率:%100

 

轉載請注明出處:https://www.cnblogs.com/NaughtyCat/p/tika-support-Tesseract-OCR-with-source-code-and-test-data.html

 

參考:

1)https://stackoverflow.com/questions/23792373/installing-tesseract-ocr-on-centos-6

2)http://www.zmonster.me/2015/04/17/tesseract-install-usage.html 

 

  本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

************************************************************************

精力有限,想法太多,專注做好一件事就行

  • 我只是一個程序猿。5年內把代碼寫好,技術博客字字推敲,堅持零拷貝和原創
  • 寫博客的意義在於打磨文筆,訓練邏輯條理性,加深對知識的系統性理解;如果恰好又對別人有點幫助,那真是一件令人開心的事

************************************************************************

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM