0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于傳統(tǒng)算法的OCR技術(shù)

新機(jī)器視覺 ? 來源:AI算法修煉營 ? 作者:AI算法修煉營 ? 2022-06-20 14:31 ? 次閱讀

文本是人類最重要的信息來源之一,自然場景中充滿了形形色色的文字符號。光學(xué)字符識別(OCR)相信大家都不陌生,就是指電子設(shè)備(例如掃描儀或數(shù)碼相機(jī))檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機(jī)文字的過程。

工業(yè)場景的圖像文字識別更加復(fù)雜,出現(xiàn)在很多不同的場合。例如醫(yī)藥品包裝上的文字、各種鋼制部件上的文字、容器表面的噴涂文字、商店標(biāo)志上的個性文字等。在這樣的圖像中,字符部分可能出現(xiàn)在彎曲陣列、曲面異形、斜率分布、皺紋變形、不完整等各種形式中,并且與標(biāo)準(zhǔn)字符的特征大不相同,因此難以檢測和識別圖像字符。

對于文字識別,實際中一般首先需要通過文字檢測定位文字在圖像中的區(qū)域,然后提取區(qū)域的序列特征,在此基礎(chǔ)上進(jìn)行專門的字符識別。但是隨著CV發(fā)展,也出現(xiàn)很多端到端的End2End OCR。

01 基于傳統(tǒng)算法的OCR技術(shù)

傳統(tǒng)的OCR技術(shù)通常使用opencv算法庫,通過圖像處理和統(tǒng)計機(jī)器學(xué)習(xí)方法從圖像中提取文本信息,包括二值化、噪聲濾波、相關(guān)域分析、AdaBoost等。傳統(tǒng)的OCR技術(shù)根據(jù)處理方法可分為三個階段:圖像準(zhǔn)備、文本識別和后處理。

一、圖像準(zhǔn)備預(yù)處理:

文字區(qū)域定位:連通區(qū)域分析、MSER

文字矯正:旋轉(zhuǎn)、仿射變換

文字分割:二值化、過濾噪聲

二、文字識別:

分類器識別:邏輯回歸、SVM、Adaboost

三、后處理:規(guī)則、語言模型(HMM等)

針對簡單場景下的圖片,傳統(tǒng)OCR已經(jīng)取得了很好的識別效果。傳統(tǒng)方法是針對特定場景的圖像進(jìn)行建模的,一旦跳出當(dāng)前場景,模型就會失效。隨著近些年深度學(xué)習(xí)技術(shù)的迅速發(fā)展,基于深度學(xué)習(xí)的OCR技術(shù)也已逐漸成熟,能夠靈活應(yīng)對不同場景。

02 基于深度學(xué)習(xí)的OCR技術(shù)

目前,基于深度學(xué)習(xí)的場景文字識別主要包括兩種方法,第一種是分為文字檢測和文字識別兩個階段;第二種則是通過端對端的模型一次性完成文字的檢測和識別。

2.1 階段一:文字檢測

文字檢測定位圖片中的文本區(qū)域,而Detection定位精度直接影響后續(xù)Recognition結(jié)果。

bfe4db16-efd1-11ec-ba43-dac502259ad0.jpg

圖1.1

如圖1.1中,紅框代表“LAN”字符ground truth(GT),綠色框代表detection box。在GT與detection box有相同IoU的情況下,識別結(jié)果差異巨大。所以Detection對后續(xù)Recognition影響非常大!

目前已經(jīng)有很多文字檢測方法,包括:EAST/CTPN/SegLink/PixelLink/TextBoxes/TextBoxes++/TextSnake/MSR/...,具體來說:

2.1.1 CTPN [1]

CTPN是ECCV 2016提出的一種文字檢測算法,由Faster RCNN改進(jìn)而來,結(jié)合了CNN與LSTM深度網(wǎng)絡(luò),其支持任意尺寸的圖像輸入,并能夠直接在卷積層中定位文本行。

