<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          OCR光學(xué)字符識別方法匯總

          共 6465字,需瀏覽 13分鐘

           ·

          2022-05-19 12:51

          ?
          OCR英文全稱是Optical Character Recognition,中文叫做光學(xué)字符識別。它是利用光學(xué)技術(shù)和計算機(jī)技術(shù)把印在或?qū)懺诩埳系奈淖肿x取出來,并轉(zhuǎn)換成一種計算機(jī)能夠接受、人又可以理解的格式?,F(xiàn)在這技術(shù)已經(jīng)比較成熟。

          作者丨吳建明wujianming@知乎

          編輯丨計算機(jī)視覺與機(jī)器學(xué)習(xí)

          鏈接丨h(huán)ttps://zhuanlan.zhihu.com/p/121074333


          工業(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é)果。
          圖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é)果。
          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ò)展。
          TextBoxes共有28層卷積,前13層來自于VGG-16(conv_1到conv4_3),后接9個額外的卷積層,最后是包含6個卷積層的多重輸出層,被稱為text-box layers,分別和前面的9個卷積層相連。由于這些default box都是細(xì)長型的,使得box在水平方向密集在垂直方向上稀疏,從而導(dǎo)致該模型對水平方向上的文字檢測結(jié)果較好。
          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思想,由三部分組成:
          特征提取:使用PVANet/VGG16提取四個級別的特征圖;
          特征合并:使用上采樣、串聯(lián)、卷積等操作得到合并的特征圖;
          輸出層:輸出單通道的分?jǐn)?shù)特征圖和多通道的幾何特征圖。
          EAST算法借助其獨特的結(jié)構(gòu)和簡練的pipline,可以檢測不同方向、不同尺寸的文字且運(yùn)行速度快,效率高。
          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)行分類。具體流程如下圖所示:
          使用此方法可以處理不定長的簡單文字序列(如字符和字母),但是對較長的字符序列識別效果不佳。
          3.2.2 CNN + RNN + attention [6]
          本方法是基于視覺注意力的文字識別算法。主要分為以下三步:
          模型首先在輸入圖片上運(yùn)行滑動CNN以提取特征;
          將所得特征序列輸入到推疊在CNN頂部的LSTM進(jìn)行特征序列的編碼;
          使用注意力模型進(jìn)行解碼,并輸出標(biāo)簽序列
          本方法采用的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)簽序列。
          本方法基于CNN算法,相比RNN節(jié)省了內(nèi)存空間,且通過卷積的并行運(yùn)算提高了運(yùn)算速度。
          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中識別。

          其中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ò)中加入語義分割分支,獲取每個字符的相對位置。
          其次,在獲取每個字符位置后對字符進(jìn)行分類,獲得文字識別信息。該方法采用分類解決識別問題,并沒有像傳統(tǒng)方法那樣使用RNN。
          除此之外,在文章中還是使用了Deformable Convolution可變形卷積。相比傳統(tǒng)3x3卷積,可變形卷積可以提取文字區(qū)域不同形狀的特征。
          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)行文本識別。
          本方法的訓(xùn)練集不需要bbox標(biāo)注,使用友好性較高;但目前此模型還不能完全檢測出圖像中任意位置的文本,需要在后期繼續(xù)調(diào)整。
          3.3.2 FOTS [9]
          FOTS是一個快速的端對端的文字檢測與識別框架,通過共享訓(xùn)練特征、互補(bǔ)監(jiān)督的方法減少了特征提取所需的時間,從而加快了整體的速度。其整體結(jié)構(gòu)如圖所示:
          • 卷積共享:從輸入圖象中提取特征,并將底層和高層的特征進(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
          這是一個超輕量級中文 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)
          • 任意方向文字檢測,識別時判斷行文本方向
          • crnn\crnn_lite lstm\dense識別(ocr-dense和ocr-lstm是搬運(yùn)chineseocr的)
          • 支持豎排文本識別
          • ncnn 實現(xiàn) (支持lstm)
          • mnn 實現(xiàn)
          話不多說,先來看看效果:
          接下來,我們再說一下chineseocr_lite的運(yùn)行環(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 度的字體)
          如果你也對這個項目感興趣就趕緊嘗試下吧。
          參考文獻(xiàn):
          [1] Tian Z et al. Detecting text in natural image with connectionist text proposal network[C]//European conference on computer vision. Springer, Cham, 2016.
          [2] Liao M et al. Textboxes: A fast text detector with a single deep neural network [C]//Thirty-First AAAI Conference on Artificial Intelligence. 2017.
          [3] Liao M et al. Textboxes++: A single-shot oriented scene text detector[J]. IEEE transactions on image processing, 2018.
          [4] Zhou X et al. EAST: an efficient and accurate scene text detector[C]// Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2017.
          [5] Goodfellow I J et al. Multi-digit number recognition from street view imagery using deep convolutional neural networks[J]. 2013.
          [6] Deng Y et al. Image-to-markup generation with coarse-to-fine attention[C]// Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017.
          [7] Gao Y et al. Reading scene text with fully convolutional sequence modeling[J]. Neurocomputing, 2019.
          [8] Bartz C et al. STN-OCR: A single neural network for text detection and text recognition[J]. arXiv preprint arXiv:1707.08831, 2017.
          [9] Liu X et al. Fots: Fast oriented text spotting with a unified network [C]// Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

          猜您喜歡:

          ?戳我,查看GAN的系列專輯~!
          一頓午飯外賣,成為CV視覺前沿弄潮兒!
          CVPR 2022 | 25+方向、最新50篇GAN論文
          ?ICCV 2021 | 35個主題GAN論文匯總
          超110篇!CVPR 2021最全GAN論文梳理
          超100篇!CVPR 2020最全GAN論文梳理


          拆解組新的GAN:解耦表征MixNMatch

          StarGAN第2版:多域多樣性圖像生成


          附下載 |?《可解釋的機(jī)器學(xué)習(xí)》中文版

          附下載 |《TensorFlow 2.0 深度學(xué)習(xí)算法實戰(zhàn)》

          附下載 |《計算機(jī)視覺中的數(shù)學(xué)方法》分享


          《基于深度學(xué)習(xí)的表面缺陷檢測方法綜述》

          《零樣本圖像分類綜述: 十年進(jìn)展》

          《基于深度神經(jīng)網(wǎng)絡(luò)的少樣本學(xué)習(xí)綜述》


          瀏覽 125
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品毛片久久 | 国产亚洲欧美精品久久 | 免费播放一区二区三区四区 | 京东热av | 成人av影视在线观看国产高清 |