關於easyocr、paddleocr、cnocr之比較

2021-02-24 python與大數據分析

cnocr是用來做中文OCR的Python 3包。cnocr自帶了訓練好的識別模型,安裝後即可直接使用。cnocr主要針對的是排版簡單的印刷體文字圖片,如截圖圖片,掃描件等。cnocr目前內置的文字檢測和分行模塊無法處理複雜的文字排版定位。如果要用於場景文字圖片的識別,需要結合其他的場景文字檢測引擎使用。

EasyOCR 是一個使用 Java 語言實現的 OCR 識別引擎(基於Tesseract)。藉助幾個簡單的API,即能使用Java語言完成圖片內容識別工作。併集成了圖片清理、識別 CAPTCHA 驗證碼圖片,票據等內容的一體化工作。EasyOCR不僅可以為消費者提供服務,更主要面向開發,能夠提供本地化的開發SDK集成,與 C/S,B/S 及 Android 移動端項目進行原生集成。

PaddleOCR是一個與OCR相關的開源項目,不僅支持超輕量級中文OCR預測模型,總模型僅8.6M(單模型支持中英文數字組合識別、豎排文本識別、長文本識別,其中檢測模型DB(4.1M)+識別模型CRNN(4.5M)),而且提供多種文本檢測訓練算法(EAST、DB)和多種文本識別訓練算法(Rosetta、CRNN、STAR-Net、RARE)。

easyocr、paddleocr、cnocr是目前比較常見的開源OCR組件,提供了標註、訓練、調用等功能,對於高清、標準的圖片和證件照的識別問題都不大,但對於拍攝效果、角度、以及物件本身的模糊問題識別的效果,還是有很大區別的。

個人測試情況如下:

測試項easyocrpaddleocrcnocr效率極差好一般識別準確度一般好極差代碼示例如下

import easyocr

# 創建reader對象

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

# 讀取圖像

result = reader.readtext('C:\Python\Pycharm\dzp.jpg')

# 結果

# print(result)

# [([[317, 131], [485, 131], [485, 175], [317, 175]], '晶序列號', 0.8012555837631226),

# ([[1127, 147], [1319, 147], [1319, 183], [1127, 183]], '031094', 0.2800997197628021),

# ([[],[],[],[]],' ',0.0),

for box_info in result:

print('坐標=', box_info[0])

print('文字=', box_info[1])

print('概率=', box_info[2])

# 坐標= [[317, 131], [485, 131], [485, 175], [317, 175]]

# 文字= 晶序列號

# 概率= 0.8012555837631226

from cnstd import CnStd

from cnocr import CnOcr

std = CnStd()

cn_ocr = CnOcr()

box_info_list = std.detect('C:\Python\Pycharm\dzp.jpg')

#print('box_info_list=',box_info_list)

for box_info in box_info_list:

# {'box': array([[320, 934],[790, 934],[790, 976],[320, 976]]),

# 'score': 1.0,

# 'cropped_img': array([[[83, 85, 82],[84, 86, 83],[81, 87, 83]],

# [[86, 88, 85],[84, 86, 83],[83, 85, 82],[],[],[]]

# ], dtype=uint8)}

cropped_img = box_info['cropped_img'] # 檢測出的文本框

ocr_res = cn_ocr.ocr_for_single_line(cropped_img)

print('ocr result: %s' % ''.join(ocr_res))

# ocr result:

# ocr result: 更痤國盔

# ocr result: 開擅查立

# ocr result: oN

# ocr result: H

# ocr result: Hv

# ocr result: !/油麵人

from paddleocr import PaddleOCR

ocr = PaddleOCR(use_angle_cls=True, lang="ch") # need to run only once to download and load model into memory

img_path = 'C:\Python\Pycharm\dzp.jpg'

result = ocr.ocr(img_path, cls=True)

for line in result:

print(line)

# [[[272.0, 121.0], [486.0, 126.0], [486.0, 175.0], [272.0, 171.0]], ['產品序列號', 0.9959299]]

# [[[272.0, 168.0], [436.0, 173.0], [436.0, 216.0], [272.0, 211.0]], ['製造年月', 0.9986]]

對於各OCR組件訓練標註和完整開發過程尚未學習,估計訓練後不同組件識別率會有很大提升空間,此外效率與GPU伺服器也有很大關係,後續慢慢嘗試吧

