12個完全免費的OCR開源項目
大家好,我是Echa。
今天小編給大家介紹一個跟生活息息相關(guān)的而且經(jīng)常使用的好東西。物理世界和數(shù)字世界的信息轉(zhuǎn)換是數(shù)字化發(fā)展的一個技術(shù)內(nèi)容。
專業(yè)術(shù)語叫:光學(xué)字符識別——OCR(Optical Character Recognition)。
基于目標檢測類的OCR識別技術(shù)
OCR是指對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息的過程。亦即將圖像中的文字進行識別,并以文本的形式返回。這樣描述估計還是一頭霧水,下面直接說應(yīng)用場景就會更清晰明了。
OCR應(yīng)用場景如下:
卡片證件識別類:大陸、港澳臺身份證、通行證、護照識別,卡類識別,車輛類駕駛證識別、行駛證識別,執(zhí)照識類識別,企業(yè)證件類識別
文字信息結(jié)構(gòu)化視頻類識別:字幕識別和文字檢測,表格;
票據(jù)類識別:增值稅發(fā)票識別、全電發(fā)票識別、銀行支票識別、承兌匯票識別、銀行票據(jù)識別、物流快遞識別;
其他識別:二維碼識別、一維碼識別、車牌識別、數(shù)學(xué)公式識別、物理化學(xué)符號識別、音樂符號識別、工程圖識別、流程圖識別、古跡文獻識別、手寫輸入識別;
除了以上列舉的之外,還有自然場景下的文字識別、菜單識別、橫幅檢測識別、圖章檢測識別、廣告類圖文識別等圍繞審核相關(guān)的業(yè)務(wù)應(yīng)用。
簡單的OCR應(yīng)用場景
隨著科技的發(fā)展,OCR場景隨處可見。人臉、車輛、人體屬性、卡證、交通標識等經(jīng)典圖像識別能力,在我們當(dāng)前數(shù)字化工作及生活中發(fā)揮著極其重要的作用。業(yè)內(nèi)也不乏頂尖公司提供的可直接調(diào)用的API、SDK,但這些往往面臨著定制化場景泛化效果不好、價格昂貴、黑盒可控性低、技術(shù)壁壘難以形成多諸多痛點。
9大場景模型效果示意圖
而今天小編要給大家好物分享12個完全開源免費的OCR開源項目、覆蓋人、車、OCR等9大經(jīng)典識別場景、在CPU上可3毫秒實現(xiàn)急速識別、一行代碼就可實現(xiàn)迭代訓(xùn)練的項目!希望對大家有所幫助。可以借助一些主流開源框架來快速應(yīng)用項目中,達到我們的目的。
全文大綱
- Tesseract.js - 是一個基于TesseractOCR的Web瀏覽器OCR軟件。
- OCRopus - 是由Google開發(fā)的OCR相關(guān)工具集合。
- Tesseract OCR - 是一個非常經(jīng)典的開源OCR引擎。
- Ocrad - 一個輕量級的OCR解決方案,主要以識別印刷文本而聞名。
- GOCR- 是在GNU通用公共許可證下開發(fā)的開源OCR引擎。
- Ocrad.js - 是一個基于Ocrad的瀏覽器的OCR軟件。
- Capture2Text- 是一個基于命令行的Windows OCR軟件。
- GImage Reader- 它能夠識別多種語言以及各種圖像文件格式的文本。
- OCRmyPDF-是一個專門用于PDF的OCR識別軟件。
- PaddleClas - 是飛槳為工業(yè)界和學(xué)術(shù)界所準備的一個圖像識別和圖像分類任務(wù)的工具集。
- kraken - 一個由Python開發(fā)的OCR軟件,主要用于非拉丁字符的識別。
- EasyOCR- 基于機器學(xué)習(xí)(CRNN)實現(xiàn)OCR功能。
Tesseract.js - 是一個基于TesseractOCR的Web瀏覽器OCR軟件。
Github:https://github.com/naptha/tesseract.js#tesseractjs
Tesseract.js 官網(wǎng)
Tesseract.js是一個基于TesseractOCR的Web瀏覽器OCR軟件。你可以在瀏覽器中使用它,并且非常易用。與Tesseract OCR一樣,它也支持多種語言,包括中文。
Tesseract.js 網(wǎng)站上所說,它支持 100 多種語言,自動文本定位和腳本檢測,用于閱讀段落、單詞和字符邊界框的簡單界面。
Tesseract.js 演示截圖
Tesseract.js 案例演示
OCRopus - 是由Google開發(fā)的OCR相關(guān)工具集合。
Github:https://github.com/ocropus
OCRopus是由Google開發(fā)的OCR相關(guān)工具集合,它擴展了Tesseract OCR引擎的功能。它提供了布局分析、文本識別和樣本數(shù)據(jù)生成的高級功能。
另外,OCRopus可以從命令行通過指定輸入的圖像來執(zhí)行它。它會將識別的文本直接輸出到標準輸出,或者將其作為hOCR(基于HTML)代碼寫入文件,然后可以將其轉(zhuǎn)換為可搜索的PDF。如果需要更精確的控制,可以在命令行上指定選項來執(zhí)行特定操作。
優(yōu)勢:
- 布局分析:OCRopus在布局分析方面非常精確,使其成為具有復(fù)雜布局或多列結(jié)構(gòu)文檔識別的理想選擇。
- 文本識別準確性:OCRopus通過利用Tesseract的精確OCR引擎和其他組件,能夠提高識別的準確性。
- 可定制性:OCRopus能夠生成用于訓(xùn)練的樣本數(shù)據(jù),用于訓(xùn)練自定義的OCR模型,從而在專業(yè)應(yīng)用中實現(xiàn)更高可定制性和準確性。
缺點
- 學(xué)習(xí)曲線:與獨立的OCR引擎相比,OCRopus由于其工具和組件的范圍比較廣,因此具有更陡峭的學(xué)習(xí)曲線。
- 資源密集型:OCRopus的高級功能可能需要更多的計算資源,這個可能需要較高的成本,并且也需要考慮項目對處理時間的要求。
Tesseract OCR - 是一個非常經(jīng)典的開源OCR引擎。
Github:https://github.com/tesseract-ocr/tesseract
Tesseract OCR Github 官網(wǎng)
Tesseract是一個非常經(jīng)典的開源OCR引擎,最初由Hewlett-Packard開發(fā),現(xiàn)在由Google維護。Tesseract以其準確性和多功能性而聞名,可以提取數(shù)據(jù)并將掃描的文檔、圖像和手寫文字轉(zhuǎn)換為機器理解的文本。Tesseract支持100多種語言,并兼容多種操作系統(tǒng),并且提供了非常方便的命令行界面。
優(yōu)勢:
- 準確性:Tesseract提供了非常高OCR準確性,特別是在打印文本和掃描文檔方面。
- 語言支持:Tesseract支持廣泛的語言,允許識別多種語言的文本,包括一些特殊語種,使其成為多語言應(yīng)用的理想選擇。
- 持續(xù)改進:Tesseract的開源社區(qū)非?;钴S,能夠及時地更新升級項目、修復(fù)Bug、完善用戶反饋的性能需求等。
缺點:
- 復(fù)雜布局文檔識別:Tesseract在簡單布局的文檔上表現(xiàn)非常好,但在布局比較復(fù)雜的文檔上就需要額外的預(yù)處理或后續(xù)處理步驟。
- 手寫識別準確度:Tesseract在識別機器打印文本方面表現(xiàn)出色,但在手寫文本上的表現(xiàn)并不盡如人意,有時還不如一些專用手寫識別工具準確。
Ocrad - 一個輕量級的OCR解決方案,主要以識別印刷文本而聞名。
傳送門:https://www.gnu.org/software/ocrad/
Ocrad 官網(wǎng)
Ocrad以其簡單性和識別速度而聞名,它提供了一個輕量級的OCR解決方案,主要以識別印刷文本而聞名。它旨在提供一個簡單高效的OCR解決方案,側(cè)重文本識別提取的速度和易用性。
優(yōu)勢
- 易用性和識別效率:Ocrad簡單的設(shè)計和輕量級的特性有助于其易用性和識別效率。特別適合用于快速和簡單的OCR解決方案需求。
- 打印文本識別:Ocrad擅長從掃描圖像中識別打印文本,可以從清晰且格式良好的打印文檔中識別提取出可靠的結(jié)果。
缺點
- 缺乏高級功能:Ocrad的側(cè)重點在于基礎(chǔ)的OCR任務(wù),它可能缺乏高級功能,例如布局分析或手寫識別等。
- 復(fù)雜文本和低質(zhì)量圖像的準確性:在處理復(fù)雜的文本結(jié)構(gòu)或低質(zhì)量的掃描圖像時,Ocrad的準確性可能會降低。
GOCR- 是在GNU通用公共許可證下開發(fā)的開源OCR引擎。
傳送門:https://jocr.sourceforge.net/
GOCR 官網(wǎng)
GOCR是在GNU通用公共許可證下開發(fā)的開源OCR引擎。它能夠識別各種圖像文件格式中的文本內(nèi)容,并支持多種語言和操作平臺。
雖然它的準確性可能無法超過其他OCR引擎,但GOCR的優(yōu)勢是非常簡單易用。
優(yōu)勢
- 簡單性:GOCR的主要優(yōu)勢在于它的簡單性。該軟件提供了一個簡單易用的界面,適合那些喜歡簡單OCR解決方案而不需要大量配置或復(fù)雜設(shè)置的用戶。
- 多語言支持:GOCR支持多種語言,允許用戶從包含不同語言內(nèi)容的圖像中提取文本。
缺點
- 準確性:雖然GOCR提供了基本的OCR功能,但其準確性可能無法與其他更高級的OCR引擎相媲美。
- 高級功能:GOCR專注于簡單的OCR任務(wù),可能缺乏布局分析或?qū)I(yè)識別算法等高級功能。因此,如果您需要高級功能,這個工具并不是很適合。
Ocrad.js - 是一個基于Ocrad的瀏覽器的OCR軟件。
傳送門:https://antimatter15.com/ocrad.js/demo.html
Ocrad.js 官網(wǎng)
Ocrad.js是一個基于Ocrad的瀏覽器的OCR軟件。在JavaScript中使用它。支持的圖像格式包括JPEG、PNG、GIF、BMP、SVG、NetBPM等。
它非常簡單易用,只需要通過調(diào)用OCRAD的函數(shù)即可實現(xiàn)對img標簽的識別。雖然在識別精度方面比Tesseract.js遜色,但Ocard的優(yōu)勢是它的模型文件比Tesseract小30倍以上。
Capture2Text- 是一個基于命令行的Windows OCR軟件。
傳送門:https://capture2text.sourceforge.net/
Capture2Text 官網(wǎng)
Capture2Text是一個基于命令行的Windows OCR軟件。它支持多種語言,包括日語。它不僅能識別水平的字符,還能識別垂直的字符。可以在你需要的時候使用windows命令行調(diào)用OCR命令,識別出的文本將被保存進剪貼板。
GImage Reader- 它能夠識別多種語言以及各種圖像文件格式的文本。
Github:https://github.com/manisandro/gImageReader
GImage Reader 官網(wǎng)
GImage Reader工具它能夠識別多種語言以及各種圖像文件格式的文本,使其適合從掃描的文檔、屏幕截圖或者照片中提取文本;并且它提供了一個簡單直觀的用戶界面,允許您快速加載圖像并獲得文本結(jié)果。
優(yōu)勢
- 友好的用戶界面:GImage Reader的界面非常直觀易用,用戶可以輕松訪問,能夠輕松加載圖像并獲取結(jié)果。
- 多語言支持:GImage Reader支持多種語言,允許您從包含不同語言內(nèi)容的圖像中提取文本。
缺點
- 缺乏高級功能:GImage Reader主要專注于比較基本的OCR任務(wù),如果需要更加專業(yè)的內(nèi)容識別,它就不適合了。
- 準確度和性能:雖然GImage Reader可用于基本的OCR任務(wù),但其準確性和性能可能會受到圖像質(zhì)量和文本復(fù)雜性的影響。
OCRmyPDF-是一個專門用于PDF的OCR識別軟件。
Github:https://github.com/ocrmypdf/OCRmyPDF
OCRmyPDF 官網(wǎng)
OCRmyPDF是一個專門用于PDF的OCR識別軟件,它能夠?qū)⒆R別到的文本信息作為透明的文本添加到PDF中。因此,您可以在PDF中搜索文本。
如果您將其用于沒有文本信息的PDF,則可以進行搜索,從而增加了方便性。由于它基于Tesseract OCR引擎進行文本識別,因此也支持中文。
PaddleClas - 是飛槳為工業(yè)界和學(xué)術(shù)界所準備的一個圖像識別和圖像分類任務(wù)的工具集。
Github:https://github.com/PaddlePaddle/PaddleClas
飛槳圖像識別套件PaddleClas是飛槳為工業(yè)界和學(xué)術(shù)界所準備的一個圖像識別和圖像分類任務(wù)的工具集,助力使用者訓(xùn)練出更好的視覺模型和應(yīng)用落地。
特性
PaddleClas支持多種前沿圖像分類、識別相關(guān)算法,發(fā)布產(chǎn)業(yè)級特色骨干網(wǎng)絡(luò)PP-HGNet、PP-LCNetv2、 PP-LCNet和SSLD半監(jiān)督知識蒸餾方案等模型,在此基礎(chǔ)上打造PULC超輕量圖像分類方案和PP-ShiTu圖像識別系統(tǒng)。
kraken - 一個由Python開發(fā)的OCR軟件,主要用于非拉丁字符的識別。
Github:https://github.com/mittagessen/kraken
kraken 官網(wǎng)
kraken是一個由Python開發(fā)的OCR軟件,主要用于非拉丁字符的識別。它支持從右到左書寫的語言,例如阿拉伯語,也支持從上到下書寫的語言,例如日語??梢詮拿钚羞\行OCR識別PDF、JPEG和TIFF等格式的文件。
它的特點包括:
- 支持自定義訓(xùn)練的布局分析和字符識別
- 支持從右到左, 自上而下的識別
- 提供ALTO、PageXML、abbyyXML和hOCR 格式輸出
- 能夠識別單詞邊界框,支持字符剪切
- 多腳本識別支持
- 模型文件的公共存儲庫
- 動圖識別網(wǎng)絡(luò)架構(gòu)
EasyOCR- 基于機器學(xué)習(xí)(CRNN)實現(xiàn)OCR功能。
Github :https://github.com/JaidedAI/EasyOCR
EasyOCR基于機器學(xué)習(xí)(CRNN)實現(xiàn)OCR功能。它能夠識別超過80種語言的文字,包括簡體中文和繁體中文。它是使用python開發(fā)的,因此使用Python調(diào)用也非常簡單。例如:
識別包含中文的圖片
import easyocr
reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory
reader.readtext('chinese.jpg', detail = 0)
識別結(jié)果為:
['愚園路', '西', '東', '315', '309', 'Yuyuan Rd.', 'W', 'E']