用Python進行圖文識別(OCR)

2021-02-20 Python中文社區

作者: jclian,本人從事Python已一年多,是Python愛好者,喜歡算法,熱愛分享,希望能結交更多志同道合的朋友,一起在學習Python的道路上走得更遠!

OCR與Tesseract介紹

  將圖片翻譯成文字一般被稱為光學文字識別(Optical Character Recognition,OCR)。可以實現OCR 的底層庫並不多,目前很多庫都是使用共同的幾個底層OCR 庫,或者是在上面進行定製。
  Tesseract 是一個OCR 庫,目前由Google 贊助(Google 也是一家以OCR 和機器學習技術聞名於世的公司)。Tesseract 是目前公認最優秀、最精確的開源OCR 系統。
  除了極高的精確度,Tesseract 也具有很高的靈活性。它可以通過訓練識別出任何字體(只要這些字體的風格保持不變就可以),也可以識別出任何Unicode 字符。

Tesseract的安裝與使用

  Tesseract的Windows安裝包下載地址為:http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe ,下載後雙擊直接安裝即可。安裝完後,需要將Tesseract添加到系統變量中。在CMD中輸入tesseract -v, 如顯示以下界面,則表示Tesseract安裝完成且添加到系統變量中。

  Linux 用戶可以通過apt-get 安裝:

$sudo apt-get tesseract-ocr

     用Tesseract可以識別格式規範的文字,主要具有以下特點: 

