1. 解決了什么問題?
目標檢測通過多任務(wù)學(xué)習(xí)的方式,協(xié)同優(yōu)化目標的分類和定位。分類任務(wù)會學(xué)習(xí)目標的判別特征,關(guān)注于目標的顯著性或關(guān)鍵區(qū)域,而定位任務(wù)則學(xué)習(xí)準確地定位目標的邊界。因為定位和分類的學(xué)習(xí)機制不同,這倆任務(wù)學(xué)到的特征分布也不同。當(dāng)這兩個分支做預(yù)測時,會產(chǎn)生一定的錯位現(xiàn)象。
- 分類和定位是獨立的。兩個獨立的分支并行地做目標分類和定位,任務(wù)之間缺乏交流,會造成預(yù)測結(jié)果不一致。如下圖紅色格子,ATSS 識別的是餐桌,但定位的是披薩餅。
- Task-agnostic 樣本分配。分類和定位的最佳 anchors 通常是不一致的,根據(jù)目標的形狀和特性差異可能很大。常用的樣本分配方法都是 task-agnostic,因此這倆任務(wù)很難作出準確而一致的預(yù)測。如下圖中的綠色格子代表了最佳的定位 anchor,它不是目標的中心點,而且與分類的最佳 anchor(紅色格子)沒有對齊。這會造成 NMS 時,一個準確定位的邊框被抑制掉。
如下圖,上面一行是 ATSS 預(yù)測的分類得分和定位得分的空間分布,下面一行是 TOOD 預(yù)測的分類得分和定位得分的空間分布。黃框是 ground truth,紅色格子是分類的最佳 anchor,綠色格子是定位的最佳 anchor,若二者重疊則只顯示紅色格子。紅框和綠框分別是紅色格子和綠色格子的 anchor 預(yù)測出的邊框。白色箭頭表示最佳 anchor 偏離目標中心點的主要方向。
2. 提出了什么方法?
TOOD 學(xué)習(xí)對齊這兩個任務(wù)。作者首先設(shè)計了一個 task-aligned head (T-Head),增強兩個任務(wù)間的交流,在學(xué)習(xí) task-interactive 和 task-specific 特征方面取得更好的平衡,更準確地對齊預(yù)測結(jié)果。其次,提出了 task alignment learning (TAL),通過樣本分配機制和 task-aligned loss 訓(xùn)練,拉近兩個任務(wù)各自最優(yōu)的 anchors 的距離。
2.1 Overview
TOOD 的整體流程采用了“主干-FPN-Head”的結(jié)構(gòu)。TOOD 在每個位置使用一個 anchor,對于 anchor-free 檢測器它就是一個 anchor point,對于 anchor-based 檢測器它就是一個 anchor box。T-head 首先基于 FPN 特征預(yù)測分類和定位。然后 TAL 基于新提出的 task alignment metric 計算任務(wù)對齊信號,表示分類和定位預(yù)測的對齊程度。最后根據(jù) TAL 反向傳播的學(xué)習(xí)信號, T-head 自動地調(diào)節(jié)各類別的概率和邊框位置。對得最齊的 anchor 會得到更高的分類得分,并學(xué)習(xí)偏移量使預(yù)測框更加準確。
2.2 Task-aligned Head
為了使 head 更加高效,作者從兩個方面出發(fā):
- 增加兩個任務(wù)間的交流;
- 增強檢測器學(xué)習(xí)對齊的能力。
T-head 如下圖 (b) 所示,包括一個簡單的特征提取器和兩個 task-aligned predictors (TAP)。
為了增強分類和定位任務(wù)間的交流,使用一個特征提取器(多個卷積層)學(xué)習(xí)一組 task-interactive 特征,即上圖(b) 藍色部分。該設(shè)計不僅能提高任務(wù)間的交流,也能為這倆任務(wù)提供具有多尺度感受野的多層級特征。
X
f
p
n
∈
R
H
×
W
×
C
X^{fpn}\in \mathbb{R}^{H\times W\times C}
Xfpn∈RH×W×C代表 FPN 特征,其中
H
,
W
,
C
H,W,C
H,W,C分別是 FPN 特征的高度、寬度和通道數(shù)。特征提取器使用
N
N
N個卷積層和激活函數(shù)來計算 task-interactive 特征:
X
k
i
n
t
e
r
=
{
δ
(
conv
k
(
X
f
p
n
)
)
,
k
=
1
δ
(
conv
k
(
X
k
?
1
i
n
t
e
r
)
)
,
k
>
1
?
k
∈
{
1
,
2
,
.
.
.
,
N
}
X_k^{inter}=\left\{ \begin{array}{ll} \delta(\text{conv}_k(X^{fpn})), \quad k=1 \\ \delta(\text{conv}_k(X^{inter}_{k-1})),\quad k>1 \end{array} \right. \forall k\in \lbrace 1,2,...,N\rbrace
Xkinter?={δ(convk?(Xfpn)),k=1δ(convk?(Xk?1inter?)),k>1??k∈{1,2,...,N}
其中 conv k \text{conv}_k convk?和 δ \delta δ表示第 k k k個卷積層和 relu \text{relu} relu函數(shù)。在 head 里使用單分支結(jié)構(gòu)提取豐富的多尺度特征,然后計算得到的 task-interactive 特征會輸入進兩個 TAP,學(xué)習(xí)對齊分類和定位。
2.2.1 TAP
在 task-interactive 特征上進行分類和定位,這兩個任務(wù)能互相感知到對方的狀態(tài)。但由于是單分支設(shè)計,task-interactive 特征難免會因任務(wù)不同而存在一定的特征沖突。作者提出了一個層注意力(layer attention)機制,動態(tài)地計算 task-specific 特征,使任務(wù)解耦。下圖展示了 TAP,分別計算分類或定位的 task-specific 特征:
X k t a s k = w k ? X k i n t e r , ? k ∈ { 1 , 2 , . . . , N } X_k^{task}=\boldsymbol{w}_k \cdot X_k^{inter},\forall k\in \lbrace1,2,...,N\rbrace Xktask?=wk??Xkinter?,?k∈{1,2,...,N}
w k \boldsymbol{w}_k wk?是學(xué)習(xí)得到的層注意力 w ∈ R N \boldsymbol{w}\in \mathbb{R}^N w∈RN的第 k k k個元素。 w \boldsymbol{w} w是從 task-interactive 特征計算而來的,能夠獲取 X i n t e r X^{inter} Xinter不同 layer 的依賴關(guān)系:
w = σ ( f c 2 ( δ ( f c 1 ( x i n t e r ) ) ) ) \boldsymbol{w}=\sigma(fc_2(\delta(fc_1(\boldsymbol{x}^{inter})))) w=σ(fc2?(δ(fc1?(xinter))))
f
c
1
,
f
c
2
fc_1, fc_2
fc1?,fc2?代表兩個全連接層,
σ
\sigma
σ是
sigmoid
\text{sigmoid}
sigmoid函數(shù),
δ
\delta
δ是
relu
\text{relu}
relu函數(shù)。將
X
k
i
n
t
e
r
X_k^{inter}
Xkinter?concat 起來得到
X
i
n
t
e
r
X^{inter}
Xinter,然后使用全局平均池化得到
x
i
n
t
e
r
\boldsymbol{x}^{inter}
xinter。最后,分類或定位的結(jié)果由每個
X
t
a
s
k
X^{task}
Xtask預(yù)測得到:
Z
t
a
s
k
=
conv
2
(
δ
(
conv
1
(
X
t
a
s
k
)
)
)
Z^{task}=\text{conv}_2(\delta(\text{conv}_1(X^{task})))
Ztask=conv2?(δ(conv1?(Xtask)))
其中 X t a s k X^{task} Xtask是將 X k t a s k X_k^{task} Xktask?特征 concat 起來, conv 1 \text{conv}_1 conv1?是 1 × 1 1\times 1 1×1卷積,用于降維。 Z t a s k Z^{task} Ztask然后使用 sigmoid \text{sigmoid} sigmoid函數(shù)轉(zhuǎn)換為分類得分 P ∈ R H × W × 80 P\in \mathbb{R}^{H\times W\times 80} P∈RH×W×80,或者用 distance-to-bbox \text{distance-to-bbox} distance-to-bbox轉(zhuǎn)換為目標框 B ∈ R H × W × 4 B\in \mathbb{R}^{H\times W\times 4} B∈RH×W×4。
2.2.2 Prediction alignment
預(yù)測時,通過調(diào)節(jié)兩個預(yù)測( P P P和 B B B)的空間分布,進一步對齊兩個任務(wù)。以前的方法使用 center-ness 分支或 IoU 分支,基于類別特征或位置特征來調(diào)節(jié)類別預(yù)測。而本文則通過 task-interactive 特征綜合考慮了兩個任務(wù),然后對齊這兩個預(yù)測結(jié)果。如上圖,作者使用一個空間概率圖 M ∈ R H × W × 1 M\in \mathbb{R}^{H\times W\times 1} M∈RH×W×1調(diào)節(jié)類別的預(yù)測:
P a l i g n = P × M P^{align}=\sqrt{P\times M} Palign=P×M?
M M M由 interactive 特征計算而來,學(xué)習(xí)每個空間位置上兩個任務(wù)的對齊程度。
同時,為了對齊位置預(yù)測,從 interactive 特征學(xué)習(xí)一個空間偏移圖 O ∈ R H × W × 8 O\in \mathbb{R}^{H\times W\times 8} O∈RH×W×8,調(diào)節(jié)每個位置的預(yù)測框坐標。該偏移量使對得最齊的 anchor point 能識別到它附近最優(yōu)的邊界預(yù)測:
B a l i g n ( i , j , c ) = B ( i + O ( i , j , 2 × c ) , j + O ( i , j , 2 × c + 1 ) , c ) B^{align}(i,j,c)=B(i+O(i,j,2\times c), j+O(i,j,2\times c+1), c) Balign(i,j,c)=B(i+O(i,j,2×c),j+O(i,j,2×c+1),c)
( i , j , c ) (i,j,c) (i,j,c)表示張量中第 c c c個通道的第 ( i , j ) (i,j) (i,j)個位置。上式通過雙線性插值實現(xiàn),因為 B B B的通道數(shù)不大,所以計算成本很低。注意,每個通道都會獨立地學(xué)習(xí)偏移量,即目標的每條邊都有一個偏移量。因為每條邊都能學(xué)習(xí)它附近最準確的 anchor point,預(yù)測的四條邊就能更加準確。因此,本文方法不僅能對齊定位和分類任務(wù),也能通過識別每條邊精確的 anchor point 來提升定位的準確率。
M
M
M和
O
O
O從 interactive 特征中自動地學(xué)習(xí):
M
=
σ
(
conv
2
(
δ
(
conv
1
(
X
i
n
t
e
r
)
)
)
)
M=\sigma(\text{conv}_2(\delta(\text{conv}_1(X^{inter}))))
M=σ(conv2?(δ(conv1?(Xinter))))
O
=
conv
4
(
δ
(
conv
3
(
X
i
n
t
e
r
)
)
)
O=\text{conv}_4(\delta(\text{conv}_3(X^{inter})))
O=conv4?(δ(conv3?(Xinter)))
conv 1 \text{conv}_1 conv1?和 conv 3 \text{conv}_3 conv3?是 2 個 1 × 1 1\times 1 1×1的卷積層,用于通道降維。 M M M和 O O O通過 TAL 學(xué)習(xí)。T-head 是一個獨立的模塊,可以不需要 TAL。
2.3 Task Alignment Learning
使用 TAL 進一步指導(dǎo) T-head 學(xué)習(xí)對齊分類和定位的預(yù)測。TAL 包括一個樣本分配策略和一個新的損失函數(shù)。它從任務(wù)對齊的角度出發(fā),動態(tài)地選取高質(zhì)量 anchors,同時考慮 anchors 的分配和加權(quán)。
2.3.1 Task-aligned Sample Assignment
為了使用 NMS,anchor 分配應(yīng)該滿足以下兩個條件:
- 對齊的 anchor 能同時預(yù)測出較高的類別得分和準確的邊框位置;
- 錯位的 anchor 的類別得分應(yīng)該很低,會被抑制掉。
于是作者提出了一個新的 anchor 對齊度量,計算任務(wù)對齊的程度。在樣本分配和損失函數(shù)中加入該度量,動態(tài)優(yōu)化每個 anchor 的預(yù)測。
Anchor alignment metric. 類別得分和預(yù)測框與目標框間的 IoU 分別代表分類和定位任務(wù)的預(yù)測質(zhì)量,作者將類別得分和 IoU 結(jié)合,表示倆任務(wù)的對齊程度。使用下式計算每個實例的各 anchor 的對齊度量:
t
=
s
α
×
u
β
t=s^{\alpha}\times u^{\beta}
t=sα×uβ
s s s表示類別得分, u u u表示 IoU。 α , β \alpha,\beta α,β用于控制兩項任務(wù)施加的影響。 t t t在任務(wù)對齊優(yōu)化的過程中扮演重要角色,使網(wǎng)絡(luò)動態(tài)地關(guān)注于高質(zhì)量(任務(wù)對齊)anchors。
Training sample assignment. 關(guān)注于任務(wù)對齊的 anchors,采用簡單的分配規(guī)則來選取訓(xùn)練樣本:對于每個實例,選取 m m m個 t t t值最大 anchors 作為正樣本,其余的 anchors 作為負樣本,然后計算損失。
2.4 Task-aligned Loss
分類目標函數(shù)
為了抬高對齊的 anchors 的類別得分,降低那些沒對齊的 anchors ( t t t值偏?。┑念悇e得分,訓(xùn)練時對 t t t做歸一化得到 t ^ \hat{t} t^,代替 positive anchor 的二值標簽。根據(jù)下面兩個性質(zhì)來歸一化 t ^ \hat{t} t^:
- 保證能有效地學(xué)習(xí)難例(即 t t t值較小的 positive anchors);
- 保留實例之間關(guān)于預(yù)測框精度的排序。
于是作者采用歸一化方法來調(diào)節(jié) t ^ \hat{t} t^,對于每個實例, t ^ \hat{t} t^的最大值等于各 anchor 的 IoU ( u ) (u) (u)的最大值。對于分類任務(wù),使用二元交叉熵來計算損失,將 t ^ \hat{t} t^作為正樣本的 ground-truth 標簽,而非 1:
L
c
l
s
_
p
o
s
=
∑
i
=
1
N
p
o
s
B
C
E
(
s
i
,
t
^
i
)
L_{cls\_pos}=\sum_{i=1}^{N_{pos}}BCE(s_i,\hat{t}_i)
Lcls_pos?=i=1∑Npos??BCE(si?,t^i?)
B
C
E
(
s
i
,
t
^
i
)
=
t
^
i
?
log
?
(
s
i
)
+
(
1
?
t
^
i
)
?
log
?
(
1
?
s
i
)
BCE(s_i,\hat{t}_i)=\hat{t}_i \cdot \log(s_i) + (1 - \hat{t}_i) \cdot \log(1 - s_i)
BCE(si?,t^i?)=t^i??log(si?)+(1?t^i?)?log(1?si?)
i
i
i表示某個實例的
N
p
o
s
N_{pos}
Npos?個 positive anchors 中的第
i
i
i個 anchor。本文還用了 Focal Loss 緩解正負樣本不均衡的問題??偟姆诸悡p失如下:
L
c
l
s
=
∑
i
=
1
N
p
o
s
∣
t
^
i
?
s
i
∣
γ
?
B
C
E
(
s
i
,
t
^
i
)
+
∑
j
=
1
N
n
e
g
s
j
γ
?
B
C
E
(
s
j
,
0
)
L_{cls}=\sum_{i=1}^{N_{pos}}|\hat{t}_i-s_i|^{\gamma}\cdot BCE(s_i,\hat{t}_i)+\sum_{j=1}^{N_{neg}}s_j^{\gamma}\cdot BCE(s_j,0)
Lcls?=i=1∑Npos??∣t^i??si?∣γ?BCE(si?,t^i?)+j=1∑Nneg??sjγ??BCE(sj?,0)
j j j表示 N n e g N_{neg} Nneg?個 negative anchors 的第 j j j個 anchor。 γ \gamma γ和 Focal Loss 一文的含義相同,是調(diào)節(jié)系數(shù)。
定位目標函數(shù)
對齊的 anchors 預(yù)測出的邊框通常置信度更高、邊框更準確,才能在 NMS 時保留下來。訓(xùn)練時, t t t通過加權(quán)損失來提升高質(zhì)量 anchor 的影響,降低低質(zhì)量 anchor 的影響。高質(zhì)量邊框?qū)δP陀泻锰?,而低質(zhì)量邊框則會產(chǎn)生大量冗余、無意義的信息。作者用 t t t值計算邊框的質(zhì)量。利用 t ^ \hat{t} t^對每個 anchor 的回歸損失做加權(quán),文章來源:http://www.zghlxwxcb.cn/news/detail-607544.html
L
r
e
g
=
∑
i
=
1
N
p
o
s
t
^
i
L
G
I
o
U
(
b
i
,
b
 ̄
i
)
L_{reg}=\sum_{i=1}^{N_{pos}}\hat{t}_i L_{GIoU}(b_i, \overline_i)
Lreg?=i=1∑Npos??t^i?LGIoU?(bi?,bi?)
b
,
b
 ̄
b,\overline
b,b分別是預(yù)測框和目標框。總的 TAL 訓(xùn)練損失是
L
r
e
g
L_{reg}
Lreg?和
L
c
l
s
L_{cls}
Lcls?之和。文章來源地址http://www.zghlxwxcb.cn/news/detail-607544.html
到了這里,關(guān)于TOOD Task-aligned One-stage Object Detection 論文學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!