【場景文本檢測識別相關技術基礎綜述7600字】_第1頁
【場景文本檢測識別相關技術基礎綜述7600字】_第2頁
【場景文本檢測識別相關技術基礎綜述7600字】_第3頁
【場景文本檢測識別相關技術基礎綜述7600字】_第4頁
【場景文本檢測識別相關技術基礎綜述7600字】_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

場景文本檢測識別相關技術基礎綜述目錄TOC\o"1-3"\h\u32154場景文本檢測識別相關技術基礎綜述 136391.1文本檢測識別流程 276861.2神經網絡及深度學習理論 3228081.1.1卷積層 366711.1.2池化層 4111531.1.3常用的激活函數 5146031.1.4反向傳播 8197311.3常用循環神經網絡 951901.3.1RNN網絡 9191271.3.2LSTM網絡 103751.3.3Seq2Seq 1252311.4常用網絡模型訓練技巧 1396161.4.1權值初始化 1312861.4.3L1/L2正則化 1569811.4.4Dropout 16近年間,隨著人工智能和計算機視覺的飛速發展與不斷崛起,深度神經網絡被應用在各個場景,如目標檢測、人臉識別、醫療圖像分析等,深度神經網絡可以很好的理解人類不能夠理解的深層次特征,進而通過不斷訓練學習到深度語義特征并進行預測分析,如今起源于圖像分類、檢測、語義分割等視覺處理任務的各個基礎網絡,紛紛被征用來提取自然場景中圖像中文字區域的特征向量,可以更加深層次的提取到文本的語義信息和位置信息。本章首先對文本檢測與識別的流程進行介紹,分析基于深度學習的算法在該任務流程中承擔的工作,并與傳統方法做對比突出其優勢,接下來對自然場景下文字檢測識別算法中所需的深度學習知識進行總結,主要包括卷積神經網絡、激活函數和網絡模型訓練技巧等。1.1文本檢測識別流程如圖1.1所示為傳統文本檢測識別流程。圖1.1傳統文本檢測識別流程Fig.1.1Traditionaltextdetectionandrecognitionprocess(1)圖像輸入:對于不同的圖像來說,因為有著不同的格式和壓縮方式,所以需要使用不同的方法進行解碼。(2)圖像預處理:主要包括二值化、去噪聲、傾斜較正等。攝像頭采集到的圖像一般都是彩色的,所含有的信息量巨大,很多的信息都是與文字不相關的,所以需要簡單的對前景與背景進行分離,同時對噪聲的干擾進行去除,并針對一些扭曲的文本進行矯正。(3)版面分析:對圖片中的文本分行、分段落的過程,被稱為版面分析。但由于圖片中文本的多樣性、復雜性,目前還沒有一個固定、統一的切割模型。(4)字符切割:根據版面分析的樣式對文字進行切割,將其分為單個字符以用于后續識別器的識別。(5)字符識別:該研究在比較早的時期就有模板匹配,后來很多學者提出了文字特征提取的算法。但文字的位移,筆畫的粗細、斷筆、粘連、旋轉等因素也極大地增加了特征提取的難度。(6)版面恢復:為了使得識別之后的文本仍然像原圖片中那樣排列著,段落、位置和順序都不變地輸出。(7)后處理:對于一些錯誤的文字,通過語言模型對識別的結果進行分析來把其糾正過來。上面的文本檢測識別流程使用了大量的圖像處理的相關知識,并且基本上都符合人類的視覺處理邏輯。但自然場景下的圖像中的信息更加豐富,伴隨著光照、字體樣式大小分布不均、文字彎曲、以及圖像中非文字區域與文字區域有相似的紋理等因素,使得上述的流程每一個環節都很難進行。如今隨著計算機視覺的發展基于深度學習的自然場景文本檢測與識別算法就可以很好的簡化這些復雜的中間流程,該流程大體分為4個步驟,讀入圖像-圖像文字區域檢測-文字識別-結果。通過文本檢測網絡進行定位文本的位置與一個識別網絡來識別文本的具體內容可以很好的解決這一問題。如圖1.2是基于這一流程的場景中文字檢測與識別的技術解決方案。圖1.2場景文本識別技術解決方案Fig.1.2Solutionofscenetextrecognitiontechnology通過公共特征提取層提取到圖片的深層次特征,再分別訓練文字檢測和文本識別兩個模型,確定圖中文本坐標、文本內容并優化模型目標,最后在服務實施階段將這兩個模型串聯到數據流水線中組成圖文識別系統。1.2神經網絡及深度學習理論卷積神經網絡(convolutionalneuralnetwork,CNN)也叫做卷積網絡(convolutionalnetwork),是一類特殊的人工神經網絡,最主要的特點是卷積運算操作[28]。CNN有局部連接和權值共享兩個特點,一方面減小了過擬合的風險,降低了模型的復雜度,另一方面減少了權值的數量使得網絡易于優化,在計算機視覺領域中尤為明顯。近年來卷積神經網絡發展迅速,早已實現了網絡寬度和深度的擴增,如Inception模塊、殘差模塊的使用。1.1.1卷積層卷積層[29]是深度神經網絡中一種很基礎的操作,在網絡最后起分類作用的全連接層在工程實現時也是用卷積層的操作來實現的。圖1.3卷積操作示例Fig.1.3Convolutionoperationexample如圖1.3所示,卷積操作實際上是一種分析數學里的計算方式,在卷積神經網絡中只涉及離散卷積的情況。可以看出,卷積操作是局部的,通過一定大小的卷積核作用于局部的區域來獲得圖像的局部信息。并且通過設計不同的卷積核對圖像進行逐行掃描,最終提取出圖像中的特征。卷積操作其功能類似于傳統圖像處理中的濾波,傳統方法時基于圖像本身的特征進行提取,而特征提取的形態算子是固定不變的,例如拉普拉斯算子、Canny邊緣檢測算子和Sobel離散微分算子等,深度學習中神經網絡的卷積核是未知的,這和傳統方法提取圖像特征的方式不同,神經網絡通過將目標圖片和標簽結合起來進行“聯合學習”,在模型訓練的過程中,特征的相關參數(比如CNN卷積核的參數)可以根據目標核優化的反饋自適應的調整,實現預期的目標,而有標簽的訓練方法也叫做有監督的訓練方法。1.1.2池化層池化層是一種下采樣層,池化函數將網絡在該位置的輸出用某一位置的相鄰輸出的總體統計特征來代替。最常見的如最大池化(max-pooling)函數用相鄰矩形區域內的最大值來代替網絡在區域內的輸出、平均池化(mean-pooling),即輸出相鄰矩形區域內的平均值,還有基于距中心像素距離的加權平均函數以及L^2范數等[30]。如圖1.4所示為最大值池化和均值池化示意圖。值得注意的是,池化層不像卷積層的操作,它不包含需要學習的參數。圖1.4最大值池化和均值池化示意圖Fig.1.4Maximumpoolingandaveragingpoolingschematics最大池化和平均池化的公式如式(1.1)和式(1.2)。 (1.1) (1.2)其中,Ii,j除了最大值池化和平均值池化之外,隨機池化(stochastic-pooling)也是一種池化方法[31]。它介于上述兩者之間,只需對輸入數據中的元素按照一定概率值大小隨機選擇,而不是只取最大值或平均值。對隨機池化來說,元素值大的響應被選中的概率也大,反之亦然。在全局意義上,隨機池化近似于平均值池化;而在局部意義上,它服從的是最大值池化的原則。1.1.3常用的激活函數神經網絡的剛開始提出之時,主要是用來解決一些線性可分的情況,它的輸出信號僅僅是一個簡單的線性函數,他們的復雜性有限,若干層線性操作堆疊起來仍然是線性操作的效果,無法增加網絡的復雜性。然而在解決實際問題的時候,面臨的往往是線性不可分的問題,因此引入非線性激活函數的概念。激活函數層又稱為非線性映射層,目的就在于增加網絡的表達能力(非線性),在實際應用中,有多達十幾種非線性激活函數可以供選擇,接下來對本文重點使用的三種進行介紹。(1)Sigmoid函數[32]傳統神經網絡中曾經最常用的激活函數Sigmoid函數(也叫Logistic函數),值域在0到1之間,函數表達式為式(1.3)。 (1.3)其導數表達式為式(1.4)。 (1.4)Sigmoid函數圖像如圖1.5所示。圖1.5Sigmoid函數Fig.1.5SigmoidfunctionSigmoid函數的優點是它的輸出映射在(0,1)之間,連續單調的特點使它便于求導,有利于前向傳播。但由于其存在飽和區間,對于過大或過小的值都會被壓縮到1(或0),這樣會帶來嚴重的“梯度飽和效應”,也就是當網絡變深時,出現梯度消失的現象。而且Sigmoid函數不是以0為中心,容易導致收斂速度下降而且冪運算相對更加耗時。(2)Tanh函數[33]為了解決Sigmoid的問題,可以使用以0為中心的輸出的Tanh函數,又叫做雙曲正切函數,區間為[-1,1],兩個sigmoid函數放在一起相當于Tanh函數,Tanh函數的性能會高于Sigmoid函數。其表達式為(1.5)。 (1.5)其導數表達式為(1.6)。 (1.6)Tanh函數圖像如圖1.6所示。在