CTPN由檢測小尺度文本框、循環(huán)連接文本框、文本行邊細(xì)化三個部分組成,具體實現(xiàn)流程為:

1、使用VGG16網(wǎng)絡(luò)提取特征,得到conv5_3的特征圖;

2、在所得特征圖上使用3*3滑動窗口進(jìn)行滑動,得到相應(yīng)的特征向量;

3、將所得特征向量輸入BLSTM,學(xué)習(xí)序列特征,然后連接一個全連接FC層;

最后輸出層輸出結(jié)果。

bff317e4-efd1-11ec-ba43-dac502259ad0.png

CTPN是基于Anchor的算法,在檢測橫向分布的文字時能得到較好的效果。此外,BLSTM的加入也進(jìn)一步提高了其檢測能力。

2.1.2 TextBoxes/TextBoxes++ [2,3]

TextBoxes和TextBoxes++模型都來自華中科技大學(xué)的白翔老師團(tuán)隊,其中TextBoxes是改進(jìn)版的SSD,而TextBoxes++則是在前者的基礎(chǔ)上繼續(xù)擴(kuò)展。

c00615e2-efd1-11ec-ba43-dac502259ad0.png

TextBoxes共有28層卷積,前13層來自于VGG-16(conv_1到conv4_3),后接9個額外的卷積層,最后是包含6個卷積層的多重輸出層,被稱為text-box layers,分別和前面的9個卷積層相連。由于這些default box都是細(xì)長型的,使得box在水平方向密集在垂直方向上稀疏,從而導(dǎo)致該模型對水平方向上的文字檢測結(jié)果較好。

c022f978-efd1-11ec-ba43-dac502259ad0.png

TextBoxes++保留了TextBoxes的基本框架,只是對卷積層的組成進(jìn)行了略微調(diào)整,同時調(diào)整了default box的縱橫比和輸出階段的卷積核大小,使得模型能夠檢測任意方向的文字。

2.1.3 EAST [4]

EAST算法是一個高效且準(zhǔn)確的文字檢測算法,僅包括全卷積網(wǎng)絡(luò)檢測文本行候選框和NMS算法過濾冗余候選框兩個步驟。

其網(wǎng)絡(luò)結(jié)構(gòu)結(jié)合了HyperNet和U-shape思想,由三部分組成:

特征提?。菏褂肞VANet/VGG16提取四個級別的特征圖;

特征合并:使用上采樣、串聯(lián)、卷積等操作得到合并的特征圖;

輸出層:輸出單通道的分?jǐn)?shù)特征圖和多通道的幾何特征圖。

c031ccaa-efd1-11ec-ba43-dac502259ad0.jpg

EAST算法借助其獨特的結(jié)構(gòu)和簡練的pipline,可以檢測不同方向、不同尺寸的文字且運行速度快,效率高。

2.2 階段二:文字識別

通過文字檢測對圖片中的文字區(qū)域進(jìn)行定位后,還需要對區(qū)域內(nèi)的文字進(jìn)行識別。針對文字識別部分目前存在幾種架構(gòu),下面將分別展開介紹。

3.2.1 CNN + softmax [5]

此方法主要用于街牌號識別,對每個字符識別的架構(gòu)為:先使用卷積網(wǎng)絡(luò)提取特征,然后使用N+1個softmax分類器對每個字符進(jìn)行分類。具體流程如下圖所示:

c0555044-efd1-11ec-ba43-dac502259ad0.jpg

使用此方法可以處理不定長的簡單文字序列(如字符和字母),但是對較長的字符序列識別效果不佳。

3.2.2 CNN + RNN + attention [6]

本方法是基于視覺注意力的文字識別算法。主要分為以下三步:

模型首先在輸入圖片上運行滑動CNN以提取特征;

將所得特征序列輸入到推疊在CNN頂部的LSTM進(jìn)行特征序列的編碼;

使用注意力模型進(jìn)行解碼,并輸出標(biāo)簽序列。

c067ec36-efd1-11ec-ba43-dac502259ad0.jpg

