原文:PixelLink: Detecting Scene Text via Instance Segmentation
摘要:許多前沿的文本檢測算法都是基于深度學(xué)習(xí)的方法,依賴于邊界框回歸碉输,并執(zhí)行至少兩種預(yù)測:文本/非文本分類和位置回歸。在這些方法中种冬,回歸對邊界框的獲取起著關(guān)鍵作用。但這并不是必不可少的还栓,因?yàn)槲谋?非文本預(yù)測也可以看作是一種本身包含全部位置信息的語義分割碌廓。然而传轰,場景圖像中的文本實(shí)例往往彼此之間非常接近剩盒,使得它們很難通過語義分割來分離。因此慨蛙,需要實(shí)例分割來解決這個(gè)問題辽聊。本文提出了一種新的基于實(shí)例分割的場景文本檢測算法-像素鏈接。首先將同一實(shí)例中的像素鏈接起來分割出不同的文本實(shí)例期贫,然后直接從分割結(jié)果中提取文本包圍框跟匆。實(shí)驗(yàn)表明,與基于回歸的方法相比通砍,像素鏈接可以在幾個(gè)基準(zhǔn)上實(shí)現(xiàn)更好或更可比較的性能玛臂,同時(shí)只需要更少的訓(xùn)練迭代輪次和更少的訓(xùn)練數(shù)據(jù)烤蜕。
1、introduction:
ctpn迹冤, textboxes讽营, seglink, east等文本檢測算法大多基于全卷積網(wǎng)絡(luò)泡徙,執(zhí)行至少兩種預(yù)測:1橱鹏、文本/非文本分類。這樣的預(yù)測可以被看作是在文本包圍盒內(nèi)的像素概率堪藐,但它們更常用于回歸結(jié)果的置信度(例如莉兰,Textboxes、SegLink礁竞、East)糖荒。2、位置回歸模捂。文本實(shí)例或其分割/切片的位置被預(yù)測為相對參考框(例如TextBoxes, SegLink, CTPN)或邊界框絕對位置(例如EAST)的偏移量寂嘉。? 在seglink等方法中,分段之間的連接也被預(yù)測枫绅。在這些預(yù)測之后的后處理主要包括將段連接在一起(例如SegLink,CTPN)或?qū)⒎亲畲笠种茟?yīng)用于獲得的包圍框(例如TextBoxes,EAST)作為最終的輸出泉孩。
然而,如前所述并淋,文本/非文本預(yù)測不僅可以作為回歸結(jié)果的可信度寓搬,而且還可以作為一個(gè)本身包含位置信息的分割分?jǐn)?shù)圖,直接用于獲得邊界框县耽,因此句喷,回歸并不是必不可少的。而由于場景圖像中的文本實(shí)例通常是非常接近的兔毙,不可能僅通過語義分割(即文本/非文本預(yù)測)來分離唾琼,因此需要在實(shí)例層進(jìn)行進(jìn)一步的分割。
PixelLink提出實(shí)例分割來實(shí)現(xiàn)文本檢測澎剥,提出基于DNN進(jìn)行兩種像素預(yù)測:文本/非文本預(yù)測 和 link預(yù)測锡溯。1、文本實(shí)例中的像素被標(biāo)為正哑姚,否則被標(biāo)為負(fù)(非文本)祭饭。2、關(guān)于link的預(yù)測:每個(gè)pixel有8個(gè)近鄰叙量。對于給定的像素和它的一個(gè)鄰居倡蝙,如果它們位于同一實(shí)例中,它們之間的鏈接被標(biāo)記為正的绞佩,否則為負(fù)寺鸥。預(yù)測的正像素通過預(yù)測的正向鏈路連接在連通分量(CC)中猪钮。以這種方式實(shí)現(xiàn)了實(shí)例分割,每個(gè)CC表示一個(gè)檢測到的文本胆建。應(yīng)用OpenCV中的minAreaRect等方法就能得到各個(gè)連通分量的邊界框作為最終檢測結(jié)果躬贡。
2、related work:
語義&實(shí)例分割:實(shí)例分割不僅需要標(biāo)記每個(gè)像素類別眼坏,還需要區(qū)分實(shí)例拂玻。這與目標(biāo)檢測更相關(guān),近來也大量使用了目標(biāo)檢測系統(tǒng)宰译,如FCIS(R-FDN)檐蚜,Mask-RCNN(Faster rcnn),它們的分割結(jié)果也依賴于檢測性能沿侈。
基于分割的文本檢測:(2016)將檢測任務(wù)作為一個(gè)語義分割問題闯第,通過預(yù)測三種得分圖:文本/非文本、字符類和字符鏈接方向缀拭。然后將它們分組為單詞或行咳短。(Zhang等人),文本塊是從fcn預(yù)測的顯著性地圖中找到的蛛淋,字符候選詞是使用mser提取的咙好,行或詞是用手工構(gòu)建的規(guī)則最終形成的。(CCTN)粗網(wǎng)絡(luò)通過生成文本區(qū)域熱圖來粗略地檢測文本區(qū)域褐荷,然后通過細(xì)文本網(wǎng)絡(luò)將檢測到的區(qū)域細(xì)化為文本行勾效,該網(wǎng)絡(luò)輸出中心線區(qū)域熱圖和文本線區(qū)域熱熱圖。
基于回歸的文本檢測: 這類檢測方法大多得益于通用的目標(biāo)檢測的發(fā)展叛甫。CTPN层宫,擴(kuò)展anchor的概念用于預(yù)測文本的切片,再通過啟發(fā)式規(guī)則連接其监。TextBoxes萌腿,SSD用于文本的特定實(shí)例,采用大長寬比的anchors和不規(guī)則形狀的核抖苦,以適應(yīng)場景文本的大縱橫比特征毁菱。RRPN,在Faster-rcnn中對anchor和RooPooling增加旋轉(zhuǎn)睛约,以處理場景文本的方向鼎俘。SegLink哲身,采用SSD預(yù)測文本片段辩涝,再使用link預(yù)測將它們連接成完整的實(shí)例。EAST勘天,執(zhí)行非常密集的預(yù)測怔揩,再通過局部性的NMS進(jìn)行處理捉邢。所有這些基于回歸的文本檢測算法同時(shí)對置信度和位置有預(yù)測。
3 通過實(shí)例分割檢測文本:
其中預(yù)測的正像素通過預(yù)測的正向鏈接將預(yù)測的正像素連接到文本實(shí)例中商膊,然后直接從該分割結(jié)果中提取邊界框伏伐。
網(wǎng)絡(luò)架構(gòu):和SSD和SegLink一樣,使用VGG16作為特征提取器晕拆,fc6和fc7被轉(zhuǎn)換為卷積層藐翎。特征融合和像素預(yù)測的方式繼承自FCN。整個(gè)模型有兩個(gè)獨(dú)立的頭实幕,一個(gè)用于文本/非文本預(yù)測吝镣,另一個(gè)用于鏈接預(yù)測。兩者都使用了Softmax昆庇,因此它們的輸出分別有1*2=2和8*2=16通道末贾。
論文中給出了兩種網(wǎng)絡(luò)結(jié)構(gòu):PixelLink+VGG16 2s和PixelLink+VGG16 4s?。
對于PixelLink+VGG16 2s網(wǎng)絡(luò)結(jié)構(gòu):其融合的特征層包括:{conv2_2, conv3_3, conv4_3, conv5_3, fc_7}整吆,得到的特征圖分辨率為原圖的二分之一 拱撵。
對于PixelLink+VGG16 4s網(wǎng)絡(luò)結(jié)構(gòu):其融合的特征層包括:{conv3_3,conv4_3, conv5_3, fc_7},得到的特征圖分辨率為原圖的四分之一 表蝙。
通過設(shè)定兩個(gè)不同的閾值拴测,可以得到pixel positive集合和link positive集合,然后根據(jù)link positive將pixel positive進(jìn)行連接府蛇,得到CCs(conected compoents)集合昼扛,集合中的每個(gè)元素代表的就是文本實(shí)例.這里需要特別注意:給定兩個(gè)相鄰的pixel positive,它們之間的link預(yù)測是由當(dāng)前兩個(gè)pixel雙向決定的欲诺,而當(dāng)前兩個(gè)pixel需要連接(即兩個(gè)像素屬于同一個(gè)文本實(shí)例)的前提條件:two link中至少有一個(gè)link positive.連接的規(guī)則采用的是Disjoint set data structure(并查集)的方法.值得一提的是抄谐,在像素鏈接中,場景文本的方向不受限制扰法。
提取文本行的bounding box
基于上述語義分割的結(jié)果(即上述的CCs)蛹含,直接通過opencv的minAreaRext提取文本的帶方向信息的外接矩形框(即帶角度信息),具體的格式為((x,y),(w,h),θ)塞颁,分別表示中心點(diǎn)坐標(biāo)浦箱,當(dāng)前bbox的寬和高,旋轉(zhuǎn)角度祠锣,這一步驟導(dǎo)致了像素鏈接和基于回歸的方法之間的關(guān)鍵區(qū)別酷窥,即通過實(shí)例分割而不是位置回歸直接獲得包圍框。
實(shí)例分割的后處理:之所以要進(jìn)行后處理伴网,是因?yàn)樵趐ixel進(jìn)行連接的時(shí)候不可避免地會引入噪聲.文中主要是對已檢測的bbox通過一些簡單的幾何形狀判斷(包括bbox的寬蓬推,高,面積及寬高比等澡腾,這些主要是在對應(yīng)的訓(xùn)練集上進(jìn)行統(tǒng)計(jì)的出來的)進(jìn)行filter.經(jīng)過后處理后沸伏,可以提升文本行檢出的準(zhǔn)確率糕珊。例如,由于ic15中約99%的文本實(shí)例較短邊≥10像素毅糟,因此選擇10作為較短邊長的閾值红选。
4 優(yōu)化:
生成gt數(shù)據(jù):
像素的生成規(guī)則:在文本行bbox內(nèi)的pixel被標(biāo)注成positive,如果存在重疊文本時(shí)姆另,則非重疊的文本框區(qū)域內(nèi)的像素被標(biāo)注成positive喇肋,否則被標(biāo)注成negative 。
像素間的link生成規(guī)則:給定一個(gè)像素迹辐,若其與鄰域的8像素都屬于同一個(gè)文本實(shí)例苟蹈,則將其link標(biāo)注為positive,否則標(biāo)注為negative 右核。
這里值得注意的是:ground truth的計(jì)算是在縮放后(具體縮放的比例與其預(yù)測的feature map大小一致)的原圖上進(jìn)行的慧脱。
損失函數(shù):
所有圖片的正負(fù)像素樣本不均衡?贺喝,可以再對像素權(quán)重設(shè)計(jì)菱鸥。
pixel loss :因?yàn)槲谋緦?shí)例的尺寸不同,對每個(gè)像素賦予相同的loss權(quán)重是不合適的躏鱼,這對小面積的文本行是非常不公平的(即會偏向大面積的文本行)氮采,針對上述問題,論文中提出了Instance-Balanced Cross-Entropy Loss染苛,具體的做法是給每個(gè)文本實(shí)例相同的權(quán)重Bi(公式如下圖)鹊漠,對于第i個(gè)面積為Si文本實(shí),其內(nèi)部的每個(gè)像素的權(quán)重為 wi=Bi/Si,
negative pixel:論文中采用OHEM來選擇negative pixel.具體做法是根據(jù)negative-positive比例r (文中設(shè)置為3)茶行,文本行實(shí)例的總面積S躯概,選擇loss最大的r*S個(gè)negative pixel. 權(quán)重設(shè)為1,具體的pixel loss公式如下:?
其中W為positive pixel和negative pixel的權(quán)重矩陣(分別是wi=Bi/Si和1)畔师,Lpixel_CE是文本/非文本的cross-entrpy loss娶靡。
links LOSS:只對positive pixel分別計(jì)算positive links loss和negative links loss,
reduce_sum 塌縮求和:https://blog.csdn.net/arjick/article/details/78415675
關(guān)于塌縮講得很明白:https://www.zhihu.com/question/51325408中第二個(gè)答案看锉,簡單說就是對reduce_sum操作的axis進(jìn)行求和塌縮姿锭。
網(wǎng)絡(luò)的輸出?
網(wǎng)絡(luò)的輸出包括:文本/非文本( 1*2=2 )和Link預(yù)測( 8*2=16),所以對網(wǎng)絡(luò)總的輸出維度為18伯铣。注意:對于link的輸出feature map呻此,其排列的順序?yàn)椋簍op-left,top腔寡,top-rignt焚鲜,left,right,bottom-left恃泪,bottom郑兴,bottom-right
數(shù)據(jù)增廣:?和SSD相似犀斋,在SSD數(shù)據(jù)增廣上增加了隨機(jī)旋轉(zhuǎn)步驟.具體的做法是輸入圖像先以0.2的概率進(jìn)行隨機(jī)旋轉(zhuǎn)贝乎,旋轉(zhuǎn)的角度范圍值為[0,π=2叽粹, π览效,3π=2];然后在進(jìn)行crop操作(面積范圍在0.1-1之間虫几,aspect ratio為0.5-2)锤灿;最后統(tǒng)一將圖像縮放到 512*512,經(jīng)過數(shù)據(jù)增廣后,對于文本行的短邊小于10個(gè)像素的和文本實(shí)例小于20%的進(jìn)行忽略.對于忽略的文本實(shí)例在計(jì)算損失函數(shù)的時(shí)候權(quán)重設(shè)置為0辆脸。
5 實(shí)現(xiàn)細(xì)節(jié):
優(yōu)化方法:SGD優(yōu)化
動量=0.9但校,
weight_decay=5×10?4
vgg不是從ImageNet預(yù)訓(xùn)練模型中進(jìn)行微調(diào),而是通過Xavier方法隨機(jī)初始化
頭100次迭代中啡氢,學(xué)習(xí)速率設(shè)置為10?3状囱,其余則固定在10?2
IC15:訓(xùn)練從隨機(jī)初始化的VGG16模型開始,只在IC15訓(xùn)練集上進(jìn)行倘是。4S模型需要大約40K迭代訓(xùn)練亭枷,2s更長,大約60K迭代搀崭。用于后濾波的最小短邊長度和面積叨粘,分別設(shè)置為10和300,對應(yīng)忽略了“不關(guān)心”實(shí)例的ic15數(shù)據(jù)集99%的情況瘤睹。像素和鏈接的閾值通過網(wǎng)格搜索找到并設(shè)置為(0.8升敲,0.8)。在測試中轰传,輸入圖像的大小被調(diào)整為1280×768冻晤。
MSRA-TD500:在ic15上預(yù)訓(xùn)練大約15k的迭代,并在td和HUST上進(jìn)行大約25k迭代的微調(diào)绸吸。測試圖像大小調(diào)整為768×768鼻弧。像素和鏈接的閾值設(shè)置為(0.8,0.7)锦茁。后濾波的最小短邊為15和最小面積600攘轩。
檢測ic13中的水平文本:ic15的最終模型在ic13、td 500和tr400上微調(diào)码俩,可進(jìn)行大約10k的迭代度帮。在單尺度測試中,所有圖像都被調(diào)整為512×512。多尺度包括(384笨篷,384)瞳秽,(512,512)率翅,(768练俐,384),(384冕臭,768)腺晾,(768,768)辜贵,最大長度為1600悯蝉。像素和鏈接的閾值(0.7,0.5)用于單尺度測試托慨,(0.6鼻由,0.5)用于多尺度測試。99%的閾值為10厚棵,300蕉世,分別用于較短的邊和面積,用于后濾波窟感。與EAST和TextBox等基于回歸的方法不同讨彼,像素鏈接沒有直接輸出作為每個(gè)檢測邊界框的可信度,因此它的多尺度測試方案是專門設(shè)計(jì)的柿祈。特別是哈误,不同尺度的預(yù)測映射被統(tǒng)一調(diào)整到所有特征圖中的最大高度和最大寬度。然后躏嚎,通過平均融合它們蜜自。其余步驟與單尺度測試相同。多尺度提升4-5個(gè)點(diǎn)卢佣,和TextBoxes差不多重荠。
6 分析:
優(yōu)勢分析:PixelLin的預(yù)測層神經(jīng)元只需要觀察自身及其相鄰像素在特征映射上的狀態(tài)。換言之虚茶,Pixelink對感受野的要求最低戈鲁,而且學(xué)習(xí)的任務(wù)更簡單∴诮校可以從上面的假設(shè)中找到一個(gè)有用的設(shè)計(jì)深模型的指南:如果可能的話婆殿,簡化深模型的任務(wù),因?yàn)樗梢允顾麄兏斓赜?xùn)練罩扇,更少的數(shù)據(jù)需要婆芦。從非常有限的數(shù)據(jù)量中從頭開始訓(xùn)練Pixelink的成功也表明文本檢測比一般的對象檢測要簡單得多怕磨。文本檢測可能更多地依賴于低層紋理特征,而不依賴于高層語義特征消约。
模型分析:
鏈接設(shè)計(jì)非常重要肠鲫,因?yàn)樗鼘⒄Z義分段轉(zhuǎn)換為實(shí)例分割,這對于像素鏈接中相鄰文本的分離是必不可少的或粮。
不使用實(shí)例平衡(IB)导饲,并且在損失計(jì)算期間將所有正像素的權(quán)重設(shè)置為相同。 即使沒有IB被啼,像素鏈接也可以實(shí)現(xiàn)81.2的F-分?jǐn)?shù)帜消,勝過現(xiàn)有技術(shù)棠枉。 當(dāng)使用IB時(shí)浓体,可以獲得稍微好的模型。 繼續(xù)在IC13上進(jìn)行實(shí)驗(yàn)辈讶,性能差距更明顯命浴。
圖像被調(diào)整為384×384用于訓(xùn)練,使得召回率和精度都明顯下降贱除,這一現(xiàn)象與SSD是一致的生闲。
后過濾被刪除,導(dǎo)致召回率略有提高月幌,但精度顯著下降碍讯。?嗯哼扯躺?
2s的速度小于4s的一半捉兴,這說明了性能和速度之間的權(quán)衡。
7 總結(jié)和后續(xù):
提出了一種新的文本檢測算法录语,通過將同一文本實(shí)例中的像素鏈接到一起倍啥,進(jìn)行實(shí)例分割來實(shí)現(xiàn)檢測任務(wù)。從分割結(jié)果中直接提取檢測到的文本的包圍框澎埠,而不執(zhí)行位置回歸虽缕。由于更小的感受野和更容易學(xué)習(xí)的任務(wù),所以可以用較少的迭代從零開始訓(xùn)練像素鏈接蒲稳,同時(shí)減少迭代次數(shù)氮趋。
可嘗試vgg以外其他模型,后處理部分魯棒性差江耀。