相關焦點

  • 讓OCR更簡單 | PaddleOCR+OpenCV實現文字識別步驟與代碼演示
    直接使用pip安裝即可:——指令:pip install paddlepaddle第二步:安裝PaddleOCR。同樣是pip安裝:——GPU版安裝:python -m pip install paddlepaddle-gpu==2.0.0 -i https://mirror.baidu.com/pypi/simple——CPU版安裝:python -m pip install paddlepaddle==2.0.0 -i https:
  • 《小鑫發現》之深度學習的OCR服務
    這次只是簡單的帶來一個Paddle-hub發布一個文字識別的ocr,讓大家用最少的代碼,構建一個ocr服務,感受一下paddle的魅力。在後續我會慢慢的體驗Paddle,總結一套Paddle的實戰。paddlepaddle 2.0.0rc1 下載地址-https://www.paddlepaddle.org.cn
  • Python Easyocr 圖片文字識別
    當然這個模塊適當改進也可以用以車牌識別pip install easyocr -i https://pypi.tuna.tsinghua.edu.cn/simple它會安裝除了模型文件之外的所有依賴,模型文件則會在運行代碼的時候下載。在pytorch網站上,請確保選擇正確的CUDA版本。
  • 重磅開源:超輕量3.5M中英文OCR模型!
    PC端快速嘗試:(打開網頁,選一張圖片,即可實時看到結果)連結地址:https://www.paddlepaddle.org.cn/hub/scene/ocr通過PIP安裝包快速體驗PaddleOCRpip安裝pip install paddleocr快速使用from paddleocr import PaddleOCR, draw_ocrPaddleocr
  • 重磅開源:超輕量3.5M中英文OCR模型,小小身材大大出乎意料
    3.5M的模型能達到這個識別精度,絕對是良心之作了!再看一個非正常顯示的圖片:https://www.paddlepaddle.org.cn/hub/scene/ocr‍pip install paddleocrfrom paddleocr import PaddleOCR, draw_ocrocr = PaddleOCR
  • 再降64%,3.5M超輕量中英文OCR模型開源,身量縮減效果提升v4.1
    3.5M的模型能達到這個識別精度,絕對是良心之作了!再看一個非正常顯示的圖片:iOS版本由於證書限制,需要登錄百度EasyEdge網頁掃碼體驗:https://ai.baidu.com/easyedge/app/openSource?from=paddlelite
  • Easyocr - 3行代碼識別圖片中的任意語言文字
    今天給大家介紹一個超級簡單且強大的OCR文本識別工具:easyocr
  • Python圖像處理之圖片文字識別(OCR)
    Tesseract的安裝與使用   Tesseract的Windows安裝包下載地址為: http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe ,下載後雙擊直接安裝即可。安裝完後,需要將Tesseract添加到系統變量中。
  • OCR文字識別軟體
    官網地址:https://tianruoocr.cn/ 下載地址:https://www.lanzous.comOCR Space官網地址:https://ocr.space孟坤工具箱官網地址:http://tool.mkblog.cn
  • 輕鬆識別文字,這款Python OCR庫支持超過80種語言
    安裝EasyOCR安裝過程比較簡單,使用pip或者conda安裝。pip install easyocr如果用的PyPl源,安裝起來可能會耽誤些時間,建議大家用清華源安裝,幾十秒就能安裝好。找一張路標圖片,保存到電腦:接著擼代碼:# 導入easyocr
  • 飛槳帶您體驗OCR超輕量中英文識別模型
    專用OCR是指對特定場景進行設計和優化,以達到最好的效果展示,比較典型的應用如:證件識別、車牌識別。而通用OCR是指在更多、更複雜的場景下,可以擁有比較好的泛性。在這個過程中由於場景的不確定性,如:圖片背景豐富、亮度不均衡、光照不均衡、殘缺遮擋、文字扭曲、字體多樣等等問題,都會給OCR識別會帶來極大的挑戰。
  • Free Online OCR – 在線OCR圖片文字識別網站推薦
    一、可同時識別多種語言的Free Online OCR(newocr.com)網址:http://www.newocr.com/newocr.com的一大優點就是可以同時識別圖片中的多種語言文字,這對於提取中英文混排文檔很是方便。
  • onlineocr:超級強大的在線圖片文字(OCR)識別工具
    今天小編給小夥伴們介紹一個超級實用、超級強大的在線圖片文字(OCR)識別工具—onlineocr。  onlineocr識別支持中文、英文等在內的48種語言,可以將PDF和圖片(支持格式:JPG、BMP、TIFF、GIF、PNG)識別、提取和保存成Word、Excel或Text格式的文件:
  • Python 中文圖片OCR
    有個需求,需要從一張圖片中識別出中文,通過python來實現,這種這麼高大上的黑科技我們普通人自然搞不了,去github找了一個似乎能滿足需求的開源庫-tesseract-ocr
  • 這個 Python OCR 神器能輕鬆識別 80 多種語言!
    下載安裝項目地址:https://github.com/JaidedAI/EasyOCR教程地址:https://www.jaided.ai/easyocr/tutorialAPI文檔:https://www.jaided.ai/easyocr/documentationEasyOCR安裝方法很簡單,直接使用pip安裝,
  • PaddleOCR系列軟體:自動為英文視頻生成中文字幕(看電影再也不用擔心啦)
    自動為英文視頻生成中文字幕    有一說一,8.1m的ocr模型在本地跑是真的香
  • Keras作者推薦的OCR項目Keras-OCR,基於tf.keras,方便易用
    目前該項目依賴環境為:Python >= 3.6TensorFlow >= 2.0.0可以通過pip從Git或中央倉庫進行安裝:# To install from masterpip install git+https://github.com/faustomorales/keras-ocr.git
  • OCR軟體合集,再也不用到處求軟體了!
    在線版:https://online.easyscreenocr.com/ZH客戶端:https://easyscreenocr.com/「OCRMaker」同樣免費在線文字識別,支持上傳文件或輸入圖片url (png/jpg),需要注意上傳的圖像/ PDF不能大於5MB。
  • 天若ocr|超實用的ocr文字識別工具,提高工作的打字效率!
    ocr文字識別工具也是我們提高工作效率必不可少的工具,文字識別工具xiaoC以前也分享過不少,不管是手機App還是電腦軟體都分享過
  • Python 5分鐘搭建OCR伺服器
    $ wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02.tar.gz$ tar -zxvf tesseract-ocr-3.02.02.tar.gz$ cd tesseract-ocr/$ ./autogen.sh$ .