本方法采用的attention模型允許解碼器在每一步的解碼過程中,將編碼器的隱藏狀態(tài)通過加權(quán)平均,計算可變的上下文向量,因此可以時刻讀取最相關(guān)的信息,而不必完全依賴于上一時刻的隱藏狀態(tài)。

3.2.3 CNN + stacked CNN + CTC [7]

上一節(jié)中提到的CNN + RNN + attention方法不可避免的使用到RNN架構(gòu),RNN可以有效的學(xué)習(xí)上下文信息并捕獲長期依賴關(guān)系,但其龐大的遞歸網(wǎng)絡(luò)計算量和梯度消失/爆炸的問題導(dǎo)致RNN很難訓(xùn)練?;诖?,有研究人員提出使用CNN與CTC結(jié)合的卷積網(wǎng)絡(luò)生成標(biāo)簽序列,沒有任何重復(fù)連接。

這種方法的整個網(wǎng)絡(luò)架構(gòu)如下圖所示,分為三個部分:

注意特征編碼器:提取圖片中文字區(qū)域的特征向量,并生成特征序列;

卷積序列建模:將特征序列轉(zhuǎn)換為二維特征圖輸入CNN,獲取序列中的上下文關(guān)系;

CTC:獲得最后的標(biāo)簽序列。

c07a2bc6-efd1-11ec-ba43-dac502259ad0.png

本方法基于CNN算法,相比RNN節(jié)省了內(nèi)存空間,且通過卷積的并行運算提高了運算速度。

3.2.4 特定的彎曲文本行識別

對于特定的彎曲文本行識別,早在CVPR2016就已經(jīng)有了相關(guān)paper:

Robust Scene Text Recognition with Automatic Rectification. CVPR2016.

論文地址:arxiv.org/abs/1603.03915

對于彎曲不規(guī)則文本,如果按照之前的識別方法,直接將整個文本區(qū)域圖像強(qiáng)行送入CNN+RNN,由于有大量的無效區(qū)域會導(dǎo)致識別效果很差。所以這篇文章提出一種通過STN網(wǎng)絡(luò)學(xué)習(xí)變換參數(shù),將Rectified Image對應(yīng)的特征送入后續(xù)RNN中識別。

c09ad7cc-efd1-11ec-ba43-dac502259ad0.jpg

其中Spatial Transformer Network(STN)核心就是將傳統(tǒng)二維圖像變換(如旋轉(zhuǎn)/縮放/仿射等)End2End融入到網(wǎng)絡(luò)中。具體二維圖像變換知識請翻閱:Homograph單應(yīng)性從傳統(tǒng)算法到深度學(xué)習(xí):https://zhuanlan.zhihu.com/p/74597564

Scene Text Recognition from Two-Dimensional Perspective. AAAI2018.

該篇文章于MEGVII 2019年提出。首先在文字識別網(wǎng)絡(luò)中加入語義分割分支,獲取每個字符的相對位置。

c0af141c-efd1-11ec-ba43-dac502259ad0.jpg

其次,在獲取每個字符位置后對字符進(jìn)行分類,獲得文字識別信息。該方法采用分類解決識別問題,并沒有像傳統(tǒng)方法那樣使用RNN。

c0ba3996-efd1-11ec-ba43-dac502259ad0.png

除此之外,在文章中還是使用了Deformable Convolution可變形卷積。相比傳統(tǒng)3x3卷積,可變形卷積可以提取文字區(qū)域不同形狀的特征。

c0c76288-efd1-11ec-ba43-dac502259ad0.jpg

3.3 端對端文字識別

使用文字檢測加文字識別兩步法雖然可以實現(xiàn)場景文字的識別,但融合兩個步驟的結(jié)果時仍需使用大量的手工知識,且會增加時間的消耗,而端對端文字識別能夠同時完成檢測和識別任務(wù),極大的提高了文字識別的實時性。

3.3.1 STN-ORC [8]

STN-OCR使用單個深度神經(jīng)網(wǎng)絡(luò),以半監(jiān)督學(xué)習(xí)方式從自然圖像中檢測和識別文本。網(wǎng)絡(luò)實現(xiàn)流程如下圖所示,總體分為兩個部分:

