方承志,火興龍,程宥鋮
南京郵電大學(xué) 電子與光學(xué)工程學(xué)院,南京210023
文本作為人類溝通和信息交流的主要載體,廣泛地存在于自然場景圖像中,例如商鋪招牌、道路標(biāo)志、產(chǎn)品包裝等都含有大量文本。相較于圖像中的其他自然場景內(nèi)容,例如樹木、行人、建筑等,自然場景文本(scene text)具有更豐富且明確的高層語義信息和更強的描述能力,因而準(zhǔn)確地檢測并識別圖像中的文本將有助于場景內(nèi)容的分析與理解。隨著計算機圖形處理能力的顯著提升和互聯(lián)網(wǎng)的高速發(fā)展,自然場景文本檢測技術(shù)在許多場景中都有著廣泛的應(yīng)用,例如文檔分析[1]、圖像檢索[2-3]、智能交通[4-5]等,因而該技術(shù)在計算機視覺領(lǐng)域正逐漸成為近年研究與應(yīng)用的熱點。
目前自然場景文本檢測算法大致可分為兩類,一類是基于字符檢測的傳統(tǒng)算法,另一類算法則基于近年來興起的深度學(xué)習(xí)。傳統(tǒng)算法主要沿用兩條技術(shù)路線,基于連通成分(connected component)分析的算法和基于滑動窗口(sliding window)分類的算法。傳統(tǒng)算法一般涉及多個處理步驟,為了讓各部分相互協(xié)同工作,需要在參數(shù)調(diào)整和啟發(fā)式規(guī)則(heuristic rules)設(shè)計方面付出大量努力。此外,步驟較多且計算量大導(dǎo)致其速度較慢,效率不高?;谏疃葘W(xué)習(xí)的算法也主要沿用兩條技術(shù)路線,基于位置回歸(location regression based)的算法和基于分割(segmentation based)的算法。不同于傳統(tǒng)算法的手工設(shè)計特征(handcraft feature),深度學(xué)習(xí)網(wǎng)絡(luò)組合淺層特征形成抽象深層特征,特征語義信息豐富且表達力強。此外,端到端的模型結(jié)構(gòu)訓(xùn)練過程簡單高效且檢測效率高。
基于深度學(xué)習(xí),目前性能較好的算法包括CTPN[6]、TextBoxes[7]、SegLink[8]、EAST[9]、PixelLink[10]等,它們都借鑒了通用目標(biāo)檢測(general object detection)的思路。然而,把自然場景文本檢測看作是通用目標(biāo)檢測的特例時,它也有自身的特殊點和難點。具體如圖1 所示,一是文本對象的長寬比(aspect ratio)范圍很大,而在通用目標(biāo)檢測中,目標(biāo)對象的長寬比一般在3以內(nèi)[11];二是通用目標(biāo)檢測中的邊界框(bounding box)是水平矩形,而文本對象是有方向的,其邊界框需要用旋轉(zhuǎn)矩形或四邊形來表示。
圖1 自然場景文本檢測與通用目標(biāo)檢測的比較
面對上述問題,CTPN 引入類似“微分”的思想,利用修改過的錨框(Anchor)機制和LSTM[12]網(wǎng)絡(luò)檢測一個個小的、固定寬度的文本片段,通過規(guī)則將文本片段連接成文本對象。TextBoxes 錨框長寬比最大可到10,并用長條形(1×5)卷積核替代傳統(tǒng)方形(3×3)卷積核。TextBoxes++[13]作為TextBoxes 的改進,增加了縱向錨框且卷積核形狀變更為3×5。SegLink 既融入了CTPN 小尺度錨框的思想又借鑒了SSD[11]算法,同時預(yù)測文本片段及片段間的連接關(guān)系。EAST 沒有錨框機制,每個文本像素直接預(yù)測自身所在文本對象的坐標(biāo)和旋轉(zhuǎn)角度。區(qū)別于上述基于位置回歸的算法,PixelLink則是基于分割的算法,其Link思想來源于SegLink,但存在質(zhì)的不同:SegLink 連接對象是文本片段,而PixelLink 連接對象是文本像素。
通常,基于錨框機制的文本檢測算法會設(shè)計較多錨框以覆蓋文本對象不同的方向和長寬比。隨著錨框增多,采樣密度增大,負樣本所占比例也相應(yīng)升高,導(dǎo)致訓(xùn)練時正負樣本類別失衡愈發(fā)嚴(yán)重,進而影響模型學(xué)習(xí)過程。對此,本文設(shè)計錨框時剝離錨框的方向特征但保留其長寬比特征,在模型訓(xùn)練的正負樣本判定階段,錨框與真值(ground truth)做匹配計算時,同樣先剝離真值的方向特征,然后將其與無方向特征的錨框按中心點對齊,最后進行IoU(Intersection over Union)計算。如此,在覆蓋相同的錨框長寬比范圍時,錨框的數(shù)量相對較少,從而在一定程度上減輕了正負樣本類別失衡的影響。同時,每個網(wǎng)格(Grid)的所有錨框共享旋轉(zhuǎn)角度偏移量的回歸值,相對于直接回歸旋轉(zhuǎn)角度偏移量,本文以一種不同的形式實現(xiàn),即通過獨立的子網(wǎng)預(yù)測均勻分割的角度區(qū)間概率值,選取概率值最高的角度區(qū)間量化值作為所屬網(wǎng)格的共享旋轉(zhuǎn)角度偏移量。當(dāng)然,量化的旋轉(zhuǎn)角度偏移量勢必帶來一定的角度偏差,如果預(yù)測的邊界框不能準(zhǔn)確且緊致地框住文本對象,必然影響到后續(xù)文本識別的精確率。針對于此,本文提出一種邊界框校準(zhǔn)算法,作為模型后處理層的最后一個步驟。該算法利用MSER[14]獲取字符邊緣信息,通過基于規(guī)則的邏輯判斷,對邊界框進行收縮或膨脹操作,從而達到邊界框校準(zhǔn)目的。綜上所述,本文的主要貢獻如下:
(1)設(shè)計錨框時剝離錨框的方向特征但保留其長寬比特征,在覆蓋相同長寬比范圍時,錨框設(shè)計數(shù)量減少,從而緩解采樣密集時正負樣本類別失衡的影響。
(2)每個網(wǎng)格的所有錨框共享旋轉(zhuǎn)角度偏移量的回歸值,并且以一種不同的形式實現(xiàn)其回歸。
(3)提出一種邊界框校準(zhǔn)算法,作為模型后處理層的最后一個步驟。
本文模型以基于位置回歸的一階段通用目標(biāo)檢測框架為基礎(chǔ),模型結(jié)構(gòu)如圖2 所示,按照功能的不同分為四個部分:特征提取層、特征融合層、文本預(yù)測層和后處理層。首先,原始圖像經(jīng)過縮放處理轉(zhuǎn)為輸入圖像,輸入圖像饋入特征提取層,經(jīng)由連續(xù)的卷積和下采樣(downsample)操作,以旁路的方式得到三個不同尺度與抽象層級的特征圖。然后,通過特征融合層,不同尺度的特征圖自頂向下進行融合,使得深層語義特征與淺層紋理特征相融合。接著,文本預(yù)測層用三個相互獨立的子網(wǎng)分別輸出置信度(confidence)、邊界框坐標(biāo)偏移量和旋轉(zhuǎn)角度偏移量。最后,后處理層包含三個步驟:(1)置信度閾值操作,濾除非文本對象;(2)非極大值抑制(Non-Maximum Suppression,NMS),去除冗余文本對象;(3)對最終篩選出的文本對象進行邊界框校準(zhǔn)。
特征提取層以修改過的Darknet-53[15]為框架,去除后部的全連接層,保留前部連續(xù)的卷積結(jié)構(gòu),并以歸一化尺寸(608×608)的三通道彩色圖像作為輸入。Darknet-53 采用殘差結(jié)構(gòu),如圖3 所示,殘差塊(residual block)包含兩個分支:恒等分支和殘差分支,其公式定義如下:
其中,xt和xt+1分別是第t個殘差塊的輸入與輸出。Ft(xt) 為變換函數(shù),對應(yīng)殘差分支,xt則對應(yīng)恒等分支。激活函數(shù)采用LReLU[16](Leaky Rectified Linear Unit),負值部分的斜率α設(shè)為0.1,其表達式如下:
同時,下采樣不采用池化(pooling)操作,而是采用步長(stride)為2 的卷積操作替代。具體網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
圖2 模型結(jié)構(gòu)
圖3 殘差塊結(jié)構(gòu)
表1 特征提取層網(wǎng)絡(luò)結(jié)構(gòu)
在CNN(Convolutional Neural Networks)網(wǎng)絡(luò)中,靠近輸入的卷積層負責(zé)提取保留了很多細節(jié)但缺少語義信息的淺層特征,而靠近輸出的卷積層負責(zé)提取有很強語義信息但缺少細節(jié)的深層特征。通過特征融合,高分辨率的淺層特征圖將包含深層語義信息,使網(wǎng)絡(luò)綜合考慮深層特征與淺層特征,從而提高了預(yù)測的準(zhǔn)確率。
本文特征融合層主要包含上采樣(upsample)和融合(fusion)兩個步驟。首先,在特征提取層的最后三個卷積階段加入旁路,輸出三個不同分辨率的特征圖。然后,通過采用最近鄰插值(nearest neighbor interpolation)的上采樣操作,由深層至淺層,使相鄰卷積階段的特征圖分辨率相一致。最后,將兩個相同分辨率的特征圖以拼接(concat)的方式相融合。具體過程見圖2特征融合層描述,其中卷積塊(Conv Block 5L)表示Conv 1×1和Conv 3×3交替執(zhí)行且總共5層(5L)卷積。
1.3.1 錨框設(shè)計
在TextBoxes++里,為應(yīng)對多方向文本,額外增加了縱向的錨框,致使錨框數(shù)量變多。與其不同,本文設(shè)計錨框時剝離錨框的方向特征但保留其長寬比特征,即錨框只有寬和高兩個屬性,同時也剝離真值的方向?qū)傩?,使其只具有其最小外接矩形寬和高兩個屬性。在模型訓(xùn)練過程的正負樣本判定階段,真值中心點所在網(wǎng)格的錨框與真值做匹配計算時,先將已無方向?qū)傩缘腻^框和真值按中心點對齊,接著進行IoU計算,最后將IoU值最大且大于0.5的錨框判定為正樣本,小于0.4的錨框判定為負樣本,其余錨框則被忽略。如此,在覆蓋相同的錨框長寬比范圍時,可避免錨框數(shù)量過多的問題,從而在一定程度上減輕了正負樣本類別失衡對學(xué)習(xí)過程的影響。
感受野(receptive field)指的是神經(jīng)元在輸入圖像上可感知的區(qū)域,隨著網(wǎng)絡(luò)由淺到深,神經(jīng)元感受野逐漸擴大,所以設(shè)計錨框尺度時,從淺層特征圖到深層特征圖,其相關(guān)聯(lián)的錨框尺度將逐漸變大。本文錨框設(shè)計借鑒了SSD 中方法,每個特征圖關(guān)聯(lián)兩個尺度的錨框,尺度總范圍從23至28,長寬比范圍覆蓋{1∶1,3∶1,5∶1,7∶1,9∶1}。但由于輸入圖像尺寸為608×608,所以與最頂層特征圖相關(guān)聯(lián)的錨框并不包含長寬比{7∶1,9∶1},錨框邊長計算公式如下:
其中,s表示尺度,a表示長寬比。另外,每個尺度都有一大一小兩個正方形錨框,小的邊長為s,大的邊長為。
1.3.2 子網(wǎng)設(shè)計
如圖2 文本預(yù)測層所示,本文采用三個相互平行且獨立的子網(wǎng)分別輸出置信度、邊界框坐標(biāo)偏移量和旋轉(zhuǎn)角度偏移量。圖2 中Conv Block×4 表示卷積塊(Conv 3×3,256;Conv 1×1,128)執(zhí)行4次,其中最后一次Conv 1×1 操作的通道(Channel)數(shù)目根據(jù)子網(wǎng)的不同分別為2A、4A和18,而A表示特征圖上每個網(wǎng)格所屬錨框的數(shù)量。另外,置信度和旋轉(zhuǎn)角度子網(wǎng)后接Softmax激活函數(shù),邊界框坐標(biāo)子網(wǎng)只有x和y兩個通道后接Sigmoid激活函數(shù),而w和h兩個通道則不接激活函數(shù)。
在自然場景中,位于同一區(qū)域的文本對象往往具有一致的方向性。利用此特性,在回歸錨框旋轉(zhuǎn)角度偏移量的方式上,本文以一種不同的形式實現(xiàn)。首先,本文假設(shè)同一網(wǎng)格中的所有錨框具有相同的旋轉(zhuǎn)角度偏移量,因此每個網(wǎng)格只輸出一個旋轉(zhuǎn)角度偏移量,供網(wǎng)格內(nèi)所有錨框共享。其次,旋轉(zhuǎn)角度偏移量并非直接回歸的連續(xù)值,而是角度區(qū)間量化值,即將0°至180°均勻地分割為18 個角度區(qū)間,每個區(qū)間的量化值為區(qū)間中間值,但量化值為0°的區(qū)間較為特殊,其由[0°,5°]和[175°,180°]兩個子區(qū)間共同組成。最后,旋轉(zhuǎn)角度子網(wǎng)輸出特征圖的18 個通道分別依次代表每個角度區(qū)間。具體描述如圖4 所示,其中θ為實際值,而Θ為相應(yīng)的量化值。
1.3.3 損失函數(shù)
本文以加權(quán)和的形式定義多任務(wù)損失函數(shù)L,其表達式如下:
圖4 旋轉(zhuǎn)角度偏移量量化值
其中,Lconf、Lcoord和Langle分別表示置信度、邊界框坐標(biāo)偏移量和旋轉(zhuǎn)角度偏移量的損失函數(shù)。Nc表示判定為正樣本的錨框數(shù)量,用于損失函數(shù)標(biāo)準(zhǔn)化。α1=10和α2=1 用于平衡任務(wù)間損失。{1.0,0.1}用于平衡正負樣本置信度損失,正樣本設(shè)為1.0,負樣本設(shè)為0.1。{1.0,0.9,0.8}用于平衡旋轉(zhuǎn)角度偏移量損失,18 個角度區(qū)間依序設(shè)為{0.8,0.8,0.9,0.9,1.0,1.0,1.0,1.0,0.9,0.9,0.9,1.0,1.0,1.0,1.0,0.9,0.9,0.8}。)用于平衡不同尺度邊界框坐標(biāo)偏移量損失,為歸一化的真值w和h。
1.3.4 坐標(biāo)計算
文本預(yù)測層輸出相對于錨框的邊界框坐標(biāo)偏移量和旋轉(zhuǎn)角度偏移量,即(Δx,Δy,Δw,Δh,Δθ),分別表示中心點、寬高和旋轉(zhuǎn)角度的偏移量。在模型評價階段,輸出的邊界框為文本對象的最小外接矩形,表示形式為其四個頂點的坐標(biāo),即(x1,y1,x2,y2,x3,y3,x4,y4),相應(yīng)的坐標(biāo)轉(zhuǎn)換計算如下所示。首先由偏移量計算出絕對量:
其中,xg和yg為錨框所屬網(wǎng)格的左上角坐標(biāo),wa和ha為錨框的寬高。接著:
其中,()為邊界框水平狀態(tài)時4個頂點的坐標(biāo)。最后,引入旋轉(zhuǎn)角度的邊界框頂點坐標(biāo)由以下計算得出:
1.4.1 置信度閾值操作
本文實驗數(shù)據(jù)集采用ICDAR2015[17],在其訓(xùn)練集中,只有1%的文本對象邊界框短邊長度小于10或面積小于300。結(jié)合此特性,本文在執(zhí)行完閾值為0.5的置信度閾值操作后,便將具有上述特征的文本對象邊界框全部拋棄。
1.4.2 非極大值抑制
在通用目標(biāo)檢測任務(wù)中,大尺度目標(biāo)的邊界框中往往會含有同類別或不同類別的小尺度目標(biāo),如圖5(a)所示。因此,標(biāo)準(zhǔn)的非極大值抑制利用IoU 閾值操作去除冗余邊界框時,可以保留大尺度邊界框中包含的小尺度邊界框。然而,在文本檢測任務(wù)中,本文采用的ICDAR2015 數(shù)據(jù)集以單詞為標(biāo)注單位,從而在模型的輸出中,框住單詞的大尺度邊界框中經(jīng)常包含了框住若干字母的小尺度邊界框,如圖5(b)所示。
圖5 不同尺度邊界框包含關(guān)系
針對于此,本文使用另一種指示量來替代IoU,其目的在于抑制如上所述的小尺度邊界框。指示量定義如下:
其中,Area(bi)表示邊界框bi的面積,Inter(b1,b2)表示邊界框b1與b2“交”的面積,指示量閾值為0.4。
1.4.3 邊界框校準(zhǔn)
給定三通道彩色圖像后,先將其轉(zhuǎn)換為單通道灰度圖像,接著利用MSER算法得到圖像中的所有MSER區(qū)域,最后將MSER區(qū)域的表示形式由輪廓轉(zhuǎn)換為最小外接矩形。在邊界框校準(zhǔn)執(zhí)行邏輯中,優(yōu)先考慮收縮操作,其次考慮膨脹操作,偽代碼見算法1。
算法1 邊界框校準(zhǔn)算法
輸入:未校準(zhǔn)預(yù)測框集合P,MSER區(qū)域集合的集合R
輸出:已校準(zhǔn)預(yù)測框集合P′
1. forrs∈R,p∈Pdo //rs包含中心點在p內(nèi)的所有區(qū)域
2. ifrs=? then
3. 將p加入P′ //p不做校準(zhǔn)
4. else
5.rs1 ←rs中與p的面積比大于等于0.8 且小于等于1.2的區(qū)域所組成的集合
6.rs2 ←rs中與p的面積比大于0.05 且小于0.8的區(qū)域所組成的集合
7.rs3 ←rs中與p的面積比大于1.2 的區(qū)域所組成的集合
8.flag←False//邊界框校準(zhǔn)標(biāo)志
9. 將rs1 中區(qū)域按面積升序排列
10. forr∈rs1 do
11. ifr與p的中心間距小于p短邊長度的0.3倍then
12. 將r加入P′
13.flag←True
14. break
15. end if
16. end for
17. ifflag=Falsethen
18. 對rs2 進行過濾操作 //按1.4.2小節(jié)中定義的指示量濾除rs2 中指示量小于0.6 的區(qū)域,指示量中b1為rs2 中區(qū)域,b2為p
19. ifrs2 與p的中心間距小于p短邊長度的0.5倍andrs2 與p的面積比大于0.2且小于1.5 then
20. 將rs2 的最小外接矩形加入P′
21.flag←True
22. end if
23. end if
24. ifflag=Falsethen
25. 將rs3 中區(qū)域按面積升序排列
26. forr∈rs3 do
27. ifr與p的中心間距小于p短邊長度的0.5倍then
28. 將r加入P′
29.flag←True
30. break
31. end if
32. end for
33. end if
34. ifflag=Falsethen
35. 將p加入P′ //p不做校準(zhǔn)
36. end if
37. end if
38. end for
本文僅在公開數(shù)據(jù)集ICDAR2015 上評價模型性能,具體為其第四個挑戰(zhàn)的第一個任務(wù)。數(shù)據(jù)集共包含1 500 張圖像,其中1 000 張用于訓(xùn)練,500 張用于測試。圖像通過可穿戴設(shè)備隨機拍攝,尺寸統(tǒng)一為1 280×760。由于拍攝時并未聚焦于文本內(nèi)容,所以文本對象會出現(xiàn)在圖像的任意位置,且伴隨對焦模糊、顏色失真和扭曲變形等情況。另外,文本對象在圖像中還具有占比較小、大小不一、方向隨機等特征,從而相較于以往其他數(shù)據(jù)集,檢測難度大大提升。
ICDAR2015 數(shù)據(jù)集以單詞為標(biāo)注單位,所有單詞和文本區(qū)域都會被標(biāo)注出來,真值的表示形式為其四邊形邊界框四個頂點的坐標(biāo)。在模型的訓(xùn)練階段,為了適應(yīng)文本預(yù)測層的邏輯結(jié)構(gòu),真值的表示需要做轉(zhuǎn)換計算,(x,y,w,h,Θ)為其轉(zhuǎn)換后的表示形式,分別為真值最小外接矩形的中心點坐標(biāo)、寬高和以中心點為旋轉(zhuǎn)中心的旋轉(zhuǎn)角度偏移量。其中,中心點坐標(biāo)和寬高均為歸一化值,旋轉(zhuǎn)角度偏移量則為所在角度區(qū)間的量化值。
在文本檢測任務(wù)中,評價標(biāo)準(zhǔn)包含召回率(Recall)、精確率(Precision)和F分?jǐn)?shù)(F-Score)三個常用評價指標(biāo),其定義分別如下:
其中,D為預(yù)測框集合,G為真值框集合,Match(Xi,Y)為一對一匹配函數(shù),表示當(dāng)X中元素Xi與Y中任意元素相匹配時,函數(shù)值為1,否則為0。匹配程度以IoU衡量,當(dāng)IoU 值大于0.5 時,即表示匹配成功,否則匹配失敗。
本文僅通過ICDAR2015 訓(xùn)練集中的1 000 張圖像進行模型訓(xùn)練,采用自適應(yīng)矩估計[18](Adaptive Moment Eestimation,ADAM)優(yōu)化器優(yōu)化模型,權(quán)值衰減系數(shù)(weight decay)為1E-4,學(xué)習(xí)率為1E-3,圖像由原始尺寸縮放至統(tǒng)一尺寸608×608,使用在公開數(shù)據(jù)集ImageNet[19]上預(yù)訓(xùn)練的參數(shù)值初始化特征提取層參數(shù),模型訓(xùn)練階段并未采用數(shù)據(jù)增強(data augmentation)、多尺度訓(xùn)練(multi-scale training)、在線難例挖掘[20](Online Hard negative Example Mining,OHEM)等技術(shù),整個算法使用Python3.6同Pytorch0.4實現(xiàn)。
本文在ICDAR2015 測試集上的檢測結(jié)果如圖6 所示,圖中綠色框和紅色框分別表示檢測正確和檢測錯誤的預(yù)測框。其中,圖6(a)為邊界框未校準(zhǔn)的檢測結(jié)果,可以看到部分預(yù)測框旋轉(zhuǎn)角度有偏差,同時框體相比于對應(yīng)的文本對象存在過大或過小的現(xiàn)象。相對的,圖6(b)為邊界框已校準(zhǔn)的檢測結(jié)果,可以看到圖6(a)中存在的問題在圖6(b)中得到了一定程度的改善,使得邊界框能夠相對準(zhǔn)確且緊致地框住文本對象。
圖6 ICDAR2015測試集檢測結(jié)果
如表2,同時列出了近年來提出的幾種基于位置回歸的文本檢測算法以及本文算法在ICDAR2015測試集上取得的客觀指標(biāo)??梢钥闯觯趦H使用單一數(shù)據(jù)集進行訓(xùn)練且訓(xùn)練階段未使用數(shù)據(jù)增強等附加技術(shù)的情況下,本文算法取得了與其他算法可比較的檢測結(jié)果。同時,相比于本文算法邊界框未校準(zhǔn)時的指標(biāo),邊界框已校準(zhǔn)時的召回率、精確率、F分?jǐn)?shù)分別高出1.4、1.6、1.4個百分點,從而驗證了本文邊界框校準(zhǔn)算法的有效性。
表2 ICDAR2015數(shù)據(jù)集檢測結(jié)果
基于深度學(xué)習(xí),針對自然場景下多方向文本對象檢測任務(wù),本文模型以基于位置回歸的一階段通用目標(biāo)檢測框架為基礎(chǔ),通過設(shè)計錨框時剝離錨框的方向特征但保留其長寬比特征,在覆蓋相同長寬比范圍時,錨框設(shè)計數(shù)量減少,從而緩解采樣密集時正負樣本類別失衡的影響。同時,每個網(wǎng)格的所有錨框共享旋轉(zhuǎn)角度偏移量的回歸值,并且以一種不同的形式實現(xiàn)其回歸。另外,本文提出一種邊界框校準(zhǔn)算法,作為模型后處理層的最后一個步驟,該算法利用MSER 獲取字符邊緣信息,通過基于規(guī)則的邏輯判斷,對邊界框進行收縮或膨脹操作,從而使邊界框能夠相對準(zhǔn)確且緊致地框住文本對象。通過在公開數(shù)據(jù)集ICDAR2015 上的測試與比較,驗證了所提邊界框校準(zhǔn)算法的有效性。本文未來的研究將專注于以下兩個方面:(1)檢測算法魯棒性的增強;(2)多語種共存的文本檢測。