比Meta「分割一切AI」更全能!港科大版圖像分割AI來了:實現(xiàn)更強粒度和語義功能
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
比Meta“分割一切”的SAM更全能的圖像分割AI,來了!
模型名為Semantic-SAM,顧名思義,在完全復現(xiàn)SAM分割效果的基礎上,這個AI還具有兩大特點:
- 語義感知:模型能夠給分割出的實體提供語義標簽
- 粒度豐富:模型能夠分割從物體到部件的不同粒度級別的實體
圖片
用作者自己的話說:
Semantic-SAM,在多個粒度(granularity)上分割(segment)和識別(recognize)物體的通用圖像分割模型。
據(jù)我們所知,我們的工作是在 SA-1B數(shù)據(jù)集、通用分割數(shù)據(jù)集(COCO等)和部件分割數(shù)據(jù)集(PASCAL Part等)上聯(lián)合訓練模型的首次嘗試,并系統(tǒng)研究了在SA-1B 上定義的交互分割任務(promptable segmentation)和其他分割任務(例如,全景分割和部件分割)上多任務聯(lián)合訓練的相互促進作用。
論文來自香港科技大學、微軟研究院、IDEA研究院、香港大學、威斯康星大學麥迪遜分校和清華大學等研究單位。
具體詳情,一起來看~
- 論文地址:https://arxiv.org/abs/2307.04767
- 代碼地址:https://github.com/UX-Decoder/Semantic-SAM
- 在線Demo地址:上述代碼倉庫的首頁
(以下為論文作者投稿)
1.簡介
Semantic-SAM可以完全復現(xiàn)SAM的分割效果并達到更好的粒度和語義功能,是一個強大的vision foundation model。Semantic-SAM 支持廣泛的分割任務及其相關(guān)應用,包括:
- Generic Segmentation 通用分割(全景/語義/實例分割)
- Part Segmentation 細粒度分割
- Interactive Segmentation with Multi-Granularity Semantics 具有多粒度語義的交互式分割
- Multi-Granularity Image Editing 多粒度圖像編輯
圖片
1.1 復現(xiàn)SAM
SAM是Semantic-SAM的子任務。我們開源了復現(xiàn)SAM效果的代碼,這是開源社區(qū)第一份基于DETR結(jié)構(gòu)的SAM復現(xiàn)代碼。
1.2 超越SAM
- 粒度豐富性: Semantic-SAM能夠產(chǎn)生用戶點擊所需的所有可能分割粒度(1-6)的高質(zhì)量實體分割,從而實現(xiàn)更加可控和用戶友好的交互式分割。
- 語義感知性。Semantic-SAM使用帶有語義標記的數(shù)據(jù)集和SA-1B數(shù)據(jù)集聯(lián)合訓練模型,以學習物體(object)級別和細粒度(part)級別的語義信息。
- 多功能。Semantic-SAM 實現(xiàn)了高質(zhì)量的全景,語義,實例,細粒度分割和交互式分割,驗證了SA-1B 和其他分割任務的相互促進作用。
只需單擊一下即可輸出多達 6 個粒度分割!與 SAM 相比,更可控地匹配用戶意圖,不用擔心鼠標移動很久也找不到想要的分割了~
2. 模型介紹
2.1 模型結(jié)構(gòu)
Semantic-SAM的模型結(jié)構(gòu)基于Mask DINO進行開發(fā)。Mask DINO是基于DETR框架的統(tǒng)一檢測和分割的網(wǎng)絡,目前仍然是相同模型size下的SOTA模型。Semantic-SAM的模型結(jié)構(gòu)主要改進在decoder部分,同時支持通用分割和交互式分割。通用分割的實現(xiàn)與Mask DINO相同。交互式分割包括point和box兩種形式,其中box到mask不存在匹配的ambiguity,實現(xiàn)方式與通用分割相同,而point到mask的匹配是Semantic-SAM的關(guān)鍵設計。
在Semantic-SAM中,用戶的point輸入被轉(zhuǎn)換成6個prompt, 每個prompt包含一個可學習的level embedding進行區(qū)分。這6個prompt通過decoder產(chǎn)生6個不同粒度的分割結(jié)果,以及object和part類別。
圖片
2.2 訓練
為了學到物體級別(object)和部件級別(part)的語義,Semantic-SAM同時從多個數(shù)據(jù)集中進行學習,如多粒度數(shù)據(jù)集(SA-1B),物體級別數(shù)據(jù)集(如COCO),以及部件級別數(shù)據(jù)集(如Pascal Part)。
為了從聯(lián)合數(shù)據(jù)集中學習語義感知性和粒度豐富性,我們引入以下兩種訓練方法:
解耦物體分類與部件分類的語義學習:為了學習到可泛化的物體和部件語義,我們采用解耦的物體分類和部件分類,以使得只有object標注的數(shù)據(jù)也可以學習到一些通用的part語義。例如,head是在幾乎所有動物上都通用的part,我們期望模型從有標注的dog head,cat head,sheep head等head中學習到可泛化的lion,tiger,panda等head的識別能力。
圖片
Many-to-Many的多粒度學習:對于交互式分割中的point輸入,Semantic-SAM利用6個prompt去輸出多粒度的分割結(jié)果,并用包含該點擊的所有標注分割來作為監(jiān)督。這種從多個分割結(jié)果到多個分割標注的Many-to-Many的匹配和監(jiān)督,使得模型能夠達到高質(zhì)量的多粒度分割效果。
圖片
3. 實驗
3.1 SA-1B 與通用分割數(shù)據(jù)集的聯(lián)合訓練
我們發(fā)現(xiàn),聯(lián)合訓練 SA-1B 和通用分割數(shù)據(jù)集可以提高通用分割性能,如對COCO分割和檢測效果有大幅提升。
圖片
在訓練SA-1B數(shù)據(jù)的過程中,我們也發(fā)現(xiàn)了利用少量SA-1B的數(shù)據(jù)即可得到很好的效果。
圖片
3.2 SA-1B 與細粒度分割數(shù)據(jù)集的聯(lián)合訓練
同樣的,聯(lián)合訓練 SA-1B 和細粒度分割數(shù)據(jù)集可以提高部件分割性能。
圖片
4. 可視化
4.1 Semantic-SAM的prompt從大量數(shù)據(jù)中學到了固定模式的表征
Semantic-SAM一共有6個可學習的prompt。對于不同圖片的點擊,觀察每個prompt對應的分割結(jié)果,可以發(fā)現(xiàn)每個prompt的分割都會對應一個固定的粒度。這表明每個prompt學到了一個固定的語義級別,輸出更加可控。
圖片
4.2 Semantic-SAM與SAM, SA-1B Ground-truth 的比較
每行最左邊圖像上的紅點是用戶點擊的位置,(a)(b) 分別是Semantic-SAM和 SAM 的分割輸出, (c) 是包含用戶點擊的 Groud-truth 分割。與 SAM 相比,Semantic-SAM具有更好的分割質(zhì)量和更豐富的粒度,方便用戶找到自己需要的分割粒度,可控性更好。
圖片