定位網(wǎng)絡(luò):針對輸入圖像預(yù)測N個變換矩陣,相應(yīng)的輸出N個文本區(qū)域,最后借助雙線性差值提取相應(yīng)區(qū)域;

識別網(wǎng)絡(luò):使用N個提取的文本圖像進(jìn)行文本識別。

c0dad480-efd1-11ec-ba43-dac502259ad0.png

本方法的訓(xùn)練集不需要bbox標(biāo)注,使用友好性較高;但目前此模型還不能完全檢測出圖像中任意位置的文本,需要在后期繼續(xù)調(diào)整。

3.3.2 FOTS [9]

FOTS是一個快速的端對端的文字檢測與識別框架,通過共享訓(xùn)練特征、互補監(jiān)督的方法減少了特征提取所需的時間,從而加快了整體的速度。其整體結(jié)構(gòu)如圖所示:

c0f1645c-efd1-11ec-ba43-dac502259ad0.png

卷積共享:從輸入圖象中提取特征,并將底層和高層的特征進(jìn)行融合;

文本檢測:通過轉(zhuǎn)化共享特征,輸出每像素的文本預(yù)測;

ROIRotate:將有角度的文本塊,通過仿射變換轉(zhuǎn)化為正常的軸對齊的本文塊;

文本識別:使用ROIRotate轉(zhuǎn)換的區(qū)域特征來得到文本標(biāo)簽。

FOTS是一個將檢測和識別集成化的框架,具有速度快、精度高、支持多角度等優(yōu)點,減少了其他模型帶來的文本遺漏、誤識別等問題。

03 中文OCR開源項目推薦 目前比較常用的中文OCR開源項目是 chineseocr,最近又有一個新開源的中文OCR項目,登上Github Trending榜單第二——chineseocr_lite

c11b58c0-efd1-11ec-ba43-dac502259ad0.png

