目錄
文字識別(OCR)介紹與開源方案對比
一、OCR是什么
二、OCR基本原理說明
三、OCR基本實現(xiàn)流程
四、OCR開源項目調(diào)研
1、tesseract
2、PaddleOC
3、EasyOCR
4、chineseocr
5、chineseocr_lite
6、cnocr
7、商業(yè)付費OCR
1)騰訊OCR(付費) - AI 基礎(chǔ)產(chǎn)品模塊
2)阿里OCR(付費) - 阿里靈杰AI開放服務(wù)
3) 百度OCR (付費) - 百度AI開放能力
五、主要開源項目對比和結(jié)論
1、項目優(yōu)缺點對比
2、綜合對比
一、OCR是什么
OCR (Optical Character Recognition,光學(xué)字符識別)技術(shù)是一種將印刷體或手寫文字轉(zhuǎn)化為可編輯文本的技術(shù)。亦即將圖像中的文字進行識別,并以文本的形式返回。
從圖像化的文本信息中提取到文字符號做表征的語義信息,其重要性不言而喻,在實際應(yīng)用場景中也比較容易想到跟NLP技術(shù)結(jié)合來完成比較優(yōu)質(zhì)的人機交互等任務(wù)。
?
二、OCR基本原理說明
為了識別一張圖片中的文字,通常包含兩個步驟:
1)、文本檢測:檢測出圖片中文字所在的位置;
2)、文字識別:識別包含文字的圖片局部,預(yù)測具體的文字。
三、OCR基本實現(xiàn)流程
OCR(光學(xué)字符識別)的簡單實現(xiàn)流程通常包括以下步驟:
1、圖像預(yù)處理:首先,對輸入的圖像進行預(yù)處理,包括灰度化、二值化、去噪等操作。這些操作有助于提高字符識別的準(zhǔn)確性和穩(wěn)定性。
2、文本區(qū)域檢測:使用圖像處理技術(shù)(如邊緣檢測、輪廓分析等),找到圖像中可能包含文本的區(qū)域。這些區(qū)域通常是字符或文本行的邊界。
3、字符分割:對于文本行,需要將其分割為單個字符。這可以通過字符之間的間距、連通性等特征進行分割。
4、特征提取:對于每個字符,提取其特征表示。常見的特征包括形狀、角度、紋理等。特征提取有助于將字符轉(zhuǎn)化為可供分類器處理的數(shù)值表示。
5、字符分類:使用分類器(如機器學(xué)習(xí)算法或深度學(xué)習(xí)模型)對提取的字符特征進行分類,將其識別為相應(yīng)的字符類別。分類器可以是預(yù)訓(xùn)練模型,也可以是自定義訓(xùn)練的模型。
6、后處理:對識別的字符進行后處理,如糾正錯誤、校正傾斜、去除冗余等。這可以提高最終結(jié)果的準(zhǔn)確性和可讀性。
7、輸出結(jié)果:將識別的字符組合成最終的文本輸出,可以是單個字符、單詞或完整的文本。
四、OCR開源項目調(diào)研
1、tesseract
https://github.com/tesseract-ocr/tesseract
Tesseract是一個開源的OCR(光學(xué)字符識別)引擎,由Google開發(fā)和維護。它能夠?qū)D像中的文本轉(zhuǎn)換為可編輯的文本,并且支持多種語言的文本識別。Tesseract已經(jīng)成為廣泛使用的OCR工具之一,具有較高的準(zhǔn)確率和可擴展性。
以下是Tesseract的主要特點和功能:
1、多語言支持:Tesseract支持多種語言的文本識別,包括英語、中文、日語、韓語、法語、德語、西班牙語等。它具有訓(xùn)練和識別多種語言的能力,并且用戶可以根據(jù)需要添加自定義語言模型。
2、高準(zhǔn)確率:Tesseract使用了一系列的圖像處理和機器學(xué)習(xí)算法,以實現(xiàn)高準(zhǔn)確率的文本識別。它經(jīng)過大規(guī)模數(shù)據(jù)集的訓(xùn)練和優(yōu)化,能夠在各種圖像條件下準(zhǔn)確地識別出字符信息。
3、可擴展性:Tesseract具有良好的可擴展性,用戶可以使用自定義訓(xùn)練數(shù)據(jù)來訓(xùn)練和優(yōu)化OCR模型,以提高識別的準(zhǔn)確性和適應(yīng)性。此外,Tesseract還提供了API和接口,方便用戶進行二次開發(fā)和集成。
4、平臺兼容性:Tesseract支持多種操作系統(tǒng),包括Windows、Mac和Linux等。它可以在各種平臺上運行,并且提供了與不同編程語言(如Python、Java、C++等)的接口,方便開發(fā)者進行集成和使用。
5、開源和社區(qū)支持:Tesseract是一個開源項目,具有活躍的社區(qū)支持。用戶可以自由查看和修改源代碼,并參與社區(qū)討論和貢獻。這使得Tesseract成為一個不斷發(fā)展和改進的OCR工具。
2、PaddleOC
https://github.com/PaddlePaddle/PaddleOCR
PaddleOCR是一個基于飛槳(PaddlePaddle)深度學(xué)習(xí)平臺的開源OCR(光學(xué)字符識別)工具,旨在提供高性能和準(zhǔn)確率的文本識別功能。它可以識別和提取多語言文本中的字符信息,并具有廣泛的應(yīng)用場景,包括文檔處理、圖像文字提取、自動化數(shù)據(jù)錄入等。
以下是PaddleOCR的主要特點和功能:
1、多語言支持:PaddleOCR支持多種語言的文本識別,包括英語、中文、日語、韓語、法語、德語、西班牙語等。它可以處理不同語言的文本,并滿足跨國應(yīng)用的需求。
2、多種模型選擇:PaddleOCR提供了多種預(yù)訓(xùn)練的OCR模型供選擇,包括文本檢測模型和文本識別模型。文本檢測模型用于檢測文本區(qū)域,而文本識別模型用于識別文本內(nèi)容。用戶可以根據(jù)自己的需求選擇適合的模型。
3、高準(zhǔn)確率和性能:PaddleOCR采用了深度學(xué)習(xí)技術(shù),利用預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)高準(zhǔn)確率的文本識別。它在大規(guī)模數(shù)據(jù)集上進行了訓(xùn)練和優(yōu)化,能夠在各種圖像條件下識別出準(zhǔn)確的字符信息,并具有較高的性能和效率。
4、強大的功能擴展性:PaddleOCR提供了豐富的功能擴展接口和工具,使用戶可以自定義和定制OCR模型。用戶可以根據(jù)自己的數(shù)據(jù)集和應(yīng)用場景進行模型訓(xùn)練、微調(diào)和優(yōu)化,以進一步提高識別的準(zhǔn)確性和適應(yīng)性。
5、開源和社區(qū)支持:PaddleOCR是一個開源項目,具有活躍的社區(qū)支持。用戶可以自由查看和修改源代碼,也可以參與社區(qū)討論和貢獻。這為用戶提供了一個共享和合作的平臺,以促進OCR技術(shù)的發(fā)展和應(yīng)用。
3、EasyOCR
https://github.com/JaidedAI/EasyOCR
EasyOCR是一種簡單易用的開源OCR(光學(xué)字符識別)工具,旨在識別和提取多語言文本中的字符信息。它提供了一種快速而準(zhǔn)確的方式來將印刷體字符轉(zhuǎn)換為可編輯的文本,可以應(yīng)用于多種場景,包括文檔掃描、圖像文字提取、自動化數(shù)據(jù)錄入等。EasyOCR 是由 Jaided AI 公司創(chuàng)建的。全語種的(包括80+門外語識別),不單單針對中文,所以它的官方文檔是英文。
以下是EasyOCR的主要特點和功能:
1、多語言支持:EasyOCR支持多種語言的文本識別,包括英語、中文、日語、韓語、法語、德語、西班牙語等。這使得它能夠處理不同語言的文本,并滿足跨國應(yīng)用的需求。
2、高準(zhǔn)確率:EasyOCR采用了基于深度學(xué)習(xí)的方法,利用深度神經(jīng)網(wǎng)絡(luò)模型來實現(xiàn)高準(zhǔn)確率的文本識別。這些模型經(jīng)過大規(guī)模數(shù)據(jù)的訓(xùn)練和優(yōu)化,能夠在各種圖像條件下識別出準(zhǔn)確的字符信息。
3、簡單易用:EasyOCR注重用戶友好性,提供了簡單易用的API和命令行界面,使用戶能夠輕松集成和使用該工具。無需復(fù)雜的配置和調(diào)優(yōu),即可進行快速的文本識別。
4、支持多種圖像格式:EasyOCR能夠處理多種常見的圖像格式,包括JPEG、PNG、BMP等。這使得用戶可以使用各種圖像來源,如掃描儀、手機拍攝等,進行文本識別。
5、高性能:EasyOCR針對效率進行了優(yōu)化,能夠在較短的時間內(nèi)處理大量的圖像并進行文本識別。這對于需要處理大批量圖像或?qū)崟r應(yīng)用的場景非常有用。
官方demo:
https://www.jaided.ai/easyocr/
4、chineseocr
https://github.com/chineseocr/chineseocr
它基于 YOLO V3 與 CRNN 實現(xiàn)中文自然場景文字檢測及識別
如果要做個性化的話,Chineseocr框架相對來說非常方便,只需要修改對應(yīng)模塊的函數(shù)就可以,因為本身這些模塊其實就是可擴展的,比如后續(xù)pull request到項目里的lstm推理和ncnn核擴展。
5、chineseocr_lite
https://github.com/DayBreak-u/chineseocr_lite
ChineseOCR Lite是一種基于深度學(xué)習(xí)的開源OCR(光學(xué)字符識別)引擎,旨在識別和提取中文文本中的字符信息。它使用深度神經(jīng)網(wǎng)絡(luò)來實現(xiàn)高準(zhǔn)確率的文本識別功能,并且具有較小的模型體積和較快的識別速度。
以下是一些ChineseOCR Lite的主要特點和功能:
1、中文文本識別:ChineseOCR Lite專注于中文文本的識別和提取。它可以處理印刷體中文字符,并能夠在各種圖像中準(zhǔn)確識別和提取文本信息。
2、深度學(xué)習(xí)模型:該引擎采用深度神經(jīng)網(wǎng)絡(luò)模型,通常使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的組合。這種模型能夠?qū)W習(xí)和理解字符的特征,并能夠?qū)?fù)雜的文本進行準(zhǔn)確的識別。
3、開源和可定制:ChineseOCR Lite是一個開源項目,這意味著用戶可以自由地查看和修改源代碼,以滿足自己的需求。用戶可以根據(jù)自己的數(shù)據(jù)集和應(yīng)用場景進行訓(xùn)練和微調(diào),以提高識別的準(zhǔn)確性和性能。
4、小模型體積:ChineseOCR Lite著重于設(shè)計輕量級的模型,以減小模型的體積和內(nèi)存占用。這使得它能夠在嵌入式設(shè)備或資源受限的環(huán)境中運行,提供實時的文本識別能力。
5、高速識別:由于模型的小尺寸和優(yōu)化,ChineseOCR Lite能夠快速處理圖像并進行實時的文本識別。這對于需要快速處理大量圖像或?qū)崟r應(yīng)用的場景非常有用。
超輕量級中文ocr,支持豎排文字識別, 支持ncnn推理 , psenet(8.5M) + crnn(6.3M) + anglenet(1.5M) 總模型僅17M。
相比 chineseocr,chineseocr_lite 采用了輕量級的主干網(wǎng)絡(luò) PSENet,輕量級的 CRNN 模型和行文本方向分類網(wǎng)絡(luò) AngleNet。盡管要實現(xiàn)多種能力,但 chineseocr_lite 總體模型只有 17M。目前 chineseocr_lite 支持任意方向文字檢測,在識別時會自動判斷文本方向。
6、cnocr
https://github.com/breezedeus/CnOCR
cnocr是一個基于深度學(xué)習(xí)的中文OCR(光學(xué)字符識別)工具,專門用于識別和提取中文文本中的字符信息。它采用了深度神經(jīng)網(wǎng)絡(luò)模型,具有高準(zhǔn)確率和較快的識別速度。
以下是cnocr的主要特點和功能:
1、中文文本識別:cnocr專注于中文文本的識別和提取。它能夠處理印刷體中文字符,并能夠在各種圖像中準(zhǔn)確識別和提取中文文本信息。
2、基于深度學(xué)習(xí):cnocr使用深度神經(jīng)網(wǎng)絡(luò)模型進行文本識別。這種模型能夠?qū)W習(xí)和理解字符的特征,并能夠?qū)?fù)雜的中文文本進行準(zhǔn)確的識別。
3、簡單易用:cnocr提供了簡單易用的API和命令行界面,使用戶能夠輕松集成和使用該工具。無需復(fù)雜的配置和調(diào)優(yōu),即可進行快速的中文文本識別。
4、高準(zhǔn)確率:由于采用了深度學(xué)習(xí)模型,cnocr具有較高的準(zhǔn)確率,能夠識別出復(fù)雜字形和字體的中文字符。
5、快速識別:cnocr經(jīng)過優(yōu)化,能夠在較短的時間內(nèi)處理圖像并進行實時的中文文本識別。這對于需要快速處理大量圖像或?qū)崟r應(yīng)用的場景非常有用。
7、商業(yè)付費OCR
1)騰訊OCR(付費) - AI 基礎(chǔ)產(chǎn)品模塊
AI 基礎(chǔ)產(chǎn)品
https://cloud.tencent.com/document/product/866/17624
2)阿里OCR(付費) - 阿里靈杰AI開放服務(wù)
阿里靈杰AI開放服務(wù)
https://help.aliyun.com/document_detail/442328.html?spm=a2c4g.295341.0.0.5bc4525aeKeSzs
3) 百度OCR (付費) - 百度AI開放能力
百度AI開放能力
https://ai.baidu.com/tech/ocr
五、主要開源項目對比和結(jié)論
1、項目優(yōu)缺點對比
項目 |
優(yōu)點 |
缺點 |
tesseract |
1、github上面star非常多,項目非常活躍 2、多語言支持:Tesseract支持多種語言的文本識別,可以處理多種語言的文本 3、后面做背書的公司非常強(google) 4、Tesseract提供了擴展接口和工具,可以自定義訓(xùn)練和優(yōu)化OCR模型 |
1、不是專門針對中文場景 2、相關(guān)文檔主要是英文,對于閱讀和理解起來有一定困難 3、學(xué)習(xí)成本比較高 4、對于復(fù)雜字形和字體的識別準(zhǔn)確性較低 5、與其他OCR相比,Tesseract的準(zhǔn)確率可能相對較低 |
PaddleOCR |
1、github上面star非常多,項目非?;钴S 2、模型只針對中文進行訓(xùn)練 3、百度后面做背書,公司非常強 4、提供了多種預(yù)訓(xùn)練模型和接口,支持用戶進行自定義訓(xùn)練和優(yōu)化 5、識別的精確度比較高 |
1、安裝和配置相對復(fù)雜一些,需要一定的技術(shù)知識和經(jīng)驗 2、對于一些較小的文字或低分辨率的圖像,PaddleOCR的性能可能受到影響 3、使用的訓(xùn)練模型是基于百度公司自己的PaddlePaddle框架,對于小公司來說并不主流(對比于ts或者pytorch),所使用深度學(xué)習(xí)框架為后續(xù)其他深度學(xué)習(xí)無法做很好的鋪墊 4、項目整體比較復(fù)雜,學(xué)習(xí)成本較高 |
EasyOCR |
1、github上面的star也是比較多 2、支持的語言也是非常多的,多達80多種 3、識別的精確度尚可 |
1、從官方的頁面體驗來說識別的速度較慢 2、識別的文字種類多,學(xué)習(xí)難度較高 3、相關(guān)的官方文檔是基于英文的,學(xué)習(xí)難度較高,對于新手不太友好 4、由于模型較大,EasyOCR的內(nèi)存占用較高 |
chineseocr |
1、github上面的star也是比較多 2、專門針對中文進行學(xué)習(xí)和訓(xùn)練的模型 3、具有一定的準(zhǔn)確性和可擴展性 |
1、需要一定的技術(shù)知識和經(jīng)驗來進行安裝和配置。 2、文檔和社區(qū)支持相對較少 |
chineseocr_lite |
1、github上面的star也是比較多 2、專門針對中文進行學(xué)習(xí)和訓(xùn)練的模型 3、比較輕量級,具有較小的模型和內(nèi)存占用 4、由于模型較小,chineseocr_lite具有較快的文本識別速度 |
1、因為沒有大廠和公司的背書, 所以存在一些bug 2、對于復(fù)雜場景下的效果不佳 3、準(zhǔn)確率相對較低 4、功能和擴展性相對有限 |
CNOCR |
1、高準(zhǔn)確率:cnocr利用深度學(xué)習(xí)模型實現(xiàn)高準(zhǔn)確率的中文文本識別。 2、簡單易用:cnocr提供了簡單易用的API和命令行界面,方便用戶集成和使用。 3、快速識別:cnocr經(jīng)過優(yōu)化,能夠快速處理圖像并進行實時的中文文本識別。 |
1、依賴深度學(xué)習(xí)框架:cnocr依賴于深度學(xué)習(xí)框架,因此在使用之前需要安裝相應(yīng)的框架和依賴庫。 2、僅支持中文文本:cnocr主要用于中文文本識別,對于其他語言的文本識別支持有限。 |
2、綜合對比
Tesseract: Tesseract是一個成熟且廣泛使用的OCR引擎,具有強大的社區(qū)支持和多語言的識別能力。它是開源的,可擴展性強,但準(zhǔn)確度相對其他工具可能略低一些。對于簡單的文本識別任務(wù),Tesseract可能是一個簡單易用的選擇。
PaddleOCR: PaddleOCR是基于飛槳深度學(xué)習(xí)平臺的OCR工具,具有多語言支持和較高的準(zhǔn)確率。它提供了多種預(yù)訓(xùn)練模型和自定義訓(xùn)練的功能,適用于復(fù)雜的文本識別任務(wù)。然而,PaddleOCR的安裝和配置可能相對復(fù)雜一些。
EasyOCR: EasyOCR是一個簡單易用的OCR工具,支持多語言和多種字體的文本識別。它具有較高的準(zhǔn)確率,并提供簡單的API和界面,便于集成和使用。對于快速部署和簡單的文本識別需求,EasyOCR可能是一個不錯的選擇。
chineseocr: chineseocr是一個開源的中文OCR工具,具有一定的準(zhǔn)確性和可擴展性。然而,它的文檔和社區(qū)支持相對較少,可能需要一定的技術(shù)知識和經(jīng)驗進行安裝和配置。
chineseocr_lite: chineseocr_lite是一個輕量級的中文OCR工具,具有較小的模型和快速識別速度。然而,它的準(zhǔn)確率相對較低,適用于一些簡單的文本識別場景。
cnocr: cnocr是一個專門用于中文文本識別的OCR工具,基于深度學(xué)習(xí)模型,具有較高的準(zhǔn)確率和較快的識別速度。它適用于中文文本的識別和提取任務(wù),但對于其他語言的支持可能有限。文章來源:http://www.zghlxwxcb.cn/news/detail-558035.html
對于簡單易用性和準(zhǔn)確度高的要求,EasyOCR和cnocr可能是較好的選擇。EasyOCR提供了簡單易用的API和界面,適用于快速部署和簡單的文本識別任務(wù)。而cnocr則專注于中文文本識別,具有較高的準(zhǔn)確率和較快的識別速度。根據(jù)具體的需求和實際情況,可以選擇適合自己的OCR工具。文章來源地址http://www.zghlxwxcb.cn/news/detail-558035.html
到了這里,關(guān)于文字識別(OCR)介紹與開源方案對比的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!