文字識別OCR開源框架的對比--Tesseract vs EasyOCR
前言:
OCR文字識別在目前有著比較好的應用,也出現了很多的文字識別軟體,但軟體是面向使用者的。對於我們技術人員來說,有時難免需要在計算機視覺任務中加入文字識別,如車牌號識別,票據識別等,因此軟體對我們是沒用的,我們需要自己實現文字識別。
在文字識別方面,主要有兩款主流的開源框架Tesseract和EasyOCR。本文討論了Tesseract和EasyOCR使用Python API之間的主要區別,包括安裝、使用示例、準確率和推理速度方面的對比。
使用示例
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進行測試。
含字母的輸入影象如下圖所示:
含數字的輸入影象如下圖所示:
經過測試得出下面兩個開源框架的準確率對比
如上圖所示,Tesseract 在字母識別方面做得更好,而 EasyOCR 在數字識別方面做得更好。
此外,它們在識別某些字元時存在完全不同的問題。例如,Tesseract傾向於將諸如29977。23之類的東西識別為2997。23,或者將carrier識別為 cartier。另一方面,EasyOCR更有可能將94268。1識別為94268,或者advances識別為 atvances。這兩個單詞識別的舉例表明這兩個框架對單個字母的識別傾向。
推理速度
在速度方面,Tesseract 在 CPU 上的表現優於 EasyOCR,而 EasyOCR 在 GPU 上的表現更好。
結論
Tesseract 在字母識別方面表現更好,而 EasyOCR 在數字方面表現更好。如果圖片包含大量字母,可以考慮 Tesseract。此外,EasyOCR 的輸出是小寫的。如果大寫對處理很重要,還應該使用 Tesseract。另一方面,如果圖片中包含大量數字,建議 EasyOCR。
參考連結
https://
blog。csdn。net/fatesunlo
ve/article/details/107691665
https://
medium。com/swlh/ocr-eng
ine-comparison-tesseract-vs-easyocr-729be893d3ae
歡迎關注公眾號CV技術指南,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
公眾號其它文章
計算機視覺專業術語總結(一)構建計算機視覺的知識體系
欠擬合與過擬合技術總結
歸一化方法總結
論文創新的常見思路總結
CV方向的高效閱讀英文文獻方法總結
計算機視覺中的小樣本學習綜述
知識蒸餾的簡要概述
最佳化OpenCV影片的讀取速度
NMS總結
損失函式技術總結
注意力機制技術總結
特徵金字塔技術總結
池化技術總結
資料增強方法總結
CNN結構演變總結(一)經典模型
CNN結構演變總結(二)輕量化模型
CNN結構演變總結(三)設計原則
如何看待計算機視覺未來的走向
CNN視覺化技術總結(一)-特徵圖視覺化
CNN視覺化技術總結(二)-卷積核可視化
CNN視覺化技術總結(三)-類視覺化
CNN視覺化技術總結(四)-視覺化工具與專案