大白話《Shape Robust Text Detection with Progressive Scale Expansion Network》

大白話《Shape Robust Text Detection with Progressive Scale Expansion Network》

來自專欄 DeepInsight

論文題目:Shape Robust Text Detection with Progressive Scale Expansion Network

論文地址:arxiv.org/abs/1806.0255

源碼地址:github.com/whai362/PSEN (代碼目前還在整理中,後面會放出)

問題1:如何檢測任意形狀的文字塊?

目前很多文字檢測的方法都是基於bounding box回歸的,雖然它們在常規的文字塊檢測任務中取得了不錯的效果,但是它們很難準確地定位彎曲文字塊(Fig. 1 (a))。而基於語義分割的方法恰好能很好地解決這個問題,語義分割可以從像素級別上分割文字區域和背景區域。

Fig. 1:不同方法的文字檢測效果。

問題2:如何分離靠的很近的文字塊?

直接用語義分割來檢測文字又會遇到新的問題:很難分離靠的很近的文字塊(Fig. 1 (b))。因為語義分割只關心每個像素的分類問題,所以即使文字塊的一些邊緣像素分類錯誤對loss的影響也不大。對於這個問題,一個直接的思路是:增大文字塊之間的距離,使它們離得遠一點。基於這個思路,我們引入了新的概念「kernel」,顧名思義就是文字塊的核心。從Fig. 2中我們可以看到:利用「kernel」可以有效地分離靠的很近的文字塊。

Fig. 2. kernel的效果。

問題3:如何通過「kernel」來構建完整的文字塊?

上述的「kernel」只是文字塊的核心,並不是完整的文字塊,不能作為最終的檢測結果。在這篇文章中,我們通過一種基於廣度優先搜索的漸進擴展演算法來構建完整的文字塊。這個方法的核心思想是:從每個「kernel」出發,利用廣度優先搜索來不斷地合併周圍的像素,使得「kernel」不斷地擴展,最後得到完整的文字塊。具體演算法後面會詳細介紹。

解決了以上的三個問題,相信大家對檢測任意形狀的文字塊也有了初步的想法,下面開始講一下PSENet的總體結構和漸進擴展演算法。

首先是PSENet的總體結構。

如圖Fig. 3所示,PSENet的主幹網路是FPN,一張圖片 I 通過FPN可以得到四個Feature Map( P_2, P_3, P_4, P_5 ),然後通過函數 C(cdot) 合併 P_2, P_3, P_4, P_5 ,得到 FC(cdot) 的具體公式如下:

F=C(P_2, P_3, P_4, P_5)=P_2 parallel mbox{Up}_{	imes 2}(P_3) parallel mbox{Up}_{	imes 4}(P_4) parallel mbox{Up}_{	imes 8}(P_5)

其中,「parallel」表示拼接操作,mbox{Up}_{	imes 2}, mbox{Up}_{	imes 4}, mbox{Up}_{	imes 8} 分別表示2,4,8倍上採樣。接著,通過 F 來預測不同kernel scale的分割圖 S_1, S_2, ..., S_n 。 其中 S_1 是最小kernel scale的分割圖,裡面不同的連通區域都可以看作不同文字塊的「kernel」。 S_n 是最大kernel scale的分割圖,是完整的文字快。最後通過一個漸進擴展演算法(Progressive Scale Expansion)去不斷地擴展 S_1 中的每個「kernel」,直到變成 S_n 中完整的文字塊。

Fig. 3. PSENet的總體結構。

下面講漸進擴展演算法(Progressive Scale Expansion)。

漸進擴展演算法的輸入是不同kernel scale的分割圖 S_1, S_2, ..., S_n,輸出是最後的檢測結果 R 。不妨令 n=3 ,則漸進擴展的演算法的過程如Fig. 4所示。首先,對 S_1 求連通區域,得到不同文字塊的「kernel」(Fig. 4 (b))。然後,通過Fig. 4 (g)所示的擴展操作合併 S_2 中的文字像素,得到擴展後的結果(Fig. 4 (c))。最後,使用同樣的擴展操作合併 S_3 中的文字像素,得到完整的文字塊(Fig. 4 (d))。其中Fig. 4 (g)所示的擴展操作是基於廣度優先搜索實現的。

Fig. 4. 漸進擴展演算法的過程。其中CC表示求連通區域,EX表示擴展操作。

到這裡PSENet已經差不多講完,接下來我們看看PSENet在不同數據集上的表現,如Table 1所示,PSENet在常規數據集ICDAR 2015和ICDAR 2017 MLT上的表現不弱於主流的檢測演算法,但在彎曲文字數據集SCUT-CTW1500上的表現超過了之前最好的結果6.37%。Fig. 5是PSENet在不同數據集上的一些結果。

Table 1. PSENet在不同數據集上的表現

Fig. 5. PSENet在不同數據集上的結果

更多詳情請看原文,如有錯誤請指正。


推薦閱讀:

九章演算法 | Amazon 面試題:Minimum String Array Coverage
021 Merge Two Sorted Lists[E]
Leetcodes Solution 3 Longest Substring Without Repeating Characters
九宮飛星入中宮演算法
陽宅堪輿基礎,宅命推演算法!

TAG:機器學習 | 演算法 | 物體檢測 |