0
| 本文作者: 陳淑瑜 | 2026-06-11 13:44 | 專題:CVPR 計算機視覺與模式識別會議 |
來源:公眾號“AI上分搭子”
原文鏈接:https://mp.weixin.qq.com/s/M8hMiiMzQeIcRwwPe7eZ3Q

Dense Video Object Captioning,簡稱 DVOC。
它想做的事很細:
這篇 CVPR 2026 論文走了一條很干凈的路線。
先造數據。
作者用 Gemini 2.0 Flash 給 LVIS 和 LV-VIS 生成 object-level captions,得到兩個新數據集:LVISCap 和 LV-VISCap。
再訓模型。
CaptionFormer 用 OVFormer / Mask2Former 做 clip-level segmentation,再把同一個物體在多個片段里的 query 聚合起來,交給 BLIP-2 風格的 captioning head。
結果也比較清楚:

普通的視頻檢測任務,大多回答:
畫面里有什么?
Tracking 再多問一句:
這個物體下一幀去哪了?
DVOC 要求更細。
它希望模型對視頻里的每個物體都交出一份“小報告”:
比如一個人拿著削筆刀,模型不能只說“person”。
它最好能描述:
一個人正用手拿著并轉動一個黑色削筆刀。
聽起來只是多一句話。
但訓練時會很貴。
因為每個視頻都有多個物體,每個物體又跨越多個時間點。要給這些軌跡逐條寫 caption,人工標注成本會迅速爆炸。
已有方法通常繞著走:
能跑。
但監督信號沒有真正合在一起。
CaptionFormer 抓住的,就是這個數據缺口。

Figure 2 是這篇論文最值得先看的圖。
它講數據怎么來。
LVIS 和 LV-VIS 本來就有物體 mask、box 和 category。
缺的是 caption。
作者沒有從零人工寫 caption,而是把已有標注轉成一個 VLM 能理解的問題:
請描述這個被框出來的物體。
做法并不繞。
先從 mask 提取 bounding box。
再把目標物體的 box 畫到視頻幀上。
然后把這些信息寫進 prompt:
最后送給 Gemini 2.0 Flash,生成 object-level caption。
這樣一來,原來的 segmentation 數據集被擴展成 DVOC 訓練集:
這一步把問題換了一個形態:不再死磕昂貴人工標注,而是想辦法穩定地產生細粒度監督。

Figure 3 是方法圖。
CaptionFormer 大致分三段。
第一段:clip-level 視覺理解
視頻被切成若干 clip。
每個 clip 先經過 OVFormer / Mask2Former,輸出 object queries。
這些 query 會對應:
第二段:跨 clip 跟蹤
同一個物體會出現在不同 clip 里。
模型用 Hungarian matching 做 query matching,把這些片段接成軌跡。
這一步讓模型能處理“物體消失又出現”的情況。
第三段:給軌跡寫 caption
對每條物體軌跡,CaptionFormer 會從多個 clip 里取 query。
再做 temporal aggregation。
最后把聚合后的 video-level query 送到 BLIP-2 風格的 LLM decoder,生成一句 caption。
最后輸出的是:
一條物體軌跡 + mask / box + caption。
DVOC 需要的幾件事,在同一個模型里接上了。
這里保留三條公式。
不用細摳符號,看它們分別在做什么就夠了。
1. 把 mask 變成 VLM 能看的視覺提示
意思是:
第 個物體的 bounding box 被畫到第 幀上。
VLM 看到的不是原始視頻,而是“這個框里的物體”。
2. 把多個 clip 的 query 聚合成一條軌跡表示
同一個物體在不同 clip 里會有不同 query。
CaptionFormer 用檢測分數 做權重,把它們匯總起來。
這就是 temporal aggregation。
3. 訓練時把視覺和語言監督放在一起
這里不用糾結某個 loss 的細節。
關鍵在于,captioning loss 也會回到 object query 上。
這讓 caption 監督不只是最后接一個文字生成頭,而是參與塑造物體表示。

Table 3 是 VidSTG 上的主結果。
先看幾組數字。
| CHOTA 64.0 | ||
| CapA 55.4 |
VidSTG 里,CapA 的提升尤其明顯。
synthetic object captions 不是裝飾性的文字補丁,它補的是 DVOC 最缺的監督。
再看 VLN。

| 47.7 |
這張表還有一個細節。
加入 mask loss 后,DetA 從 48.7 到 50.1,AssA 從 89.7 到 92.7。
也就是說,把 DVOC 從 box 擴展到 segmentation mask,不只是形式上更細,指標也受益。
BenSMOT 上看 CIDEr。

| 42.6 |
BenSMOT 主要關注人。
CaptionFormer 在這里的 CIDEr 提升很大,說明它對“物體軌跡描述”本身更有優勢。
還有一個實際成本信息也值得留意。
作者寫到,相比 DVOC-DS 的 2032 GPU hours,他們的方法對應 208 GPU hours。
如果這個數字在復現中能站住,CaptionFormer 不只是效果更好,也更容易被后續工作拿來用。
Ablation 部分可以看四個地方。

Table 1 很直觀。
只給單幀或多幀,人工評分只有 26.8 / 27.1。
加入 category labels 后,直接到 80.7。
再加 bbox coordinates、bbox area 和 few-shot examples,最終到 85.1。
這個差距很說明問題。
VLM 本身很強,但它不會自動知道你到底想描述哪個物體。
框、類別、面積、上下文,這些提示都在幫模型把注意力落到目標軌跡上。

SwinB 設置下:
| 59.5 |
圖像數據給規模。
視頻數據給時間和軌跡語境。
兩者合起來,模型表現最好。

Figure 4 顯示,CapA 和 LVISCap captions 數量呈 log-linear 相關。
換成更直白的話:
繼續生成更多 caption,可能還有提升空間。
當然,前提是 caption 質量不能塌。

| 55.4 | 64.0 |
視頻里的動作通常不是一幀能講完的。
多個 clip 聚合后,captioning 的信息更完整。
Table 8 還有一個小驚喜。
加入 captioning loss 后,LV-VISCap 上 video instance segmentation 的 mAP 從 31.7 到 34.2。
caption 監督反過來幫了視覺 query。
這也是本文一個挺有意思的副作用。
CaptionFormer 最值得記住的點,是它把 DVOC 缺的監督補齊了。
每個物體不再只有 mask、box、category。
它還有一條跨時間的 caption。
有了這份數據,模型就可以圍繞 object query 同時學習:
這條路線的實用性很強。
先用強 VLM 批量生成細粒度監督。
再訓練一個更專門、更可評估的視頻模型。
對于長視頻理解、視頻編輯、機器人和交互式檢索,這種“軌跡 + 描述”的輸出會很有用。
代碼 / 項目頁:
https://www.gabriel.fiastre.fr/captionformer/論文正文寫明:code 和 generated annotations 會在項目頁提供。
本專題其他文章