三步即可完成的OCR入門 | Python版

2021-02-20 小白玩轉Python

OCR是通過使用電子或機械設備將二維文本數據轉換為機器編碼文本的形式。二維文本數據可以從各種來源獲得,例如掃描的文檔(如PDF文件),帶有文本數據(如.png或.jpeg格式)的圖像,路標(如交通路標)或任何其他形式的文本數據的圖像。OCR有許多有趣的應用。

第一次遇到OCR還是在上學的時候,我們的答題卡檢測就是這個過程!當然由於設備的故障或者一些其他的bug,導致檢測結果可能有些許偏差。然而,隨著現代技術的發展,OCR技術被應用到了各種各樣的應用中,並且它們已經變得更加先進,精度已經大大提高。

在本文中,我們將介紹OCR的基礎知識。然後,我們將繼續安裝pytesseract模塊,用於執行OCR。安裝過程總是很煩人的, 因此本文將嘗試簡化安裝過程。然後了解pytesseract模塊中的各種功能。最後,我們將以一個代碼片段結尾,該代碼片段涵蓋將OCR與Google文本到語音模塊結合使用的功能。

註:最後的代碼將是一個結合使用文本語音轉換和字符識別的代碼。這是語言模型設計系列的第二部分。如果您對gTTS模塊沒有任何線索,可以查看《使用Python三步完成文本到語音的轉換》。

OCR究竟是如何工作的?


OCR流程如上圖所示。發送API請求以執行OCR操作。輸入圖像被讀取並相應地預處理。文本被格式化並從圖像中提取。利用訓練好的數據集計算發送到OCR引擎中的圖像。OCR分析圖像中的字符,完成後它將發送數據以進行下一步的預處理和格式化。我們將最終獲得所需的文本數據。

安裝:

下面是經過小編簡化的安裝步驟。第一步很簡單,只需使用pip命令安裝pytesseract模塊。在命令提示符中輸入以下命令:

現在已經成功安裝了pytesseract模塊,但是嘗試運行代碼時,會收到一條錯誤消息,指出系統中未安裝tesseract模塊。解決這個問題需要打開下面的連結。 可從UB Mannheim的Tesseract獲得Tesseract 的一系列安裝版本。

選擇所需的版本進行安裝。可以將pytesseract模塊添加到路徑中,也可以直接使用它。

了解pytesseract模塊:

Python-tesseract是Google Tesseract-OCR引擎的包裝。它也可以用作tesseract的獨立調用腳本,因為它可以讀取Pillow和Leptonica圖像庫支持的所有圖像類型,包括jpeg,png,gif,bmp,tiff等。

為了更直觀地理解這一點,讓我們看下面的簡單代碼:

import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:/Program Files/Tesseract-OCR/tesseract.exe'
image = cv2.imread('1.png')
text = pytesseract.image_to_string(image)

首先導入pytesseract模塊並指定路徑, 然後使用cv2模塊讀取圖像, 最後提取這些圖像並返回文本數據。 image_to_string返回在圖像上運行的Tesseract OCR的結果,以字符串形式顯示。 有關tesseract OCR及其功能(如image_to_string)的更多信息,可以查看下面的連結。

代碼:


本節將包含最終的代碼段,將文本語音轉換以及OCR結合在一起。我們將使用最近安裝的pytesseract模塊以及gTTS和PIL等模塊。PIL代表python圖像庫,該庫將用於加載圖像。opencv庫中的相關函數也可以用於讀取圖像。整個代碼由如下3部分組成。

1. 讀取圖像:


在這個代碼塊中,將導入所需的庫並指定Tesseract的路徑。然後繼續使用cv2模塊讀取圖像。當然也可以使用PIL庫來實現這一點。之後將使用OCR庫將圖像轉換為文本數據並列印所需的輸出。

import cv2import pytesseractfrom PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'C:/Program Files/Tesseract-OCR/tesseract.exe'
image = cv2.imread('1.png')
text = pytesseract.image_to_string(image)
print(text)

2. 格式化數據:


在這個代碼塊中,我們將得到的數據進行格式化的處理,將其變為一行。基本上是對已經獲得的文本數據進行預處理,然後將其傳遞到gTTS模塊進行語音翻譯。


voice_text = ""

for i in text.split(): voice_text += i + ' ' voice_text = voice_text[:-1]voice_text

3. 轉換成語音:

最後將導入Google文本語音轉換模塊,並將文本數據轉換為聲音文件的形式。這對於在PDF和圖像中聽到文本數據的音頻非常有用。

from gtts import gTTSfrom playsound import playsound
tts = gTTS(voice_text)tts.save("test.mp3")playsound("test.mp3")

