該演算法是一種高效的而且準確的場景文字檢測演算法,再icdar 2015資料集上,在720解析度的情況下可以實現 0.7820的f-score和13.2fps。該文章的主要貢獻如下:
1.提出了乙個包含兩個stage的場景文字檢測方法,乙個是全卷積網路(fcn)和乙個nms合併過程,fcn用來排除冗餘和耗時的中間步驟。
2.該方法十分靈活,可以用來生成單詞級或者行級的**,而且其形狀可以是旋轉的框或者四邊形。
3.該方法在速度和準確性上都顯著高於當前已有的最優方法。
首先介紹一下east的網路結構:該網路可以分為三個組成部分:1.特徵提取器的主幹;2.特徵融合的分支;3.輸出層;從下面的圖中可以很清晰的看出來整個網路的結構。
特徵融合分支的公式如下:對應到上面的結構圖也非常好理解。
最後的網路輸出可以看到,1個通道表示的是score map,geometry map有兩種表現形式,一種是rbox,另一種是quad。
rbox:4個通道用來表示軸對齊的邊界框(aabb)r和1通道表示旋轉角度,其中r的公式如下,4個通道分別表示畫素位置到邊界矩形框的頂部,右邊,底部,和左邊邊界的距離。
quad:使用8個數字來表示從四邊形的四個角頂點到畫素位置的座標偏移,每個距離便宜包含兩個值 (∆xi, ∆yi),輸出包含8個通道。
上面說到了該網路的輸出,但是我們實際的標籤不是這種形式的,所以我們要根據標籤檔案當中的數值來生成相應的標籤用於訓練。
score map和rbox的 geometry map生成流程如下圖:
對於乙個四邊形 q = },pi = ,表示四邊形的順時針方向的四個頂點,從上圖可以看到,我們最終要的是(a)中綠色框的部分,即相對於黃色的虛線框縮小一定程度可以得到綠色的框。為了縮小q,先對於每個頂點pi計算乙個長度ri:
可以看到,上述公式要表達的意思就是該頂點連線的兩條邊取最短的那一條。縮小q的過程大致如下:先縮小較長的兩條邊,然後縮小較短的兩條邊。對於每兩個相對的邊,決定誰是更長的一對的方式是比較他們長度的均值。對於每條邊 (pi, p(i mod 4)+1),我們通過將其兩個端點沿著邊向內分別移動0.3ri和0.3r(i mod 4)+1。
geometry map的生成方式如下:首先用乙個旋轉的矩形,用最小的面積可以覆蓋住該文字區域。然後對於每個有正例得分的畫素,計算他到四個文字框邊界的距離,並且使其作為rbox的ground truth的4個通道,而對於quad ground truth,在其8通道的geometry map上每個正得分畫素的值是它的四邊形的四個頂點到它的座標的偏移。
**實現上有很多細節部分,例如參照了這乙份工程的**:
在生成score_map的時候,是基於原圖的四分之一大小(因為輸出的特徵圖的大小就是四分之一原圖大小),然後在縮小時先縮短較長的兩邊,假設該邊edge1的兩個點時v1,v2,對於v1和v2兩點各自都連著兩條邊v1(r1,r2),v2(r2,r3),取和兩個點相連的短邊(可能是r1和r3,也可能都是r2,這裡假設是r1和r3),然後分別將v1和v2兩點沿著該邊的方向向內移動0.3r1和0.3r3的長度。
在生成geo_map的時候,先每隔1度遍歷所有角度(-90,90),找到最小外接矩形和矩形的角度,然後旋轉文字框旋轉到theta=0的水平狀態,這樣是為了方便計算d1,d2,d3,d4。
另外還有乙個ignore_map,在icdar_2015資料集中,有些標籤是「###」,這個表示是無法看清的一些文字,該**中會把這些區域取出來,然後忽略掉這些區域,個人覺得這個也是為了防止誤檢。
損失函式的公式如下:
ls and lg分別表示score map的損失和geometry map的損失。 λg表示兩種loss的重要程度的乙個權重。本文中設定為1.
score map loss
這裡使用的是類平衡交叉熵損失( classbalanced cross-entropy),公式如下:
yˆ = fs表示**的score map,而y∗表示ground truth。β是正樣本和負樣本的平衡因子,其計算方式如下:
rbox:aabb部分使用的是iou loss,公式如下:
rˆ和 r∗分別表示**和ground truth的幾何形狀,則它們的相交矩形 |rˆ ∩ r∗|為:
d1, d2, d3 和d4分別表示該畫素到相應矩形上,右,下,左邊界的距離。
並集公式則為:
然後就是旋轉角度的損失了,計算如下:
rbox的幾何損失則是aabb損失和旋轉角度損失的和。
quad使用的是尺度歸一化的smoothed-l1 loss。所有的q中的座標值
這裡歸一化項nq是短邊的長度。
文字檢測演算法 EAST閱讀筆記
多種文字檢測演算法效能對比及演算法介紹 之前的文字檢測演算法在處理較難的場景時往往會出錯,即使是使用了深度學習演算法的也表現的不好,因為這些演算法由多個步驟組成,不僅耗時,表現還不好。本文提出了乙個簡單的能夠快速準確定位場景文字的演算法,改演算法直接 任意形狀或矩形word或者行文字。在 icdar...
EAST模型分析
east做文字檢測只需要兩步 先是乙個全卷積的網路直接產生乙個字元或者文字行的 可以是旋轉的矩形或者不規則四邊形 然後通過nms non maximum suppression 演算法合併最後的結果。下圖是east的pipeline。第乙個階段是基於全卷積網路 fcn 模型,直接產生文字框 第二個階...
EAST文字檢測學習整理
復現 傳統的文字檢測方法和一些基於深度學習的文字檢測方法,大多是multi stage,在訓練時需要對多個stage調優,這勢必會影響最終的模型效果,而且非常耗時 針對上述存在的問題,本文提出了端到端的文字檢測方法,消除中間多個stage 如候選區域聚合,文字分詞,後處理等 直接 文字行 提出了基於...