牛作東 李捍東
(貴州大學電氣工程學院 貴州 貴陽 550025)
人工智能的興起促進著當前社會生產(chǎn)活動中各項產(chǎn)業(yè)的革新與發(fā)展,以機器學習、深度學習和計算機視覺為代表的人工智能技術(shù)已經(jīng)得到了很大程度的推廣和應(yīng)用。比如:無人駕駛中的高級駕駛輔助系統(tǒng)通過計算機視覺來實現(xiàn)對于動態(tài)物體的識別、偵測與追蹤;以深度學習加強神經(jīng)網(wǎng)絡(luò)訓練的阿爾法圍棋已經(jīng)被圍棋界公認為超過了人類職業(yè)圍棋頂尖水平。此外,深度學習在自然語言處理、語音識別、人臉識別、物體檢測等諸多方面都有了廣泛的應(yīng)用,已經(jīng)成為未來科技進步和發(fā)展的一個熱點方向。
自然場景下的物體檢測問題吸引世界各地的專家學者的關(guān)注和研究,傳統(tǒng)的目標檢測算法主要是基于手工特征的選取和滑動窗口的方式來檢測目標物體,其中最具代表性的算法主要包括VJ、HOG和DPM等。由于手工設(shè)計目標特征,因此帶來了很多的缺點,比如在特定條件下存在著特征值不具有代表性和魯棒性等問題,另外通過滑動窗口的方式來提取目標框進而進行判斷的過程非復雜,算法量大,制約著系統(tǒng)的運行效率。DPM算法提出之后,取得前所未有的目標檢測效果,同時也代表著傳統(tǒng)的目標檢測方法已經(jīng)遇到了無法突破的瓶頸。之后Girshick等[1]提出了R-CNN模型,開啟了神經(jīng)網(wǎng)絡(luò)應(yīng)用于目標檢測的先河。隨著2012年Krizhevsky等[2]使用擴展了深度的CNN在ImageNet大規(guī)模視覺識別挑戰(zhàn)競賽(ImageNet Large Scale Visual Recognition Challenge, LSVRC)中取得了當時最佳成績的分類效果,使得CNN越來越受研究者們的重視。隨后,基于CNN模型的改進的算法Fast R-CNN[3]、Faster R-CNN[4]、SSD[5]、YOLO[6]、Retina-Net以及Pyramid Networks等又進一步推動了基于深度學習的神經(jīng)網(wǎng)絡(luò)模型在自然場景下目標檢測領(lǐng)域的快速發(fā)展。相對于傳統(tǒng)的目標檢測方法,深度學習目標檢測方法通過深度神經(jīng)網(wǎng)絡(luò)來學習到的目標特征更魯棒,采用Proposal或者直接回歸的方式來獲得候選目標的過程更加高效。在完成目標分類的過程中同樣使用深度網(wǎng)絡(luò)實現(xiàn)了端到端的方式直接訓練模型,從而使得深度學習目標檢測方法準確度高實時性好。通用目標檢測算法的基本流程如圖1所示。
圖1 目標檢測算法基本流程圖
基于深度學習的目標檢測算法在用于通用物體檢測方面取得了很好的效果,但是面對自然場景下的文本信息的檢測任務(wù)時卻存在著許多問題,主要原因有:(1) 文本長寬比不定并且相關(guān)較小,與常規(guī)物體檢測存在著差異,這個差異使得在選取候選框的長寬比時要做相應(yīng)的處理。(2) 自然場景下的文本普遍存在著水平、傾斜、彎曲等各種不定的形狀和方向,這些差異性較豐富的文體狀態(tài)導致了采用通用的目標檢測算法很難沿著某個方向或者傾斜角度去完成文本檢測的任務(wù)。(3) 場景下的文本很容易受到其中某些物體的局部圖像影像影響其文本特征信息。(4) 自然場景下的文本內(nèi)容存在許多藝術(shù)字、手寫體等。(5) 自然場景下的文本容易受到自然環(huán)境的干擾,比如背景、光照影響等。針對上述問題,在設(shè)計文本檢測算法的時候需要對常規(guī)物體檢測方法進行改進的方向主要包括特征提取算法、區(qū)域建議網(wǎng)絡(luò)(RPN)對候選區(qū)域進行推薦、多任務(wù)網(wǎng)絡(luò)訓練、損失函數(shù)Loss改進、非極大值抑制(NMS)、半監(jiān)督學習等。因此,自然圖像中的文本檢測仍然是一項非常具有挑戰(zhàn)性的研究工作,加上受到許多現(xiàn)實應(yīng)用實例的驅(qū)動影響,比如地理位置和圖像檢索[7]、照片OCR[8]等,此方面的研究工作也具有現(xiàn)實意義。
自然場景下的文本檢測方法通常由兩個主要部分組成,分別是文本檢測和文本識別。文本檢測主要以字邊界框的形式定位圖像中的文本。文本識別對裁剪后的單詞或者文字圖像進行編碼,生成機器可解釋的字符序列。本文的研究重點主要放在了文本的檢測上。本文研究的目標檢測算法中,可以將文本檢測器分為基于原始檢測目標的分類策略和基于目標邊界框形狀的分類策略,每個檢測策略又有各自的特點和不同類別的算法。
基于原始檢測目標的分類策略主要有:(1) 基于角色的檢測算法。其過程為:首先檢測單個字符或文本的一部分;然后將其分組成一個單詞,以Neumann[9]為代表的研究提出通過對極值區(qū)域進行分類來定位字符;最后通過窮舉搜索方法對檢測到的字符進行分組。(2) 基于字的檢測方法。它是與一般物體檢測類似的方式直接提取文本,Gomez[10]提出了一個基于R-CNN的框架,其中候選詞首先由類別不可知的提議生成器生成,隨后是隨機森林分類器,再采用用于邊界框回歸的卷積神經(jīng)網(wǎng)絡(luò)來細化邊界框。(3) 基于文本行的檢測算法。該方法首先檢測文本行,然后再分逐個分成單詞,Long[11]提出利用文本的對稱特征來檢測文本行,然后通過使用全卷積神經(jīng)網(wǎng)絡(luò)來定位文本行。
基于目標邊界框形狀的分類策略的檢測方法可以分為兩類。第一類為水平或接近水平的檢測方法,這類方法專注于檢測圖像中的水平或接近水平的文本。例如:Yi[12]提出一個三階段框架,它由邊界聚類、筆劃分割和字符串片段分類組成;Tian等[13]提出的方法檢測幾乎水平的文本部分,然后將它們鏈接在一起開成單候選區(qū)域;Cao等[14]嘗試使用去模糊技術(shù)來獲得更強大的檢測結(jié)果。第二類為多方向的檢測方法。與水平或接近水平檢測方法相比,多方向的文本檢測更加穩(wěn)健,因為自然場景下的文本可以在圖像中處于任意方向。這類的主要研究方法有利用檢測多方向文本的旋轉(zhuǎn)不變特征,首先在特征計算之前估計檢測目標的中心、比例、方向信息,然后根據(jù)尺寸變化、顏色自相似性和結(jié)構(gòu)自相似性進行鏈級特征。此外還有基于紋理的紋理分類器用于區(qū)分文本和非文本候選區(qū)[17]。文獻[18]提出了四邊形滑動窗口、蒙特卡羅方法和平滑Ln損失來檢測定向文本,這在檢測十分復雜的場景時是有效的。
本文重點研究了Zhou等[19]提出的EAST(An Efcient and Accurate Scene Text Detector)算法,經(jīng)驗證,該算法在準確性和效率總體方面明顯優(yōu)于其他的方法。在EAST算法中提出了一種快速、準確的場景文本檢測流水線,該流水線只有兩個階段。管道采用完全卷積網(wǎng)絡(luò)(FCN)模型,直接生成字或文本行級別的預測,不包括冗余和緩慢的中間步驟。生成的文本預測,可以是旋轉(zhuǎn)的矩形或四邊形,發(fā)送到非最大抑制以產(chǎn)生最終結(jié)果,算法總體結(jié)構(gòu)如圖2所示。
圖2 EAST算法結(jié)構(gòu)圖
(1) EAST算法管道和網(wǎng)絡(luò)設(shè)計 從EAST算法結(jié)構(gòu)圖可以看出該算法遵循Densebox[20]的總體設(shè)計,將圖像輸入到FCN中,生成多個像素級文本分數(shù)圖和幾何圖形通道。其中一個預測通道是一個分數(shù)圖,其像素值在[0,1]范圍內(nèi)。其余通道表示從每個像素的視圖中包含單詞的幾何圖形。分數(shù)代表在同一位置預測的幾何圖形的可信度。
在進行網(wǎng)絡(luò)設(shè)計時,為處理文本字體大小以及各個形態(tài)的特征差異,該算法采用了U形[21]的思想,在保持上采樣分支較小的同時,逐漸合并特征圖,最終形成了一個既能利用不同層次特性又能保持較小計算成本的網(wǎng)絡(luò)。
(2) EAST算法幾何圖形的生成 為不失一般性,該算法只考慮了四邊形的情況,最終生成的幾何圖是RBox或者Quad之一。對于文本區(qū)域標注為四元樣式的數(shù)據(jù)集,首先生成一個旋轉(zhuǎn)矩形,該矩形覆蓋區(qū)域最小。然后,對于每個具有正分數(shù)的像素,計算其到文本框的4個邊界的距離,并將它們放到RBOX地面真值的4個通道中。對于四邊形地真值,8通道幾何圖中每個帶正分數(shù)的像素的值是其從四邊形的4個頂點的坐標偏移,進而確定文本區(qū)域。
視覺注意已經(jīng)在各種結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)對于目標檢測和預測任務(wù)中有所應(yīng)用,比如圖像或視頻字幕[20-21]和視覺問題回答[24-26]。它的可行性主要歸功于合理的假設(shè),即人類視覺不會立即整體處理整個圖像。相反,人們只在需要的時間和地點專注于整個視覺空間的選擇性部分[27]。具體而言,注意力不是將圖像編碼成靜態(tài)矢量,而是允許圖像特征從手邊的句子上下文演化,從而導致對雜亂圖像的更豐富和更長的描述。通過這種方式,視覺注意力可以被視為一種動態(tài)特征提取機制,它隨著時間的推移結(jié)合了上下文定位。
當在描述圖像中檢測目標的特征和信息的圖像處理任務(wù)中加入注意力機制,注意力模塊需要處理的特征信息包含明確的序列項a={a1,a2,a3,…,aL},ai∈RD,其中L代表特征向量的個數(shù),D代表的是空間維度。因此所采用的注意力機制需要計算出當前時刻t每個特征向量ai的權(quán)重αt,i,公式如下:
eti=fatt(ai,ht-1)
(1)
(2)
式中:fatt()代表多層感知機;eti代表中間變量;ht-1代表的是上個時刻的隱含狀態(tài);k代表特征向量的下標。計算出權(quán)重后,模型就可以對輸入的序列a進行篩選,得到篩選后的序列項為:
(3)
最終由函數(shù)μ來決定該注意機制是硬注意力還是軟注意力[28]。
在圖像檢測和目標識別的深度學習領(lǐng)域,文獻[30]在目標檢測框架中引入與子區(qū)域特征和寬高比特性相關(guān)的注意力特征庫,并生成注意力特征圖對原始的ROI池化特征進行優(yōu)化,模型的檢測精度和檢測速度有明顯提升。文獻[28]設(shè)計了一種的引入注意力機制的AttenGAN模型,該模型包括一個生成器和一個判別器,生成器根據(jù)行人過去的軌跡概率性地對未來進行多種可能性預測。文獻[31]介紹了一種新的卷積神經(jīng)網(wǎng)絡(luò),稱SCA-CNN,它在CNN中結(jié)合了空間注意力和通道方向注意力機制,并取得了良好的效果。
針對EAST算法文本檢測器可處理的最大文本實例大小與網(wǎng)絡(luò)的接收字段成比例,其限制了網(wǎng)絡(luò)預測更長文本區(qū)域的能力。為了使文本檢測器PVANet網(wǎng)絡(luò)保證在提取精確的文本特征和位置特征的基礎(chǔ)上,擴大目標檢測視野,本文在EAST算法的基礎(chǔ)上引入了注意力機制,構(gòu)成Attention-EAST算法,該算法的核心框架如圖3所示。
圖3 Attention-EAST算法結(jié)構(gòu)圖
在利用PVANet網(wǎng)絡(luò)進行下采樣的過程中,通過中間的文本特征信息的空間關(guān)系生成空間注意力模塊,其主要功能是用來捕捉二維空間中對于目標區(qū)判定的重要性信息,每次卷積生成的特征信息為I∈R1×H×W,并經(jīng)過sigmod函數(shù)激活,其表達式為:
WS(I)=σf7×7Pool(I)
(4)
式中:f7×7為卷積操作,卷積核為7×7的卷積層。在上采樣的過程中通過unpool池化的方式提取特征用于對目標位特征的逼近生成通道注意力模塊,然后經(jīng)過共享網(wǎng)絡(luò)MLP進行調(diào)整,其表達式為:
WC(I′)=σMLP(unpool(I))=σW1W0I′
(5)
式中:σ為sigmod激活函數(shù);W0∈RC/r×C和W1∈RC×C/r分別為MLP的權(quán)重。最后在特征融合的過程中,將通道注意力權(quán)重和空間注意力權(quán)重構(gòu)成整個軟件分支注意力模型,其過程可表示為:
I′=(WS(I)+1)⊙I
(6)
I″=(WC(I′)+1)⊙I′
(7)
式中:⊙為對應(yīng)矩陣元素相乘,由于每個模塊最后都需要使用sigmod函數(shù)來激活,使注意力通道每個元素值在[0,1]之間,達到注意力模塊強化有用圖像信息和抑制無用信息的效果。
損失函數(shù)可表示為:
L=Ls+λgLg
(8)
式中:Ls和Lg分別表示分數(shù)圖和幾何圖形的損失,而λg表示兩個損失之間的重要性。本文將λg設(shè)為1。為了簡化訓練過程,本文算法借鑒了文獻[32]中引入的類平衡交叉熵:
(9)
(10)
為了使大文本區(qū)域和小文本區(qū)域生成精確的文本幾何預測,保持回歸損失尺度不變,旋轉(zhuǎn)矩形框RBox回歸部分采用IoU損失函數(shù),因為它對不同尺度的對象是固定,其表達式為:
(11)
(12)
式中:d1、d2、d3和d4分別表示像素到其對應(yīng)矩形的上、右、下和左邊界的距離。聯(lián)合區(qū)由以下公式給出:
(13)
由此可以輕松計算交叉或者聯(lián)合區(qū)域。接下來,旋轉(zhuǎn)角損失計算如下:
(14)
Lg=LR+λθLθ
(15)
在實驗過程中本文將λθ設(shè)置成10。由此整個算法的損失函數(shù)搭建完畢。
對于本文提出的模型按照EAST算法的訓練方式采用Adam[21]優(yōu)化器對網(wǎng)絡(luò)進行端到端的訓練。為了加快學習速度,將原始圖像512×512的訓練樣本每次統(tǒng)一打包成24個進行批處理。Adam的學習率從1e-3開始,每27 300個小批量下降到十分之一,停在1e-5,對網(wǎng)絡(luò)進行訓練,直到性能改善趨于平穩(wěn)。
本次實驗是在Ubuntu18.04 LTS操作系統(tǒng)上進行,開發(fā)語言為Python 3.6,集成開發(fā)環(huán)境為Pycharm,深度學習框架是GPU版本的TensorFlow。硬件配置CPU為四核八線程的 i7-6700k,其主頻4 GHz,內(nèi)存為32 GB,GPU 為 NVIDIA GTX 1080T,顯存11 GB。
本次實驗采用的數(shù)據(jù)集為ICDAR挑戰(zhàn)賽所用的數(shù)據(jù)集,該數(shù)據(jù)集也是當文本目標檢測算法中比較流行的數(shù)據(jù)集,共有1 500張圖片,其中1 000張圖片用于模型訓練,其余圖片用于測試集。其文本區(qū)域由四邊形的四個頂點進行注釋,對應(yīng)于目標文本中的四邊幾何圖形。這些圖片均由手機或相機隨機拍攝,因此,場景中的文本信息是任意方向的,而且可能受到自然環(huán)境的影響,這些特征有利于對文本檢測算法的估計檢驗。
本文引入注意力機制的Attention-EAST算法與EAST算法在處理自然場景下的長文本的檢測結(jié)果對比如圖4所示。
(a) EAST算法長文本檢測效果圖
(b) 本文算法長文本檢測效果圖圖4 長文本檢測對比圖
可以看出,通過加入注意力機制對于提取文本和方位的特征信息的增強,提高了文本檢測視野,有效改善了對于長文本的檢測效果。同時,本文使用召回率(Recall)、準確率(Precision)和加權(quán)調(diào)和平均值F-measured三個指標來評價本文算法在ICDAR數(shù)據(jù)集上的訓練效果。并選擇了當前文本檢測領(lǐng)域比較有代表性的算法進行對比,包括以R-CNN為框架的文獻[10],以SSD為框架的文獻[15]和以Faster R-CNN為框架的文獻[16],實驗結(jié)果如表1所示。實驗結(jié)果表明,本文提出的引入注意力機制的方法相比原EAST算法在文本檢測性能指標均有所提升,并且相對優(yōu)于其他主流的文本檢測算法。
表1 各文本檢測算法實驗結(jié)果對比數(shù)據(jù)
為分析引入注意力模塊后在檢測效率上對于原EAST算法的影響,在本文的實驗環(huán)境下采用每秒幀率(Frame Per Second,F(xiàn)PS)這一指標來評價本文算法和原EAST算法的檢測效率,表示每秒處理的圖片數(shù)量,將測試集500張檢測圖片隨機分成5份分別進行測試。實驗結(jié)果如表2所示,可以看出加注入注意力模塊后,并沒有損失原算法的檢測效率。
表2 兩種算法文本檢測效率對比數(shù)據(jù)(FPS)
本文研究了當前計算機視覺領(lǐng)域中文本檢測的算法,其中針對EAST算法在對于文本方向特征提取時視野受限的問題。通過在主干網(wǎng)絡(luò)PVANet中引入注意力機制,提出一種Attention-EAST算法,使得訓練模型在提取文本目標特征時更加關(guān)注有用信息和抑制無用信息。實驗證明,該方法有效提升了EAST算法檢測長文本的能力,在沒有損失檢測效率的同時提升了檢測精度。本文研究通過引入注意力機制的方法可為自然環(huán)境下的文本檢測研究領(lǐng)域提供一定的參考。