張興全,葉西寧
(華東理工大學 信息科學與工程學院,上海 200237)
基于傳統(tǒng)方法的文本檢測研究已經(jīng)較為成熟,特別是對圖像中任意方向文本[1-4]。但由于其特征提取是人工設計的,對于背景復雜等高噪聲的輸入圖像會產生大量誤檢,魯棒性差[5]。
深度學習方法可以通過輸入數(shù)據(jù)自動提取到強魯棒性和強泛化性特征。Huang等[6]率先將卷積神經(jīng)網(wǎng)絡(convolution neural network,CNN)和傳統(tǒng)方法MSER[7]相結合,提高了檢測精度。隨著對深度學習的研究深入,基于CNN的目標檢測算法如Fast-RCNN[8]、Faster-RCNN[9]、CTPN[10]被相繼提出,相比于傳統(tǒng)方法有更高的檢測精度和魯棒性。其中以CTPN算法的綜合檢測效果最好。
CTPN算法將文本行拆分許多個子候選框(anchor)后進行預測,并用文本連接算法合并成文本行輸出,解決了圖像中文本的長寬比經(jīng)常劇烈變化的問題。但CTPN算法僅能檢測水平方向或近似水平方向(傾斜角度小于10°)上的文本區(qū)域,且對于小尺度文本檢測效果較差。在現(xiàn)實應用場景中,圖像中的文本常常發(fā)生傾斜,文本的尺度變化劇烈等現(xiàn)象。因此,本文借鑒CTPN的網(wǎng)絡結構,通過特征融合解決小尺度文本檢測問題,加入旋轉角度預測網(wǎng)絡解決文本傾斜扭曲問題,提出一種可適用于任意方向、端到端、多尺度文本檢測算法,即CTPN-R(rotation variables-based connectionist text proposal network)。
算法的輸入圖片為RGB三通道彩色圖像,經(jīng)過CNN進行特征提取、特征融合和預測后,CTPN-R網(wǎng)絡輸出許多置信度大于某閾值(假設閾值為0.8)的anchor的坐標信息,如圖1(a)中所示,每一個anchor都是一個帶旋轉方向的矩形。利用非極大值抑制算法(non-maximum suppression,NMS)將重疊率高的anchor剔除,剔除后的結果如圖1(b)所示,最后根據(jù)邊緣細化層輸出和文本連接算法,將得到的一系列anchor合并成文本框,最終得到旋轉矩形框的坐標信息。
CTPN-R的CNN框架的設計借鑒CTPN[10]部分網(wǎng)絡架構以及FPN[11]部分網(wǎng)絡架構。算法的具體網(wǎng)絡框架如圖2 所示。CTPN-R網(wǎng)絡框架輸入RGB圖像,用VGG-16[12]網(wǎng)絡進行特征提取。VGG-16網(wǎng)絡是目標檢測中常用于作特征提取層的網(wǎng)絡架構之一。相對于其它常用的特征提取層如Res-50,它有很多優(yōu)勢如網(wǎng)絡訓練參數(shù)少、網(wǎng)絡深度不深、對硬件要求不高等。VGG-16網(wǎng)絡的具體參數(shù)設計可在文獻[12]中查詢到。VGG-16網(wǎng)絡本身是一個分類網(wǎng)絡,而CTPN-R網(wǎng)絡僅需要VGG-16作為特征提取層輸出特征圖(feature map),作為特征融合層的輸入,因此不能直接使用VGG-16網(wǎng)絡結構,需要進一步修改。
圖1 CTPN-R算法基于旋轉anchor的檢測過程
圖2 CTPN-R網(wǎng)絡框架
目前大部分基于深度學習的文本檢測算法一般只采用網(wǎng)絡特征提取層的最后一層輸出作為特征圖進行預測[8-10]。CNN的特征提取是一個自下而上的過程,隨著網(wǎng)絡變深,網(wǎng)絡提取的語義信息會越來越強,這一過程會使得提取的語義變得高級,但同時也會喪失掉許多低級語義信息。而文本檢測需要檢測小尺度文本,因此需要網(wǎng)絡能提取到低級和高級特征用于預測。
有一種做法是采用多尺度特征圖進行檢測,僅從網(wǎng)絡特征提取層中抽取不同尺度的特征圖進行預測,且不會增加網(wǎng)絡的計算成本[13,14]。然而,由于沒有自上而下和橫向連接過程,這種做法所提取的不同尺度特征層是分開進行計算的,不能很好地將高級特征與低級特征相融合。為了解決這個問題,CTPN-R采用最近鄰上采樣的特征圖融合方法,將高層特征與低層特征融合后,構建新的特征金字塔作為特征圖輸入到預測層中。
對于高層特征圖(如Conv7)進行2×2的反卷積操作,完成上采樣過程,使得高層特征圖的尺度大小與低層特征圖一致。反卷積層輸入與輸出的特征圖尺度大小計算公式為[15]
試驗所用方鋼管為Q235直焊縫鋼管,□120×5.52、□150×5.52兩種規(guī)格。再生混凝土配制原材料有海螺牌42.5R普通硅酸鹽水泥、天然河砂、自來水、天然粗骨料和再生粗骨料。其中天然粗骨料為粒徑5~20mm的連續(xù)級配碎石,再生粗骨料來源為實驗室廢棄混凝土試塊,經(jīng)二次破碎后人工篩分為5~20mm的連續(xù)粒級。所有再生混凝土配合比相同,水泥∶水∶砂∶粗骨料=1∶0.38∶1.11∶2.06(水泥用量540kg/m3),再生粗骨料取代率改變時相應地調整再生和天然粗骨料的比例,總的粗骨料重量保持不變。預留鋼管、再生混凝土的標準試樣與試件同條件養(yǎng)護和高溫試驗,實測力學性能指標如表2、表3所示。
o′=s(i′-1)+k-2p
(1)
其中,o′、i′分別代表輸出和輸入特征圖的大小,k、s、p分別代表卷積核的大小、步長和填充邊距。高層特征圖在進行反卷積之后特征圖為矩陣A,低層特征圖經(jīng)過1×1卷積后為矩陣B,兩個矩陣的大小一致。為了消除數(shù)據(jù)之間的量綱關系,分別對兩個特征層中元素進行標準化(batch normalization),避免反向傳播更新通過梯度優(yōu)化權重時產生數(shù)值問題。由于點積計算有更好的精度,所以CTPN-R算法采用元素點積進行特征圖結合。輸出通道i的特征圖Ti的計算公式如下
(2)
對已融合的特征圖,需要用3×3卷積核進行卷積操作,從而消除上采樣造成的混疊效應,最終得到特征融合后的特征圖,將特征圖輸入到預測層中。
本文參考了CTPN[10]部分框架。在本文中,用5個變量 (x,y,w,h,θ) 表示矩形框的坐標信息,x、y、w、h和θ分別代表矩形框的中心點坐標,寬度、高度以及旋轉角度。在預測層中,對于輸入通道數(shù)N的 (W×H×N) 特征圖,每一行作為一個序列輸入到256維的BiLSTM(bi-directional long short term memory network)中,輸出為 (W×256)。 接著將BiLSTM層的輸出再輸入到512維的全連接層中,輸出k個anchor的2k維預測分數(shù)向量、4k維坐標偏移向量 (Δx,Δy,Δh,Δθ) 以及2k維邊緣調整偏移向量Δo。k的計算公式為
k=Hi×Wi×angel_scale
(3)
其中,Hi、Wi分別代表輸入第i張融合特征圖的高度、寬度。angel_scale代表anchor默認的方向個數(shù),angel_scale=6。 由于CTPN-R采用的是基于特征融合的特征金字塔作為預測層輸入,所以每個特征圖的默認anchor尺度不同于僅采用最后一層作為預測層輸入的情況,此處的anchor的默認長寬比并不需要設定,而是由特征圖的感受野決定。
在不同尺度下,特征圖經(jīng)過預測層輸出anchor在真實圖像中的坐標位置后,需要進行非極大值抑制。首先將置信度大于設定閾值ψ=0.7的anchor組成集合,然后按置信度的值從高到低進行排序,然后將第一個文本框作為當前文本框,當重疊率IoU大于某閾值ρ時,則剔除該文本框,若不是最后一個,則取下一個文本框作為當前文本框,然后繼續(xù)計算重疊率,直到算法結束。
(4)
(5)
最終得到預測文本框的5個坐標參數(shù)b=(xb,yb,wb,hb,θb)。
(6)
其中,(xa(i,j),ya(i,j)) 代表默認anchor在輸入圖像上的中心點坐標。 (wa(i,j),ha(i,j),θa(i,j)) 分別表示anchor在輸入圖像上的寬度、高度和旋轉角度,θa(i,j)默認為6個方向,用弧度制表示。旋轉角度以順時針為正。如圖3所示,β參數(shù)對算法的總體性能影響不大,F(xiàn)-measure是文本檢測中常用的一個綜合指標。在β={0.85,…,1.25} 之間時,F(xiàn)-measure沒有較大的起伏,說明CTPN-R算法對于人工定義的參數(shù)并不敏感。在β=1.2時取到最大值,而β=1.3時性能有小幅度地降低,這是因為anchor過大時,會導致同一文本行的anchor之間重疊面積過大,相鄰anchor會被誤認為屬于同一位置的anchor,從而被非極大值抑制算法刪除掉。而在β=0.8時,性能有較大的降低。這是因為相鄰anchor之間過于分散,在文本連接算法中對同一文本行的相鄰anchor的距離設定閾值為1.2wa,而wa默認設定過小,則會導致原本是相鄰anchor誤認為是非相鄰anchor。本文在不改變文本連接算法的閾值下,取β=1.2。
圖3 β參數(shù)對F-measure的影響
(7)
網(wǎng)絡學習需要基于旋轉變量的anchor的采樣策略。由于本文將文本框拆分成一系列anchor進行檢測,所以一般目標檢測的IoU計算方法(式(8))不適合CTPN-R算法,為此采用一種新的IoU計算方法(式(9))
(8)
(9)
其余的作為非正樣本和非負樣本的區(qū)域,在訓練過程中不作為回歸樣本。
(10)
通過上述方法,圖像中的文本框被分成一系列寬度為固定值的anchor。如圖5(a)所示,ground-truth在旋轉后與anchor重疊區(qū)域的寬度小于固定值,或者出現(xiàn)如圖5(b)所示,ground-truth被anchor分割后,左右兩邊出現(xiàn)的邊界區(qū)域(中ground-truth的最左邊區(qū)域)。這兩種情況下的邊界區(qū)域正樣本選取由2.1中條件④決定,選擇的正樣本不僅作為坐標偏差層的正樣本,也作為邊緣細化層的正樣本進行回歸。邊緣細化參數(shù)化元組o=(ox,oy) 的計算公式為
(11)
其中,(xside,yside) 是經(jīng)過文本框中心點與w平行線段的邊界點預測坐標,(xa,ya) 是anchor的中心點坐標。 (x′side,y′side) 是邊界點的實際坐標。
圖4 計算正樣本與ground-truth的坐標偏差值步驟
圖5 邊緣細化層正樣本選取條件
對于anchor的損失函數(shù)采用多任務損失函數(shù)形式,引入了3種損失函數(shù),并最小化總體目標函數(shù)L(s,v,o),計算公式為
(12)
其中,s是anchor作為文本的預測概率,s′={-1,0,1} 是真實值,-1代表負樣本,0代表無關樣本,1代表正樣本。v是anchor的尺度不變參數(shù)化元組,里面包含4個變量 (vx,vy,vh,vθ)。 Lcls(·) 是softmax損失函數(shù),用于計算文本/非文本的分類損失。 Lreg(·) 是smoothL1損失函數(shù),函數(shù)具體形式如式(13)所示。o是邊緣細化參數(shù)化元組,o=(ox,oy)。Ns、Nv、No是標準化參數(shù),λ1、λ2是損失權重,用來權衡各任務,通常設置為1.0或者2.0
(13)
CTPN-R在兩個流行的文本檢測數(shù)據(jù)集上對算法評估—ICDAR2013和MSRA-TD500。MSRA-TD500是一個包含傾斜角度的中英文本框的數(shù)據(jù)集,共300張訓練圖像和200張測試圖像。數(shù)據(jù)集中的標注是以文本行的坐標和傾斜角度組成,可以評估多方向文本檢測算法的性能。ICDAR2013 是一個所有文本實例都是用水平對齊的數(shù)據(jù)集,包含229個訓練圖像和233個自然圖像進行測試,通過對特定方向如水平方向的檢測,評估本文改進之后的檢測性能,方便了解CTPN-R對特定方向文本檢測的適應性。
文本使用Adam算法訓練并更新網(wǎng)絡權重參數(shù),動量設置為0.9,權值衰減系數(shù)為0.0005,最大迭代次數(shù)為50 000。學習率初始值為10-5,迭代到30 000次后,學習率調整到10-6。整個實驗是在TensorFlow的GPU版本平臺下運行,輸入圖片尺寸均調整到600*1000。配置為 Intel i5 CPU,顯卡為Nvidia GTX1070。
如圖6所示,A、B、C分別代表本文加入和改進的3個策略:特征融合、邊緣細化和帶旋轉變量的循環(huán)文本預測網(wǎng)絡。D為對圖像做邊界填充。本文提出的算法CTPN-R在沒有添加上述3個策略時,僅加入旋轉變量進行訓練,在MSRA-TD500數(shù)據(jù)集上評估效果是精確率(P值)為68.2%,召回率(R值)為57%,F(xiàn)-measure為62.1%,優(yōu)于直接使用CTPN進行預測的P、R和F為40.2%、38.9%和39.5%。單獨添加方法A,F(xiàn)-measure提高了8.9%,主要表現(xiàn)在R值的增加上面,這主要是因為 CTPN-R 在小尺度文本檢測上提高了召回率。再加入策略B使得網(wǎng)絡在F-measure上提高到了72.9%,增長了1.9%。結果進一步表明了CTPN-R優(yōu)化后的邊緣細化層在任意方向文本檢測中的有效性,也進一步驗證本文通過優(yōu)化邊緣細化層輸出,使其應用在任意方向文本檢測這一策略是正確的。如圖7所示,加入邊緣細化層后,算法檢測的文本框位置更為精確。通過加入3個策略之后,網(wǎng)絡整體性能得到了較大的提升,P值提高了12.8%,R值提高了17.2%,F(xiàn)-measure提高了15.4%。而加入了策略D之后,P值雖然相比之前有1.2%的提升,但是R值也下降了1%,主要是表現(xiàn)在邊緣處的誤檢測上。上述結果驗證了CTPN-R在能準確預測出圖像中任意方向文本。在下述與其它算法比較中,本文將加入策略A、B、C作為最佳結果進行比較。
圖6 CTPN與CTPN-R在MSRA-TD500上性能比較結果
圖7 加入邊緣細化層前后效果
為了評估CTPN-R對水平方向文本檢測性能,方便與其它算法性能作對比,在ICDAR2013數(shù)據(jù)集上進行文本檢測。檢測結果見表1,CTPN-R相比于原始算法 CTPN 在準確率上稍微下降,但是召回率顯著提高了4.2%,在綜合性能指標F值上相比于其它算法達到了最好的效果。CTPN-R和CTPN在準確率上相比其它算法檢測效果更理想的原因在于使用了循環(huán)文本網(wǎng)絡以及多尺度anchor的檢測策略,說明本文通過加入特征融合的策略是有效的,驗證了神經(jīng)網(wǎng)絡可以通過特征融合構建特征圖金字塔,提高算法對小尺度文本檢測效果,從而提高召回率,使得算法整體性能得到改善。
表1 各算法在ICDAR2013數(shù)據(jù)集上的檢測結果
從表2可以看出,CTPN-R在MSRA-TD500數(shù)據(jù)集上有81%的準確率,綜合性能評價F-measure為77.5%,相比之前表2中準確率最高的算法(表2中的文獻[20]),CTPN-R在召回率上提高了11.2%,F(xiàn)-measure提高了3.5%。這主要得益于加入了特征融合層和邊緣細化層,提高了網(wǎng)絡對小尺度文本檢測效果,使其召回率上升。
表2 各算法在MSRA-TD500數(shù)據(jù)集上的檢測結果
在本文配置中,CTPN的每次迭代平均時間為0.24 s,而CTPN-R算法每次迭代時間0.4 s。考慮到CTPN-R相比于原始網(wǎng)絡多輸出3k個參數(shù),幾乎增加了一倍的訓練參數(shù),增加的訓練時間在合理范圍內,同時說明增加特征融合層不會大幅度增加網(wǎng)絡的計算成本,因為計算成本主要集中在特征融合層中的反卷積計算中。
針對文本檢測算法CTPN不能很好檢測傾斜文本和小尺度文本問題,提出了基于旋轉變量的改進算法CTPN-R。CTPN-R加入旋轉變量的預測和回歸,用最近鄰上采樣方法將高級和低級特征相融合,豐富特征圖的語義特征信息,增強特征圖的表達性,使網(wǎng)絡更有效地檢測小尺度文本。通過優(yōu)化邊緣細化層,使其能有效應用到傾斜文本檢測中。針對傾斜文本anchor的訓練,提出了一種新的IoUnew計算方式和正樣本選取策略,為基于深度學習中拆分文本框的文本檢測算法提供了一種思路。仿真結果表明:CTPN-R 對圖像中任意方向文本有很好的檢測效果,且實時性好。