何偉鑫,鄧建球,叢林虎,逯 程
(1. 海軍航空大學(xué),山東 煙臺(tái) 264001;2. 海軍裝備部,北京 100000)
隨著卷積神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,文本檢測(cè)也獲得了飛躍式的進(jìn)步。當(dāng)前白紙黑字中的文本檢測(cè)技術(shù)已經(jīng)較成熟,然而自然場(chǎng)景中的文字檢測(cè)技術(shù)還存在較多的問(wèn)題。自然場(chǎng)景中往往會(huì)用簡(jiǎn)潔的方式來(lái)描述重要的內(nèi)容,如姓名、時(shí)間、地點(diǎn)、指示等、這些信息可以幫助人們理解其相應(yīng)的場(chǎng)景信息。識(shí)別交通標(biāo)志上的文字信息能夠讓司機(jī)獲取道路信息;物品封裝上的打印的文字信息,可以實(shí)現(xiàn)其自動(dòng)分類(lèi)及查詢(xún)等;但是當(dāng)前文字識(shí)別水平還較低,因?yàn)槠漭^為依賴(lài)文字檢測(cè),只有檢測(cè)出來(lái)文本框達(dá)到要求,文字識(shí)別才可能達(dá)到要求的精度。但是自然場(chǎng)景及其復(fù)雜,場(chǎng)景中的文本大小、字體等形態(tài)不一,并且橫豎、360度方向不一,甚至存在重疊以及污染等情況,可見(jiàn)自然場(chǎng)景的文字檢測(cè)難度較大,因此受到學(xué)術(shù)界廣泛的研究。
文本檢測(cè)算法過(guò)程見(jiàn)圖1。
傳統(tǒng)的文本檢測(cè)算法及一些基于深度學(xué)習(xí)的文本檢測(cè)算法大多數(shù)都是多階段任務(wù),如圖1所示,即在訓(xùn)練的過(guò)程當(dāng)中需要對(duì)多個(gè)階段進(jìn)行調(diào)優(yōu),如此定會(huì)對(duì)最終的模型產(chǎn)生影響,并且大大增加時(shí)間消耗。針對(duì)以上問(wèn)題,基于端到端的文本檢測(cè)算法EAST被提出。該算法消除了中間多個(gè)stage比如候選區(qū)域融合,文本分詞等,而是直接對(duì)文本區(qū)域進(jìn)行預(yù)測(cè)。EAST文本檢測(cè)算法簡(jiǎn)化了中間的過(guò)程步驟,直接實(shí)現(xiàn)端到端文本檢測(cè),優(yōu)雅簡(jiǎn)潔,檢測(cè)的準(zhǔn)確性和速度均得到較大提升。
其中,前4種算法均為目前比較流行的文本檢測(cè)算法,其檢測(cè)過(guò)程大致包括提取候選框、候選框過(guò)濾、bouding box
圖1 文本檢測(cè)算法過(guò)程示意圖
回歸、候選框合并等階段,可以看出這些算法的中間過(guò)程比較冗長(zhǎng)。而圖示最后一種算法即EAST算法,可以看出,該算法過(guò)程較為簡(jiǎn)化僅有FCN(全卷積網(wǎng)絡(luò))、NMS階段(非極大抑制),其過(guò)程縮減較為明顯,如圖2所示,并且該算法輸出支持多角度檢測(cè),檢測(cè)結(jié)果效率以及準(zhǔn)確率均高,并且適應(yīng)多種場(chǎng)景。(d)為CTPN算,該算法與EAST算法相似,不過(guò)其僅支持水平方向的文本檢測(cè),不如EAST算法的可應(yīng)用場(chǎng)景多。
圖2 EAST算法流程圖
EAST網(wǎng)絡(luò)結(jié)構(gòu)由三部分組成:特征提取層、特征融合層、輸出層,如圖3所示。
圖3 EAST網(wǎng)絡(luò)結(jié)構(gòu)圖
1)EAST算法特征提取層主干網(wǎng)絡(luò)基于VGG16(或resnet等),分別從stage1,stage2,stage3,stage4的卷積層抽取出特征圖,卷積層的尺寸依次減半,分別是輸入圖像的1/4,1/8,1/16,1/32,但卷積核的數(shù)量依次增倍,形成FPN結(jié)構(gòu)。通過(guò)這種方式,抽取出不同尺度的特征圖,以實(shí)現(xiàn)對(duì)不同尺度文本行的檢測(cè)。
2)特征融合層
將抽取的特征圖按照U-net的思想進(jìn)行合并,步驟如下:特征提取層中最后一層的特征圖(f1)送入unpooling層,將圖像放大1倍;接著與前一層的特征圖(f2)進(jìn)行融合(concatenate);然后依次作大小為1*1,3*3的卷積;對(duì)f
3,f
4重復(fù)以上過(guò)程,而卷積核的個(gè)數(shù)逐層遞減,依次為128,64,32;最后經(jīng)過(guò)32核,3*3卷積后將結(jié)果輸出到“輸出層”,具體參照式(1)(1)
3)輸出層
輸出層輸出以下4部分的信息,分別是:score map:檢測(cè)框置信度,1個(gè)參數(shù);
text boxes:檢測(cè)框的位置(x
,y
,w
,h
),4個(gè)參數(shù);text rotation angle:檢測(cè)框的旋轉(zhuǎn)角度,1個(gè)參數(shù);
text quadrangle coordinates:任意四邊形檢測(cè)框坐標(biāo),(x
,y
)(x
,y
)(x
,y
)(x
,y
),8個(gè)參數(shù)。其中,text boxes的位置坐標(biāo)與text quadrangle coordinates是為解決一些扭曲變形文本行,如圖4。
圖4 扭曲圖
如果僅輸出text boxes的位置坐標(biāo)以及旋轉(zhuǎn)角度(x
,y
,w
,h
,θ
),那么預(yù)測(cè)出來(lái)的檢測(cè)框就是圖中實(shí)線框,其與真實(shí)文本的位置存在誤差。而輸出層的最后再輸出任意四邊形的位置坐標(biāo),那么就可以更加準(zhǔn)確地預(yù)測(cè)出檢測(cè)框的位置,如圖中虛線框。4)損失函數(shù)
式(2)為EAST算法的損失函數(shù):
L
=Ls
+λgLg
(2)
其中,Ls表示當(dāng)前像素是否有文字(score map),Lg對(duì)象IOU以及角度(geometry map)的損失,λg表示兩者的權(quán)重,通常為1。前者采用類(lèi)平衡交叉熵,用于解決類(lèi)別不平衡訓(xùn)練,避免通過(guò)平衡采樣和硬負(fù)挖掘解決目標(biāo)物體的不不平衡分布,簡(jiǎn)化訓(xùn)練過(guò)程,具體見(jiàn)式(3)
(3)
(4)
Lg
幾何圖損失由IOU
損失(式(5))以及旋轉(zhuǎn)角度損失(式(6))組成(5)
Lg
=L
+λ
L
(6)
Lg
=L
+λ
L
(7)
4)EAST算法的不足
EAST文本檢測(cè)算法能夠在自然場(chǎng)景中高效且準(zhǔn)確直接對(duì)圖像中的多角度圖像進(jìn)行文本檢測(cè),檢測(cè)效果在眾多文本檢測(cè)算法中名列前茅,但是其存在著較大的缺陷,即對(duì)較長(zhǎng)文本的檢測(cè)效果較為不如意,這是由于其網(wǎng)絡(luò)設(shè)定感受野較小造成的。
圖3所示網(wǎng)絡(luò)結(jié)構(gòu)輸出層RBox與QUAD兩種模式選擇其一,而無(wú)論選擇哪一種皆存在共性問(wèn)題,如RBox預(yù)測(cè)邊框和像素點(diǎn)之前,首先根據(jù) score map篩選出文本框內(nèi)的點(diǎn),下圖是舉例說(shuō)明確定邊框的過(guò)程,下圖表示一張圖片中的一個(gè)文本框,框內(nèi)的點(diǎn)都有個(gè)預(yù)測(cè)到四條邊的距離,根據(jù)文本內(nèi)每個(gè)點(diǎn)所預(yù)則的距離(點(diǎn))進(jìn)行加權(quán)平均,得出邊框或者頂點(diǎn)。當(dāng)文本很長(zhǎng)的時(shí)候,用一端的點(diǎn)去預(yù)測(cè)另外一端的邊的距離的時(shí)候,就會(huì)出現(xiàn)攜帶信息沒(méi)有那條邊的信息,所以EAST在預(yù)測(cè)長(zhǎng)文本的時(shí)候會(huì)出現(xiàn)斷裂或者預(yù)測(cè)不出來(lái)的情況。
圖5 RBox預(yù)測(cè)圖
由于模型提升對(duì)長(zhǎng)文本的檢測(cè)較差,huojie在阿里天池競(jìng)賽使用了AdvancedEAST算法改進(jìn)EAST網(wǎng)絡(luò)輸出層,但未得到驗(yàn)證,本文將驗(yàn)證AdvancedEAST與EAST的效果,同時(shí)引入空洞卷積以及1*5、5*1卷積層來(lái)解決感受野及分辨率之間的矛盾,使得模型對(duì)長(zhǎng)文本的檢測(cè)具有更高的準(zhǔn)確率。
AdvancedEast特征提取、特征融合兩層與EAST算法一致,主要是輸出層部分進(jìn)行了改進(jìn),網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。輸出分為三個(gè)部分:①score map:和EAST一樣,點(diǎn)在文本內(nèi)的置信度;②vertex code:第一通表示是否是邊界元素的置信度。第二通表示是頭/尾元素,0表示頭部元素,1表示尾部元素;③vertex geo:4通分別代表左上(右上)X、左上(右上)Y、左下(右下)X、左下(右下)Y,這里不是真正的X/Y坐標(biāo),而是根據(jù)當(dāng)前點(diǎn)坐標(biāo)的X/Y偏移量。
圖6 AdvanedEAST網(wǎng)絡(luò)結(jié)構(gòu)圖
為了解決East感受野小的缺點(diǎn),AdvancedEast用頭部元素預(yù)測(cè)左上、左下點(diǎn),尾部元素預(yù)測(cè)右上右下點(diǎn)。也就是說(shuō)vertex geo的輸出只對(duì)頭部和尾部元素有意義,且根據(jù)預(yù)測(cè)出的頭/尾元素進(jìn)行加權(quán)平均得到4個(gè)頂點(diǎn)。
預(yù)測(cè)過(guò)程整體的流程如下:
1)根據(jù)score map輸出的值確定activatin point;
2)遍歷所有activation point,在feature map中左右相鄰的activation point合并形成若干region list;
3)遍歷所有region list,在feature map中上下相鄰的region list合并形成region group;
4)遍歷region group中的點(diǎn),根據(jù)vertex code輸出的值確定頭/尾元素;
5)每個(gè)region group中的頭部(尾部)元素預(yù)測(cè)的vertex geo進(jìn)行加權(quán)平均得到最終文本框頂點(diǎn)。
圖7、8表示該過(guò)程示意圖,圖中每個(gè)點(diǎn)有7通道值,對(duì)應(yīng)模型的輸出(score map、vertex code、vertex geo)。
圖7 AdvanedEAST輸出示意圖
圖8 AdvanedEAST輸出示意圖
一步遍歷feature map中所有點(diǎn),這里feature map指模型的輸出(score map、vertex code、vertex geo),篩選出score map值高于threshole的點(diǎn),得到activation point(激活元素),如圖7(a),得到所有activation point(文本框內(nèi)元素)
遍歷上一步獲得的所有activation point,將在feature map中左右相鄰(X坐標(biāo)相差1,Y坐標(biāo)相同)的activation point進(jìn)行合并,得到若干 region list,如圖7(b),藍(lán)色虛線框表示region list。
遍歷上一步得到的region list,將feature map中上下相鄰的region list進(jìn)行合并成為region group,具體上下相鄰規(guī)則是如果region list中所有元素向下平移一個(gè)單位后,和其他的region list有重合點(diǎn),則進(jìn)行合并,否則不進(jìn)行合并。
region group是文本域的大致位置,但在真正的預(yù)測(cè)的時(shí)候并不是所有的點(diǎn)都會(huì)預(yù)測(cè)出來(lái)或者可能會(huì)出現(xiàn)噪音點(diǎn)。并不能根據(jù)這些點(diǎn)很完整的確定出具體的文本,還需要進(jìn)行進(jìn)一步的計(jì)算。
遍歷每個(gè)region group中的點(diǎn),根據(jù)vertex code輸出的值找到其中的頭/尾元素,頭/尾需要滿(mǎn)足的規(guī)則是vertex code中第一通輸出的是否是邊界元素置信度的值高于閾值,且vertex code中的分類(lèi)置信度滿(mǎn)足閾值。
現(xiàn)在確定了每個(gè)region group中的頭尾元素,如圖9所示,根據(jù)頭部(尾部)元素所預(yù)測(cè)的左上(右上)X、左上(右上)Y、左下(右下)X、左下(右下)Y偏移量進(jìn)行加權(quán)平均,確定最終預(yù)測(cè)的4個(gè)頂點(diǎn)。具體的加權(quán)平均的方式如下,n表示當(dāng)前文本域內(nèi)邊界元素?cái)?shù)量。
(8)
其中,pv
表示當(dāng)前邊界元素的坐標(biāo)與預(yù)測(cè)的x
,y
偏移量相加后的結(jié)果,即預(yù)測(cè)的頂點(diǎn)坐標(biāo);score
表示當(dāng)前邊界元素的置信度。最終的輸出為原圖的1/4,所以feature map中的坐標(biāo)對(duì)應(yīng)回原圖坐標(biāo)需要進(jìn)行處理如圖9所示,預(yù)測(cè)的偏移量是原圖的偏移量不需要進(jìn)行處理,處理方式如下
(9)
圖9 輸出映射圖
在傳統(tǒng)CNN網(wǎng)絡(luò)結(jié)構(gòu)中,F(xiàn)C層每個(gè)輸出節(jié)點(diǎn)的值都較于FC層較為依賴(lài),然后CONV層的每一輸出節(jié)點(diǎn)值只對(duì)CONV層輸入的某區(qū)域產(chǎn)生依賴(lài),而該區(qū)域之外的其它輸入值對(duì)輸出不會(huì)產(chǎn)生影響,該區(qū)域即感受野。
圖10 感受野示意圖
自然場(chǎng)景中,很多文本幾乎都是存在長(zhǎng)度較長(zhǎng),寬度較小的問(wèn)題,而EAST主干網(wǎng)絡(luò)感受野較小,這就是造成了EAST模型對(duì)于長(zhǎng)文本的檢測(cè)效果較差缺點(diǎn)的主要原因。為增大網(wǎng)絡(luò)模型的感受野,可以:
1)pooling池化:池化主要任務(wù)是對(duì)數(shù)據(jù)降維,減小網(wǎng)絡(luò)參數(shù),提升網(wǎng)絡(luò)的計(jì)算效率,同時(shí),池化也是增加感受野的方法之一,但在增加感受野的同時(shí),伴隨著分辨率的降低,圖像細(xì)節(jié)損失。
2)使用較大的卷積核,但是這樣會(huì)帶來(lái)更多的參數(shù),使得訓(xùn)練難度加大。
3)使用空洞卷積
空洞卷積(Dilated/Atrous Convolution),廣泛應(yīng)用于語(yǔ)義分割與目標(biāo)檢測(cè)等任務(wù)中,空洞卷積如圖11所示。
圖11 空洞卷積示意圖
以3*3卷積為例,在3*3卷積核中間填充0,輸入等間隔采樣,此為dilated rate為2的空洞卷積,普通卷積可看成dilated rate為1的卷積。設(shè)置不同dilation rate時(shí),感受野就會(huì)不一樣,也即獲取了多尺度信息,多尺度信息在視覺(jué)任務(wù)中非常重要。
圖12 改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)
由于空洞卷積其可以擴(kuò)大感受野,同時(shí)不丟失分辨率以及增加參數(shù),這在檢測(cè),分割任務(wù)中十分有用。一方面感受野大了可以檢測(cè)分割大目標(biāo),另一方面分辨率高了可以精確定位目標(biāo)。因此為了使得模型對(duì)長(zhǎng)文本的檢測(cè)結(jié)果更高,本文在advancedEAST的基礎(chǔ)上,引入空洞卷積。同時(shí),由于自然場(chǎng)景中的文本絕大多數(shù)橫排或者豎排長(zhǎng)寬比均比較大,因此改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)同時(shí)新增入1*5以及5*1卷積核,網(wǎng)絡(luò)結(jié)構(gòu)如圖12所示。
從圖中可看出,文章算法將advancedEAST中特征提取層的第二個(gè)block以及第三個(gè)block的最后一個(gè)3*3卷積層修改為1*5卷積核以及5*1卷積核的兩個(gè)卷積層,這兩個(gè)卷積層均來(lái)自同一個(gè)輸出,而后將這兩個(gè)卷積層的輸出與相應(yīng)block的第一個(gè)卷積層進(jìn)行殘差res,而后將這兩個(gè)卷積層的輸出進(jìn)行特征合并操作,而后進(jìn)行下采樣得到相應(yīng)block的輸出。增加1*5以及5*1的卷積層主要是為更好的檢測(cè)到橫排以及豎排的長(zhǎng)文本。將四個(gè)block以及第五個(gè)block的最后一個(gè)3*3卷積層分別修改為空洞率為2以及3的空洞卷積,最后一個(gè)空洞卷積輸出與該block5第一個(gè)卷積層輸出進(jìn)行殘差res操作,以增加特征內(nèi)容。通過(guò)以上操作,以此增加網(wǎng)絡(luò)感受野。
本文實(shí)驗(yàn)在Ubuntu16.04系統(tǒng)下進(jìn)行,CPU:酷睿i5-8400 2.80GHz,顯卡為GTX1060,顯存為6GB,計(jì)算機(jī)內(nèi)存為16G;python 3.6,同時(shí)配套tensorflow,keras等模塊支持實(shí)驗(yàn)進(jìn)行。實(shí)驗(yàn)數(shù)據(jù)集為ICPR2018數(shù)據(jù)集,該數(shù)據(jù)集為ICPR MTWI挑戰(zhàn)賽使用的數(shù)據(jù)集,共含自然場(chǎng)景下的文本圖片9000張,且每張圖片含有至少一個(gè)以上的文本區(qū)域,場(chǎng)景中的文本方向?yàn)槿我夥较?。使用Adam優(yōu)化器進(jìn)行優(yōu)化,初始學(xué)習(xí)率為0.001,衰減率為0.0005。圖片大小設(shè)定為732*732。訓(xùn)練次數(shù)LOSS保持穩(wěn)定即停。
EAST算法對(duì)長(zhǎng)文本檢測(cè)效果不理想,AdvancedEAST算法通過(guò)改進(jìn)EAST算法的輸出層,使得模型對(duì)長(zhǎng)文本的檢測(cè)效果更加優(yōu)秀。其檢測(cè)結(jié)果如圖13、14所示(左圖為AdvancedEAST,右圖為EAST)。
圖13 AdEAST與EAST檢測(cè)對(duì)比圖1
圖14 AdEAST與EAST檢測(cè)對(duì)比圖2
由實(shí)驗(yàn)結(jié)果圖可以看出,EAST算法對(duì)于很對(duì)較長(zhǎng)的文本檢測(cè)效果不理想,通常會(huì)漏掉文本的頭尾部分,或者將長(zhǎng)文本斷續(xù)分為多個(gè)文本框,檢測(cè)效果較差,而AdvancedEAST算法則可以將長(zhǎng)文本較好地檢測(cè)出來(lái),檢測(cè)結(jié)果較EAST算法具有較大的進(jìn)步。
圖15 AdEAST與imAdEAST訓(xùn)練損失圖
圖16 AdEAST與imAdEAST準(zhǔn)確率圖
但是從圖中也可以看出AdvancedEAST算法同樣存在不足,如有些文本未能夠檢測(cè)出來(lái)等。因此將其網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行如圖12改進(jìn),如圖15所示,為訓(xùn)練結(jié)果中LOSS圖像,從圖可以看出,改進(jìn)后的imAdEAST算法較AdEAST算法更低。圖16為訓(xùn)練準(zhǔn)確率曲線,可看出imAdEAST算法較AdEAST算法準(zhǔn)確率更高。
圖17 AdEAST與imAdEAST測(cè)試對(duì)比圖1
根據(jù)imAdEAST訓(xùn)練得到的模型,進(jìn)行圖片的檢測(cè),檢測(cè)結(jié)果如圖17、18、19所示(左圖為imAdEAST,右圖為AdEAST),從這三張檢測(cè)對(duì)比圖可以看出,改進(jìn)的imAdEAST算法模型的檢測(cè)結(jié)果比AdEAST算法的檢測(cè)結(jié)果更加優(yōu)秀。
圖18 AdEAST與imAdEAST測(cè)試對(duì)比圖2
圖19 AdEAST與imAdEAST測(cè)試對(duì)比圖
EAST文本檢測(cè)算法是目前基于深度學(xué)習(xí)的文本檢測(cè)算法中效果較為優(yōu)秀的一個(gè)算法,但是其存在對(duì)長(zhǎng)文本檢測(cè)效果較差的缺點(diǎn),文本檢測(cè)算法AdvancedEAST在EAST算法的基礎(chǔ)上對(duì)其輸出層進(jìn)行改進(jìn),得到的模型對(duì)長(zhǎng)文本的檢測(cè)效果優(yōu)于傳統(tǒng)EAST算法,但同樣存在一定的誤檢率以及漏檢率。
本文算法在AdvancedEAST的基礎(chǔ)上,加入了1*5以及5*1的卷積核大小的卷積層,以適應(yīng)橫豎排長(zhǎng)文本的檢測(cè)效果,而后在特征提取層加入空洞卷積,以改善網(wǎng)絡(luò)的感受野。通過(guò)實(shí)驗(yàn)驗(yàn)證對(duì)比得出文章提出的改進(jìn)算法,對(duì)于長(zhǎng)文本的檢測(cè)效果明顯優(yōu)于傳統(tǒng)的EAST算法,對(duì)于圖像目標(biāo)的檢測(cè)效果同樣優(yōu)于AdvancedEAST算法。未來(lái)可能優(yōu)化的地方有:EAST算法的權(quán)重優(yōu)化、多尺度訓(xùn)練等。