ModelArts自動學習實現中秋月餅分類
950
2025-03-31
現有文檔版面分析方法大致可分為兩種:基于NLP的方法將版面分析任務看作是序列標簽分類任務(sequence labeling),但是該類方法在版面建模上表現出不足,無法捕獲空間信息;基于CV的方法則將版面分析看作是目標檢測或分割任務(object detection or segmentation),該類方法的不足表現在(1)缺乏細粒度的語義、(2)簡單的拼接方式、(3)未利用關系信息。如圖1展示的VSR的motivation示意圖,為解決上述各方法的局限性問題,本文提出一種融合視覺、文本、關系多模態信息的版式分析架構VSR (Vision, Semantic, Relation)。
圖1 VSR的motivation示意圖
1. 問題定義
版式分析任務既可當做序列標簽分類,又可當做目標檢測。主要區別在于部件候選(component candidates)的選擇。對于基于NLP方法,即序列標簽分類的定義,選擇通過pdf解析或OCR識別得到text tokens;對于基于CV方法,即目標檢測或分割的定義,選擇通過目標檢測網絡如Mask RCNN得到的區域RoI。VSR主要圍繞目標檢測的定義展開,同時VSR也可以很直接地應用到基于NLP的方法上。
2. VSR架構
VSR架構如圖2所示,主要包括三個模塊:雙流卷積網絡(two-stream ConvNets)、多尺度自適應聚合模塊、關系學習模塊。首先,雙流卷積網絡提取視覺和語義特征;然后,相對于簡單的拼接,多尺寸自適應聚合模塊來得到視覺和語義雙模態信息表示;接著,基于聚合的多模態信息表示,可以生成布局組件候選集;最后,關系學習模塊來學習各組件候選間的關系,并生成最終結果。下面對各模塊具體展開。
圖2 VSR架構圖
2.1 雙流卷積網絡
VSR采用雙流卷積神經網絡(本文采用的是ResNeXt-101)來分別提取圖像視覺信息和文本語義信息。
視覺ConvNet
對于輸入圖片
V
0
=
R
H
×
W
×
3
V_{0}=\mathbb{R}^{H\times W\times 3}
V0 =RH×W×3,通過骨干CNN網絡,得到視覺信息的多尺度特征圖
{
V
2
,
V
3
,
V
4
,
V
5
}
\{V_{2},V_{3},V_{4},V_{5}\}
{V2 ,V3 ,V4 ,V5 },其中
V
i
∈
R
H
2
i
×
W
2
i
×
C
i
V
V_i\in \mathbb{R}^{\frac{H}{2^i}\times \frac{W}{2^i}\times C_{i}^{V}}
Vi ∈R2iH ×2iW ×CiV ,
H
H
H和
W
W
W分別是圖片的高和寬,
C
i
V
C_{i}^{V}
CiV 是通道數。
語義ConvNet
VSR將文本轉換為2D表示
S
0
=
R
H
×
W
×
C
0
S
S_{0}=\mathbb{R}^{H\times W\times C_{0}^{S}}
S0 =RH×W×C0S , 其中
C
0
S
C_{0}^{S}
C0S 是初始通道維度(本文取64)。根據字符和語句兩種粒度分別得到CharGrid和SentGrid:
C
h
a
r
G
r
i
d
i
j
=
{
E
c
(
c
k
)
i
f
(
i
,
j
)
∈
b
k
c
0
e
l
s
e
(1)
CharGrid_{ij}=\left\{\begin{matrix} E^{c}(c_k) & if (i,j)\in b_k^c\ 0 & else \end{matrix}\right. \tag{1}
CharGridij ={Ec(ck )0 if(i,j)∈bkc else (1)
其中
c
k
c_k
ck 表示第
k
k
k個字符,
b
k
c
=
(
x
0
;
y
0
;
x
1
;
y
1
)
b_k^c = (x_{0}; y_0; x_1; y_1)
bkc =(x0 ;y0 ;x1 ;y1 ) 是其對應兩點標注(左上角和右下角橫縱坐標),
E
c
E^{c}
Ec是詞向量映射操作。
S
e
n
t
G
r
i
d
i
j
=
{
E
s
(
s
k
)
i
f
(
i
,
j
)
∈
b
k
s
0
e
l
s
e
(2)
SentGrid_{ij}=\left\{\begin{matrix} E^{s}(s_k) & if (i,j)\in b_k^s\ 0 & else \end{matrix}\right. \tag{2}
SentGridij ={Es(sk )0 if(i,j)∈bks else (2)
其中
s
k
s_k
sk 表示第
k
k
k個語句,
b
k
s
=
(
x
0
;
y
0
;
x
1
;
y
1
)
b_k^s = (x_{0}; y_0; x_1; y_1)
bks =(x0 ;y0 ;x1 ;y1 ) 是其對應兩點標注,
E
s
E^{s}
Es是預訓練的BERT模型。
對字符和語句兩個粒度的語義信息進行融合,得到文本2D表示
S
0
S_{0}
S0 :
S
0
=
L
a
y
e
r
N
o
r
m
(
C
h
a
r
G
r
i
d
+
S
e
n
t
G
r
i
d
)
(3)
S_{0} = LayerNorm(CharGrid+SentGrid) \tag{3}
S0 =LayerNorm(CharGrid+SentGrid)(3)
將
S
0
S_{0}
S0 輸入到骨干CNN網絡,得到文本信息的多尺度特征圖
{
S
2
,
S
3
,
S
4
,
S
5
}
\{S_{2},S_{3},S_{4},S_{5}\}
{S2 ,S3 ,S4 ,S5 },與視覺信息的多尺度特征圖
{
V
2
,
V
3
,
V
4
,
V
5
}
\{V_{2},V_{3},V_{4},V_{5}\}
{V2 ,V3 ,V4 ,V5 }是同樣的尺寸和維度。
2.2 多尺寸自適應聚合模塊
在得到各模態的特征圖表示后,通過一個卷積層得到attention map
A
M
i
AM_i
AMi ,再基于attention map對各模態特征進行聚合得到聚合特征圖
F
M
i
FM_i
FMi :
A
M
i
=
h
(
g
[
V
i
,
S
i
]
)
(4)
AM_i = h(g[V_i, S_i]) \tag{4}
AMi =h(g[Vi ,Si ])(4)
F
M
i
=
A
M
i
⊙
V
i
+
(
1
?
A
M
i
)
⊙
S
i
(5)
FM_i = AM_i\odot V_i + (1 - AM_i)\odot S_i \tag{5}
FMi =AMi ⊙Vi +(1?AMi )⊙Si (5)
其中
g
g
g是一個卷積核尺寸為
1
×
1
×
(
C
i
V
+
C
i
S
)
×
C
i
S
1\times 1\times (C_i^V + C_i^S)\times C_i^S
1×1×(CiV +CiS )×CiS 的卷積層,
h
h
h是非線性激活函數。隨后
F
M
=
{
F
M
2
,
F
M
3
,
F
M
4
,
F
M
5
}
FM=\{FM_{2},FM_{3},FM_{4},FM_{5}\}
FM={FM2 ,FM3 ,FM4 ,FM5 }經過特征金字塔網絡FPN得到最終的多模態聚合特征。
2.3 關系學習模塊
在得到FM后,可以通過RPN網絡很容易得到ROI(Region of Interest)作為布局部件候選集。本文在實驗階段選擇的是Mask RCNN,同時設置7個anchor比例
(
0.02
,
0.05
,
0.1
,
0.2
,
0.5
,
1.0
,
2.0
)
(0.02, 0.05, 0.1, 0.2, 0.5, 1.0, 2.0)
(0.02,0.05,0.1,0.2,0.5,1.0,2.0)得到部件候選集。如圖3所示,根據各部件候選之間的關系,可以有如下作用:(1)利用空間位置關系,調整文本框坐標;(2)根據部件間的共現關系(比如表格和表格標題一般會同時出現)修正預測標簽;(3)各component間不重疊的特性移除多余框。VSR中關系學習模塊對各部件候選間的關系進行建模,并最終得到版面分析的結果。
圖3 VSR關系學習模塊作用示意圖
將一篇文檔作為一張圖graph,而每個部件候選component candidate作為節點node。每個節點的特征表示由多模態特征表示和位置信息表示組成:
z
j
=
L
a
y
e
r
N
o
r
m
(
f
j
+
e
j
p
o
s
(
b
j
)
)
(6)
z_j = LayerNorm(f_j+e^{pos}_j(b_j)) \tag{6}
zj =LayerNorm(fj +ejpos (bj ))(6)
其中
f
j
=
R
O
I
A
l
i
g
n
(
F
M
,
b
j
)
f_j=ROIAlign(FM, b_j)
fj =ROIAlign(FM,bj ),而
e
j
p
o
s
(
b
j
)
e^{pos}_j(b_j)
ejpos (bj )是位置坐標的向量表示。
通過self-attention機制來學習關系:
Z
′
=
A
t
t
e
n
t
i
o
n
(
Q
,
K
,
V
)
=
s
o
f
t
m
a
x
(
Q
K
T
d
k
)
V
(7)
Z' = Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V \tag{7}
Z′=Attention(Q,K,V)=softmax(dk
QKT )V(7)
其中
Q
,
K
,
V
Q,K,V
Q,K,V都是由
Z
=
{
z
1
,
z
2
,
.
.
.
,
z
N
}
Z=\{z_1, z_2, ..., z_N\}
Z={z1 ,z2 ,...,zN }來表示,
Z
′
=
{
z
1
′
,
z
2
′
,
.
.
.
,
z
N
′
}
Z'=\{z'_1, z'_2, ..., z'_N\}
Z′={z1′ ,z2′ ,...,zN′ }是經過self-attention后的輸出結果。
計算節點即部件候選的分類概率:
p
~
j
c
=
s
o
f
t
m
a
x
(
L
i
n
e
a
r
c
l
s
(
z
j
′
)
)
(8)
\tilde{p}^c_j = softmax(Linear_{cls}(z'_j))\tag{8}
p~ jc =softmax(Linearcls (zj′ ))(8)
計算節點即部件候選的邊框坐標回歸:
b
~
j
=
L
i
n
e
a
r
r
e
g
(
z
j
′
)
(9)
\tilde{b}_j= Linear_{reg}(z'_j) \tag{9}
b~j =Linearreg (zj′ )(9)
2.4 優化訓練
序列標注的定義下:
采用分類交叉熵進行優化:
L
=
?
1
T
∑
j
=
1
T
y
j
l
o
g
(
p
~
j
)
(10)
\mathcal{L} = -\frac{1}{T}\sum_{j=1}^{T}y_jlog(\tilde{p}_j) \tag{10}
L=?T1 j=1∑T yj log(p~ j )(10)
其中
T
T
T是text token的個數,
y
j
y_j
yj 是序列標注的groundtruth。
目標檢測的定義下:
優化損失函數計算:
L
=
L
D
E
T
+
λ
L
R
M
(11)
\mathcal{L} = \mathcal{L}_{DET} + \lambda \mathcal{L}_{RM} \tag{11}
L=LDET +λLRM (11)
其中
L
D
E
T
\mathcal{L}_{DET}
LDET 是候選生成階段的損失,包括交叉熵(用于分類)和smooth L1(用于邊框回歸);
L
R
M
\mathcal{L}_{RM}
LRM 是關系學習模塊的損失,同樣包括交叉熵(用于分類)和smooth L1(用于邊框回歸)。本文實驗中設置
λ
=
1
\lambda = 1
λ=1。
3. 實驗結果
3.1 對比實驗
VSR在三個開源數據集Article Regions,PubLayNet,DocBank上取得了最優結果。
3.2 消融實驗
表5、表6、表7的實驗結果分別驗證了A.不同粒度的文本表示;B.雙流卷積網絡和聚合模塊;C.關系學習模塊三個部分的有效性。
4. 總結
VSR方法的三個重要部分如下:
(1)文本語義用character和sentence兩種粒度來表示;
(2)采用two-stream convnet來分別提取視覺和語義特征,再通過attention將兩個模態特征聚合,最后基于聚合特征得到component candidates;
(3)GNN即Self attention來學習各component candidates間的關系。
EI企業智能 OCR
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。