《基于深度學習的街道場景廣告標牌的文字檢測識別研究》10000字_第1頁
《基于深度學習的街道場景廣告標牌的文字檢測識別研究》10000字_第2頁
《基于深度學習的街道場景廣告標牌的文字檢測識別研究》10000字_第3頁
《基于深度學習的街道場景廣告標牌的文字檢測識別研究》10000字_第4頁
《基于深度學習的街道場景廣告標牌的文字檢測識別研究》10000字_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于深度學習的街道場景廣告標牌的文字檢測識別研究摘要傳統(tǒng)光學字符識別技術(shù)主要是對規(guī)整的文檔圖像進行處理,在適合條件下能夠達到很好的檢測識別效果;而復(fù)雜多變的自然場景中,面對雜亂的背景、手寫體印刷體等多樣化的字體和傾斜旋轉(zhuǎn)的排列方式,傳統(tǒng)光學字符識別很難得到有效的結(jié)果。針對上述問題,本文主要研究自然場景中廣告牌圖片中文字的檢測與識別,主要內(nèi)容如下:(1)建立一個包含8400張廣告牌圖片及其標簽的廣告牌文字檢測與識別的數(shù)據(jù)集;(2)使用VGG網(wǎng)絡(luò)提取空間特征,利用BLSTM獲取上下文信息,采用RPN區(qū)域生成網(wǎng)絡(luò)構(gòu)建文本框,最終完成廣告牌文字檢測;(3)利用CNN進行特征提取,RNN進行序列特征提取,CTC的損失函數(shù)進行端到端的聯(lián)合學習,并基于此得到廣告牌文字識別結(jié)果;(4)采用PyQt實現(xiàn)用戶界面,包括圖片讀入、文字區(qū)域檢測和文字內(nèi)容識別。關(guān)鍵詞:深度學習;場景文字檢測;場景文字識別目錄1緒論 緒論1.1研究背景及意義廣告牌宣傳是一種傳統(tǒng)又典型的方式,由于方便高效,針對性強等特點,長久以來受到廣大商家的青睞。隨著二維碼掃描的普及,通過掃描圖片的形式,快速準確識別廣告牌文字,能夠方便用戶快速查找商店或商品信息,提高工作效率,降低人工成本,優(yōu)化用戶體驗。傳統(tǒng)光學字符識別應(yīng)用在輸入背景單一、字體為規(guī)范印刷體且分布整齊的高質(zhì)量文檔圖像中時,通常能達到很好的效果。而自然場景中的情況就復(fù)雜很多,如廣告牌位置不同,圖像背景復(fù)雜;拍照設(shè)備或天氣等因素影響分辨率差異大;書法字體,藝術(shù)字體等字體多樣化;廣告文字排布隨意等,使得傳統(tǒng)方法無法應(yīng)用。隨著深度學習熱潮的掀起,文字檢測與識別有了新的思路,經(jīng)過研究后證明深度學習相比傳統(tǒng)方法的確有更好的表現(xiàn)。如今的深度學習技術(shù)已經(jīng)十分成熟,TensorFlow、Caffe、Torch、PyTorch等深度學習框架都有廣泛應(yīng)用。因此,探索基于深度學習方法的廣告牌文字檢測與識別系統(tǒng)具有重要的價值。1.2國內(nèi)外研究現(xiàn)狀2016以來,相比傳統(tǒng)光學字符研究技術(shù)已十分成熟,場景圖像的文本檢測和識別卻仍面臨很多困難和挑戰(zhàn)。在高質(zhì)量文檔可以達到99%以上的識別率時,自然場景圖像卻是檢測率不到80%,識別率低于60%的情況。例如在圖像的數(shù)字化轉(zhuǎn)換、車牌識別、廣告牌文字識別等的應(yīng)用中,這類圖片背景復(fù)雜,不像文檔圖片背景簡單干凈且分辨率高,則識別率準確率都很低。目前,在國內(nèi)外學者地深入研究下,場景文字檢測識別技術(shù)取得了巨大進展。(1)研究方向自然場景中的文字檢測識別分為兩個關(guān)鍵技術(shù)點,即文字檢測與文字識別。只有精確檢測出文字的位置,才能為后續(xù)識別的研究做好鋪墊,所以文字檢測十分重要。在文字檢測研究中最有影響力的比賽是ICDAR組織的魯棒性閱讀比賽(RobustReadingCompetition),對文字檢測研究的發(fā)展有極大意義。(2)場景文字檢測研究現(xiàn)狀場景文字檢測的相關(guān)研究先提出了基于手工標注的傳統(tǒng)方法,隨著深度學習的潮流,基于深度學習的方法也逐漸受到重視。傳統(tǒng)方法是先經(jīng)過手工標注,再提取標注的特征向量。連接組件分析標簽(Epshtein等,2010;Neumann和Matas,2010)和滑動窗口(Lee等,2011)在該任務(wù)中應(yīng)用最為廣泛。[1]但也存在很多問題,手工標注在復(fù)雜情況下缺乏魯棒性,基于滑動窗口方法中窗口選擇缺乏針對性,只能依次逐個劃過,耗費時間長,窗口冗余?;谏疃葘W習的方法在經(jīng)過調(diào)整參數(shù)的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)下,用反向傳播算法來學習目標任務(wù)所需的特征向量,經(jīng)實驗證明能夠大幅提高檢測效果?,F(xiàn)在廣泛應(yīng)用的深度學習文字檢測模型是基于回歸的模型和基于分割的模型?;诨貧w的模型是由目標檢測框架改進。其中最為廣泛應(yīng)用的是FasterR-CNN的,但是此方法速度不具實時性。YOLO也屬于基于回歸的模型中的方法,采用端到端網(wǎng)絡(luò),訓練檢測出文字位置和類別。SSD[2]將YOLO和FasterR-CNN融合,是一種全卷積目標檢測算法,能使文字定位更準確,在FasterR-CNN基礎(chǔ)上速度明顯提升。基于分割的模型產(chǎn)生是受到語義或?qū)嵗指羁蚣苡绊?,目前已?jīng)有了使用廣泛,約束較少的框架。FCN[3]是深度學習解決分割問題的基礎(chǔ),它將分類網(wǎng)絡(luò)轉(zhuǎn)換成能夠分割任務(wù)的結(jié)構(gòu),由端到端網(wǎng)絡(luò)的訓練后,產(chǎn)生一個較為細致的分割圖以得到文字區(qū)域的相應(yīng)熱圖。(3)場景文字識別研究現(xiàn)狀2012年之前,傳統(tǒng)的文字識別主要分為三個基本的步驟,先對圖像預(yù)處理,通常是包括圖像去噪、圖象增強、縮放等;然后提取圖像中文字的相關(guān)特征;最后采用分類器進行分類。深度學習在之后的發(fā)展中取得重大突破,訓練深度學習模型識別成為了熱門方向。目前主要有兩種思路進行研究,一種是先對輸入圖片進行檢測,定位文本位置后,在對文本行中的字符進行識別,即將研究過程中檢測和識別兩個步驟分開,CRNN是現(xiàn)在應(yīng)用較多的圖文識別模型,對識別較長的文本序列有良好的能力;另一種方案是進行端到端的快速檢測識別,即將第一中方案中的檢測與識別過程合成在一起,直接輸出預(yù)測文本信息。當前較好的端到端算法為FOTS,計算速度較快,也能學到分階段訓練方式無法得出的一些圖像特征。由于端到端的方式需要大量數(shù)據(jù)進行訓練且識別準確率并不高,所以本文主要采用分階段的方法。1.3主要研究內(nèi)容綜上所述本文對廣告牌文字的檢測識別技術(shù)分別進行了研究,研究的主要內(nèi)容如下:(1)CTPN文本檢測算法,將該算法應(yīng)用于廣告牌文本檢測中。算法由圖像預(yù)處理模塊、CTPN網(wǎng)絡(luò)文本定位模塊和文本框融合模塊三部分組成。它通過對待檢測圖像預(yù)處理規(guī)格化后,再對CTPN網(wǎng)絡(luò)檢測出的候選文本框進行融合,使用融合策略找出文本的最佳區(qū)域。(2)CRNN文本識別算法。首先CNN聯(lián)合RNN訓練構(gòu)建輸入特征序列,得到字符預(yù)測結(jié)果,最后使用CTC的損失函數(shù)進行端到端的聯(lián)合訓練對齊輸入輸出。將該算法在數(shù)據(jù)集上進行訓練和測試,識別出廣告牌文字。1.4本文結(jié)構(gòu)第一章:介紹了本文的研究背景與現(xiàn)狀,并對本文結(jié)構(gòu)進行安排。第二章:對研究過程中用到的知識進行說明,以此降低閱讀成本。第三章:對廣告牌文字檢測過程中的操作處理進行介紹。第四章:對檢測出的文本框內(nèi)的文字識別過程中的操作處理進行介紹。第五章:對實驗結(jié)果進行分析。第六章:總結(jié)本文主要工作,并對提出了相關(guān)改進思路。2相關(guān)知識2.1深度學習(1)概述深度學習(deeplearning)是機器學習衍生出的[4],對數(shù)據(jù)進行模擬神經(jīng)系統(tǒng)地復(fù)雜變換后使抽象得到有效信息的一種算法,使實現(xiàn)人工智能的目標更進一步。通過構(gòu)建深層的神經(jīng)網(wǎng)絡(luò)進行學習,發(fā)現(xiàn)數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,機器能夠在通過多層非線性的信息處理之后完成特征提取的任務(wù),構(gòu)建深層的模型是實現(xiàn)的手段。深層網(wǎng)絡(luò)學習到的特征都是淺層中學習的特征的連接,因此能夠?qū)W到更抽象的特征,進而數(shù)據(jù)的屬性和類別能夠更好的被表示。應(yīng)用在文字、圖像和聲音等自然信息的檢測識別領(lǐng)域,經(jīng)過訓練便能得到很好的結(jié)果。最終實現(xiàn)“人工智能”,使機器具有對輸入的自然信息能夠像人類一樣分析學習的能力。(2)Pytorch框架Pytorch是一款在torch框架基礎(chǔ)上開源的深度學習框架。由于種種優(yōu)勢,Pytorch目前得到了廣泛的應(yīng)用,已經(jīng)在聊天機器人、機器翻譯、文本搜索、文本到語音轉(zhuǎn)換和圖像與視頻分類等項目中取得了巨大成功。2.2CNN卷積神經(jīng)網(wǎng)絡(luò)(1)概述卷積神經(jīng)網(wǎng)絡(luò)CNN(ConvolutionalNeuralNetworks)能夠?qū)ξ矬w的表面特征進行很好地提取學習,擁有良好的性能使其得到廣泛應(yīng)用[5]。卷積神經(jīng)網(wǎng)的產(chǎn)生是從生物視覺感覺系統(tǒng)得到的思路,可以在無監(jiān)督或有監(jiān)督的情況下學習,在CNN的隱藏層中,各自的卷積核之間共享參數(shù),各層間的連接稀疏,因此像素等網(wǎng)格化特征,計算量小,無需通過特征工序提取其他的,追加數(shù)據(jù)的特征信息。它通常由多層神經(jīng)網(wǎng)絡(luò)構(gòu)成,各層能夠取入卷積對象的不同水平的特征。網(wǎng)絡(luò)的第一層是卷積對象的特征等級的最下層,其包括更多的紋理、顏色、形狀等底部特征。后面的階層所包含的特征更高級更抽象,這些高層次的抽象特征用傳統(tǒng)的機器學習方法難以抽取。CNN的網(wǎng)絡(luò)結(jié)構(gòu)中多層隱藏層是重點結(jié)構(gòu),分為三個基本層級。卷積層有多個卷積核,每個卷積層通過卷積核來學習輸入數(shù)據(jù)的關(guān)系,即通過在迭代訓練期間獲得最佳參數(shù)值來最小化網(wǎng)絡(luò)模型的誤差,用來提取輸入數(shù)據(jù)的特征。池化層或名下采樣,通過縮小或抽取平均值等方式壓縮特征圖,將卷積層的輸出特征圖輸入到池化層中。全連接層一般是一維特征向量,其經(jīng)由神經(jīng)元連接到先前的網(wǎng)絡(luò),并將所提取的特征聚集在樣本空間中。如下圖2-1所示。圖2-1CNN網(wǎng)絡(luò)結(jié)構(gòu)示意圖(2)VGGNet相關(guān)研究VGG是經(jīng)典的CNN模型,在分類比賽項目中取得優(yōu)異成績,展現(xiàn)了良好的性能。在對采用11至19層網(wǎng)絡(luò)結(jié)構(gòu)的VGG模型進行比較分析后,發(fā)現(xiàn)16層和19層網(wǎng)絡(luò)深度的VGG模型展現(xiàn)出較好的性能,所以這兩種模型使用最為廣泛,分別被稱為VGG-16和VGG-19,他們并沒有實質(zhì)上的差異,不同點只是中間隱含層層數(shù)不同[6]。VGG可以視為增加網(wǎng)絡(luò)深度的AlexNet,將卷積層和全連接層疊加在一起生成,差異在于,VGG中使用的都是尺寸較小的卷積核。該模型具有如下特點,其一,使用連續(xù)的小卷積核,簡化結(jié)構(gòu),減少訓練過程中的計算量,使模型訓練速度提高;全部使用2×2的池化核,能夠獲取細節(jié)信息,更好地感受圖像的變化過程。其二,模型參數(shù)多,并且很多都位于FC層中。其三,訓練網(wǎng)絡(luò)進行合適的網(wǎng)絡(luò)初始化來減少反向傳播,并批量歸一層。其四,VGG-19與VGG-16結(jié)構(gòu)相似,其中VGG-19的性能更好一些,但訓練中需要更多的資源配合,并且VGG-16的簡單結(jié)構(gòu)時期在遷移學習中表現(xiàn)良好,因此實際中VGG-16比VGG-19使用更多。圖2-2VGG-16模型結(jié)構(gòu)圖示本文主要使用的是VGG-16模型,VGG-16模型整體結(jié)構(gòu)由5個卷積塊組成,如上圖2-2所示結(jié)構(gòu)。2.3RNN循環(huán)神經(jīng)網(wǎng)絡(luò)循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(RecurrentNeuralNetwork)利用前后輸入的關(guān)系提高模型的訓練效果,更好的處理利用序列信息,在自然語言處理領(lǐng)域應(yīng)用的較為廣泛[7]。圖2-3RNN網(wǎng)絡(luò)結(jié)構(gòu)示意圖基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)只在層與層連接進行加權(quán),RNN[8]最大的改進之處是在層之間的神經(jīng)元之間也進行了加權(quán),具體結(jié)構(gòu)如圖2-3所示。最傳統(tǒng)的全連接神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上加上權(quán)重矩陣W便得到了RNN。輸入層值的向量x結(jié)合權(quán)重矩陣U輸入隱含層,得到隱藏層值的向量s,而上一次隱藏層值的向量s作為權(quán)重矩陣

