PAN論文閱讀筆記

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

https://zhuanlan.zhihu.com/p/79111059

https://github.com/WenmuZhou/PAN.pytorch

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章