使用Tesseract对图片文字OCR识别
前言
想用Python對(duì)身份證圖片進(jìn)行OCR識(shí)別,提取出身份證上面的文字,但是不想依賴網(wǎng)絡(luò)上提供的第三方的接口(比如Face++提供的身份證OCR識(shí)別),因?yàn)閷⑸矸葑C的照片上傳到這樣的接口進(jìn)行識(shí)別,很可能會(huì)泄露用戶的隱私信息等。所以就想用Python在本地進(jìn)行圖片文字OCR識(shí)別。
Tesseract是一款被廣泛使用的開(kāi)源 OCR 工具,本文將對(duì)其進(jìn)行簡(jiǎn)單的介紹,先配置安裝好Tesseract,為后續(xù)用Python在本地調(diào)用tesseract提供基礎(chǔ)。
目錄
文章目錄
- 前言
- 目錄
- 關(guān)于Tesseract
- 筆者的電腦環(huán)境
- 獲取,安裝與配置
- tesseract命令的格式
- 測(cè)試
- 測(cè)試對(duì)英文數(shù)字混合的四位驗(yàn)證碼的識(shí)別
- 測(cè)試對(duì)英文文本圖片的識(shí)別
- 測(cè)試對(duì)中文文本圖片的識(shí)別
- 測(cè)試對(duì)身份證圖片的識(shí)別
- 測(cè)試對(duì)模糊的中文文本的圖片的識(shí)別
- 后續(xù)想法
- Python調(diào)用tesseract的兩種方法
- 參考資料
關(guān)于Tesseract
所謂 OCR 是圖像識(shí)別領(lǐng)域中的一個(gè)子領(lǐng)域,該領(lǐng)域?qū)W⒂趯?duì)圖片中的文字信息進(jìn)行識(shí)別并轉(zhuǎn)換成能被常規(guī)文本編輯器編輯的文本。
Tesseract是一個(gè)流行的OCR(Optical Character Recognition,光學(xué)字符識(shí)別)庫(kù),通俗來(lái)說(shuō)就是文本識(shí)別。Tesseract最初由HP(就是惠普啦)在1985年開(kāi)始研發(fā),后面貌似就沒(méi)啥太重大的進(jìn)展了;直到2005年HP將Tesseract開(kāi)源,2006年開(kāi)始交給Google維護(hù)。
Tesseract 已經(jīng)有 30 年歷史,開(kāi)始它是惠普實(shí)驗(yàn)室的一款專利軟件,然后在 2005 年開(kāi)源,自 2006 年后由 Google 贊助進(jìn)行后續(xù)的開(kāi)發(fā)和維護(hù)。
在 1995 年 Tesseract 曾是世界前三的 OCR 引擎,而且在現(xiàn)在的免費(fèi) OCR 引擎中,其識(shí)別精度也仍然是出類拔萃的。因?yàn)槠涿赓M(fèi)與較好的效果,許多的個(gè)人開(kāi)發(fā)者以及一些較小的團(tuán)隊(duì)在使用著 Tesseract ,諸如驗(yàn)證碼識(shí)別、車牌號(hào)識(shí)別等應(yīng)用中,不難見(jiàn)到 Tesseract 的身影。
Tesseract在進(jìn)入3.0版本后各方面功能都有了長(zhǎng)足的發(fā)展,尤其是3.02.02版本開(kāi)始提供C-API,使得通過(guò)動(dòng)態(tài)鏈接庫(kù)與其他編程語(yǔ)言混合開(kāi)發(fā)成為了可能。
筆者的電腦環(huán)境
Windows10教育版 64位 1709 (OS內(nèi)部版本:16299.371)
獲取,安裝與配置
1、下載tesseract-ocr軟件。點(diǎn)這里進(jìn)入軟件下載頁(yè)面。
選擇4.0.0-alpha for Windows下面的 Windows Installer made with MinGW-w64 from UB Mannheim,點(diǎn)擊UB Mannheim進(jìn)入另一網(wǎng)頁(yè)。
進(jìn)入的另一網(wǎng)頁(yè)的網(wǎng)址為https://github.com/UB-Mannheim/tesseract/wiki。
點(diǎn)擊tesseract-ocr-setup-4.0.0-alpha.20180109.exe,下載4.0版本的軟件.
注:下載鏈接會(huì)根據(jù)軟件版本更新,下載地址會(huì)不斷更新。大家可以到網(wǎng)頁(yè)自行查找下載鏈接。
2、下載好的軟件安裝包如圖,雙擊安裝軟件。安裝過(guò)程按照下面的圖片指示進(jìn)行。
注意選擇安裝語(yǔ)言包,包含英文(默認(rèn)安裝)、中文、數(shù)學(xué)公式等,可以根據(jù)需要自己下載。
3、點(diǎn)擊這里進(jìn)入下載最新的tessdata(訓(xùn)練好的數(shù)據(jù)),下載后解壓到tesseract-OCR的安裝目錄下的tessdata文件夾。
4、配置環(huán)境變量。在path環(huán)境變量中加入tesseract-OCR的安裝目錄。
5、按下windows + R 輸入 cmd 打開(kāi)命令行窗口。鍵入tesseract --list-langs可查看到tessdata文件夾下所有訓(xùn)練好的數(shù)據(jù)。
7、按下windows + R 輸入 cmd 打開(kāi)命令行窗口。鍵入D:按回車進(jìn)入D盤,鍵入cd testOCR按回車進(jìn)入“testOCR”文件夾,鍵入ls按回車可看到剛剛準(zhǔn)備好的用于測(cè)試的5張圖片。
tesseract命令的格式
tesseract命令的格式為:
tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]其中imagename為輸入圖片路徑,outputbase為輸出文本文件路徑,此文本文件內(nèi)容為圖片文本識(shí)別結(jié)果。
測(cè)試
筆者分別找了幾張帶文字的圖片放到了D盤testOCR文件夾下準(zhǔn)備用于測(cè)試。
測(cè)試對(duì)英文數(shù)字混合的四位驗(yàn)證碼的識(shí)別
在命令行窗口鍵入tesseract 1.jpg 1.txt按回車,到D盤testOCR文件夾下打開(kāi)1.txt可看到識(shí)別的結(jié)果。如下圖。
測(cè)試對(duì)英文文本圖片的識(shí)別
在命令行窗口鍵入tesseract 2.jpg 2.txt按回車,到D盤testOCR文件夾下打開(kāi)1.txt可看到識(shí)別的結(jié)果。如下圖。
測(cè)試對(duì)中文文本圖片的識(shí)別
在命令行窗口鍵入tesseract 3.jpg 3.txt -l chi_sim按回車,到D盤testOCR文件夾下打開(kāi)1.txt可看到識(shí)別的結(jié)果。如下圖。
測(cè)試對(duì)身份證圖片的識(shí)別
在命令行窗口鍵入tesseract 4.jpg 4.txt -l chi_sim按回車,到D盤testOCR文件夾下打開(kāi)1.txt可看到識(shí)別的結(jié)果。如下圖。
測(cè)試對(duì)模糊的中文文本的圖片的識(shí)別
在命令行窗口鍵入tesseract 5.jpg 5.txt -l chi_sim按回車,到D盤testOCR文件夾下打開(kāi)1.txt可看到識(shí)別的結(jié)果。如下圖。
后續(xù)想法
由上的測(cè)試可看出對(duì)識(shí)別英文準(zhǔn)確率要高一些,對(duì)中文的識(shí)別還有一些錯(cuò)別字,對(duì)身份證的文字識(shí)別準(zhǔn)確率上還不夠,所以想讓Python先對(duì)圖片進(jìn)行一定處理后,再用python調(diào)用Tesseract對(duì)圖片文字OCR識(shí)別。
Python調(diào)用tesseract的兩種方法
1、通過(guò)shell與tesseract通信完成識(shí)別過(guò)程;
2、通過(guò)動(dòng)態(tài)鏈接庫(kù)(Windows下即DLL)實(shí)現(xiàn)。
參考資料
1、Python:文本識(shí)別拋棄pytesser,直接使用Tesseract
2、Tesseract:安裝與命令行使用
3、圖片文字OCR識(shí)別-tesseract-ocr4.00.00安裝使用
4、tesseract安裝使用
總結(jié)
以上是生活随笔為你收集整理的使用Tesseract对图片文字OCR识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 鼠标点击测试_鼠标键盘如何检测故障,这边
- 下一篇: 从吃喝玩乐到学习,71个良心网站,看完你