W加入到本次隱藏層的訓練中,使上一次運算的值與本次得到結(jié)合,全局角度上使得上下文信息得到聯(lián)系,再將本次隱含層值的向量s以另一加權(quán)值,訓練后得出輸出層結(jié)果。所以當前St的值同時受到本次輸入Xt和上一次隱藏層的值St-1的影響[9]。如圖2-3所示。RNN框架對序列處理有一定的改進,卻同時存在梯度爆炸或梯度消失問題的可能,因為隨著訓練的推進,神經(jīng)網(wǎng)絡(luò)中“記憶能力”減弱,使得上下文聯(lián)系的能力減弱。為解決這兩個問題研究者們又提出了相關(guān)算法。對于梯度消失采取了一種具有“記憶”的存儲方式,取代直接抹去距離較長上文信息的方式;對于梯度爆炸問題,通過設(shè)置一個閾值a,當梯度超過a或者小于-a時,直接設(shè)置為a或-a,不再增加減少。

3廣告牌文字的檢測對于自然場景圖像,文字檢測需要實現(xiàn)定位文字的位置,確定文字的大小,為之后文字識別做好準備,只有檢測出了文字,才能更準確的識別文字。本文文字檢測主要流程如下圖:圖像預(yù)處理圖像預(yù)處理CNN學習空間特征CNN學習空間特征Bi-LSTM學習序列特征Bi-LSTM學習序列特征RPN網(wǎng)絡(luò)獲得TextProposalsRPN網(wǎng)絡(luò)獲得TextProposals構(gòu)造文本框構(gòu)造文本框圖3-1廣告牌文字檢測流程圖3.1圖像預(yù)處理預(yù)處理操作先將圖像去噪,即處理掉原始輸入圖像中影響訓練過程的因素。在圖像去噪過程中需要保護原始圖像不受損,同時減少圖片中的一些無用的信息。進而用OpenCV將圖片統(tǒng)一規(guī)格為寬1600像素,高900像素,便于輸入CTPN算法網(wǎng)絡(luò)中。3.2CTPN算法訓練模型CTPN是ECCV在2016提出的一種基于連接預(yù)選框,聯(lián)合采用RNN和CNN的文本信息檢測算法[10]。并結(jié)合LSTM(長短期記憶網(wǎng)絡(luò))深度網(wǎng)絡(luò),該算法表現(xiàn)出良好的性能,能有效的檢測出復(fù)雜場景的水平方向的文字。3.2.1CTPN介紹CTPN模型中利用VGG-16作為基礎(chǔ)網(wǎng)絡(luò),再用得到的特征圖訓練出多個候選框,采用文本框融合技術(shù)得到最終文本框[11]。當需要獲得的相關(guān)信息和待預(yù)測位置之間的間隔不斷增大時,RNN不能在距離較大的情況下保持學習信息的能力,所以用到了LSTM。雙向LSTM可看作是兩層神經(jīng)網(wǎng)絡(luò),這兩層神經(jīng)網(wǎng)絡(luò)分別從兩個方向?qū)Υ幚硇畔⑤斎脒M行訓練,一層將數(shù)據(jù)從開頭在左邊輸入,另一層中則末尾開始倒著在右邊輸入,兩個方向進行相同的處理,最后將結(jié)果疊加,能夠?qū)?shù)據(jù)序列的上下文信息綜合考慮[12]。3.2.2網(wǎng)絡(luò)訓練過程(1)將VGG16網(wǎng)絡(luò)作為basenet進行特征的提取,將conv5得到featuremap輸出,由于數(shù)據(jù)經(jīng)過4次池化后Stride為16,所以改變特征圖中1個像素,在原圖中則是對16個像素點進行了操作。(2)在產(chǎn)生的特征圖上框出大小為3x3的滑動窗口。如下圖3-2所示,輸出為N×9C×H×W的Featuremap,學得廣告牌圖像的空間特征。可以預(yù)測出當前窗口是特征向量與周圍anchor之間的偏移距離,即由一個滑動窗口可以預(yù)測出10個textproposal。圖3-2滑動窗口變換示意圖(3)對上一步輸出的Featuremap進行Reshape操作:Reshape:N×9C×H×W→NH(4)將Batch=NH且最大時間長度Tmax=W的數(shù)據(jù)流輸入Bi-LSTM,Bi-LSTM輸出為(NH)×W×256,獲得序列特征,再經(jīng)Reshape恢復(fù)原圖大小:Reshape:NH這時輸出的特征向量同時包含了CNN訓練后得到的空間特征,RNN訓練后含有前后信息的序列特征。(5)然后輸入全連接層,使特征豎直,Anchors定位文字位置。因為采用VGG16模型提取空間特征,所以Conv5生成特征圖的寬度高度都比輸入廣告牌圖片的寬度和高度縮小16倍。之后采用了每個像素點位置創(chuàng)建等寬度的Anchors,對文字進行定位。如下圖3-3所示,全連接FC層Featuremap中每個像素點都設(shè)置10個等寬不等高的Anchor,寬高分別為:Widths=[16],heights=[11,16,23,33,48,68,97,139,198,283]圖3-3每個像素點10個Anchors示意圖這種方式有兩個優(yōu)點。其一,保證在水平方向上,每個像素點都能且只能被一個Anchor組覆蓋;其二,由于同一廣告牌不同文本行在豎直方向上高度也可能存在很大差距,所以設(shè)置10個不同高度的Anchors高度。Anchor作為檢測文字的候選框,通過之后步驟中的分類和位置矯正操作,獲取Anchor候選框在原圖中對應(yīng)大小位置的文本檢測框??梢圆捎肂oundingboxregression將小框回歸為大框。具體回歸方式如下:VcVhVcVh其中,V=(Vc,Vh)是回歸預(yù)測的坐標,V=(Vc?,Vh?Anchor在進行回歸處理后,就能得到一組將文字區(qū)域框在若干個Anchor中的豎直方向條狀textproposal,如下圖3-4所示。在之后的操作處理中,只需要將這些小塊文本區(qū)域用文本線構(gòu)造算法連接成一個完整文本框,即完成文字檢測。圖3-4豎直條狀textproposal(6)最后經(jīng)過RPN[13]網(wǎng)絡(luò),獲得TextProposals。通過分類和回歸后,輸出三個數(shù)據(jù),其一,2kverticalcoordinates表示候選文本框高度到文本框縱向中點的坐標;其二,2kscores表示的是k個anchor的正負例情況,區(qū)分出當前anchor為文本還是背景,分別用0和1表示;其三,kside-refinement表示的是對候選文本框邊界位置的微調(diào),只調(diào)節(jié)位置,不調(diào)節(jié)高度。整個CTPN算法流程如3-5所示。圖3-5CTPN算法示意圖3.3構(gòu)造文本框為將廣告牌文字檢測結(jié)果有效傳入后續(xù)文字識別步驟,需要將產(chǎn)生的textproposal連接成一個完整的文本檢測框。本文構(gòu)造文本框線步驟是先將Anchor按照橫向坐標依次排列;然后逐個計算Anchorboxi的pair(boxj),組成pair(boxi,boxj);再利用pair建立一個連通圖,最后生成廣告牌圖像中對應(yīng)文字位置的文本檢測框。分別沿正向?qū)ふ液头聪驅(qū)ふ摇U蛳蚯白?,先沿水平正方向,按boxi搜索位置距離為50個像素點的范圍并且與標簽重合度大于0.7的候選Anchor;然后從候選Anchor中找出最大的boxj;反向?qū)ふ彝?。為每個Anchor求出正反方向的score值,最后對正向score和反向score進行比較,如果正向score大于反向score,則這是一個長序列;否則不是一個最長的連接,即一定存在另一更長連接包括此連接。由正反score值比較得出的位于長序列的Anchor,建立一個Connectgraph。如圖3-6所示。圖3-6構(gòu)造文本框示意圖遍歷此Connectgraph并連接就能確定出文本檢測框。4廣告牌文字的識別目前基于深度學習的光學字符識別技術(shù)有CRNN和加入attention機制的OCR[14]。他們在輸入層,隱含層有相同的操作處理。他們最大的不同點在最后的輸出層,即將最終生成文字進行翻譯出的網(wǎng)絡(luò)層,該層中需要將網(wǎng)絡(luò)中學習到的信息轉(zhuǎn)化為自然文本信息,該層中對齊方式不同,CRNN采取的方式是CTC為損失函數(shù)進行訓練,而attentionOCR是加入了注意力機制。本部分主要應(yīng)用更為廣泛的CRNN算法來完成文字識別。圖像預(yù)處圖像預(yù)處理CNN提取特CNN提取特征RNNRNN預(yù)測標簽分布轉(zhuǎn)化標簽序列轉(zhuǎn)化標簽序列圖4-1廣告牌文字識別流程圖4.1圖像預(yù)處理對經(jīng)過文字檢測后產(chǎn)生的廣告牌圖片文本框,首先將圖片高度放縮到32個像素點,長度隨原圖比例進行改變,再將圖像進行灰度化之后作為網(wǎng)絡(luò)的輸入。4.2CRNN進行文字識別CRNN(ConvolutionalRecurrentNeuralNetwork)不需要先將整行文本切割成單個字符,而是轉(zhuǎn)變?yōu)闀r序依賴的序列學習問題[15]。采用端到端的訓練方法識別不同長度的文本,其網(wǎng)絡(luò)結(jié)構(gòu)主要分為CNN層,RNN層,轉(zhuǎn)錄層,如圖4-2所示。圖4-2CRNN算法示意圖4.2.1CNN提取特征本文中用到的CNN網(wǎng)絡(luò)前兩個最大池化層的窗口大小為2×2,后兩個池化層的則改為1×2,即在池化層訓練過程中輸入圖像的變?yōu)樵瓉淼?/24,而寬度則只變?yōu)樵瓉淼?/22。采用這種方式的原因是輸入圖像大多數(shù)為橫向文本框,在之前步驟的處理中去除了背景部分,呈現(xiàn)出高小寬長的長條形式,為了更好的適應(yīng)其特點,更好的學習水平方向的信息,特征圖也配置為此類高小寬長的長條形式。這個設(shè)置在識別英文時更能體現(xiàn)優(yōu)越性。訓練時輸入圖像設(shè)置為灰度圖像,經(jīng)過CNN,所有圖像固定高度為由32轉(zhuǎn)化為1;寬度不固定,但需要統(tǒng)一為統(tǒng)一大小。例如輸入單通道,高度為32,寬度為160的數(shù)據(jù)到CNN中進行訓練,輸出結(jié)果為512個特征圖,每個特征圖的高度為1,寬度為40。經(jīng)過CNN得到的特征圖,需要map-to-sequence將數(shù)據(jù)格式進行調(diào)整,提取到符合RNN要求的特征向量序列,才能輸入RNN中訓練。調(diào)整過程中需要從featuremap上按列順序生成每一列特征向量,其中每列為512維特征,所以經(jīng)調(diào)整后產(chǎn)生的序列中特征向量位置就是所有的特征圖對應(yīng)列的位置像素的組合,成為一個完整的能夠輸入RNN中的序列。CNN生成特征圖的一列就是一個特征向量,映射到輸入圖像中的部分區(qū)域,他們與特征圖上相應(yīng)列順序一樣。4.2.2RNN預(yù)測標簽分布由于RNN存在梯度消失的不足,CRNN算法中采用的是LSTM網(wǎng)絡(luò)模型,能夠在長距離中獲得依賴信息。普通LSTM方法只能使用之前的數(shù)據(jù),但是在文字識別中需要聯(lián)系上下文信息,相互佐證依賴的。所以在廣告牌文字是識別過程中采用向前和向后組合的雙向LSTM,這種深層結(jié)構(gòu)的RNN,用以學習淺層抽象中無法獲得的信息,具有更好的識別能力。將CNN訓練后得到了40個特征長度為512的特征向量,輸入雙向LSTM,經(jīng)過40個步長,結(jié)合序列信息進行訓練后,預(yù)測出該特征向量對應(yīng)原圖中的矩形區(qū)域位置處的字符,得到所有字符的概率分布,作為CTC層的輸入。輸入雙向LSTM后進行訓練,每一個輸入的特征向量預(yù)測出該向量對應(yīng)原圖位置的字符。對每個特征向量預(yù)測完后,即預(yù)測出所有字符后,由每個輸入特征向量和預(yù)測字符的概率分布組成一個向量。由40個這樣的向量構(gòu)成后驗概率矩陣。再將后驗概率矩陣輸入CTC層。4.2.3轉(zhuǎn)化標簽序列在轉(zhuǎn)錄層進行的是,將雙向LSTM的預(yù)測結(jié)果轉(zhuǎn)換成標簽序列,即由單個預(yù)測結(jié)果求出可能性最大的排列方式,為標簽序列。端到端OCR識別無法處理不定長序列對齊,即當識別出各個可能字符不法按正確形式得到結(jié)果。RNN對序列信息進行分類時,總是會出現(xiàn)很多多余重復(fù)信息,比如在文本行中由于文字間隔距離不同,寬度等種種原因,一個字母被連續(xù)識別了兩次??梢圆扇∮谩?”符號表示空白blank,對預(yù)測結(jié)果字符出現(xiàn)重復(fù)時插入,例如經(jīng)過模型識別后輸出序列為“bbooo-ookk”,則最后壓縮冗余部分,得到最后識別結(jié)果為“book”,而不是錯誤壓縮為“bok”。這種機制在有blank字符作為分隔的情況下,連續(xù)相同字符就不進行合并,過程中先刪除結(jié)果中連續(xù)重復(fù)字符,再刪除所有“-”字符,對解決刪除重復(fù)字符的問題有很好的表現(xiàn)。此為解碼過程,相對的編碼過程則是由神經(jīng)網(wǎng)絡(luò)來完成。在端到端網(wǎng)絡(luò)中,采用的是CTC(ConnectionistTemporalClassification)的損失函數(shù),來解決這一問題。損失函數(shù)的計算需要依據(jù)后驗概率矩陣和對應(yīng)文本標簽,并應(yīng)用到網(wǎng)絡(luò)模型的訓練中,下圖4-3所示為損失函數(shù)的計算流程事例。圖4-3損失函數(shù)計算方法以上圖中最簡單的情況,時序為2的字符識別為例,有t方向的兩個時間步長(t0,t1)以及s方向的可能的預(yù)測字符結(jié)果。假如直接采用最大概率路徑,即“-”的路徑,預(yù)測出正確識別結(jié)果,為空的可能是0.36。然而字符“a”的個數(shù)和與空格的關(guān)系無法確定,識別出“a”而真實可能是“aa”,“a-“和“-a”,所以,輸出“a”的概率應(yīng)該為三種情況的概率相加為0.64,所以需要在神經(jīng)網(wǎng)絡(luò)中訓練得出概率值最大的情況。在一般的分類算法中,將概率的負最大似然函數(shù)作為CTC損失函數(shù),本文為簡化難度對似然函數(shù)取對數(shù)計算。采用上述方法反向傳播,神經(jīng)網(wǎng)絡(luò)中的參數(shù)不斷優(yōu)化,進而識別出像素位置相應(yīng)的字符。用概率值結(jié)合映射的方式不需要對原始的字符序列進行精確分割。在測試階段,需要將訓練完成的神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到文本圖像測試集。因為測試集中圖像情況未知,通過求解所有可能路徑,比較出最大概率的方法計算量過大。所以采用字符種類概率分布向量中最大概率的字符,作為該時間步的預(yù)測結(jié)果,然后拼接獲得一個序列路徑,此路徑就是最大概率路徑,最后結(jié)合上述序列合并機制獲得輸入圖像的文本預(yù)測結(jié)果所以在最后階段將神經(jīng)網(wǎng)絡(luò)學習到的序列特征信息轉(zhuǎn)化為文本字符,實現(xiàn)了對廣告牌文字的識別。5實驗結(jié)果5.1實驗環(huán)境及數(shù)據(jù)集實驗中的模型在PyTorch上實現(xiàn),開發(fā)語言使用Python版本3.7,操作系統(tǒng)為Windows10。文字檢測與文字識別要求有所不同,使用是數(shù)據(jù)集也不同。文字檢測包含8400張廣告牌圖片及其標簽,經(jīng)過清洗篩選后,選擇3000張圖片用于CTPN算法的訓練。文字識別用到的是3000張廣告牌文本框圖片。最后用300張廣告牌圖片作為測試集。5.2結(jié)果分析我們使用本文文字檢測識別模型,在廣告牌數(shù)據(jù)集上開展了充分的實驗。實驗結(jié)果表明,該模型能夠有效完成目標任務(wù),但仍存在一系列問題,以下選擇展示一些例子,進一步分析模型:(1)由于CTPN算法是針對水平方向的文字檢測算法,圖片文字不是水平方向時,檢測效果較差。如圖5-1中“亦有致”縱向排列,無法檢測出文字區(qū)域。圖5-1非水平文字無法識別例圖(2)圖片文字不是印刷體,如書法字體時,無法正確識別。如圖5-2中書法字體的“雀春”,被錯誤識別為“徐煮”。圖5-2非印刷體無法識別例圖(3)圖片文字分辨率低,被識別為背景,不能檢測識別出正確結(jié)果。如圖5-3中字體較大,分辨率高的文字“金氏眼鏡”、“創(chuàng)始于1989”能被識別,但下方較小的文字“城建店”、“金氏眼鏡”無法識別。圖5-3分辨率低無法識別例圖5.3界面化為實現(xiàn)用戶友好的目的,采用PyQt對模型進行界面化。先用QtDesigner畫出界面樣式后,后在Python3.6環(huán)境下與模型測試進行連接??赏ㄟ^界面輸入廣告牌圖片,顯示圖片路徑,點擊“檢測文字”控件,輸出用邊界框框出文字區(qū)域的廣告牌圖片及運行時間,點擊“識別文字”控件,輸出識別的文字及運行時間。用戶界面如圖5-4所示:圖5-4交互界面6總結(jié)與展望6.1總結(jié)本文自然場景下廣告牌文字檢測與識別任務(wù),采用了基于深度學習的方法進行研究。面對傳統(tǒng)光學字符識別不能很好解決自然場景圖片的問題,深度學習方法的引入,帶來的新的活力,使這一問題效果有所提高,但仍須繼續(xù)改進。為了解決上述問題,采用了CTPN進行文字檢測,CRNN進行文字識別的方法,并在建立的數(shù)據(jù)集上開展了相關(guān)實驗,下面對實驗進行總結(jié):(1)CTPN中在VGG網(wǎng)絡(luò)基礎(chǔ)上加入LSTM使訓練過程中序列前后信息得到很好的利用,對水平方向文字檢測效果較好。但面對文字不規(guī)則排布情況時,如傾斜角度,旋轉(zhuǎn)分布時,依然效果較差。另一方面,采用雙向LSTM結(jié)合上下文信息,學到的文字序列特征更多,提高了檢測效果,但在訓練中存在梯度爆炸的可能。(2)CRNN算法進行文本識別時,先采用CNN聯(lián)合BLSTM學習得到特征的概率分布,最后在轉(zhuǎn)錄層使用CTC將輸入輸出文本對齊。訓練階段CRNN將圖像縮小放大為統(tǒng)一大小;而測試階段,又進行擴展拉伸,轉(zhuǎn)換過程中的影響使得識別度下降。此外CRNN縮放中輸入圖像長寬比例不變,但因為LSTM的時序長度取決與卷積特征圖的尺寸,圖像高度必須全部轉(zhuǎn)化為32個像素。6.2展望經(jīng)過進一步的數(shù)據(jù)和實驗分析,接下來還可以從以下方面進一步開展研究。(1)對待檢測圖像嘗試進行一定旋轉(zhuǎn),增加文本行接近水平的可能,使用CTPN網(wǎng)絡(luò)對旋轉(zhuǎn)后的圖片進行檢測,由多個可能的候選框計算出概率最大的作為文本框。多個概率較高的最佳文本框用多矩陣框標記,或以曲線文本框的形式標記旋轉(zhuǎn)樣式的文字。(2)對CRNN進行改進,以CRNN為基礎(chǔ)模型,可以在此基礎(chǔ)上添加對抗網(wǎng)絡(luò)分支,并加入傳統(tǒng)文本特征與深度學習的特征一起,使遮擋的部分文字也能得到識別。

參考文獻溫佳林.基于深度學習的場景文字檢測與識別[D].電子科技大學,2020.LiuW,AnguelovD,Erh

溫馨提示

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

最新文檔

評論

0/150

提交評論