仝明磊, 姚宏揚
(上海電力大學(xué) 電子與信息工程學(xué)院, 上海 200090)
文字檢測是計算機視覺中的一個重要部分,也是文字識別的必要過程。自然場景下的文字檢測目前依然面臨很大的挑戰(zhàn),主要是因為自然場景圖像中的文字在亮度、模糊、形狀、方向等方面有很高的隨機性,導(dǎo)致文字檢測的難度較大。
近年來,研究者提出了很多的文字檢測方法[1-5]。盡管這些方法提高了檢測結(jié)果,但大多還是基于水平的檢測方式,無法有效解決自然場景圖像中文字復(fù)雜多變的情況。在實際應(yīng)用中,大部分圖片中的文字區(qū)域都不是水平的,通過以前的水平候選區(qū)方法來大量訓(xùn)練并不能得到很高的檢測精度,還會增加大量的計算時間。最近帶有幾何方向性的文字檢測方法被提出[6-7]。該方法主要是通過自底向上的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[8-9]進行特征提取來生成文字預(yù)測特征圖,再通過計算有傾斜性質(zhì)和特殊形狀的錨點框與特征圖上網(wǎng)格之間的置信度,使用回歸方法或者其他精細調(diào)整方法得到最終的檢測結(jié)果。區(qū)域提議網(wǎng)絡(luò)(Region Proposal Network,RPN)與Faster-RCNN[10]框架的結(jié)合,進一步加快了錨點的提議進程。本文將角度信息和仿射變換信息加入多方向文本檢測的模型中,以期進一步優(yōu)化適應(yīng)文字區(qū)域的檢測。
RPN可以進一步加速區(qū)域提議的生成過程,采用殘差網(wǎng)絡(luò)(Residual Network,ResNet)[11]的一部分作為共享網(wǎng)絡(luò)層,通過在最后一層卷積得到特征圖上滑動窗口來生成水平區(qū)域提議。每個滑動窗口得到的特征提取后,被送入回歸層(regression)和分類層(classification)中;回歸層輸出的每個提議框上有4個參數(shù)(寬、高、中心位置x坐標和y坐標),另外每個滑動位置的錨點還有2個分數(shù)從分類層輸出。
RPN使用尺度和寬高比兩個參數(shù)控制錨點的大小和形狀,以便更好地適應(yīng)不同尺寸的文字。尺度決定錨點的大小,寬高比決定錨點的形狀比例。在文字檢測中,尤其是自然場景下的圖像,文本通常都以非常規(guī)形狀表現(xiàn),如果只使用RPN產(chǎn)生的水平錨點,對于場景文字檢測來說魯棒性較差。為了提高網(wǎng)絡(luò)檢測的魯棒性和準確率,有必要建立一個適應(yīng)文本形狀的檢測框架。
本文所提網(wǎng)絡(luò)的整體框架使用ResNet-101的卷積層進行特征提取,增加仿射變換參數(shù)的RPN對最后一層卷積的特征圖進行區(qū)域提議。圖1為仿射變換區(qū)域提議網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 仿射變換區(qū)域提議網(wǎng)絡(luò)結(jié)構(gòu)
首先,從場景圖像上的預(yù)測文本實例中生成適應(yīng)方向和變換的提議,然后對提議進一步回歸邊界框來適應(yīng)真實文本區(qū)域。由回歸層和分類層輸出的回歸提議信息和分類分數(shù)計算回歸和分類損失,最終匯總為多任務(wù)損失。興趣區(qū)域(Region-of-Interest,RoI)池化層將帶有仿射變換的提議映射到特征圖上。最后,通過兩個全連接層組成的分類網(wǎng)絡(luò)將RoI特征區(qū)域分為前景文字區(qū)域和背景。
訓(xùn)練時,圖像上文本實例的位置形狀坐標由標注真值框4個角的坐標(x1,y1,x2,y2,x3,y3,x4,y4)獲得,輸入網(wǎng)絡(luò)時通過計算轉(zhuǎn)換為6個參數(shù)(x,y,h,w,θ,trans_x)。坐標(x,y)表示文本邊界框的幾何中心坐標;高度(h)為邊界框的短邊長度;寬度(w)為邊界框的長邊長度;角度(θ)為邊界框長邊與坐標軸x之間的夾角;變換值(trans_x)為長邊方向的仿射變換偏移量。文本框的中心坐標、長寬和角度由文本邊界框真值坐標求出的最小外接矩形得到,仿射變換值由最小外接矩形與邊界框真值的x坐標差值得到。
傳統(tǒng)的水平錨點不能進行很好的文字檢測,因此本文設(shè)計了具有仿射變換的旋轉(zhuǎn)錨點,并且進行了相應(yīng)的調(diào)整和改進。
圖2 網(wǎng)絡(luò)中錨點的固定參數(shù)
訓(xùn)練數(shù)據(jù)經(jīng)過預(yù)處理步驟后,一個提議錨點中有6個參數(shù)(x,y,h,w,θ,trans_x)。對于特征圖上的每個點,生成3×3×6×5共270個錨點。在每個滑動窗口經(jīng)過的位置上分別生成6×270共1 620個輸出,分類層生成2×270共540個輸出。根據(jù)仿射變換錨點網(wǎng)絡(luò)在寬度為W、高度為H的特征圖上滑動,總共生成H×W×270個錨點。訓(xùn)練數(shù)據(jù)所給的坐標真值數(shù)量較少,如果直接選擇為訓(xùn)練結(jié)果,容易產(chǎn)生過擬合現(xiàn)象。由于RPN中錨點數(shù)量多、形狀變化大,因此將錨點作為RPN的候選框進行正負樣本分類時,網(wǎng)絡(luò)會學(xué)習(xí)這些具有仿射變換屬性的錨點。通過計算文本坐標真值框與仿射變換錨點的面積交并比(Intersection-over-Union,IoU)來判斷檢測效果的好壞。正樣本定義為:最高的交并比或交并比大于0.7,錨點的方向角度與文本坐標真值的旋轉(zhuǎn)角度小于π/12[12],并且仿射變換的變換值小于2。負樣本定義為:交并比小于0.3,交并比大于0.7,但旋轉(zhuǎn)角度超過π/12。其余為不參與訓(xùn)練的多余樣本。
RPN在候選框生成完成后,還需要使用Faster-RCNN的全連接層對這些候選框進行準確檢測。檢測過程分為回歸網(wǎng)絡(luò)和分類網(wǎng)絡(luò)兩個部分,損失函數(shù)分為分類損失和回歸損失:分類損失是指候選框在前景背景分類時的誤差;回歸損失是指候選框與標注真值框的幾何參數(shù)的誤差。
對于仿射變換錨點,網(wǎng)絡(luò)采用了多任務(wù)損失函數(shù),定義為
L(p,l,v*,v)=Lcls(p,l)+λlLreg(v*,v)
(1)
式中:p——softmax函數(shù)計算的類的概率,p=(p0,p1);
l——分類標簽的指示符,l=1為文本,l=0為背景,對于背景不進行回歸;
v——文本標簽預(yù)測出的參數(shù)組,v=(vx,vy,vw,vh,vθ,vtrans_x);
Lcls,Lreg——分類損失和回歸損失;
λ——平衡控制參數(shù)。
分類損失與回歸損失之間由λ權(quán)衡。其中將分類損失定義為
Lcls(p,l)=-logpl
(2)
對于邊界框回歸,背景RoI被忽略。文字RoI采用了smooth-L1損失函數(shù),即
(3)
(4)
候選框形狀參數(shù)元組v和v*的計算方式為
vθ=θ-θa+kπ,
vtransx=transx-transxa
(5)
vθ*=θ*-θa+kπ,
(6)
式中:x,xa,x*——預(yù)測框、錨點和標注真值框;
w*,h*——標注框的寬和高;
wa,ha——錨點的寬和高;
k——任意整數(shù)。
仿身變換區(qū)域提議網(wǎng)絡(luò)可以提供大量不同形狀的錨點,針對任何仿射變換形狀的文本實例都可以在合適范圍內(nèi)擬合形狀。
由于引入了仿射變換形狀的錨點,在計算IoU時相交面積不再是矩形,因此可能會造成IoU計算不準確,影響網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)。針對新的錨點形狀,設(shè)計了一種求解任意形狀四邊形相交面積的IoU算法。輸入錨點和標注框的6個坐標形狀參數(shù)(x,y,h,w,θ,trans_x)轉(zhuǎn)化為4個角的點坐標,通過4個角的點坐標求出凸包形狀,即仿射變換錨點和標注框的形狀,通過這兩個圖形分別求出各自的面積和重疊面積,最終可以得到兩個仿射變換形狀的IoU。
本文在文字檢測公共競賽數(shù)據(jù)集ICDAR2015[13]和ICDAR2017MLT[14]上進行了實驗。這兩個數(shù)據(jù)集的圖像和標注坐標都具有仿射變換形狀,可以訓(xùn)練和測試文字檢測網(wǎng)絡(luò)的幾何文本檢測能力。ICDAR2015是用于文本檢測的常用數(shù)據(jù)集,共包含1 500張圖片,其中1 000張用于訓(xùn)練,其余用于測試。文本區(qū)域由四邊形的4個頂點注釋。ICDAR2017MLT是大規(guī)模的多語言文本數(shù)據(jù)集,包括7 200個訓(xùn)練圖像、1 800個驗證圖像和9 000個測試圖像。數(shù)據(jù)集由來自9種語言的完整場景圖像組成。與ICDAR2015類似,ICDAR2017MLT中的文本區(qū)域也由四邊形的4個頂點注釋。
實驗使用一塊TITAN X顯卡,顯存為12 GB,CPU為Intel Core i5-2320 @3.00GHz×4,內(nèi)存為15.6 GB。實驗中,網(wǎng)絡(luò)在前200 000次迭代中的學(xué)習(xí)率為10-3,后100 000次迭代中的學(xué)習(xí)率為10-4,權(quán)重衰減為5×10-4,動量為0.9。
訓(xùn)練時,錨點形狀參數(shù)中的傾斜角度(θ)和仿射變換變換值(trans_x)由輸入訓(xùn)練圖片的標注坐標真值求出。在輸入文本框水平時,當左上點坐標的x坐標值大于文本框最小外接矩形左上點x坐標值,則仿射變換偏移值取正;當右下點坐標的x坐標值小于文本框最小外接矩形右下點x坐標值,則仿射變換偏移值也取正,如圖3所示。圖3中,X是指某一段的偏移量。訓(xùn)練時生成的仿射變換變換值(trans_x)就由左上點坐標的偏移值與右下點坐標的偏移值取平均值得到。
圖3 仿射變換偏移值
使用ICDAR2015的訓(xùn)練數(shù)據(jù)集進行訓(xùn)練,該數(shù)據(jù)集包含1 000張圖像和10 886個文本實例。檢測的結(jié)果如下:召回率為0.62;準確率為0.81;F1值為0.71。即使給定了270種形狀的錨點,但是一些訓(xùn)練的文本區(qū)域仍然太小,導(dǎo)致召回率的提升不是很高。
與同類方法在標準數(shù)據(jù)集上進行了對比,結(jié)果如表1所示。
表1 不同文字檢測方法在ICDAR2015上的常用評價指標對比
由表1可以看出,由于本文方法帶有仿射變換屬性,可以更好地檢測到真實場景圖片中的文字目標區(qū)域,檢測出的文字框形狀與文字真實形狀更加貼合。
圖4為檢測過程模擬及檢測結(jié)果。由圖4可知,相比水平檢測方法和帶角度的矩形檢測方法,具有仿射變換形狀的檢測方法對于圖片上的文字區(qū)域能夠更好地框選出來,不會像普通檢測算法一樣框選出很多不需要的背景區(qū)域,從而提高了檢測精準度。另外,檢測出來的文字框具有仿射變換參數(shù),可以輕松地將文字區(qū)域反求轉(zhuǎn)換成矩形正面字體,方便后續(xù)識別等操作。
圖4 檢測過程模擬及檢測結(jié)果
針對現(xiàn)實場景圖片中的文字大部分具有仿射變換和多方向的形狀,以及傳統(tǒng)水平錨點檢測無法很好檢測場景圖片中文字的問題,本文設(shè)計了一個帶有仿射變換錨點的文本檢測網(wǎng)絡(luò)。利用網(wǎng)絡(luò)中較高卷積層的文本位置信息,結(jié)合具有仿射變換形狀的錨點,生成了具有任意方向和仿射變換形狀文本的檢測網(wǎng)絡(luò)。在ICDAR2015和ICDAR2017數(shù)據(jù)集上進行了實驗比較,結(jié)果表明,本文所提出的仿射變換文字檢測網(wǎng)絡(luò)在場景文字檢測任務(wù)中具有較高的準確率。