使用一個標準字體(不包含手寫體、草書,或者十分「花哨的」字體

雖然被複印或拍照,字體還是很清晰,沒有多餘的痕跡或汙點

排列整齊,沒有歪歪斜斜的字

沒有超出圖片範圍,也沒有殘缺不全,或緊緊貼在圖片的邊緣

   下面將給出幾個tesseract識別圖片中文字的例子。

  首先是E://figures/other/poems.jpg, 輸入命令:tesseract E://figures/other/poems.jpg E://figures/other/poems.txt, 則會將poems.jpg中的識別文字寫入到poems.txt中,如下圖:

poems.jpg

  接著是稍微有點傾斜的文字圖片th.jpg,識別情況如下:

    可以看到識別的情況不如剛才規範字體的好,但是也能識別圖片中的大部分字母。最後是識別簡體中文,需要事先安裝簡體中文語言包,下載地址為:https://github.com/tesseract-ocr/tessdata/find/master/chi_sim.traineddata ,再講chi_sim.traineddata放在C:Program Files (x86)Tesseract-OCR essdata目錄下。我們以圖片timg.jpg為例:

輸入命令:

tesseract E://figures/other/timg.jpg E://figures/other/timg.txt -l chi_sim

識別結果如下:

只識別錯了一個字,識別率還是不錯的。最後加一句,Tesseract對於彩色圖片的識別效果沒有黑白圖片的效果好。

pytesseract

  pytesseract是Tesseract關於Python的接口,可以使用pip install pytesseract安裝。安裝完後,就可以使用Python調用Tesseract了,不過,你還需要一個Python的圖片處理模塊,可以安裝pillow.
  輸入以下代碼,可以實現同上述Tesseract命令一樣的效果:

import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = 'C://Program Files (x86)/Tesseract-OCR/tesseract.exe'
text = pytesseract.image_to_string(Image.open('E://figures/other/poems.jpg'))

print(text)

運行結果(部分)如下:

參考文獻

《Python網絡數據採集》 【美】 Ryan Mitchell  人民郵電出版社

https://blog.csdn.net/dcrmg/article/details/78233459?locationNum=7&fps=1

http://www.inimei.cn/archives/297.html

Python中文社區作為一個去中心化的全球技術社區,以成為全球20萬Python中文開發者的精神部落為願景,目前覆蓋各大主流媒體和協作平臺,與阿里、騰訊、百度、微軟、亞馬遜、開源中國、CSDN等業界知名公司和技術社區建立了廣泛的聯繫,擁有來自十多個國家和地區數萬名登記會員,會員來自以公安部、工信部、清華大學、北京大學、北京郵電大學、中國人民銀行、中科院、中金、華為、BAT、谷歌、微軟等為代表的政府機關、科研單位、金融機構以及海內外知名公司,全平臺近20萬開發者關注。

最近熱門

數據解讀誰是直男們心中的女神

分類模型評估的方法及Python實現

我分析了虎嗅網5萬篇文章,發現這些秘密

我爬取分析美團網,原來北京上海Top10美食是它們

金州勇士4年3冠的成功秘訣!Python數據可視化分析告訴你答案

投稿郵箱:pythonpost@163.com

▼ 點擊下方閱讀原文,免費成為社區註冊會員 

相關焦點

  • python爬蟲實戰-爬取微信公眾號所有歷史文章 - (03) python結合tesseract-ocr做圖文識別
    這篇文章我們講講對一副圖片的特定區域做截取,並利用開源庫做圖紋識別。要實現這個步驟的原因是,最初想實現爬取微信公眾號歷史文章這個功能時,一番沒有抓包爬蟲經驗,於是為了獲取歷史文章的標題用於pdf列印時的命名,一番想到截圖後對圖片做圖文識別,然後點擊文章標題,進入到文章閱讀界面然後結合目標圖片識別「複製連結」來獲取到文章的連結。
  • 通過Python寫一個OCR圖片識別小程序
    在我們的日常辦公中,經常有識別圖片中的大段文字的需求。
  • OCR識別服務,盤它
    而目前PaddleHub為大家提供的是超輕量級中文OCR模型,聚焦特定的場景,支持中英文數字組合式識別、豎排文字識別、長文本識別場景。1.2、OCR的技術路線OCR,即學字符識別(Optical Character Recognition),是指對文本資料的圖像文件進行分析識別處理、獲取文字及版面信息的過程。
  • 小叮噹Python人工智慧篇:一句代碼搞定圖文識別!
    在前幾篇文章「小叮噹Python人工智慧篇:圖文識別tesseract4.0引擎的安裝」、「小叮噹Python人工智慧篇:tesseract4.0引擎語言包的配置!」中已為大家介紹了如何安裝下載圖文識別開源引擎以及所需的安裝包的配置。在tesseract4.0引擎及語言包已配置好的前提下,我們就用一句代碼通過python來實現人工智慧中的圖文識別。
  • 輕鬆識別文字,這款Python OCR庫支持超過80種語言
    所以說,OCR作用是對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息。OCR的全稱叫作「Optical Character Recognition」,即光學字符識別。這算是生活裡最常見、最有用的AI應用技術之一。
  • 輕鬆識別文字,這款 Python OCR 庫支持超過 80 種語言
    所以說,OCR作用是對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息。OCR的全稱叫作「Optical Character Recognition」,即光學字符識別。這算是生活裡最常見、最有用的AI應用技術之一。
  • 這個 Python OCR 神器能輕鬆識別 80 多種語言!
    【導語】:EasyOCR 是一個用 Python 編寫的 OCR 庫,用於識別圖像中的文字並輸出為文本,支持 80 多種語言。簡介EasyOCR 是 python 中一個不錯的 OCR 庫,在GitHub已有 10.3K star。
  • Halcon OCR識別
    圖像預處理對原始圖像進行灰度化,二值化,模板匹配,降噪,增強等!2.目標區域分割(ROI)對預處理後的圖像進行ROI提取,分割出單個字符組成的區域3.字符識別,即模式識別技術4.結果處理將識別完的文字按特定的次序和規則組合輸出!
  • 手把手教你用PaddleOCR與PyQT實現多語言文字識別的程序
    他了解到這屬於OCR文字識別技術,OCR實現了對圖片中的文字進行提取、識別。小張想了一下,文字檢測有了,後面用什麼識別呢。又進一步地研究發現,文字識別算法採用的是PaddleOCR推薦的CRNN(https://arxiv.org/abs/1507.05717)。他看了下論文,下圖為CRNN的網絡結構。
  • 這個 OCR 神器能輕鬆識別 80 多種語言!
    來源丨小秋來源丨經授權轉自公眾號 開源前哨(ID:osfront)【導語】:EasyOCR 是一個用 Python 編寫的 OCR 庫,用於識別圖像中的文字並輸出為文本,支持 80 多種語言。簡介EasyOCR 是 python 中一個不錯的 OCR 庫,在GitHub已有 10.3K star。目前支持80多種語言,包括中文、日文、韓文和泰文等。
  • 2020年好用的OCR文字識別軟體推薦
    文檔進行編輯和OCR識別。對於可編輯的PDF,你能夠在軟體內進行標註,比如繪製線條形狀、為文字添加顏色高亮等效果、刪除文件中的水印和籤名等;如果是純圖片的PDF文檔,你則可以用 ABBY FineReader 對其進行OCR識別,提取文檔內的文字,將其轉換為Word、Excel、可搜索的PDF等多種類型ABBY FineReader 識別效果也非常好,包括文字和圖片的識別,表格的識別等,都能夠精確識別,如果你想獲得最好的
  • ocr識別文字的方法,有什麼文字識別軟體推薦?
    ocr識別文字的方法有什麼?朋友小葵可以說是一枚文藝女青年了,平時就愛看看書、旅旅遊,還有彈彈吉他。對了,有時候她還會做下兼職投稿,給雜誌社寫寫文章。此外,小葵還有個興趣愛好是摘抄、記錄入心字句,做寫作素材。
  • OCR(字符識別)軟體
    開源的代碼 進行完善製作而成天若OCR開源版5.0.0:https://github.com/AnyListen/tianruoocr/releases/tag/V5.0.0 作者表示天若OCR開源版不再進行維護由於採用了第三方OCR接口,所以必須聯網才能識別,識別效果非常不錯,不滿意可以嘗試換接口無需安裝直接可以使用
  • 截屏、文字提取一氣呵成,超實用OCR開源小工具
    你是用什麼工具解決的呢?是手機自帶拍照轉文字功能?還是使用 QQ 裡面的工具?今天我們就為大家介紹一款 GitHub 用戶 ianzhao05 剛發布的小工具——textshot,只需要截屏就能實時生成文字。讀者也可以通過此項目大致了解如何對圖像中的文本進行識別。
  • 【收藏】圖片轉成文字的方法總結,python批量圖片轉文字信息參考源碼
    方法二:網上在線圖文識別工具直接百度搜索可以找到不少圖文識別工具它可以在python中調用,用來識別圖像中的文字,並輸出為文本。)識別安裝pytesseract庫,必須先安裝其依賴的PIL及tesseract-ocr,其中PIL為圖像處理庫,而後面的tesseract-ocr則為google的ocr識別引擎。
  • 在線OCR識別網站
    溫馨提示:我們提供用戶下載的所有內容均來自網絡,版權歸作者本人所有,僅限技術交流,不得用做商業用途。如有侵權可以與我們聯繫,謝謝您的理解。
  • Python驗證碼識別:利用pytesser識別簡單圖形驗證碼
    ,涉及到計算機圖形學,機器學習,機器視覺,人工智慧等等高深領域……簡單地說,計算機圖形學的主要研究內容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與算法。生成一張查找表,再調用point()進行映射。
  • omnipage(ocr軟體)文字識別破解版下載
    omnipage是一款功能非常強大的ocr文字識別軟體。
  • 自動化測試實踐之Python識別驗證碼
    ,涉及到計算機圖形學,機器學習,機器視覺,人工智慧等等高深領域……簡單地說,計算機圖形學的主要研究內容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與算法。生成一張查找表,再調用point()進行映射。
  • 推薦幾款OCR識別App(提取圖像中的文字,適用安卓與ios)
    市面有很多軟體都有這樣的功能, 這邊就推薦幾款手機上的ocr識別應用.點擊文字識別ocr所以,並不是直接能夠識別的, 需要進行一些設置才能分離出文字來.購買app中的會員(不建議)點擊app中引導的點擊的廣告(不推薦)自行設置第三方的ocr支持(強力推薦)