訂閱
糾錯
加入自媒體

一文了解文字識別OCR開源框架的對比

2021-06-28 09:04
CV技術指南
關注

前言:

OCR文字識別在目前有著比較好的應用,也出現了很多的文字識別軟件,但軟件是面向用戶的。對于我們技術人員來說,有時難免需要在計算機視覺任務中加入文字識別,如車牌號識別,票據識別等,因此軟件對我們是沒用的,我們需要自己實現文字識別。

在文字識別方面,主要有兩款主流的開源框架Tesseract和EasyOCR。本文討論了 Tesseract 和 EasyOCR 使用 Python API 之間的主要區(qū)別,包括安裝、使用示例、準確率和推理速度方面的對比。

更多內容請關注公眾號CV技術指南,專注于計算機視覺的技術總結,最新技術跟蹤。

使用示例

Tesseract

安裝: pip install pytesseract pillow

使用示例:

from PIL import Image

import pytesseract

text=pytesseract.image_to_string(Image.open(filename))

print(text)

這只是一個簡單的使用示例,在實際應用中,圖像并非理想情況,還需要對圖像進行一定的預處理以更好地識別。如去除椒鹽噪聲,去除干擾物,如在車牌識別中還會利用矩形框檢測框出車牌所在位置,并放大,以更好地進行車牌號識別。

EasyOCR

安裝:pip install easyocr

使用示例

import easyocr

reader = easyocr.Reader(['ch_sim', 'en'])

text = reader.readtext('filename')

print(text)

注:easyocr還會輸出文字在圖片中的坐標。

準確率

在參考鏈接[2]中進行了一項實驗,使用1000張含字母的圖片和1000張含數字的圖片分別使用Tesseract和EasyOCR進行測試。

含字母的輸入圖像如下圖所示:

文字識別OCR開源框架的對比--Tesseract vs EasyOCR

含數字的輸入圖像如下圖所示:

文字識別OCR開源框架的對比--Tesseract vs EasyOCR

經過測試得出下面兩個開源框架的準確率對比

文字識別OCR開源框架的對比--Tesseract vs EasyOCR

如上圖所示,Tesseract 在字母識別方面做得更好,而 EasyOCR 在數字識別方面做得更好。

此外,它們在識別某些字符時存在完全不同的問題。例如,Tesseract 傾向于將諸如 29977.23 之類的東西識別為 2997.23,或者將carrier 識別為 cartier。另一方面,EasyOCR 更有可能將 94268.1 識別為 94268,或者advances 識別為 atvances。這兩個單詞識別的舉例表明這兩個框架對單個字母的識別傾向。

推理速度

文字識別OCR開源框架的對比--Tesseract vs EasyOCR

在速度方面,Tesseract 在 CPU 上的表現優(yōu)于 EasyOCR,而 EasyOCR 在 GPU 上的表現更好。

結論

Tesseract 在字母識別方面表現更好,而 EasyOCR 在數字方面表現更好。如果圖片包含大量字母,可以考慮 Tesseract。此外,EasyOCR 的輸出是小寫的。如果大寫對處理很重要,還應該使用 Tesseract。另一方面,如果圖片中包含大量數字,建議 EasyOCR。

image.png

在公眾號中回復關鍵字 “技術總結” 可獲取以下文章的匯總pdf。

更多內容請關注公眾號CV技術指南,專注于計算機視覺的技術總結,最新技術跟蹤。

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關注公眾號
OFweek人工智能網
獲取更多精彩內容
文章糾錯
x
*文字標題:
*糾錯內容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網安備 44030502002758號