寫在前面
??馬上又是一周周末了,開始寫論文博客啦。
??這是一篇頂會文章,標題很清楚,就是一個一統(tǒng)的框架用于解決各種任務。這類文章在 21 年的時候挺多的,現(xiàn)在倒是不常見了。因為需要的資源很多,外部數(shù)據(jù)集也很龐大,一般的小資源團隊基本搞不定。但一旦出世,效果必然十分炸裂。
- 論文地址:Universal Instance Perception as Object Discovery and Retrieval
- 代碼地址:https://github.com/MasterBin-IIAU/UNINEXT
- 收錄于:CVPR 2023
- Ps:2023 年每周一篇博文閱讀筆記,主頁 更多干貨,歡迎關注呀,期待 6 千粉絲有你的參與呦~
一、Abstract
??所有的實例感知任務旨在發(fā)現(xiàn)利用 queries 查詢到的目標,例如類別名、語言表達式、目標標注,但這一領域被劃分為多個獨立的子任務。于是本文提出了一種統(tǒng)一的實例感知模型 UNINEXT。UNINEXT 將多個實例感知任務劃分為一個統(tǒng)一的目標發(fā)現(xiàn)和檢索過程,通過改變輸入的 promots 能夠彈性地感知不同類型的目標。于是有一些好處:不同任務的數(shù)據(jù)和標簽詞匯能夠用于訓練統(tǒng)一的模型,而且有益于那些缺乏訓練數(shù)據(jù)的任務;參數(shù)有效性,能夠降低冗余的計算。UNINEXT 在 20 個 數(shù)據(jù)集,10 種實例級別的任務,6 種視頻級別的任務上效果很好。
二、引言
??計算機視覺領域中,以目標為中心的理解是其中一個最關鍵和挑戰(zhàn)性的任務。本文主要討論其中的 10 個子任務。如下圖所示:
??
??最基礎的任務則是目標檢測、實例分割、多目標跟蹤\分割、視頻實例分割。除了這些類別名外,還有一些任務則需要其他的指代信息,例如 Referring Expression Comprehension (REC) /Segmentation (RES)、Referring Video Object Segmentation (R-VOS)、單目標跟蹤、視頻目標分割等等。這些任務統(tǒng)稱為實例感知。
??當前的實例感知方法都是基于一個或一部分子任務開發(fā)出的方法,且僅僅在特定的數(shù)據(jù)集上訓練。這一設計有如下缺陷:獨立的設計阻止了模型學習和共享不同任務的知識;多個任務間的交互合作可能被忽略掉了。受限于固定范圍的類別,傳統(tǒng)的目標檢測器很難在多個目標類別的數(shù)據(jù)集上進行訓練。于是問題來了:所有的實例感知任務旨在根據(jù)一些 queries 發(fā)現(xiàn)某些特定的目標,那么有沒有可能設計一個統(tǒng)一的模型用于所有主流的實例感知任務呢?
??于是本文提出 UNINEXT,首先根據(jù)三種不同的輸入 prompt 重新組織 10 種感知任務:
- 類別名作為 Prompt,包含 Object Detection、Instance Segmentation、VIS,、MOT、MOTS
- 語言表達式作為 Prompt,包含 REC、RES、R-VOS
- 指代標注作為 Prompt,包含 SOT、VOS
??然后提出一種統(tǒng)一的,prompt 引導的目標發(fā)現(xiàn)和檢測方法來解決這些任務。具體來說,UNINEXT 首先在 prompts 的引導下發(fā)現(xiàn) N N N 個目標 Proposals,然后根據(jù)實例-Prompt 匹配得分檢索出最終的實例。為解決不同的 prompt 模態(tài),采用一種 Prompt 生成模塊,由一個指代文本編碼器和一個指代視覺編碼器組成。然后一個早期融合模塊用于增強初始的視覺特征和 prompt embeddings。選擇基于 Transformer 的目標檢測器作為實例解碼器。具體來說,解碼器首先生成 N N N 個實例 Proposals,然后這些 Prompt 從這些 Proposals 中檢索出匹配的目標。
??在 10 個實例級別的感知任務上,統(tǒng)一使用一個模型,相同的模型參數(shù),UNINEXT 在 20 個 benchmarks 上達到了 SOTA 的性能。本文貢獻總結如下:
- 提出一個統(tǒng)一的 Prompt 框架用于統(tǒng)一的實例感知;
- UNINEXT 能夠在不同的任務和領域上訓練,不需要特定的任務頭;
- UNINEXT 在 20 個 benchmarks,10 個實例感知任務上,達到了 SOTA 的性能。
三、相關工作
實例感知
通過類別名進行檢索
??目標檢測和實例感知旨在找到所有特定類別的目標 boxes 或 masks。早期的目標檢測器可以大致劃分為兩階段和一階段的方法。最近是一些基于 Transformer 的檢測器開始興起。同時,實例分割方法也可以根據(jù)是否需要 box 級別的檢測器劃分為基于檢測器和無檢測器的方法。目標檢測和實例分割同時也是 MOT、MOTS、VIS 的基石。主流的方法采用在線 “檢測-關聯(lián)” 的策略。然而最近的一些 VIS 方法采用離線的方式,在 VIS2019 數(shù)據(jù)集上表現(xiàn)很好,但是在 OVIS 上表現(xiàn)不行。
通過語言表達式的檢索
??REC、RES、RVOS 旨在根據(jù)一條語言表達式發(fā)現(xiàn)一個特定的目標。與目標檢測類似,REC 方法同樣可以劃分為三種類型。兩階段、單階段和基于 Transformer 的方法。不同于 REC,RES 關注于設計不同的注意力機制從而實現(xiàn)視覺-語言的對齊。最近,SeqTR 提出將 REC 和 RES 視為點預測問題,達到了新的 SOTA。最后 R-VOS 可以視為 RES 在視頻領域上的拓展。當前的 SOTA 方法是基于 Transformer 的離線方式。然而,離線方式妨礙了現(xiàn)實世界的應用,例如自動駕駛。
通過指代標注的檢索
??SOT 和 VOS 首先在視頻的第一幀上面使用 boxes 或者 masks 確定要跟蹤的目標,然后要求算法去預測被跟蹤目標的軌跡。這一任務核心問題在于:如何提取信息量豐富的目標特征?如何融合目標信息與當前幀的表示?
??對于第一個問題,大部分 SOT 方法通過一個 Siamese Backbone 編碼目標信息。而 VOS 方法通常聚合多幀信息與相應的 masks 送入一個 memory 編碼器中,提取細粒度的目標信息。對于第二個問題,之前的方法通常采用關聯(lián)的手段,可能會導致信息丟失。最近的一些工作利用 Transformer 得到更具有區(qū)分性的表示。此外,VOS 中的特征融合也被空間-時間 memory 網(wǎng)絡采用。
統(tǒng)一的視覺模型
??分為統(tǒng)一的學習算法和統(tǒng)一的模型架構
Unified Learning Paradigms
??通常是一種統(tǒng)一的學習算法用于覆蓋盡可能多的任務和模態(tài)。例如 MuST、INTERN、Unified-IO、OFA。盡管這些工作在多個任務上的表現(xiàn)很好,但是模態(tài)內和模態(tài)間的關系還有待探索。
Unified Model Architectures
??通常設計一種統(tǒng)一的框架或者模型結構用于一組密切關聯(lián)的任務。例如 Mask R-CNN、Mask2Former、Pix2SeqV2、GLIP、Unicorn。而本文提出一種統(tǒng)一的 Prompt 引導的結構用于 10 種實例感知任務。
四、方法
??首先將現(xiàn)有的實例感知任務分為三類:
- 目標檢測、實例分割、MOT、MOTS、VIS,以類別名為 Prompt ,找到所有特定類別的實例。
- REC、RES、R-VOS,以表達式作為 Prompt,定位到某個特定的目標。
- SOT 和 VOS,使用第一幀給定的標注作為 Prompt,預測被跟蹤目標的軌跡。
??UNINEXT 由三個主要模塊組成:prompt 生成、image-prompt 特征融合、目標發(fā)現(xiàn)和檢索。
4.1 Prompt 生成
??首先一個 Prompt 模塊將原始的 prompts 輸入轉化為統(tǒng)一的格式。為解決語言相關的 Prompt,使用語言編碼器 BERT,表示為 EncL。具體來說。對于類別引導的任務,將當前數(shù)據(jù)集內出現(xiàn)的類別名作為語言表達式。以 COCO 為例,表達式可以寫作:“person. bicycle. … . toothbrush”。對于所有的類別引導和表達式引導的任務,語言表達式通過 EncL,得到一個 Prompt embedding F p ∈ R L × d F_p\in\mathbb{R}^{L\times d} Fp?∈RL×d, L L L 為序列長度。
??對于標注引導的任務,采用一個指代視覺編碼器 Enc V ref \text{Enc}_\text{V}^\text{ref} EncVref?。具體來說,首先在相關幀的指代位置處裁剪出一個 2 2 2^2 22 倍原目標區(qū)域的模板。然后將這一模板調整為固定尺寸 256 × 256 256\times256 256×256。接下來添加一個額外的通道,名為目標先驗,拼接上去形成一個 4 通道的輸入。目標區(qū)域先驗處的值設為 1,其它為 0。然后這一模板圖像與目標先驗一起通過 Enc V ref \text{Enc}_\text{V}^\text{ref} EncVref?,得到一個級聯(lián)的特征金字塔 { C 3 , C 4 , C 5 , C 6 } \{C_3,C_4,C_5,C_6\} {C3?,C4?,C5?,C6?},相應的空間尺寸為 32 × 32 32\times32 32×32、 16 × 16 16\times16 16×16、 8 × 8 8\times8 8×8、 4 × 4 4\times4 4×4。最后將所有特征上采樣到 32 × 32 32\times32 32×32,之后相加。展平后得到最終的 Prompt embedding F p ∈ R 1024 × d F_p\in\mathbb{R}^{1024\times d} Fp?∈R1024×d。
??Prompt 生成過程表示如下:
F
p
=
{
E
n
c
L
r
e
f
(
exp
?
ression
)
?????????????????????????????????????expression-guided
E
n
c
L
r
e
f
(
concat
(
categories
)
)
????????????????????????category-guided
m
e
r
g
e
(
E
n
c
V
r
e
f
(
[template,?prior]
)
????????????????annotation-guided
F_p=\begin{cases}\mathrm{Enc}_\mathrm{L}^\mathrm{ref} (\exp\text{ression})~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\text{expression-guided}\\\mathrm{Enc}_\mathrm{L}^\mathrm{ref}(\text{concat}(\text{categories}))~~~~~~~~~~~~~~~~~~~~~~~~\text{category-guided}\\\mathrm{merge}(\mathrm{Enc}_\mathrm{V}^\mathrm{ref}(\text{[template, prior]})~~~~~~~~~~~~~~~~ \text{annotation-guided}&\end{cases}
Fp?=?
?
??EncLref?(expression)?????????????????????????????????????expression-guidedEncLref?(concat(categories))????????????????????????category-guidedmerge(EncVref?([template,?prior])????????????????annotation-guided??
4.2 圖像-Prompt 特征融合
??與 Prompt 并行,整個圖像穿過另一個視覺編碼器
Enc
V
\text{Enc}_\text{V}
EncV?,得到級聯(lián)的視覺特征
F
v
F_v
Fv?,然后采用一個提前融合模塊。具體來說。一個雙向的 cross-attention(Bi-XAtt)模塊用于檢索不同輸入的信息,然后將檢索到的表示添加到原始的特征上。這一過程描述為:
F
p
2
v
,
F
v
2
p
=
B
i
?
X
A
t
t
(
F
v
,
F
p
)
F
v
′
=
F
v
+
F
p
2
v
;
F
p
′
=
F
p
+
F
v
2
p
\begin{aligned} &F_{\mathrm{p2v}},F_{\mathrm{v2p}}=\mathrm{Bi-XAtt}(F_{v},F_{p}) \\ &F_{v}^{\prime}=F_{v}+F_{\mathbf{p}2\mathbf{v}};F_{p}^{\prime}=F_{p}+F_{\mathbf{v}2\mathbf{p}} \end{aligned}
?Fp2v?,Fv2p?=Bi?XAtt(Fv?,Fp?)Fv′?=Fv?+Fp2v?;Fp′?=Fp?+Fv2p????不同于 GLIP,其采用 6 層的視覺-語言融合層和 6 層外部 BERT 層用于特征增強,本文的提前融合模塊則更有效率。
4.3 目標發(fā)現(xiàn)和檢索
??在提出顯著性的視覺和 prompt 表示后,下一個關鍵步驟則是將輸入的特征轉化為不同感知任務中的實例。UNINEXT 采用 Deformable-DETR 中的編碼器-解碼器架構。
??Transformer 編碼器以級聯(lián)的 prompt 感知的視覺特征作為輸入。然后采用 Multi-scale Deformable Self-Attention 增強目標信息。此外,添加輔助的預測頭用于編碼器的結尾,生成 N N N 個初始的參考點作為解碼器的輸入。
??Transformer 解碼器以增強的多尺度特征, N N N 個參考點 和 N N N 個目標 queries 作為輸入。本文嘗試兩種 query 生成策略:靜態(tài) query,不隨圖像或 Prompts 而改變;基于 Prompt 的動態(tài) queries。第一種策略很容易通過 nn.Embedding(N,d) \text{nn.Embedding(N,d)} nn.Embedding(N,d) 實現(xiàn),而第二種策略則可以通過池化序列維度,增強的 Prompt 特征 F v ′ F_v^{\prime} Fv′? 得到,之后重復 N N N 次。實驗部分表明靜態(tài)策略通常執(zhí)行的比動態(tài)策略好。原因可能是靜態(tài)部分包含了更豐富的信息,同時擁有更好的訓練穩(wěn)定性。
??在解碼器的結尾,采用一組預測頭來得到最終的實例預測,產(chǎn)生目標的 boxes 和 masks。此外,引入一個 embedding 頭用于輔助 MOT、MOTS、VIS 所需要的軌跡。
??接下來產(chǎn)生精確的目標。具體來說,給定早期融合后的 prompt embedding
F
p
′
F_p^{\prime}
Fp′?,對于類別引導任務,將每個名字的 embedding 視為一個權重矩陣
W
∈
R
1
×
d
W\in\mathbb{R}^{1\times d}
W∈R1×d。此外,對于表達式引導和標注引導的任務,權重矩陣
W
W
W 通過對聚合的 prompt embedding
F
p
′
F_p^{\prime}
Fp′?,使用全局平均池化 global average pooling (GAP) 沿著序列維度得到。給出公式描述過程:
W
=
{
F
p
′
[
i
]
,
i
∈
{
0
,
1
,
.
.
.
,
C
?
1
}
category
1
L
∑
i
=
0
L
F
p
′
(
i
,
j
)
expression/annotation
W=\begin{cases}F_p'[i],i\in\{0,1,...,C-1\}&\text{category}\\\frac{1}{L}\sum_{i=0}^LF_p'(i,j)&\text{expression/annotation}\end{cases}
W={Fp′?[i],i∈{0,1,...,C?1}L1?∑i=0L?Fp′?(i,j)?categoryexpression/annotation?
??最終,實例-Prompt 匹配得分
S
S
S ,表示為目標特征和轉換后的權重矩陣的乘積:
S
=
F
ins
W
T
S=F_\text{ins}W^{\text{T}}
S=Fins?WT,通過 Focal Loss 監(jiān)督其訓練。
4.4 訓練和推理
訓練
??整體的訓練過程包含三個連續(xù)階段:通用的感知預訓練;圖像級別的共同訓練;視頻級別的共同訓練。第一階段,預訓練 UNINEXT 在大規(guī)模目標檢測數(shù)據(jù)集 Objects365 上。由于 Objects365 沒有 mask 標注,于是引入 BoxInst 中提出的輔助損失用于訓練 mask 分支,于是損失函數(shù)為:
L
s
t
a
g
e
1
=
L
r
e
t
r
i
e
v
e
+
L
b
o
x
+
L
m
a
s
k
b
o
x
i
n
s
t
\mathcal{L}_{\mathrm{stage}1}=\mathcal{L}_{\mathrm{retrieve}}+\mathcal{L}_{\mathrm{box}}+\mathcal{L}_{\mathrm{mask}}^{\mathrm{boxinst}}
Lstage1?=Lretrieve?+Lbox?+Lmaskboxinst?
然后基于第一階段的預訓練權重,在圖像數(shù)據(jù)集 COCO、RefCOCO、RefCOCO+、RefCOCOg 上微調 UNINEXT。使用 Dice Loss 和 Focal Loss 進行 mask 的訓練:
L
s
t
a
g
e
2
=
L
r
e
t
r
i
e
v
e
+
L
b
o
x
+
L
m
a
s
k
\mathcal{L}_{\mathrm{stage2}}=\mathcal{L}_{\mathrm{retrieve}}+\mathcal{L}_{\mathrm{box}}+\mathcal{L}_{\mathrm{mask}}
Lstage2?=Lretrieve?+Lbox?+Lmask?
??最后在視頻級別的數(shù)據(jù)集上微調 UNINEXT。為防止模型遺忘之前在圖像級別上學到的知識,將圖像級別的數(shù)據(jù)集轉化為偽視頻,和其它視頻數(shù)據(jù)集一起訓練??偨Y下,第三階段的訓練數(shù)據(jù)包含:偽標簽視頻、SOT&VOS 數(shù)據(jù)集(GOT-10K、LaSOT、TrackingNet、Youtube-VOS),MOT&VIS 數(shù)據(jù)集(BDD100K、VIS19、OVIS),R-VOS 數(shù)據(jù)集 Ref-Youtube-VOS。同時,一個用于 SOT&VOS 任務的指代視覺編碼器和一個外部的 embedding 頭用于輔助優(yōu)化。于是第三階段的損失如下:
L
s
t
a
g
e
3
=
L
r
e
t
r
i
e
v
e
+
L
l
o
o
x
+
L
m
a
s
k
+
L
e
m
b
e
d
\mathcal{L}_{\mathrm{stage}3}=\mathcal{L}_{\mathrm{retrieve}}+\mathcal{L}_{\mathrm{loox}}+\mathcal{L}_{\mathrm{mask}}+\mathcal{L}_{\mathrm{embed}}
Lstage3?=Lretrieve?+Lloox?+Lmask?+Lembed?
推理
??對于類別引導的任務,UNINEXT 預測不同類別的實例并將其與之前的軌跡關聯(lián)起來,這一過程是在線的方式。對于表達式引導和標注引導的任務,直接選擇與給定 Prompt 最高匹配得分的目標作為最終的結果,無需后處理。
五、實驗
5.1 實施細節(jié)
??嘗試不同的視覺 Backbone 作為編碼器,如 ResNet-50、ConvNeXt-Large、ViT-Huge。BERT 為文本編碼器,其參數(shù)在第一個階段訓練而在第二個階段凍結。Transformer 中的編碼器和解碼器結構有 6 層的編碼器層和 6 層的解碼器層。目標 queries 的數(shù)量 N = 900 N=900 N=900。優(yōu)化器 AdamW,權重衰減 0.05。預訓練在 Objects365 上采用 32 個 A100 GPU,而在其它階段則采用 16 塊 A100(一般的小作坊就不用嘗試啦)。
5.2 在 10 個任務上的評估
目標檢測和實例分割
REC 和 RES
SOT
VOS
MOT
MOTS
VIS
R-VOS
5.3 消融和其它分析
??所有的模型均采用 ResNet-50 作為 backbone,在五個任務(目標檢測、REC、VOS、R-VOS、VIS)的五個數(shù)據(jù)集 COCO、RefCOCO、Youtube-VOS、Ref-Youtube-VOS、Youtube-VIS 2019 上進行評估。結果如下表所示:
六、結論
??本文提出 UNINEXT,采用 Prompt 引導的目標發(fā)現(xiàn)和檢索算法統(tǒng)一了 10 個實例感知任務,大量實驗表明 UNINEXT 在 20 個數(shù)據(jù)集上,同一套模型參數(shù)達到了 SOTA 的性能。
寫在后面文章來源:http://www.zghlxwxcb.cn/news/detail-760116.html
??附錄還有一些內容,關于訓練細節(jié)、可視化、損失函數(shù)啥的,這里就不過多展開了。通篇讀下來,是一個以 Prompt 為主要形式的框架,新穎性可能也不算太高吧,畢竟有 SAM 和 Unified 等模型在前面開路,但是這個調參和實驗的工作量應該是值得一篇頂會論文的。文章來源地址http://www.zghlxwxcb.cn/news/detail-760116.html
到了這里,關于大一統(tǒng)模型 Universal Instance Perception as Object Discovery and Retrieval 論文閱讀筆記的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!