這是一個超輕量級中文 ocr,支持豎排文字識別,支持 ncnn 推理,psenet (8.5M) + crnn (6.3M) + anglenet (1.5M) 總模型僅17M。目前已經(jīng)在Github上標(biāo)星2.6K,累積343個Fork(Github地址:https://github.com/ouyanghuiyu/chineseocr_lite) chineseocr_lite實現(xiàn)的功能如下:

提供輕量的backone檢測模型psenet(8.5M),crnn_lstm_lite(9.5M) 和行文本方向分類網(wǎng)絡(luò)(1.5M)

任意方向文字檢測,識別時判斷行文本方向

crnncrnn_lite lstmdense識別(ocr-dense和ocr-lstm是搬運chineseocr的)

支持豎排文本識別

ncnn 實現(xiàn) (支持lstm)

mnn 實現(xiàn)

接下來,我們再說一下chineseocr_lite的運行環(huán)境:

Ubuntu 18.04

Python 3.6.9

Pytorch 1.5.0.dev20200227+cpu

此外,最近項目作者對更新了可實現(xiàn)的功能。

nihui 大佬實現(xiàn)的 crnn_lstm 推理

升級 crnn_lite_lstm_dw.pth 模型 crnn_lite_lstm_dw_v2.pth , 精度更高

提供豎排文字樣例以及字體庫(旋轉(zhuǎn) 90 度的字體)

如果你也對這個項目感興趣就趕緊嘗試下吧。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4576

    瀏覽量

    92339
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    623

    瀏覽量

    41177
  • OCR
    OCR
    +關(guān)注

    關(guān)注

    0

    文章

    142

    瀏覽量

    16293

原文標(biāo)題:OCR光學(xué)字符識別方法匯總(附開源代碼)

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    明治案例 | 【OCR識別+條碼讀取】一步到位,印刷品質(zhì)的智能守護(hù)者

    在某大型印刷企業(yè)的生產(chǎn)線上,印刷機(jī)需要完成大量的條碼印刷任務(wù)。為了確保條碼的準(zhǔn)確性和可讀性,需要在設(shè)備上安裝傳感器進(jìn)行條碼印刷的讀碼和OCR識別檢測。1、傳感器需要準(zhǔn)確識別條碼中的信息,并將其與預(yù)設(shè)
    的頭像 發(fā)表于 10-22 08:02 ?37次閱讀
    明治案例 | 【<b class='flag-5'>OCR</b>識別+條碼讀取】一步到位,印刷品質(zhì)的智能守護(hù)者

    光學(xué)字符識別是什么的一種技術(shù)

    光學(xué)字符識別(Optical Character Recognition,簡稱OCR)是一種將文本資料轉(zhuǎn)換為計算機(jī)可編輯和可搜索的數(shù)據(jù)格式的技術(shù)。這項技術(shù)廣泛應(yīng)用于文檔掃描、數(shù)據(jù)錄入、自動化處理等
    的頭像 發(fā)表于 09-10 15:48 ?323次閱讀

    光學(xué)識別技術(shù)的工作原理是什么?

    光學(xué)識別技術(shù)(Optical Character Recognition,簡稱OCR)是一種將圖像中的文字信息轉(zhuǎn)換成可編輯和可搜索的文本數(shù)據(jù)的技術(shù)。它廣泛應(yīng)用于文檔掃描、數(shù)據(jù)錄入、自動識別等領(lǐng)域
    的頭像 發(fā)表于 09-10 15:46 ?341次閱讀

    光學(xué)識別字符是自動識別技術(shù)

    光學(xué)識別字符(Optical Character Recognition,簡稱OCR)是一種自動識別技術(shù),它能夠?qū)⒏鞣N類型文檔(如掃描的紙質(zhì)文檔、PDF文件或數(shù)字相機(jī)拍攝的圖片)中的文字轉(zhuǎn)換成可編
    的頭像 發(fā)表于 09-10 15:43 ?283次閱讀

    明治案例 | PE編織袋【大視野】【OCR識別】

    OCR識別技術(shù)OCR識別技術(shù)在工業(yè)生產(chǎn)中扮演著至關(guān)重要的角色。它利用先進(jìn)的圖像處理技術(shù),自動、高效地識別并轉(zhuǎn)換圖像中的文字信息為可編輯的文本
    的頭像 發(fā)表于 08-13 08:25 ?342次閱讀
    明治案例 | PE編織袋【大視野】【<b class='flag-5'>OCR</b>識別】

    圖像識別算法都有哪些方法

    圖像識別算法是計算機(jī)視覺領(lǐng)域的核心任務(wù)之一,它涉及到從圖像中提取特征并進(jìn)行分類、識別和分析的過程。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,圖像識別算法已經(jīng)取得了顯著的進(jìn)展。本文將介紹圖像識別算法
    的頭像 發(fā)表于 07-16 11:14 ?4546次閱讀

    神經(jīng)網(wǎng)絡(luò)芯片與傳統(tǒng)芯片的區(qū)別和聯(lián)系

    引言 隨著人工智能技術(shù)的快速發(fā)展,深度學(xué)習(xí)算法在圖像識別、自然語言處理、語音識別等領(lǐng)域取得了顯著的成果。然而,深度學(xué)習(xí)算法對計算資源的需求非常高,傳統(tǒng)的計算芯片已經(jīng)無法滿足其需求。因此
    的頭像 發(fā)表于 07-04 09:31 ?553次閱讀

    智能手機(jī)充電頭OCR精準(zhǔn)識別

    文本是人類最重要的信息來源之一,自然場景中充滿了形形色色的文字符號。光學(xué)字符識別(OCR)相信大家都不陌生。而工業(yè)場景的圖像文字識別更加復(fù)雜,OCR出現(xiàn)在很多不同的場合,對某些特殊的表面、產(chǎn)品整體上
    的頭像 發(fā)表于 06-11 08:24 ?355次閱讀
    智能手機(jī)充電頭<b class='flag-5'>OCR</b>精準(zhǔn)識別

    Zebra Aurora深度學(xué)習(xí)OCR算法榮獲CAIMRS頒發(fā)的自動化創(chuàng)新獎

    在第二十二屆中國自動化及數(shù)字化年度評選活動中,Zebra Aurora深度學(xué)習(xí)OCR算法獲得了由中國自動化及數(shù)字化產(chǎn)業(yè)年會(簡稱CAIMRS)頒發(fā)的自動化創(chuàng)新獎。
    的頭像 發(fā)表于 03-20 16:35 ?402次閱讀

    如何判斷觸摸屏用有機(jī)硅OCR/LOCA性能的優(yōu)劣

    判斷OCR/LOCA性能的優(yōu)劣
    的頭像 發(fā)表于 02-29 10:48 ?464次閱讀

    觸摸屏用有機(jī)硅OCR的性能測試方法

    ,提高顯示器的顯示效果。隨著顯示產(chǎn)業(yè)的快速發(fā)展,全貼合技術(shù)越來越成熟,應(yīng)用領(lǐng)域也由傳統(tǒng)的自助服務(wù)設(shè)備、零售終端/POS 機(jī)、教育培訓(xùn)、游戲機(jī)、工業(yè)控制、金融/ATM機(jī)、醫(yī)療設(shè)備等行業(yè),發(fā)展到觸控筆電、觸控一體化設(shè)備、城市應(yīng)急管理系統(tǒng)大尺寸屏幕等新興行
    的頭像 發(fā)表于 01-26 15:08 ?797次閱讀
    觸摸屏用有機(jī)硅<b class='flag-5'>OCR</b>的性能測試方法

    EVS深度學(xué)習(xí)智能相機(jī)OCR工具性能大揭秘

    伴隨著工業(yè)自動化的發(fā)展,光學(xué)字符識別(OCR技術(shù)已成為產(chǎn)品質(zhì)量管控的剛需,常用于部件入庫跟蹤、產(chǎn)品工藝溯源、商品保質(zhì)期管理等場景。然而,為了促進(jìn)精益生產(chǎn)、柔性生產(chǎn)、保障品控,產(chǎn)線不僅對此類技術(shù)
    的頭像 發(fā)表于 12-16 08:24 ?914次閱讀
    EVS深度學(xué)習(xí)智能相機(jī)<b class='flag-5'>OCR</b>工具性能大揭秘

    基于OpenVINO+OpenCV的OCR處理流程化實現(xiàn)

    預(yù)處理主要是基于OpenCV、場景文字檢測與識別基于OpenVINO框架 + PaddleOCR模型完成。直接按圖索驥即可得到最終結(jié)果。 OpenCV預(yù)處理主要是完成偏斜矯正、背景矯正等操作,然后使用場景文字檢測模型+OCR識別模型完成中英文識別。
    的頭像 發(fā)表于 11-07 11:21 ?669次閱讀
    基于OpenVINO+OpenCV的<b class='flag-5'>OCR</b>處理流程化實現(xiàn)

    OCR如何自動識別圖片文字

    OCR 是光學(xué)字符識別(英語:Optical Character Recognition,OCR)是指對文本資料的圖像文件進(jìn)行分析識別處理,獲取文字及版面信息的過程。 很早之前就有同學(xué)在公眾號后臺
    的頭像 發(fā)表于 10-31 16:45 ?698次閱讀
    <b class='flag-5'>OCR</b>如何自動識別圖片文字

    easyocr:超級簡單且強(qiáng)大的OCR文本識別工具

    今天給大家介紹一個超級簡單且強(qiáng)大的OCR文本識別工具: easyocr . 這個模塊支持70多種語言的即用型OCR,包括中文,日文,韓文和泰文等。 下面是這個模塊的實戰(zhàn)教程。 1.準(zhǔn)備 開始之前,你
    的頭像 發(fā)表于 10-30 09:30 ?2547次閱讀
    easyocr:超級簡單且強(qiáng)大的<b class='flag-5'>OCR</b>文本識別工具