Deep Learning 101, Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101

AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。

Deep Learning 101 Buy Me A Coffee

去 YouTube 訂閱 | Facebook | 回 GitHub Pages | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心


大語言模型 語音處理 自然語言處理 電腦視覺
Large Language Model Speech Processing Natural Language Processing, NLP Computer Vision

用 AI 懂 AI

AI 技術 體驗/分享

手把手帶你一起踩 AI 坑https://www.twman.org/AI


AI 技術 開源/試用

Instance Segmentation YouTube

2020/05/01 顏志翰 (Bean)


實例分割與語義分割的區別

語義分割的目標是將圖像中的每個像素分類到預定義的語義類別之一 [2, 3, 5]。簡單來說,它只關心「這是什麼類別」[2, 4]。例如,在一張照片中,語義分割會把所有的牛都標記為「牛」這個類別,不論是哪一隻個體 [4]。換句話說,語義分割將同一類別的所有像素標記為一個整體,不區分個體 [3]。

實例分割則更進一步 [2, 4]。它不僅要識別物體的類別,還要區分屬於同一類別的不同個體,並為每個個體生成獨立的像素級掩膜(Mask)[2, 3, 6]。用牛的例子來說,實例分割不僅知道圖中有牛,還能區分出「第一隻牛」、「第二隻牛」等等,並為每一隻牛生成一個專屬的分割 Mask [4]。這點是實例分割與語義分割最主要的差異 [2]。

實例分割的主要挑戰包括物體之間的疊合、遮蔽、顏色相似以及空間上的奇異性(例如一個物體被另一個物體包圍)[2, 4]。在有物體疊合的情況下,要精確地分割出每一個獨立的個體,難度會顯著增加 [2, 7]。

實例分割的主要方法:Two-stage 與 One-stage

目前實例分割的方法大致可分為兩大類:Two-stage(兩階段)方法和 One-stage(一階段)方法 [2, 4, 8]。對於新手而言,理解這兩種方法的流程是入門的第一步。

  1. Two-stage (兩階段) 方法 [2-4]
    • 流程: 這類方法遵循一個「先檢測後分割」的思路 [2, 3]。首先,它會進行物體檢測(Object Detection),在圖像中找到可能包含物體的區域,這些區域被稱為物體提案(Proposal)或候選區域(Region Proposal)[2-4, 8-10]。接著,對於每一個被檢測到的物體提案,模型會再對其進行實例 Mask 的分割 [2, 4, 8]。
    • 代表性方法: Mask R-CNN (MCNN) 是 Two-stage 方法中最具代表性且影響力最大的模型 [2, 4, 6, 10]。它是在 Fast R-CNN 物體檢測模型的基礎上發展而來,並增加了一個用於預測每個候選區域物體 Mask 的分支 [2, 6]。
    • 優缺點: Two-stage 方法的優點通常是精準度較高 [2, 4]。因為它有一個明確的物體檢測階段,為後續的分割提供了良好的基礎 [2]。尤其在 COCO 排行榜上,大多數高性能方法都是基於 Mask R-CNN 進行改進的 [2]。然而,它的缺點是速度通常較慢,因為需要分兩個階段處理 [2, 4]。有資料提到,去年的 HPCK 方法在 COCO test-dev 上的 MAP 達到 43.9,但速度非常慢 [2]。研究顯示,從 2019 年到 2020 年間,Two-stage 方法的發展似乎進入瓶頸,沒有顯著突破 [11]。
    • 關鍵點: 核心在於「先找框(Proposal),再在框裡切 Mask」[2-4, 8]。
  2. One-stage (一階段) 方法 [2-4]
    • 流程: 與 Two-stage 方法不同,One-stage 方法沒有單獨的物體提案階段 [2-4, 8]。它試圖直接從圖像中同時輸出物體的類別、位置(或相關資訊)和實例 Mask [2-4, 12]。流程更為精簡 [4]。
    • 代表性方法: SOLO 是一種重要的 One-stage 實例分割方法 [2, 4, 6, 11]。它直接進行分類和實例 Mask 的切割,不依賴 Region Proposal [2, 11]。
    • 優缺點: One-stage 方法的優點是速度通常比 Two-stage 方法快,因為處理流程更精簡 [2, 4, 13]。傳統上認為 One-stage 方法在精準度上較 Two-stage 方法差 [2, 4, 10]。然而,近期的 SOLO 等方法似乎顛覆了這種觀念 [2, 4, 10]。Solo 在 test 資料集上的 FPS 可達 31,MAP 達到 37.1,已經與 Mask R-CNN 相當甚至更高 [2]。改進後的 SOLO V2 速度更快(31.3 FPS),且 MAP 逼近最高精度方法 [2, 10]。講者認為 One-stage 方法,特別是 SOLO 這種方式,具有很大潛力 [2, 4, 10]。
    • 關鍵點: 核心在於「直接預測 Mask,不需要單獨找框」[2-4, 12]。

Bottom-up (自下而上) 方法

除了主流的 Two-stage 和 One-stage,還有 Bottom-up 方法 [2, 4, 8]。對新手來說,這種方法思路比較特別。

Mask R-CNN 的核心:ROI Align

作為 Two-stage 方法的代表,Mask R-CNN 的成功很大程度上歸功於其引入的 ROI Align [2, 5, 6, 10, 11]。理解 ROI Align 對於理解 Mask R-CNN 的精度提升至關重要,也是新手需要掌握的一個重點。

SOLO 方法的機制

SOLO (Segmenting Objects by Locations) 作為 One-stage 方法的代表,其思路也值得新手學習 [2, 4, 6, 11]。

高性能實例分割方法的改進策略:Cascading 與特徵融合

僅僅依靠單一的核心思想往往不足以達到最佳性能 [2]。目前 COCO 排行榜上的一些頂尖方法,特別是基於 Mask R-CNN 改進的方法,通常會融合多種技術策略來提升精度 [2, 6, 11, 17, 19-21]。對於希望深入研究實例分割的朋友,了解這些進階策略非常重要。

  1. 迭代式精煉 (Iterative Refinement) 或 Cascading [2, 3, 6, 19, 20]
    • 概念: 將多個網路級聯(Cascade)起來,前一個網路階段的輸出作為後一個網路階段的輸入,逐步改進結果 [2, 6, 20]。這種思路可以應用於物體提案的精煉或 Mask 的改進 [2]。
    • 應用: 一種應用是利用前一個階段調整後的更精確的邊界框來幫助後一個階段的 Mask 預測 [2, 20]。另一種思路是利用前一個階段預測的 Mask 來幫助後一個階段的 Mask 預測,這有點類似於殘差網路(Residual Network)的概念,將前一個階段的 Mask 加入到 Feature Map 中,以幫助下一個階段做出更好的改進 [2, 6, 19-21]。這種方法通過多次迭代或串聯處理,逐步提高預測的準確度 [3, 6, 20]。
  2. 融合語義分割資訊 [1, 2, 6, 19, 21]
    • 概念: 將語義分割的輸出或 Feature Map 整合到實例分割的流程中 [1, 2, 6, 19, 21]。
    • 應用: 語義分割的輸出通常包含前景/背景資訊和類別資訊 [2, 3, 5, 21]。將這些資訊整合到實例分割的 Mask 分支中,可以幫助模型更好地理解物體的輪廓和類別歸屬,從而提升 Mask 的精準度 [2, 19, 21]。最高精度的某些方法就融合了多種 cascading 策略,並將 semantic segmentation 的 Feature Map 加入到 Mask 分支中 [2, 19, 21]。
  3. 融合其他技術 [2, 19] 除了上述兩種,高性能方法還可能融合其他多種方法 [2, 11, 19]。例如,迭代式地改進 Bounding Box 和 Mask [11]。最高精度的 CatC 方法就被提及融合了多種方法來達到當時最高的 AP (43.2),這可能是指 COCO 資料集上的 AP [2, 11, 17, 19]。

訓練資料與評估指標

對於新手來說,了解訓練資料是什麼樣子也很重要 [18]。

人物提及

資料中還提到了幾位人物 [23]。

總結與展望

目前來看,Two-stage 方法在精度上仍有優勢,但速度較慢 [2, 24]。Mask R-CNN 及其改進版本在排行榜上佔據前列 [2, 11]。Mask R-CNN 的 ROI Align 解決了量化誤差問題,是精度提升的關鍵 [2, 24]。高性能方法通過級聯、迭代精煉以及融合語義分割等資訊來進一步提升精度 [2, 3, 6, 19, 21, 24]。

One-stage 方法,特別是 SOLO,在速度和精度上取得了顯著進展,具有很大的潛力,可能會顛覆傳統觀念 [2-4, 10, 24]。儘管在概念上更精簡,但實際實現也可能複雜 [13]。

Bottom-up 方法目前非主流,但其先分割再聚類的思想可能仍有潛力,尤其在與 Top-down 方法結合時 [2, 4, 8, 24]。

對於未來,講者對 3D 實例分割感興趣,希望 2D 的最新方法(如 Two-stage vs One-stage, 邊界處理, 特徵融合等)能有所啟發 [2, 6, 21, 24]。將這些概念應用於 3D 點雲或體素數據的實例分割任務,是一個值得探索的方向 [6, 24]。

這就是根據提供的資料,針對實例分割領域的一些核心概念、主要方法及其代表模型、關鍵技術以及最新進展的匯整介紹。希望這些內容能幫助剛入門的朋友們對實例分割有一個全面且深入的了解。後續可以針對感興趣的部分,進一步閱讀相關論文來深入研究 [24]。