0周圍的很短一段區域內可看為線性的是Tanh函數的優點。由于Tanh函數均值為

0

,彌補了Sigmoid函數均值為

0.5的缺點,解決了Sigmoid函數的非零中心對稱的問題。但它像Sigmoid函數一樣,當x很大或很小的時候,進入飽和區間,在訓練中容易出現梯度消失,從而導致權重更新的非常緩慢。圖1.6Tanh函數Fig.1.6Tanhfunction(3)修正線性單元(ReLU)[34]為了避免梯度飽和現象,神經網絡中引入了修正線性單元ReLU,也是目前深度卷積神經網絡中最為常用的激活函數之一。另外,根據ReLU函數改進的其他激活函數也展示出很好的性能,如LeakyReLU、參數化ReLU、隨機化ReLU等。ReLU函數實際上是一種分段線性函數,又稱為修正線性單元(RectifiedLinearUnit),它能夠彌補Tanh函數以及Sigmoid函數的梯度消失問題,表達式見式(1.7)。 (1.7)函數圖像如圖1.7所示。圖1.7ReLU函數Fig.1.7ReLUfunctionReLU函數的導數定義為式(1.8)。 (1.8)如上式可見,ReLU函數的梯度在x>0時為1,反之為0。對x>0部分完全消除了上述兩種激活函數所產生的梯度消失現象,同時在實驗中還更有助于隨機梯度下降方法的收斂,收斂速度約快6倍左右。正是由于ReLU函數這些優秀的特性,它已經成為目前卷積神經網絡以及其他深度學習模型(如循環神經網絡)激活函數的首要選擇之一。1.1.4反向傳播在卷積神經網絡以及其他深度學習模型中,大部分都是通過最小化損失函數來訓練得到最優的模型參數。但是從凸優化理論上講,神經網絡模型的局限性在于,它不僅是非凸模型,而且非常復雜,使得模型的優化求解異常困難。在深度學習模型中,可通過前向傳播和反向傳播兩個階段結合來進行訓練,通過梯度下降等方法進行模型的參數更新[35]。前向傳播是產生代價函數的階段,輸入信息通過神經網絡的計算,最終產生一個標量的代價函數,用于反向傳播過程中的計算。在反向傳播階段,根據誤差函數的值來計算梯度并沿著負梯度優化方向去優化模型參數,總體來說是一個通過迭代更新權重矩陣的參數值來最小化損失函數的過程。在網絡開始訓練之前,輸入和輸出間隱含的網絡模式和網絡參數沒有辦法被識別,這是因為還沒有開始訓練的神經網絡的參數的初始值是通過隨機初始化得到的,所以無法根據網絡的輸出做出正確的判斷,訓練之前,正確的輸出值被標注到了每一列數據當中,權重矩陣在模型訓練的過程中會根據實際的標簽和模型的預測值之間的差值做判斷,誤差函數就是一種計算模型的預測輸出和實際標簽之間的差值的方式,接著通過反向傳播來修正誤差函數,最小化誤差函數,從而更新得到能夠分類正確的權重組合。圖1.8簡單的多層網絡Fig.1.8Asimplemultilayernetwork.反向傳播算法的核心在于損失函數及所有權重梯度的計算,最小化損失函數的數值首先就要計算偏導數?L/?w,再通過優化算法來求解問題。在大多數場景文本檢測與識別實際應用的深度學習模型中,常用批處理的隨機梯度下降法(mini-batchSGD)[36]。1.3常用循環神經網絡循環神經網絡(RecurrentNeuralNetwork,RNN)是一類用于處理序列數據的網絡結構,最早是在二十世紀八十年代被提出的[37]。該網絡的輸入通常是連續的、長度不固定的序列數據。循環神經網絡能夠捕獲長距離樣本之間的關聯信息從而利于處理序列信息。此外,循環神經網絡還可以實現利用隱藏節點的狀態信息保存序列中有價值的歷史信息,從而使得RNN網絡能夠學習到整個序列的抽象的有價值的信息。近年來,隨著計算科學的迅猛發展和深度學習網絡設計的改進,循環神經網絡在處理序列數據任務中取得了突破性進展,特別是在語音識別、文字預測等領域有著更好的刻畫能力,表現出較大優勢,得到了廣泛應用。因此,在文字識別網絡模型中合理的使用循環神經網絡可以提高文字識別的準確度。1.3.1RNN網絡RNN是通常用于處理輸入層為序列數據的神經網絡,圖1.9左圖為折疊的RNN結構,從圖上看整個RNN網絡結構分為三層:輸入層x、隱藏層和輸出層o。其中,x表示輸入層輸入的特征,輸入一般為連續的序列用向量表示;s表示隱藏層的輸出,隱藏層可以由多個神經元組成,神經元個數代表了s的維度;o代表輸出層的值,一般為向量形式,維度一般與分類類別相關。RNN網絡之所以有“循環”,是因為在其隱藏層多了一個自身的環形連接,即隱藏層輸出s的值不僅取決于輸入x和相應的權值矩陣U,還依賴于隱藏層上一時刻的輸出和其對應的權值矩陣W。正因為隱藏層存在自己到自己的循環連接,該層也被稱作循環層。將RNN網絡按照時間序列進行展開,于是就可得到RNN網絡在各個時刻的變量結構圖,如圖1.9所示。網絡的輸入沿著時間序列向后傳播。當前時刻隱藏層的輸出不僅依賴于當前時刻的輸入,還依賴于時刻隱藏層輸出。所以當前時刻隱藏層的輸出包含了之前時刻的信息,可以理解為對之前信息的記憶,體現了RNN網絡對序列信息的記憶能力。RNN網絡算法公式如下所示。 (1.9) (1.10)式(1.9)是輸出層計算公式,其中為輸出,為輸出層的激活函數,一般為Softmax函數,為隱藏層到輸出層之間的權值矩陣,輸出層和隱藏層之間進行全連接。表示隱藏層時刻的輸出,由兩部分組成,即時刻的輸入及時刻的隱藏層輸出,為輸入層到隱藏層的權值矩陣,為時刻到時刻的權值矩陣,為隱藏層的激活函數,一般可以選擇tanh、relu、logistic函數等。此外,、、權值矩陣的值在每個時刻都是共享的,這也是循環神經網絡的結構特征之一。圖1.9RNN網絡結構展開圖Fig.1.9RNNnetworkstructureexpansion自然場景下文字識別算法中更常用的是基于上述的RNN網絡設計的雙向循環神經網絡。雙向循環神經網所謂“雙向”是指其不僅能像RNN網絡記憶時間序列時刻前時刻的特征,還能記憶利用后時刻的特征,可以很好的對文字序列進行理解,最終提高其最終輸出結果的準確性。1.3.2LSTM網絡長短時記憶網絡(LongShortTermMemoryNetwork,LSTM)是一種特殊結構的循環神經網絡,它是針對傳統的循環神經網絡出現的梯度消失和梯度爆炸的缺陷而設計的,逐漸成為當下廣泛使用的網絡結構,主要應用在語音文字識別、圖像描述、自然語言處理等領域[38]。傳統的循環神經網絡通常采用梯度下降法進行訓練,雖然效果很好,但隨之產生的梯度爆炸和梯度消失問題,隨著輸入序列的增長,展開的網絡就越深,同時網絡的抖動變得更為劇烈,導致無法學習。基于此問題,長短時記憶網絡便應運而生了,它是Hochreater和Schmidhuber在1997年提出,之后經過AlexGraves的改良,最終形成了現如今廣泛使用的LSTM網絡。相比RNN網絡,長短時記憶網絡引入了三種“門”來保護和控制信息,實現長期記憶保留的功能,分別為:遺忘門、輸入門和輸出門。“門”主要的功能就是實現了讓信息選擇通過,“門”的主要結構如圖1.10所示。圖1.10控制門結構Fig.1.10Controlgatestructure如圖1.10所示,“門”主要由兩部分構成,和。其中表示神經網絡層,一般采用Sigmoid神經網絡層,因其Sigmoid層輸出0到1之間的數值,可以表示為允許通過信息量的多少,1表示全部可以通過,0表示都不可以通過。表示按元素逐乘操作。圖1.11長短時記憶網絡結構圖Fig.1.11Structurediagramoflong-termandshort-termmemorynetwork如圖1.11所示,網絡內部結構從左往右依次是遺忘門,輸入門和輸出門。首先是遺忘門,主要作用是決定讓哪些信息繼續通過這個神經元,即“遺忘”部分信息。該門會讀取時刻的輸出和當前時刻的輸入,經過神經網絡層輸出。公式如下: (1.11)緊接著是輸入門,主要作用是決定那些輸入被更新。此外還有一個層生成一個向量作為備選更新信息。然后兩部分的輸出經過逐點按元素相乘,對細胞狀態更新。公式入下: (1.12) (1.13) (1.14)最后是輸出門,即決定最后輸出什么值。公式如下: (1.15) (1.16)綜上,LSTM關鍵在于細胞狀態,它實現了信息在其上面傳播穩定,同時通過“門”對信息進行選擇性的遺忘、更新和輸入,從而實現了對長期信息的記憶。1.3.3Seq2Seq傳統的RNN模型對其輸入序列和輸出序列是有要求的,兩者的長度必須一致。然而在很多應用中,經常會出現輸入輸出不定長的情況,例如機器翻譯領域的中英文翻譯前后長度不一致以及語音識別領域識別前后的維度不一致等場景應用,為此專家學者提出了序列到序列(SequencetoSequence,Seq2Seq)的模型,也叫編碼-解碼(Encoder-decoder)模型。模型的本質依然是基于RNN網絡,利用兩個RNN網絡,分別稱之為編碼器和解碼器[39]。結構如圖1.12所示。圖1.12Seq2Seq模型示意圖Fig.1.12Seq2SeqmodeldiagramSeq2Seq模型有編碼器和解碼器兩部分構成。如圖1.18所示,左側的是編碼器。編碼器的作用是將不定長的輸入序列編碼成一個固定長度的語義向量,即圖中的c。編碼器實際上利用了RNN網絡記憶的能力。假設輸入為,是時刻的隱藏狀態。那么可以得到時刻的隱藏狀態和語義向量: (1.17) (1.18)右側的是解碼器,作用將編碼了整個輸入序列的信息的語義向量c轉換輸出,值得注意的是輸出需要根據前面的結果來得到后面的結果。對于輸出序列,輸出的條件概率依賴于語義向量c和時刻之前的輸出序列,即。此外時刻的隱藏層狀態 (1.19)之后通過激活函數如Softmax得到輸出。1.4常用網絡模型訓練技巧深度學習中的網絡通常都是層數多,在實際訓練的過程中,會遇到網絡泛化能力低,訓練速度慢以及過擬合問題,因此需要相應的辦法和技巧解決這些問題。1.4.1權值初始化俗話說“萬事開頭難”,神經網絡的訓練也是如此。網絡的性能跟網絡參數的初始化也是息息相關的,理想的網絡參數初始化可以使模型的訓練事半功倍,相反,糟糕的參數初始化不僅會影響網絡收斂,甚至會導致梯度消失或者梯度爆炸,從而訓練失敗[40]。Xavier談到初始化,人們第一時間想到的或許是根據高斯分布來生成隨機數,但這會導致前向傳播時神經元輸出值的方差不斷增大。假設輸入為X,輸出為Y: (1.20)則的方差為: (1.21)假設wi和x (1.22)因此,為了在前向、反向傳播時保證輸入輸出的方差一直,應有: (1.23) (1.24)然而在一般情況下,輸入輸出的個數通常是不同的,綜合考量,令 (1.25)又因為[a,b]間均勻分布的方差為: (1.26)所以,Xavier初始化滿足在如下區間的均勻分布: (1.27)Xavier這樣設計的目的是,在模型初始化之后,每層輸出的方差和輸入個數無關,梯度的方差也不受輸出數量的影響。但這個方法仍然有不太完美的地方,它沒有考慮非線性激活函數對輸入的影響,因為使用ReLU等激活函數之后,輸出數據的期望往往不再是0,因此這種方法不太符合實際情況。MSRA針對上述方法的不足,MSRA提出了一種針對ReLU函數的初始化方法,MSRA初始化產生的是一個均值為0、方差為2/n的高斯分布,推導證明如下: (1.28)假設w和x獨立同分布,且w的均值為0,則方差為: (1.29)對于ReLU函數(用f表示),有: (1.30) (1.31)將式(1.31)代入(1.30)可得

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論