ABCNet: Real-time Scene Text Spotting with Adaptive Bezier-Curve Network 自適應 Bezier 曲線網絡實時場景文本識別

Paper : https://arxiv.org/abs/2002.10200v2
Code : https://github.com/aim-uofa/AdelaiDet
Code : https://github.com/Yuliang-Liu/bezier_curve_text_spotting
作者交流報告會:https://www.bilibili.com/video/BV1W54y1D7ap?p=8

基於 FPN 的 Anchor-Free 的文本檢測模塊,連接檢測和識別的採樣模塊,輕量級的識別模塊。

使用參數化的 Bezier 曲線 自適應的擬合任意形狀的文本

  1. 爲了在圖像中準確定位定向的和彎曲的場景文本,首次使用 Bezier 曲線引入了一種新的簡潔的彎曲場景文本的參數化表示形式。 與標準邊界框表示相比,它引入的計算開銷可忽略不計。

  2. 提出了一種採樣方法,也稱爲 BezierAlign,用於精確的特徵對齊,因此識別分支可以自然地連接到整個結構。 通過共享主幹特徵,可以將識別分支設計爲輕型結構。

  3. 方法的簡單性使其可以實時執行推理。 ABCNet 在兩個具有挑戰性的數據集 Total-Text 和 CTW1500 上實現了最先進的性能,展示了有效性和效率上的優勢

在這裏插入圖片描述

Bezier Curve Detection

c(t)=i=0nbiBi,n(t),0t1,(1) c(t) = \sum_{i=0}^n b_i B_{i, n}(t), 0 \leq t \leq 1, \tag{1}

nn 代表角度,bib_i 代表第 ii 個控制點,Bi,n(t)B_{i,n}(t) 代表伯恩斯坦基本多項式(Bernstein):
Bi,n(t)=(ni)ti(1t)ni,i=0,,n,(2) B_{i,n}(t) = \begin{pmatrix} n \\ i\end{pmatrix} t^i (1-t)^{n-i}, i=0,\dots, n, \tag{2}
其中 (ni)\begin{pmatrix} n \\ i\end{pmatrix} 是一個二項式係數。爲了用 Bezier 曲線擬合一個文本的多邊形形狀,從存在的數據集和實際場景中觀察了多邊形形狀的場景文本,發現使用三次的 Bezier 曲線可以有效的擬合不同種類的多邊形形狀的場景文本。

基於三次 Bezier 曲線,可以把多邊形場景文本的檢測簡化爲一個使用 8 個控制點的邊框迴歸。有四個控制點的直文本是多邊形場景文本的典型情況。爲了保持一致,我們在每個長邊的三分點上插入了另外兩個控制點。
Δx=bixxmin,Δy=biyymin,(3) \Delta_x = b_{ix} - x_{min}, \Delta_y = b_{iy} - y_{min}, \tag{3}
xmin,yminx_{min}, y_{min} 分別代表四個頂點的最小 xx 和最小 yy 。在檢測部分,使用一個有16通道的卷積層學習 Δx\Delta_xΔy\Delta_y

Bezier Ground Truth Generation

給定曲線邊框標註點 {pi}i=1n\{p_i\}_{i=1}^npip_i 代表第 ii 個標註點,主要目標是獲得公式(1)(1) 中三次 Bezier 曲線的最優參數。可以簡單地應用標準最小二乘法:

[B0,3(t0)B3,3(t0)B0,3(t1)B3,3(t1)B0,3(tm)B3,3(tm)][bx0by0bx1by1bx2by2bx3by3]=[px0py0px1py1pxmpym](4) \begin{bmatrix} B_{0, 3}(t_0) & \dots & B_{3,3}(t_0) \\ B_{0, 3}(t_1) & \dots & B_{3,3}(t_1) \\ \vdots & \ddots & \vdots\\ B_{0, 3}(t_m) & \dots & B_{3,3}(t_m) \end{bmatrix} \begin{bmatrix} b_{x_0} & b_{y_0} \\ b_{x_1} & b_{y_1} \\ b_{x_2} & b_{y_2} \\ b_{x_3} & b_{y_3} \end{bmatrix} = \begin{bmatrix} p_{x_0} & p_{y_0} \\ p_{x_1} & p_{y_1} \\ \vdots & \vdots \\ p_{x_m} & p_{y_m} \end{bmatrix} \tag{4}

以下圖爲例,右邊一項是標註點,中間一項是要求的貝塞爾曲線的控制點。爲了求解控制點,需要算出係數 t ,t 通過折線段的累計長度與七個點的折線段的周長的比值來確定,根據貝塞爾的公式可以求得所有的伯恩斯坦多項式的值,又由於方程的個數大於解的個數,可以通過最小二乘法反解出四個控制點的座標值。

其中 mm 是曲線邊框的標註點的數量。Total-Text 和 CTW1500 ,mm 分別是 5 和 7 。tt 是通過使用累積長度與多邊形周長之比來計算的。根據公式 (1)(4)(1) (4) ,把原始多邊形標註轉變爲參數化的 Bezier 曲線。直接使用第一個和最後一個標註點作爲第一和最後一個控制點。基於結構化後的 Bezier 曲線邊框,可以在沒有劇烈變形的情況下很容易地通過 BezierAlign 把曲線文本轉爲水平文本。
在這裏插入圖片描述

BezierAlign

給定輸入特徵圖和 Bezier 曲線控制點,我們同時處理大小爲 hout×wouth_{out}×w_{out} 的矩形輸出特徵圖的所有輸出像素。

以位置 (giw,gih)(g_{iw}, g_{ih}) 處的像素 gig_i 爲例,可以通過以下公式計算 tt
t=giwwout t = \frac{g_{iw}}{w_{out}}
然後使用 tt 和公式 (1)(1) 計算 Bezier 曲線的上邊界點 tptp 和下邊界點 bpbp,使用 tptpbpbp ,可以通過公式 (6)(6) 計算出索引採樣點 opop 的位置:
op=bpgihhout+tp(1gihhout) op = bp \cdot \frac{g_{ih}}{h_{out}} + tp \cdot (1 - \frac{g_{ih}}{h_{out}})
通過 opop 的位置,我們可以輕鬆地應用雙線性插值來計算結果。

Recognition branch

與主幹網絡共享特徵圖,設計了一個輕量級的識別分支
在這裏插入圖片描述在 TotalText上的結果:

在這裏插入圖片描述在 CTW1500 上的結果:
在這裏插入圖片描述文本截取的對比:
在這裏插入圖片描述

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