《ABCNet》文本識別
共 2419字,需瀏覽 5分鐘
·
2022-02-09 17:41
《ABCNet:Real-time Scene Text Spotting with Adaptive Bezier-Curve Network》-- 2020CVPR
補充知識點:
伯恩斯坦多項式(Bernstein polynomials):是逼近連續(xù)函數(shù)的一系列多項式,可用來證明,在區(qū)間 區(qū)間上所有的連續(xù)函數(shù)都可以用多項式來逼近,并且收斂性很強,也就是一致收斂。
貝塞爾曲線(Bézier curve):又稱貝茲曲線或貝濟埃曲線,是應(yīng)用于二維圖形應(yīng)用程序的數(shù)學(xué)曲線,可以使用很少的控制點生成復(fù)雜平滑曲線。常用類型分為:一階貝塞爾(直線)、二階貝塞爾(曲線)、三階貝塞爾曲線。貝塞爾曲線可理解為伯恩斯坦多項式的圖形化。
貢獻:
- 本文是最早通過一個參數(shù)化的Bezier curve曲線來自適應(yīng)擬合任意形狀的文本的,這中方法可用于彎曲場景文本檢測;
- 本文設(shè)計了一個新穎的BezierAlign layer,用于精確地提取任意形狀文本實例的卷積特征。將BezierAlign用于特征對齊,那么識別分支可以自然地連接到整體結(jié)構(gòu)之中,這使得識別分支可以設(shè)計成一個輕量級的結(jié)構(gòu)。
- 相比于標準的bounding box detection方法,本文Bezier curve的檢測方法引入了可忽略的計算負擔(dān),這使得我們的方法在效率和精度上都有提升。
Adaptive Bezier Curve Network(ABCNet)
ABCNet是一個端到端可訓(xùn)練的任意形狀的場景文本識別網(wǎng)絡(luò)。結(jié)構(gòu)如下:
檢測框架:采用了一個single-shot, anchor-free的神經(jīng)網(wǎng)絡(luò)。anchor boxes的移除極大地簡化了檢測任務(wù)。
ABCNet分為兩個部分:1)Bezier curve檢測; 2)Bezier-Align and 識別分支。
---------------------------------------------------------
Bezier Curve Detection
Bezier 曲線是一個參數(shù)化的曲線用表示,該曲線使用伯恩斯坦多項式作為它的偏置。定義如下:
n表示degree;表示第i個控制點; 表示Bernstein basis polynomials,其定義如下:
是binomial系數(shù)。
為了使用Bezier curves擬合任意形狀的文本,本文從現(xiàn)有的數(shù)據(jù)集和真實世界中綜合分析了任意形狀的文本,發(fā)現(xiàn)cubic Bezier曲線能夠擬合不同形狀的場景文本的形狀。
基于cubic Bezier曲線,我們可以將任意形狀的場景文本簡化到一個有八個控制點的bounding box回歸任務(wù)中。特別地,筆直的文本有四個控制點(四個頂點),屬于一種特殊的任意形狀的文本,為了保持一致性,我們在每條邊的上插入額外的兩個控制點。
為了學(xué)習(xí)到控制點的坐標,我們首先要生成Bezier curve ground truth,然后使用回歸的方法去學(xué)習(xí)目標。對于每一個文本樣例:
和 表示4個頂點最小的x和y的值。預(yù)測相關(guān)距離的優(yōu)勢是它與Bezier curve的控制點是否超過了圖形區(qū)域無關(guān)。在檢測網(wǎng)絡(luò)內(nèi)部,我們僅僅需要一個有16個輸出通道的卷積層去學(xué)習(xí) 和 ,這樣操作的消耗是非常少的。
即:學(xué)習(xí)目標為四個頂點中最小的x、y的值以及控制點與最小值點的相關(guān)距離。
-------------------------------------------------
Bezier Ground truth generation
在本小節(jié),主要介紹了怎樣基于原始標注信息生成Bezier curve的ground truth。
從曲線邊框中給定一個標注點 , 表示第i個標注點,主要的目的就是獲得cubic Bezier曲線 的公式1的最優(yōu)參數(shù)。為了實現(xiàn)這一點,使用了標準最小平方的方法(standard least square method),公式如下:
m表示曲線邊框的標注點數(shù)目。對于CTW1500,m分別是5和7。t是用累計長度與多邊周長之比來計算的。
根據(jù)公式1和公式4將原始的四邊形標注轉(zhuǎn)化為參數(shù)化的Bezier curve。注意,我們直接使用第一個和最后一個標注點作為第一個 和最后一個 控制點。原始標注和生成的Bezier curve的比較如圖5。
另外,基于結(jié)構(gòu)化的Bezier 曲線的bounding box,我們可以容易地使用我們的BezierAlign 去變換曲線文本到一個水平的形式而不需要過多的變形,更多Bezier curve生成的結(jié)果如圖6所示:
-------------------------------------------------
Bezier Curve Synthetic Dataset
具體操作見原文。
BezierAlign
為了能夠?qū)崿F(xiàn)端到端的訓(xùn)練,許多方法采用各種各樣的的采樣方式(特征對齊)去連接識別分支。
通過利用一個Bezier curve bounding box的參數(shù)化特性,本文提出了用于特征采樣的BezierAlign。BezierAlign的采樣網(wǎng)格并不是矩形。任意形狀網(wǎng)格的每一列都與文本的Bezier曲線邊界正交,采樣點在寬度和高度上有等距的間隔,分別對坐標進行雙線性插值。
給定一個輸入特征圖和Bezier曲線控制點,本文同時處理長方形的輸入特征圖的所有輸入像素值,特征圖的尺寸為。像素 的坐標為 ,則可以通過公式5進行計算:
然后使用t和公式1去計算上面Bezier curve邊界 以及下面Bezier curve邊界 。使用 和 ,可以通過公式6檢索采樣點 :
通過 的位置,可以使用雙線性差值來計算最終的結(jié)果。
Recognition branch
識別分支的結(jié)構(gòu)如下:
實驗結(jié)果:
Total-Text:
ablation study:
與其他方法的比較:
CTW1500:
