成為火爆熱門話題的ChatGPT讓大家看到了通用AI大模型的威力,也帶動了近期一批自然語言處理(NLP)領域大模型的不斷被推出──最近在電腦視覺領域就出現了專屬的物體分割大模型,由Meta開源的「萬物可分割」(Segment Anything Model,SAM)物體分割模型。
物體分割是電腦視覺中的核心任務之一,旨在識別影像中屬於特定物件的像素。通常實現影像分割的方4374法有兩種,即互動式分割和自動分割。互動式分割可以對任何類別的物件進行分割,但需要人工引導,並通過反覆精細化遮罩來完成。而自動分割可以對預定義的特定物件類別進行分割,但需要對大量手動標注的物件進行訓練,同時需要大量的計算資源和具有技術專業知識的人員來訓練分割模型。然而,這兩種方法都沒有提供一種通用的、完全自動的分割方法。
SAM是這兩種方法的泛化,它是一個單一模型,可以輕鬆地執行互動式分割和自動分割。SAM可以從輸入提示(例如點或框)生成高品質的物件遮罩,並且可以用於生成影像中所有物件的遮罩。它已經在一個包含1.1億個遮罩的1,100萬個影像資料集上進行了訓練,並且在各種分割任務上具有較強的零樣本性能。它創建了一個通用的物體分割模型,從分析科學影像到編輯照片等各種應用程式中都可以使用。
圖1:SAM推論結果範例
這個強大的通用分割模型,我們的OpenVINO當然也是可以對它進行最佳化以及推論的加速,使其可以方便快速地在Intel的CPU上部署執行。為了方便各位開發者使用,我們同樣提供了Jupyter Notebook形式的原始程式碼,大家只需要跟隨程式碼裡的步驟,就可以在自己的機器上執行SAM,對影像進行任意分割!
OpenVINO五歲了!想知道更多最新版本2023.0的新功能與亮點,歡迎免費報名參加OpenVINO™ DevCon 線上系列講座,聽Intel技術專家開講並展示應用範例!
SAM模型由三個部分組成。
- 影像編碼器(Image Encoder):這是一個Vision Transformer模型(ViT),使用Masked Auto Encoders方法(MAE)對影像進行編碼,將影像轉換為嵌入空間。影像編碼器對每個影像執行一次,可以在向模型輸入提示之前應用它。
- 提示編碼器(Prompt Encoder ):這是一個用於分割條件的編碼器。可以使用以下條件進行分割提示:
-
- 點(points)──與應分割的物件相關的一組點。Prompt編碼器使用位置編碼將點轉換為嵌入值。
- 框(boxes)── 應分割的物件所在的邊界框。類似於points,邊界框的座標通過位置編碼來進行編碼。
- 分割遮罩──由使用者提供的分割遮罩使用卷積進行嵌入,並與影像嵌入進行element-wise求和。
- 文本(text)──由CLIP模型編碼的文本表示。
- 遮罩解碼器(Mask Decoder) :遮罩解碼器有效地將影像嵌入、提示嵌入和輸出標記映射到遮罩。
下圖描述了SAM生成遮罩的流程圖:
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