Efficient and Accurate Arbitrary-Shaped Text Detection with Pixel Aggregation Network
PAN是一個任意形狀文字檢測模型,稱之爲像素聚合網絡(PAN)。是psenet的改進版本,最突出的特點是既快又好。
核心是: 可學習的後處理方法——像素聚合法,它能夠通過預測出的相似向量來引導文字像素去糾正核參數
本文作者之一謝恩澤的另一篇SPCnet( Supervised Pyramid Context Network)其中有一個亮點rescore模塊,感覺跟本文的文本實例重建有一點點的聯繫。
PAN的簡單流程如圖 2,有兩個步驟
(1)用分割網絡預測文字區域、核區域(與psenet中的核類似,爲文本區域的縮放)以及相似向量;
(2)從預測的核中重建完整的文字實例
1.網絡特徵提取及預測部分
整體結構如下:
FPEM(特徵金字塔增強模塊)以及FFM(特徵融合)模塊,目的是構造輕量級的FPN,提取更好的特徵
爲了加快網絡的速度,對resnet18得出的feature map的維度進行了減小,對應上圖的reducing channel過程;
其次是特徵圖的多層融合,單個FPEM模塊借鑑FPN(如圖4),FPEM是一個 U形模組,由兩個階段組成,up-scale 增強、down-scale 增強,特徵從上到下融合,又從下往上融合,
不斷增強各個尺度的特徵信息,因維度小以及DWConv使得計算量小;
FPEM模塊可以級聯,多個模塊產生多個結果,這些結果可以通過FFM模塊進行融合(如圖5),同樣尺寸的feature map採用+操作,然後進行upsampling再拼接得到最終的feature map.
在得到最終的feature map後,網絡的輸出包含三個部分:如圖3(g)、(h)、(i)
(g)文本區域,(h)核區域,(i)每個元素的相似向量(4channels,用於像素聚合)
2.像素聚合階段:(核心部分文字實例重建)
上面 這一段是曠視官方總結的,非常精練清楚。需要結合loss計算對於原理會理解更清楚。
融合過程:
從kernel中通過連通域確定初始的文本實例集合 K 對於每一個文本實例Ki,按4方向從text_region中融合文本像素。
融合條件: 文本像素點 p 和 Ki 之間similarity vectors的歐式距離< d (測試過程中d默認爲6)。
重複步驟直到text_region沒有文本像素
3.Loss計算:
loss部分包含文本區域、核區域、agg(使類內距離小)、dis(使類間距離大)
文本區域和核區域的Loss與Psenet一樣,採用dice loss,因爲文本和非文本的數量嚴重不均衡。
主要是agg和dis兩部分loss的計算比較複雜。
agg_loss的公式講解以及代碼如下圖:(轉自知乎周軍,以及github周軍的PAN代碼)
結合代碼更好理解:
dis_loss講解以及代碼:
計算Loss時,文本loss採用ohem,agg和dis兩部分Loss只關心ground truth 區域內的像素(去除冗餘與Psenet一樣)。
實驗結果略,論文中sota對比以及消融實驗非常詳細。
參考:
https://www.zhihu.com/search?type=content&q=%20Pixel%20Aggregation%20Network
https://zhuanlan.zhihu.com/p/81415166