殺瘋了!Meta開源SAM-2:可商用,隨意分割視頻、圖像
2023年4月5日,Meta首次開源了視覺分割模型SAM,能夠根據交互和自動化兩種方式任意切割視頻、圖像中的所有元素,當時這個模型被譽為計算機視覺界的“ChatGPT時刻”。目前,SAM在Github超過45000顆星。
今天凌晨,Meta在SAM的基礎之上對架構、功能以及準確率等進行大量更新,正式開源了SAM-2,并支持Apache 2.0規則的商業化。這也是繼上周Llama 3.1之后,再次開源重磅模型。
同時Meta還分享了SAM-2的訓練數據集SA-V,包含了51,000真實世界視頻和超過600,000個時空遮罩,這比其他同類數據集大50倍左右,可幫助開發人員構建更好的視覺模型。
SAM-2開源地址:https://github.com/facebookresearch/segment-anything-2
在線demo:https://sam2.metademolab.com/
數據集地址:https://ai.meta.com/datasets/segment-anything-video/
SAM-2架構簡單介紹
SAM-2基礎架構是基于transformer模型并引入了流式記憶機制,主要由圖像編碼器、記憶編碼器、記憶注意力模塊、提示編碼器和掩模解碼器等模塊組成。
圖像編碼器作為SAM-2處理視頻幀的起點采用了流式處理方法,能夠處理任意長度的視頻,相比第一代可以使用更少的交互提升3倍效率。它使用的是一個預訓練的Hiera模型,能夠提供多尺度的特征表示,為后續的記憶注意力模塊和掩模解碼器提供豐富的上下文信息。
記憶編碼器和記憶注意力模塊是本次SAM-2的重要創新之一。記憶編碼器負責將模型先前的預測和用戶交互動作編碼為記憶,并將這些記憶存儲在記憶庫中,用于影響后續幀的分割結果。
記憶注意力模塊則利用這些記憶來增強當前幀的特征表示,使其能夠更好地捕捉目標對象在時間序列中的動態變化。
記憶編碼器通過將預測的分割掩模降采樣并與當前幀的特征融合,生成記憶特征。隨后通過一系列輕量級的卷積層進一步處理,以整合信息。記憶庫則保留了目標對象在視頻中的歷史信息,通過維護一個先進先出隊列來存儲最近N幀的記憶。
提示編碼器的設計遵循了SAM的原則,能夠接受點擊、框選或遮罩等不同類型的提示,以定義給定幀中對象的范圍。這些稀疏提示通過位置編碼和學習到的嵌入表示進行表示,而遮罩則通過卷積操作進行嵌入,并與幀嵌入相加。
掩模解碼器的設計在很大程度上遵循了第一代SAM的架構,使用了雙向transformer塊,這些塊更新提示和幀嵌入。為了處理可能存在多個兼容目標掩模的模糊提示,SAM-2預測每個幀上的多個掩模,這對于確保模型輸出有效掩模至關重要。
SA – V訓練數據集
現有的視頻分割數據集通常存在一些限制,例如,注釋對象主要集中在人、車輛和動物等特定類別,并且往往只覆蓋整個對象而忽略了部分和子部分。
此外,這些數據集的規模相對較小,無法滿足訓練強大的視頻分割模型的需求。為了解決這些難題,Meta開發了SA – V數據集并使用了三大階段。
在第一階段,使用了SAM模型來輔助人類標注。標注者的任務是在視頻的每幀中以每秒6幀的速度使用SAM和像素精確的手動編輯工具來標注目標對象的掩碼。
由于這是一種逐幀的方法,所有幀都需要從頭開始標注掩碼,因此流程非常緩慢,平均標注時間為每幀37.8秒。但這種方法能夠產生高質量的空間標注,在這個階段,共收集了16000個掩碼片段,涵蓋了1400個視頻。
第二階段,引入了SAM 2 Mask,它只接受掩碼作為提示。標注者首先使用SAM和其他工具在第一幀中生成空間掩碼,然后使用SAM 2 Mask將標注的掩碼在時間上傳播到其他幀,以獲得完整的時空掩碼片段。
通過這個階段的工作,收集了635,000個掩碼片段,標注時間下降到每幀7.4秒,相比第一階段有了顯著的提高,速度提升了約5.1倍。
第三階段,使用了完全功能的SAM-2,它能夠接受各種類型的提示,包括點和掩碼。與前兩個階段不同,SAM-2受益于對象在時間維度上的記憶來生成掩碼預測。
這意味著標注者只需要偶爾對SAM 2提供的預測掩碼進行細化點擊,就能夠在中間幀中編輯預測的掩碼片段,而不需要像在第一階段那樣從頭開始標注。通過多次重新訓練和更新SAM-2,標注時間進一步下降到每幀4.5秒,相比第一階段速度提升了約8.4倍。
所以,SA – V在開發SAM-2過程中發揮了重要作用,也是目前最大視覺分割訓練數據集之一。
本文轉自 AIGC開放社區 ,作者:AIGC開放社區
