Instance Segmentation/zh

    From Marovi AI
    This page is a translated version of the page Instance Segmentation and the translation is 100% complete.
    Other languages:
    Article
    Topic area Computer Vision
    Prerequisites Convolutional Neural Network, Object Detection, Semantic Segmentation


    概述

    實例分割是一項計算機視覺任務,旨在檢測圖像中的每一個物體實例,並為每個實例生成像素級精度的掩膜。與語義分割不同——後者為每個像素分配一個類別標籤,但不區分同一類別的不同物體——實例分割將每個獨立物體分開處理:相鄰的兩輛汽車會得到兩個獨立的掩膜,而不是合併為一個"汽車"區域。與物體檢測不同——後者用軸對齊的邊界框來定位物體——實例分割則精確勾勒出物體的邊界。

    對於一張圖像,輸出是一組長度可變的元組,每個元組由一個類別標籤、一個置信度分數和一個覆蓋該物體的二值掩膜組成。實例分割是自動駕駛、醫學影像、機械人操控、衛星圖像分析和照片編輯工具等應用的基礎。它比其任何組成任務都更困難,因為模型必須同時解決一個檢測問題(有多少物體、屬於哪些類別、位於何處)和一個細粒度的像素標註問題(哪些像素屬於哪個實例),並且必須以能夠處理重疊和遮擋物體的方式來完成。

    與相鄰任務的關係

    實例分割位於若干已被深入研究的問題的交匯處。語義分割生成單一的標籤,無法對物體進行計數。物體檢測生成軸對齊的邊界框,框內包含物體周圍的背景像素。全景分割是一種嚴格的泛化,它將針對"things"(可數物體,如人和汽車)的實例分割與針對"stuff"(非定形區域,如天空和道路)的語義分割統一起來,將每個像素恰好分配給一個分段。

    理解二者差異的一種有用方式是:語義分割回答"每個像素是什麼",檢測回答"每個物體在哪裏",而實例分割同時回答這兩個問題。許多架構利用了這一點:在多個任務之間共享一個主幹網絡,並附加針對各任務的專用頭。

    兩階段方法

    多年來佔主導地位的範式是在兩階段檢測器之上擴展一個掩膜頭。Mask R-CNN[1]Faster R-CNN的基礎上,增加了一個小型全卷積網絡,為每個感興趣區域(RoI)預測一個二值掩膜。兩個階段分別為:(1)一個區域建議網絡,它根據主幹網絡的特徵生成候選物體框;(2)逐 RoI 的檢測頭,對候選框進行分類、對邊界框進行精化,並預測一個固定解像度的掩膜(通常為 28x28 或 14x14),然後將其縮放到該邊界框。

    一項關鍵貢獻是 RoIAlign,它將量化的 RoIPool 替換為在浮點坐標處進行的雙線性採樣。量化會引入幾像素的對齊誤差——這對於邊界框回歸是可以容忍的,但對於掩膜來說是災難性的,因為一兩個像素的偏差就會明顯地降低邊緣質量。RoIAlign 在不改變模型其餘部分的情況下,將掩膜AP提高了數個百分點。

    掩膜頭將掩膜預測與分類解耦:它為每個類別預測一個獨立的二值掩膜,並在推理時選擇與預測類別對應的那一個。每個 RoI 的掩膜損失是僅在真實類別對應的通道上計算的二元交叉熵,從而避免不同類別之間相互競爭。

    單階段與實時方法

    兩階段方法精確但速度較慢,因為每個 RoI 都要順序地通過掩膜頭。單階段實例分割旨在實現實時推理,直接從稠密的特徵圖中預測掩膜。

    YOLACT[2]將掩膜預測分解為兩部分:一組對整張圖像有效的"原型掩膜",每張圖像只生成一次;以及在每次檢測時預測的每個實例的係數。最終的實例掩膜是這些原型的線性組合,然後被預測的邊界框裁剪。SOLO[3]則完全重新表述了該問題:它在網格的每個單元上預測一個實例類別和相應的掩膜,以直接的稠密掩膜預測取代"先檢測後分割"的流程。CondInst[4]為每個實例預測動態卷積濾波器,這些濾波器作用於共享的特徵以生成掩膜。

    基於 Transformer 的方法

    檢測 Transformer 將實例預測重新表述為集合預測。DETR[5]使用可學習的物體查詢(object queries),這些查詢關注圖像特徵並輸出固定大小的(類別、邊界框)預測集合;訓練時採用匈牙利匹配損失,強制與真值之間形成一一對應關係,從而消除了對非極大值抑制的需求。

    MaskFormer 和 Mask2Former[6]將這一思想擴展到分割任務,讓每個查詢直接預測一個類別和一個掩膜。單一的 Mask2Former 架構在語義分割、實例分割和全景分割基準上都取得了最先進的結果,這表明儘管在不同度量下評估,但底層問題在架構層面上是統一的。其關鍵洞見是,掩膜預測是一種自然的注意力形式:每個查詢的掩膜就是該查詢在圖像特徵上的注意力

    訓練目標

    實例分割模型通常使用結合分類、邊界框回歸和掩膜預測的多任務損失進行訓練:

    $ {\displaystyle \mathcal{L} = \mathcal{L}_{\text{cls}} + \lambda_{\text{box}} \mathcal{L}_{\text{box}} + \lambda_{\text{mask}} \mathcal{L}_{\text{mask}}} $

    掩膜損失最常用的是逐像素二元交叉熵,有時還會輔以Dice 損失以改善邊界質量:

    $ {\displaystyle \mathcal{L}_{\text{Dice}} = 1 - \frac{2 \sum_i p_i g_i}{\sum_i p_i + \sum_i g_i}} $

    其中 $ p_i $ 是預測概率,$ g_i \in \{0,1\} $ 是像素 $ i $ 處的真值標籤。當前景僅占像素的一小部分時,Dice 損失比交叉更能處理類別不平衡,但單獨使用時噪聲較大;將兩者結合使用是標準做法。

    評估

    標準度量是掩膜平均精度(mask AP),其計算方式與邊界框 AP 類似,但交並比是在預測掩膜和真值掩膜之間計算,而不是在邊界框之間計算。COCO mAP[7] 在 0.5 到 0.95 (步長 0.05) 的 IoU 閾值範圍內,以及在不同物體尺寸分組(小、中、大)上對 AP 取平均。研究者還提出了邊界感知度量(如 Boundary AP),以便更好地獎勵清晰的掩膜邊緣,因為像素級IoU在掩膜在視覺上還遠未乾淨時就已飽和。

    常用的數據集包括 COCO (80 個類別,約 11.8 萬張訓練圖像)、LVIS[8](1200 多個類別,呈長尾分佈)以及 Cityscapes (具有精細像素級標註的城市駕駛場景)。

    局限性與開放問題

    實例分割繼承了檢測面臨的諸多困難(小物體、密集場景、新類別),並增加了若干分割特有的失敗模式:細長結構(電線、動物的肢體)由於其像素面積相對於損失而言很小,會被系統性地欠分割;由於輸出解像度較粗,掩膜邊界通常會偏離真實邊界幾個像素;嚴重遮擋會同時干擾檢測器(漏掉實例)和掩膜頭(一個掩膜覆蓋兩個物體)。LVIS 等數據集中長尾的類別分佈暴露了常見類別準確率與稀有類別準確率之間的差距,並推動了基於類別平衡損失和採樣的研究。

    另一個前沿方向是開放詞表的、可由提示驅動的實例分割。Segment Anything Model[9]表明,在十億級掩膜數據集上訓練的模型,可以在以前未見過的類別上,根據點提示或框提示產生高質量的掩膜,將分割與固定標籤集合解耦。再結合用於類別分配的視覺-語言模型,這指向了一種在開放詞表上運作的實例分割系統,而不再局限於 COCO 時代數據集的封閉分類體系。

    參考文獻

    1. He et al., Mask R-CNN, ICCV 2017.
    2. Bolya et al., YOLACT: Real-time Instance Segmentation, ICCV 2019.
    3. Wang et al., SOLO: Segmenting Objects by Locations, ECCV 2020.
    4. Tian et al., Conditional Convolutions for Instance Segmentation, ECCV 2020.
    5. Carion et al., End-to-End Object Detection with Transformers, ECCV 2020.
    6. Cheng et al., Masked-attention Mask Transformer for Universal Image Segmentation, CVPR 2022.
    7. Lin et al., Microsoft COCO: Common Objects in Context, ECCV 2014.
    8. Gupta et al., LVIS: A Dataset for Large Vocabulary Instance Segmentation, CVPR 2019.
    9. Kirillov et al., Segment Anything, ICCV 2023.