Meta最新開源!跟蹤一切升級版!性能超越OmniMotion!
最近幾個月,CV界真是跟“一切”杠上了。先是Meta在4月5日發(fā)布了Segment Anything,可以為任何圖像中的任何物體提供Mask。隨后又涌現(xiàn)出大量的二創(chuàng)“一切”,例如SAM3D(在3D場景中分割一切)、SAMM(分割一切醫(yī)學模型)、SegGPT(分割上下文中的一切)、Grounded Segment Anything(檢測一切/生成一切)等等,真的是一個大模型統(tǒng)治一個領(lǐng)域了。而在6月8日,谷歌又提出了“跟蹤一切”模型OmniMotion,直接對視頻中每個像素進行準確、完整的運動估計。本以為這就完了,結(jié)果前兩天Meta又新開源了CoTracker:跟蹤任意長視頻中的任意多個點,并且可以隨時添加新的點進行跟蹤!性能直接超越了谷歌的OmniMotion,不禁感嘆大佬們的世界真是太卷了。今天筆者就帶領(lǐng)小伙伴們欣賞一下這一神作!注意,這里說的跟蹤一切,并不是目標跟蹤,而是針對具體的點跟蹤。對目標跟蹤感興趣的小伙伴可以關(guān)注Track Anything這篇文章。
1. 效果展示先來看一下具體效果!
真的很絲滑。幾乎各種動態(tài)目標上的點都可以穩(wěn)定跟蹤!下面再來看看從標準網(wǎng)格上采樣的點能否穩(wěn)定跟蹤:相對于其他SOTA方案可以說很強了。而且也完全不懼遮擋:總之,效果非常好。代碼已經(jīng)開源了,感興趣的小伙伴趕快試試吧。下面我們來看看具體的文章信息。
2. 摘要用于視頻運動預測的方法要么使用光流聯(lián)合估計給定視頻幀中所有點的瞬時運動,要么獨立跟蹤整個視頻中單個點的運動。即使對于能夠通過遮擋跟蹤點的強大的深度學習方法,后者也是如此。單獨的跟蹤點忽略了點與點之間可能存在的強相關(guān)性,例如,由于它們屬于同一個物理對象,可能會損害性能。在本文中,我們提出了CoTracker,一種在整個視頻中聯(lián)合跟蹤多個點的架構(gòu)。這種架構(gòu)結(jié)合了來自光流和跟蹤文獻中的幾種思想,形成一種新的、靈活的和強大的設計。它基于一個Transformer網(wǎng)絡,通過專門的注意力層對不同時間點的相關(guān)性進行建模。Transformer迭代更新多個軌跡的估計值。它可以以滑動窗口的方式應用于非常長的視頻,為此我們設計了一個unrolled learning環(huán)。它可以從一個點聯(lián)合跟蹤到幾個點,并支持隨時添加新的點進行跟蹤。其結(jié)果是一個靈活而強大的跟蹤算法,在幾乎所有的基準測試中都優(yōu)于最先進的方法。
3. 算法解析目前主流的運動跟蹤方法主要有兩類:一個是光流法,即直接估計視頻幀中所有點的瞬時速度,但是很難估計長期運動(尤其是遇到遮擋和相機幀率低的時候)。另一個是跟蹤法,即選擇有限點直接在連續(xù)時間上進行跟蹤,但是沒有利用同一物體上不同點的相互作用關(guān)系。而CoTracker就同時利用了兩種方法的思想:使用Transformer來建模同一物體上點的相關(guān)性,并且使用滑動窗口來跟蹤超長視頻序列!CoTracker的輸入是視頻和可變數(shù)量的軌跡起始位置,輸出是整條軌跡。注意,網(wǎng)絡的輸入可以是視頻序列中的任意位置和任意時間!整篇論文其實沒有特別多的數(shù)學推導,但是文章是思想很巧妙。CoTracker的具體原理如下。首先假設點是靜止的來初始化點坐標P,然后使用CNN來提取圖像特征Q,為了節(jié)省顯存,圖像特征為原圖的1/32大小,同時還會加上一個標記v表示目標是否被遮擋。之后,輸入token(P,v,Q)就被饋送到Transformer中進行相關(guān)性建模,得到輸出token(P’,Q’)表示更新后的位置和圖像特征。CoTracker的亮點在于,它設計了滑動窗口和循環(huán)迭代來進行長視頻的跟蹤。對于長度超過Transformer所支持的最大長度T的視頻序列,會使用滑動窗口進行建模。滑動窗口的長度為J=?2T′/T-1?,并且對于每個滑動窗口,會進行M次迭代。也就是說總共有JM次迭代運算。對于每一次迭代,都會對點的位置P和圖像特征Q進行更新。需要注意的是,這里的標記v并不是通過Transformer來更新的,而是在M次迭代結(jié)束以后根據(jù)計算結(jié)果更新的。還有一個unrolled learning是啥意思呢?這里主要說的是針對半重疊窗口的學習方式。由于這種學習方式不會導致計算成本的大幅增加,因此理論上CoTracker可以處理任意長度的視頻序列。此外,unrolled learning可以跟蹤后出現(xiàn)在視頻中的點!CoTracker還使用了大量的trick,比如對于網(wǎng)絡的輸入和輸出使用兩個線性層,這樣計算復雜度就從O(N2T2)降低到了O(N2+T2)。這里的N代表跟蹤的總點數(shù),T代表視頻序列的長度。
4. 實驗結(jié)果CoTracker的訓練在TAP-Vid-Kubric綜合數(shù)據(jù)集上進行,測試在TAP-Vid-DAVIS、TAP-Vid-Kinetics、BADJA、FastCapture四個包含軌跡真值的數(shù)據(jù)集上進行。訓練使用了11000個預生成的24幀視頻序列,每個序列包含2000個跟蹤點。而在具體的訓練過程中,主要是從前景對象上采樣了256個點。訓練使用了32塊V100(果然普通人還是玩不起)。CoTracker的實驗很有意思,因為數(shù)據(jù)集上含有軌跡真值。因此為了驗證軌跡是由CoTracker真實產(chǎn)生的,作者還在視頻中選擇了很多額外的點進行驗證。CoTracker的結(jié)果也很棒!性能直接超越了谷歌6月發(fā)布的OmniMotion!作者也做實驗證明了unroll滑動窗口的重要性。由于評估過程中的benchmark都超級長,因此結(jié)果也證明了CoTracker確實可以很好得應用到長視頻序列中!
5. 總結(jié)近期,全世界各大實驗室都在瘋狂發(fā)布大模型。Cotracker是一個很新穎的跟蹤一切的AI模型,它主要的創(chuàng)新在于可以對同一物體上的不同點進行相關(guān)性建模,并且可以用于超長的視頻序列。這一點是常規(guī)的光流方法和跟蹤方法所替代不了的,所以對于有長時間跟蹤需求的項目來說,Cotracker是一個很不錯的選擇。未來還會出現(xiàn)什么新奇的模型呢,匹配一切?對話一切?計算一切位姿?讓我們拭目以待。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。