剛好看到國內的曠視今年在CVPR2017的一篇文章:EAST: An Efficient and Accurate Scene Text Detector。而且有開放的代碼,學習和測試了下。
題目說的是比較高效,它的高效主要體現在對一些過程的消除,其架構就是下圖中對應的E部分,跟上面的比起來的確少了比較多的過程。這與去年經典的CTPN架構類似。不過CTPN只支持水平方向,而EAST在論文中指出是可以支持多方向文本的定位的。
對於長文本效果不好。

優勢:
提供了方向信息,可以檢測各個方向的文本
缺點:
對較長的文本檢測效果不好,感受野不夠長
整體網絡結構分為3個部分
(1) 特征提取層:
使用的基礎網絡結構是PVANet,分別從stage1,stage2,stage3,stage4抽出特征,一種FPN(feature pyramid network)的思想。
(2) 特征融合層:
第一步抽出的特征層從后向前做上采樣,然后concat
(3) 輸出層:
輸出一個score map和4個回歸的框+1個角度信息,或者輸出,一個scoremap和8個坐標信息。
由於程序實現使用的基礎網絡不是pvanet網絡,而是resnet50-v1。
在caffe版本的resnet50實現中,只有第一個卷積后面的pooling和最后一層的gloabl pooling,詳細結構見reference,網絡通過卷積層的stride=2操作實現類似pooling的效果
而本程序使用的slim中帶的resnet50包含了5個pooling。
Resnet50結構,最后一個featuremap本質上將輸入圖像縮小16倍(4個pooling),最后一個gloabl pooling,類似於vgg中的全連接。gloabl pooling是googlenet和Resnet的專利。
本文網絡結構主要取了pool2,pool3,pool4,pool5,的featuremap引出,分別進行uppooling,concat,conv操作,得到最終的featuremap,然后進行卷積,分別輸出channel=1的F_score
,channel=4的geo_map,channel=1的angle_map。
標簽生成過程:

(a) 中黃色的為人工標注的框,綠色為對黃色框進行0.3倍邊長的縮放后的框,這樣做可以進一步去除人工標注的誤差,拿到更准確的label信息。
(b) 為根據(a)中綠色框生成的label信息
(c) 中先生成一個(b)中白色區域的最小外接矩,然后算每一個(b)中白色的點到粉色最小外接矩的上下左右邊的距離,即生成(d),然后生成粉色的矩形和水平方向的夾角,即生成角度信息(e),e中所有灰色部分的角度信息一樣,都是同樣的角度。
論文采用的架構如下:

后來,有大佬改進EAST針對長文本檢測效果不好的缺陷,提出advancedEAST,結構如下:

開源源碼:https://github.com/huoyijie/AdvancedEAST
僅為學習記錄,侵刪,感謝作者。
