用Meta「分割一切」搞定一切關系,唱跳偷襲效果拔群!NTU等提出全新RAM模型
本月初,Meta推出的「分割一切」模型可謂是震撼了整個CV圈。
這幾天,一款名為「Relate-Anything-Model(RAM)」的機器學習模型橫空出世。它賦予了Segment Anything Model(SAM)識別不同視覺概念之間的各種視覺關系的能力。
據了解,該模型由南洋理工大學MMLab團隊和倫敦國王學院和同濟大學的VisCom實驗室的同學利用閑暇時間合作開發。
演示地址:https://huggingface.co/spaces/mmlab-ntu/relate-anything-model
代碼地址:https://github.com/Luodian/RelateAnything
數據集地址:https://github.com/Jingkang50/OpenPSG
效果演示
首先,讓我們來看一看「Relate-Anything-Model(RAM)」的應用實例吧!
比如,下面這些關于踢足球、跳舞和交朋友的RAM模型實現的圖像分析結果,就讓人印象非常深刻,很好地展示了模型出色的性能和多樣化應用的潛力。
預備知識:全場景圖生成PSG任務
RAM模型基于ECCV'22 SenseHuman Workshop & 國際算法算例大賽「Panoptic Scene Graph Generation」賽道冠軍方案。
論文地址:https://arxiv.org/abs/2302.02651
該PSG挑戰賽獎金百萬,共收到來自全球100支團隊提交的各種解決方案,其中包括了使用先進的圖像分割方法以及解決長尾問題等。此外,競賽還收到了一些創新性的方法,如場景圖專用的數據增強技術。
經過評估,根據性能指標、解決方案的新穎性和意義等方面的考慮,小紅書團隊的GRNet脫穎而出,成為獲勝的方法。
比賽詳情:https://github.com/Jingkang50/OpenPSG
在介紹解決方案之前,我們首先來介紹兩個經典的PSG基線方法,其中一個是雙階段方法,另一個是單階段方法。
對于雙階段基線方法,如圖a所示,在第一階段中,使用預訓練的全景分割模型Panoptic FPN從圖像中提取特征、分割和分類預測。然后,將每個個體對象的特征提供給經典的場景圖生成器,如IMP,以便在第二階段進行適應PSG任務的場景圖生成。該雙階段方法允許經典的SGG方法通過最小的修改適應PSG任務。
如圖b所示,單階段基線方法PSGTR首先使用CNN提取圖像特征,然后使用類似DETR的transformer編碼器-解碼器來直接學習三元組表示。匈牙利匹配器用于將預測的三元組與基本真實三元組進行比較。然后,優化目標最大化匹配器計算的成本,并使用交叉熵進行標簽和分割的DICE/F-1損失計算總損失。
RAM模型架構
在RAM模型的設計過程中,作者參考了PSG冠軍方案GRNet的雙階段結構范式。盡管PSG原文的研究中表明,單階段模型目前的表現優于雙階段模型,然而,單階段模型通常無法像雙階段模型那樣達到良好的分割性能。
經對不同模型結構的觀察推測,單階段模型在關系三元組預測上的優異表現可能是由于來自圖像特征圖的直接監督信號有利于捕捉關系。
基于這一觀察,RAM的設計同GRNet一樣,旨在兩個模式之間找到一個權衡,通過重視雙階段范式并賦予其類似于單階段范式中獲取全局上下文的能力來實現。
具體地,首先利用Segment Anything Model(SAM)作為特征提取器,識別和分割圖像中的物體對象,將來自SAM分割器的特定對象的中間特征映射與其對應的分割融合,得到對象級別特征。
隨后,把Transformer作為一種全局上下文模塊,將獲得的對象級別特征經過線性映射后輸入其中。通過Transformer編碼器中的交叉注意力機制,輸出的對象特征從其他對象中收集了更多的全局信息。
最后,對于Transformer輸出的每個對象級別特征,通過self-attention機制進一步豐富上下文信息并使各個物體對象之間完成交互。
請注意,這里還添加了一個類別嵌入以指示對象的類別,并由此得到了成對的物體及它們之間關系的預測。
RAM關系分類
在訓練過程中,對于每個關系類別,需要執行關系二元分類任務以確定對象對之間是否存在關系。
和GRNet相似的,對關系二元分類任務還有一些特別的考慮。例如, PSG數據集通常包含兩個具有多個關系的對象,例如「人看著大象」和「人喂大象」同時存在。為了解決多標簽問題,作者將關系預測從單標簽分類問題轉換為多標簽分類問題。
此外,由于PSG數據集通過要求注釋者選擇特定和準確的謂詞(如「停在」而不是更一般的「在」)來追求精度和相關性,可能不適合學習邊界關系(如「在」實際上與「停在」同時存在)。為了解決這個問題,RAM采用了一種自我訓練策略,使用自我蒸餾標簽進行關系分類,并使用指數移動平均來動態更新標簽。
RAM的其他設計
在計算關系二元分類損失時,每個預測對象必須與其對應的基礎真實對象配對。匈牙利匹配算法用于此目的。
然而,該算法容易出現不穩定情況,特別是在網絡準確度低的早期訓練階段。這可能導致對于相同的輸入,匹配產生不同的匹配結果,導致網絡優化方向不一致,使訓練變得更加困難。
在RAM中,不同于之前方案,作者借助于強大的SAM模型,可以對幾乎任何圖片進行完整且細致的分割,因此,在匹配預測和GT過程中, RAM自然地設計了新的GT匹配方法:使用PSG數據集來訓練模型。
對于每個訓練圖像,SAM會分割多個物體,但只有少數與PSG的ground truth(GT)mask相匹配。作者根據它們的交集-并集(IOU)分數進行簡單的匹配,以便(幾乎)每個GT mask都被分配到一個SAM mask中。之后,作者根據SAM的mask重新生成關系圖,自然地匹配上了模型的預測。
RAM模型總結
在RAM模型中,作者利用Segment Anything Model(SAM)來識別和分割圖像中的物體,并提取每個分割物體的特征。隨后使用Transformer模塊來使分割物體之間產生交互作用,從而得到新的特征。最后將這些特征經過類別嵌入后,通過self-attention機制輸出預測結果。
在訓練過程中,特別地,作者提出了新的GT匹配方法并基于該方法,計算預測和GT的配對關系并分類它們的相互關系。在關系分類的監督學習過程中,作者視之為多標簽分類問題并采用了一種自我訓練策略學習標簽的邊界關系。
最后,希望RAM模型能夠為你帶來更多的啟發和創新。如果你也想訓練會找關系的機器學習模型,可以關注該團隊的工作,并隨時提出反饋和建議。
項目地址:https://github.com/Jingkang50/OpenPSG