如果您對gTTS模塊有疑問,可以通過《使用Python三步完成文本到語音的轉換》這篇文章回顧之前的知識哦~

結論:

本文已經介紹了OCR的一些概念,並直觀地了解了OCR處理流程是如何工作的。然後了解了pytesseract模塊的一些功能,最後編寫了一個結合gTTS和pytesseract模塊的代碼。

在本主題語言模型設計的下一部分中,我們將探討如何使用深度學習技術以及OCR和TTS(文本到語音)來開發一個很酷的項目。

強烈建議大家查閱以下參考資料,以便更好地掌握這些概念並更好地學習它們。如果你有任何疑問可以隨時聯繫小編哦~

相關焦點

  • 輕鬆識別文字,這款 Python OCR 庫支持超過 80 種語言
    它可以在python中調用,用來識別圖像中的文字,並輸出為文本。❝https://github.com/JaidedAI/EasyOCR❞使用方法EasyOCR的用法非常簡單,分為三步:我們先來舉個簡單的例子。找一張路標圖片,保存到電腦:
  • 通過Python寫一個OCR圖片識別小程序
    = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token='+v_tokenrq_ocr_data = {'image':image_str_a}headers = {'content-type': 'application/x-www-form-urlencoded'}res_ocr = requests.post(url=rq_ocr_url,data=rq_ocr_data,headers=headers)ocr_result
  • 輕鬆識別文字,這款Python OCR庫支持超過80種語言
    它可以在python中調用,用來識別圖像中的文字,並輸出為文本。❝https://github.com/JaidedAI/EasyOCR❞使用方法EasyOCR的用法非常簡單,分為三步:我們先來舉個簡單的例子。找一張路標圖片,保存到電腦:
  • 用Python進行圖文識別(OCR)
    Tesseract的安裝與使用  Tesseract的Windows安裝包下載地址為:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe ,下載後雙擊直接安裝即可。安裝完後,需要將Tesseract添加到系統變量中。
  • python爬蟲實戰-爬取微信公眾號所有歷史文章 - (03) python結合tesseract-ocr做圖文識別
    安裝分為兩部分:安裝引擎對於ubuntu18.04來說安裝很簡單,兩條命令搞定:sudo apt install tesseract-ocrsudo apt install libtesseract-dev安裝需要識別語言的現有訓練庫:安裝簡體中文的識別庫:sudo apt install tesseract-ocr-chi-sim
  • 一個使用 OCR 技術簡化 D1 樹木生長調查的設想
    這裡嘗試使用 python 比較流行的一個 easyocr 庫來嘗試實現。聲明:我沒有試過真實場景,僅僅探索其可能性,因為我上一次搞調查還是十幾年前了。沒照片,沒數據,沒測試真實情況,但想來應該不難,至少是部分實現起來不難。整個測試使用的 anaconda + vscode,沒有安裝 CUDA,因為嫌棄英偉達麻煩,我不介意跑程序的這點時間,介意的可以安裝。
  • python入門書籍,輕鬆學python
    全民學python的熱潮已經開啟,然而,對於這種情況,還是有很多小夥伴私信我python到底該怎麼入門?沒接觸過編程能學會嗎?
  • 截屏、文字提取一氣呵成,超實用OCR開源小工具
    例如,python textshot.py eng + fra 將使用英語作為主要語言,使用法語作為次要語言。默認值為英語(eng)。同時確保為其他語言安裝了適用於 Tesseract 的數據文件。建議將熱鍵附加到此工具上。對於 Windows 來說,可以使用 AutoHotkey 腳本來完成此操作;textshot.ahk 同時也包含一個可以使用的示例 AHK 腳本。
  • Python入門必備的書籍推薦
    python推薦一:《Python學習手冊:第3版》《Python學習手冊(第3版)》敘述了:Python可移植、功能強大、易於運用,是編寫獨立應用程式和腳本應用程式的志向挑選不管你是剛觸摸編程或許剛觸摸Python,通過學習《Python學習手冊(第3版)》,你能夠活絡高效地知曉中心Python言語基礎。讀完《Python學習手冊(第3版)》,你會對這門言語有滿意的了解,然後能夠在你所從事的任何應用領域中運用它。
  • 關於easyocr、paddleocr、cnocr之比較
    cnocr自帶了訓練好的識別模型,安裝後即可直接使用。cnocr主要針對的是排版簡單的印刷體文字圖片,如截圖圖片,掃描件等。cnocr目前內置的文字檢測和分行模塊無法處理複雜的文字排版定位。如果要用於場景文字圖片的識別,需要結合其他的場景文字檢測引擎使用。EasyOCR 是一個使用 Java 語言實現的 OCR 識別引擎(基於Tesseract)。
  • Python語言如何入門
    閱讀本文大概需要5分鐘:Python 語言應該如何入門,記得我幾年前也碰到過這樣的問題,當時網上隨便搜了一下飢不擇食的找了一些書開始啃起來,結果發現很疑惑,感覺吃力,走了很多彎路。若不得法還會降低初學者的興趣,現在我就說說自己對python 入門的理解.學Python和學其他的語言其實是相同的,我給新同事講課的時候就說學編程和練武功其實是很相似,入門大致這樣幾步:找本靠譜的書,找個靠譜的師傅,找一個地方開始練習。 學語言也是的:選一本通俗易懂的書,找一個好的視頻資料,然後自己裝一個IDE工具開始邊學變寫。
  • 這個 Python OCR 神器能輕鬆識別 80 多種語言!
    簡介EasyOCR 是 python 中一個不錯的 OCR 庫,在GitHub已有 10.3K star。目前支持80多種語言,包括中文、日文、韓文和泰文等。下載安裝項目地址:https://github.com/JaidedAI/EasyOCR教程地址:https://www.jaided.ai/easyocr/tutorialAPI文檔:https://www.jaided.ai/easyocr/documentationEasyOCR安裝方法很簡單,直接使用pip安裝,
  • Python入門: 安裝和環境搭建(Mac版)
    但專業技能的學習確是必不可少的,期間很多同學諮詢我Python的問題,為此,接下來幾周專門來分享下如何入門Python的基礎數據分析,結合案例來做參考。主要包含以下內容:Python的安裝和環境搭建Pandas入門數據可視化信號處理與時間序列預測性分析與機器學習文本數據分析下面是第一部分Python安裝和環境搭建,以Mac為基礎,Windows可以按照類似方法走,如有疑問可以添加微信samuel-zhan交流Python 是一種易於學習又功能強大的程式語言
  • Python快速入門的方法
    那麼,作為一個新手,如何才能快速並有效的入門呢?0.快速入門《和孩子一起學編程》這本書說是給兒童設計的,所以內容比較生動。非常非常非常簡單易懂 不用花太長時間就能看下來一遍。import一個easygui,初學者分分鐘做個圖形界面出來,對於初學python,成就感!!
  • Python推薦書籍從入門到進階(珍藏版)
    《Python編程:從入門到實踐》本書的講解很到位,不過就是在對一些簡單知識點的講解方面投入了過多的筆墨。書中練習的原始碼下載地址:ehmatthes.github.io/pcc這是英文版的勘誤表【網站:nostarch.com/pythoncras】:
  • Python 從零開始--入門篇
    why pthon為什麼是 python 呢,原因很簡單~嗯哼!就是很簡答相比於 C語言 的指針的混亂,和 Java 的繁瑣,python 更加適合作為非計算機專業的第一個入門的程式語言。(計算機專業最好還是以C語言為第一門語言入門為好,後面寫文章出來介紹)從語法上面來說也擁有更多的第三方庫,避免了很多「重複製造輪子「。能夠很快上手,很多系統也都內置了python環境,相關配置也很簡單。當然除了這些拿來吃飯也是很重要的,時代所需,生活所迫。
  • 可能是最通俗易懂的Python入門資料整理和最優學習路線推薦.
    在這篇文章裡,我會把所涉及的資料分為三個部分。第一個部分是書籍的推薦,第二個部分是視頻教程的推薦,第三個部分是練手項目的推薦。在文章的最後我會根據我推薦的三個部分,挑選其中的一些項目,組合在一起推薦一個適合初學者的最優學習路線。還學不會Python你打我。文章末尾會給出本文提及的所有教程的連結或下載地址。
  • Halcon OCR識別
    上述4個步驟中,OCR的核心部分自然是第3步,即模式識別技術模式識別技術訓練分類器第一步:將分割好的字符區域加入訓練集,使用函數append_ocr_trainf(Character,Image::Class,TrainingFile:)參數解析:Character:字符區域Image
  • 【收藏】圖片轉成文字的方法總結,python批量圖片轉文字信息參考源碼
    方法三:應用Python寫圖片識別文字工具(騷操作,僅供裝比使用)騷操作來了,我們可以應用python來自己寫一個工具腳本,一個圖片識別文字工具腳本,可以批量操作,解放雙手,當然僅供裝比使用EasyOCR的用法非常簡單,分為三步:1.創建識別對象;2.讀取並識別圖像;3.導出文本。
  • python入門
    --Yves Hilpisch 《Python for Finance》發現近期學習python的人越來越多了,最近也有人問我有沒有啥課程或者書推薦的。我自己還是側重數據計算和在金融中的應用,系統管理、web開發等沒做過。我當年也是新手入門,自己搜索嘗試,買了很多的書,也在網上下載了很多資料。