Meta「分割一切」進化2.0,一鍵跟蹤運動物體,代碼權重數據集全開源,網民:真正的OpenAI
又是發佈即開源!
Meta「分割一切AI」二代SAM2在SIGGRAPH上剛剛亮相。
相較於上一代,它的能力從圖像分割拓展到影片分割。
可實時處理任意長影片,影片中沒見過的對象也能輕鬆分割追蹤。
![](http://n.sinaimg.cn/spider20240730/190/w640h350/20240730/7f95-0c5f374ce74afd83082133615c900d97.jpg)
更關鍵的是,模型代碼、權重以及數據集通通開源!
它和Llama系列一樣遵循Apache 2.0許可協議,並根據BSD-3許可分享評估代碼。
網民yygq:我就問OpenAI尷尬不尷尬。
![](http://n.sinaimg.cn/spider20240730/612/w1050h362/20240730/a16d-3aafb1bee51e8e8ea619b2d168a2a609.jpg)
Meta表示,此次開源的數據集包含51000個真實世界影片和600000個時空掩碼(masklets,spatio-temporal masks),規模遠超此前最大同類數據集。
可在線試玩的demo也同步上線,大家都能來體驗。
![](http://n.sinaimg.cn/spider20240730/574/w852h522/20240730/b730-b572bfe9c8c483c0998d02a707f8b841.jpg)
在SAM之上加入記憶模塊
相較於SAM一代,SAM2的能力升級主要有:
支持任意長影片實時分割
實現zero-shot泛化
分割和追蹤準確性提升
解決遮擋問題
![](http://n.sinaimg.cn/spider20240730/642/w326h316/20240730/5c51-db112c5e6e3b53e05fa0c31a6cbac9ed.jpg)
它進行交互式分割的過程主要分為兩步:選擇和細化。
在第一幀中,用戶通過點擊來選擇目標對象,SAM2根據點擊自動將分割傳播到後續幀,形成時空掩碼。
如果SAM2在某些幀中丟失了目標對象,用戶可以通過在新一幀中提供額外的提示來進行校正。
如果在第三幀中需要需要恢復對象,只需在該幀中點擊即可。
![](http://n.sinaimg.cn/spider20240730/673/w1080h393/20240730/ac66-69c88a2c5ad71dbb6f229cd15875a61a.jpg)
SAM2的核心思路是將圖像視作單幀影片,因此可以從SAM直接擴展至影片領域,同時支持圖像和影片輸入。
處理影片唯一的區別在於,模型需要依賴內存來回憶處理過的信息,以便在當前時間步長上準確分割對象。
與圖像分割相比,影片分割中,物體的運動、變形、遮擋和光線等都會發生強烈變化。同時分割影片中的對象需要瞭解實體跨越空間和時間的位置。
![](http://n.sinaimg.cn/spider20240730/642/w326h316/20240730/31f8-fbdb55d3220820b46685beba511436b8.jpg)
所以Meta主要做了三部分工作:
設計一個可提示的視覺分割任務
在SAM基礎上設計新模型
構建SA-V數據集
![](http://n.sinaimg.cn/spider20240730/668/w1080h388/20240730/353e-4d0be24e395c4e135add3631e613b62d.jpg)
首先,團隊設計了一個視覺分割任務,將圖像分割任務推廣到影片領域。
SAM被訓練成以圖像中的輸入點、框或掩碼來定義目標並預測分割掩碼(segmentation mask)。
然後訓練SAM在影片的任意幀中接受prompt來定義要預測的時空掩碼(masklet)。
SAM2根據輸入提示對當前幀上的掩碼進行即時預測,並進行臨時傳播,在所有幀上都可生成目標對象的掩碼。
一旦預測到初始掩碼,就可以通過任何幀中向SAM2提供額外提示來進行迭代改進,它可以根據需要重覆多次,直到獲取到所有掩碼。
![](http://n.sinaimg.cn/spider20240730/110/w640h270/20240730/f759-984f057c37fd0b514c5e0cda187f841e.jpg)
通過引入流式記憶(streaming memory),模型可以實時處理影片,還能更加準確分割和跟蹤目標對象。
它由記憶編碼器、記憶庫和記憶注意力模塊組成。讓模型一次只處理一幀圖像,利用先前幀信息輔助當前幀的分割任務。
分割圖像時,內存組件為空,模型和SAM類似。分割影片時,記憶組件能夠存儲對象信息以及先前的交互信息,從而使得SAM2可以在整個影片中進行掩碼預測。
如果在其他幀上有了額外提示,SAM2可以根據目標對象的存儲記憶進行糾錯。
記憶編碼器根據當前預測創建記憶,記憶庫保留有關影片目標對像過去預測的信息。記憶注意力機制通過條件化當前幀特徵,並根據過去幀的特徵調整以產生嵌入,然後將其傳遞到掩碼解碼器以生成該幀的掩碼預測,後續幀不斷重覆此操作。
![](http://n.sinaimg.cn/spider20240730/571/w1080h291/20240730/02b2-7126e99bff58d4212be5c25dcf92b540.jpg)
這種設計也允許模型可以處理任意時長的影片,不僅對於SA-V數據集的註釋收集很重要,也對於機器人等領域應有有影響。
如果被分割對象比較模糊,SAM2還會輸出多個有效掩碼。比如用戶點擊了單車的輪胎,模型可以將此理解為多種掩碼,可能是指輪胎、可能是指單車全部,並輸出多個預測。
在影片中,如果在一幀圖像中僅有輪胎可見,那麼可能需要分割的是輪胎;如果影片後續幀中很多都出現了單車,那麼可能需要分割的是單車。
如果還是不能判斷用戶到底想分割哪個部分,模型會按照置信度進行選擇。
此外,影片中還容易出現分割對象被遮擋的情況。為瞭解決這個新情況,SAM2還增加了一個額外的模型輸出「遮擋頭」(occlusion head),用來預測對像是否出現在當前幀上。
![](http://n.sinaimg.cn/spider20240730/194/w640h354/20240730/5136-15c004673d8e651c358ffe6ad0fe7fbe.jpg)
此外,在數據集方面。
SA-V中包含的影片數量是現有最大同類數據集的4.5倍,註釋量則是53倍。
![](http://n.sinaimg.cn/spider20240730/700/w354h346/20240730/6f7a-fc09c767eb08f6c8b4cd1f7ea2a1795e.jpg)
為了收集到如此多的數據,研究團隊構建了一個數據引擎。人工會利用SAM2在影片中註釋時空掩碼,然後將新的註釋用來更新SAM2。多次重覆這一循環,就能不斷迭代數據集和模型。
和SAM相似,研究團隊不對註釋的時空掩碼進行語義約束,而是更加關注完整的物體。
這一方法讓收集影片對象分割掩碼速度也大幅提升,比SAM快8.4倍。
解決過度分割、超越SOTA
對比來看,使用SAM2可以很好解決過度分割的問題。
![](http://n.sinaimg.cn/spider20240730/700/w354h346/20240730/7e83-d265895ea9da6647a2b55613fc3b1ac0.jpg)
實驗數據顯示,和半監督SOTA方法比較,SAM2各項性能都表現不錯。
![](http://n.sinaimg.cn/spider20240730/726/w1080h446/20240730/7843-897477b5e12bb6be1c64c83e818389b9.jpg)
不過研究團隊也表示,SAM2還有不足,比如可能會跟丟對象。如果相機視角變化大、在比較擁擠的場景里,就容易出現這類情況。所以他們設計了實時交互的模式,支持手動修正。
![](http://n.sinaimg.cn/spider20240730/190/w640h350/20240730/aa45-5e9a5fe04c0ab1db70ee5a7105b1ac75.jpg)
以及目標對象移動過快,可能會細節上有缺失。
![](http://n.sinaimg.cn/spider20240730/280/w698h382/20240730/962a-a62a7e9aa9e62d61f292ccdc15592154.jpg)
最後,模型不僅開源支持免費使用,並已在Amazon SageMaker 等平台上託管。
值得一提的是,有人發現論文中提到SAM2訓練是在256塊A100上耗時108小時完成,對比SAM1則花了68小時。
從圖像分割擴展到影片領域,成本如此低?
![](http://n.sinaimg.cn/spider20240730/176/w1080h696/20240730/0579-8017fb3650374d27048c4599930879d1.jpg)
參考鏈接:
[1]https://ai.meta.com/blog/segment-anything-2/
[2]https://x.com/swyx/status/1818074658299855262
本文來自微信公眾號「量子位」,作者:明敏,36氪經授權發佈。