【Python 軍火庫🧨 - EasyOCR】讓我們對圖片進行文字辨識吧

【Python 軍火庫🧨 - EasyOCR】讓我們對圖片進行文字辨識吧

更新於 發佈於 閱讀時間約 3 分鐘
raw-image



今天要來介紹的工具是「EasyOCR」這套工具, 他可以幫助我們對圖片中的文字進行辨識, 進一步可以做進階分析, 本章節會稍微帶過基礎概念, 並著重於工具的使用, 因此我們會以一張靜態圖片為示範進行文字的辨識。

OCR(Optical Character Recognition,光學字符識別)是一種技術,用於自動識別和提取印刷或手寫文本中的字符。

相關的應用

  • 文件掃描。
  • 自動化數據輸入。
  • 發票掃描。
  • 自動化降低人工輸入錯誤。

安裝

pip install easyocr

引用並載入模型

我們將載入「中文」、「英文」的模型, 並採取GPU的方式進行運算。

import easyocr
reader = easyocr.Reader(['ch_tra','en'], gpu = True)

簡單對圖片進行辨識

使用起來也非常的簡單, 我們只要給予圖片位置即可進行辨識。

image_path = 'test.png'
result = reader.readtext(image_path)

辨識結果分析

基本上沒有特別指定回傳類型時, 將回傳以下資料, 我們也會針對底下的資料內容一一說明。

[([[56, 84], [224, 84], [224, 116], [56, 116]], 'Analytics India', 0.5051276683807373), ([[54, 118], [142, 118], [142, 142], [54, 142]], 'MAGAZINE', 0.6871832013130188)]
raw-image
for (bbox, text, prob) in result:
print(bbox)
print(text)
print(prob)

結語

原來OCR的技術已經這麼成熟的! 不再像過往需要重頭開始模型訓練, 大部分語言的模型都已經有開源釋出了, 真的非常感謝這些佛心的前輩讓我們科技進展加速, 而我們需要了解的部份會是OCR這門技術的基礎概念, 之後搭配文檔就能夠搭建出屬於自己的文字辨識系統了。

我們在「🔒 阿Han的軟體心法實戰營 - 影像處理」也會教您如何對影片進行文字辨識, 甚至產生字幕的詳細教學, 歡迎加入一起學習。

avatar-img
阿Han的沙龍
126會員
280內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言
avatar-img
留言分享你的想法!
阿Han的沙龍 的其他內容
關於Websockets的篇章, 有興趣的朋友歡迎參考: 【Python 軍火庫 - websockets】雙向溝通的渠道 【Python 軍火庫 - websockets】用json來溝通吧! 而這一篇章的主題主要是來分享如何透過websockets傳遞音檔並進行解碼, 我們都知道聲
本文介紹了Python如何使用websockets進行雙向溝通,包括文字、json、xml和音訊的傳遞。特別著重於json資料交換格式,以及websockets通道的基本流程和關鍵的編碼與解碼。最終談到WebSocket對於傳統同步程式的轉變及對asyncio等套件的重要性。
我們常常在看開源專案時, 會在函式中看到「*args」與「**kwargs」這兩個參數, 一直以來都很好奇也尚未使用, 趁著好奇心強烈的時期趕緊來了解一番, 並且將學習過程轉化為易懂的概念提供給有需要的朋友參考, 也期望我們能夠共同學習程式語言, 讓科技引領世界進步。 首先是 *args 會
Websocket是一種網路傳輸的協定,讓建立一次handshake的過程就可以相互傳遞資料,而非同步的過程能夠讓處理事情更有效率,這篇文章將帶你深入瞭解Websocket如何運作、以及其特點與優勢。
為什麼需要非同步? 我們在「【Web微知識系列】 Web Workers」有介紹到在瀏覽器可執行腳本Javascript環境底下如何完成非同步的操作, 主要是為了讓任務更有效率的進行, 不會因為一個非常耗時的工作堵塞住整個服務, 導致無法服務他人的窘境。 大家應該經常在餐廳裡會看到服務員協
我們在處理音檔時常常會使用到 [soundfile](https://pypi.org/project/soundfile/) 這套工具, 當我們試圖讀取檔案時卻發生了這樣的錯誤訊息… TypeError: Not allowed for existing files (except 'RAW')
關於Websockets的篇章, 有興趣的朋友歡迎參考: 【Python 軍火庫 - websockets】雙向溝通的渠道 【Python 軍火庫 - websockets】用json來溝通吧! 而這一篇章的主題主要是來分享如何透過websockets傳遞音檔並進行解碼, 我們都知道聲
本文介紹了Python如何使用websockets進行雙向溝通,包括文字、json、xml和音訊的傳遞。特別著重於json資料交換格式,以及websockets通道的基本流程和關鍵的編碼與解碼。最終談到WebSocket對於傳統同步程式的轉變及對asyncio等套件的重要性。
我們常常在看開源專案時, 會在函式中看到「*args」與「**kwargs」這兩個參數, 一直以來都很好奇也尚未使用, 趁著好奇心強烈的時期趕緊來了解一番, 並且將學習過程轉化為易懂的概念提供給有需要的朋友參考, 也期望我們能夠共同學習程式語言, 讓科技引領世界進步。 首先是 *args 會
Websocket是一種網路傳輸的協定,讓建立一次handshake的過程就可以相互傳遞資料,而非同步的過程能夠讓處理事情更有效率,這篇文章將帶你深入瞭解Websocket如何運作、以及其特點與優勢。
為什麼需要非同步? 我們在「【Web微知識系列】 Web Workers」有介紹到在瀏覽器可執行腳本Javascript環境底下如何完成非同步的操作, 主要是為了讓任務更有效率的進行, 不會因為一個非常耗時的工作堵塞住整個服務, 導致無法服務他人的窘境。 大家應該經常在餐廳裡會看到服務員協
我們在處理音檔時常常會使用到 [soundfile](https://pypi.org/project/soundfile/) 這套工具, 當我們試圖讀取檔案時卻發生了這樣的錯誤訊息… TypeError: Not allowed for existing files (except 'RAW')