導讀
SAM已經成為許多高級任務(如圖像分割、圖像描述和圖像編輯)的基礎步驟。然而,其巨大的計算開銷限制了其在工業場景中的廣泛應用。這種計算開銷主要來自于處理高分辨率輸入的Transformer架構。因此,本文提出了一種具有可比性能的加速替代方法。通過將該任務重新定義為分割生成和提示,作者發現一個常規的CNN檢測器結合實例分割分支也可以很好地完成這個任務。具體而言,本文將該任務轉換為經過廣泛研究的實例分割任務,并僅使用SAM作者發布的SA-1B數據集的1/50進行訓練現有的實例分割方法。使用這種方法,作者在50倍更快的運行時間速度下實現了與SAM方法相當的性能。本文提供了充分的實驗結果來證明其有效性。
引言
SAM被認為是里程碑式的視覺基礎模型,它可以通過各種用戶交互提示來引導圖像中的任何對象的分割。SAM利用在廣泛的SA-1B數據集上訓練的Transformer模型,使其能夠熟練處理各種場景和對象。SAM開創了一個令人興奮的新任務,即Segment Anything。由于其通用性和潛力,這個任務具備成為未來廣泛視覺任務基石的所有要素。然而,盡管SAM及其后續模型在處理segment anything任務方面展示了令人期待的結果,但其實際應用仍然具有挑戰性。顯而易見的問題是與SAM架構的主要部分Transformer(ViT)模型相關的大量計算資源需求。與卷積模型相比,ViT以其龐大的計算資源需求脫穎而出,這對于其實際部署,特別是在實時應用中構成了障礙。這個限制因此阻礙了segment anything任務的進展和潛力。
鑒于工業應用對segment anything模型的高需求,本文設計了一個實時解決方案,稱為FastSAM,用于segment anything任務。本文將segment anything任務分解為兩個連續的階段,即全實例分割和提示引導選擇。第一階段依賴于基于卷積神經網絡(CNN)的檢測器的實現。它生成圖像中所有實例的分割掩碼。然后在第二階段,它輸出與提示相對應的感興趣區域。通過利用CNN的計算效率,本文證明了在不太損失性能質量的情況下,可以實現實時的segment anything模型。本文希望所提出的方法能夠促進對segment anything基礎任務的工業應用。
圖1. FastSAM和SAM的性能比較分析
(a) FastSAM和SAM在單個NVIDIA GeForce RTX 3090上的速度比較。(b) 在BSDS500數據集[1, 28]上進行邊緣檢測的比較。(c) COCO數據集[25]上對象提議的Box AR@1000評估中FastSAM和SAM的比較。SAM和FastSAM都使用PyTorch進行推理,只有FastSAM(TRT)使用TensorRT進行推理。
本文提出的FastSAM基于YOLACT方法的實例分割分支的目標檢測器YOLOv8-seg。此外,還采用了由SAM發布的廣泛SA-1B數據集,通過僅在SA-1B數據集的2%(1/50)上直接訓練該CNN檢測器,它實現了與SAM相當的性能,但大大降低了計算和資源需求,從而實現了實時應用。本文還將其應用于多個下游分割任務,展示了其泛化性能。在MS COCO 上的對象提議任務中,該方法在AR1000上達到了63.7,比使用32×32點提示輸入的SAM高1.2點,但在單個NVIDIA RTX 3090上運行速度提高了50倍。
實時的segment anything模型對于工業應用非常有價值。它可以應用于許多場景。所提出的方法不僅為大量視覺任務提供了新的實用解決方案,而且速度非常快,比當前方法快幾十倍或幾百倍。此外,它還為通用視覺任務的大型模型架構提供了新的視角。對于特定任務來說,特定的模型仍然可以利用優勢來獲得更好的效率-準確性平衡。
在模型壓縮的角度上,本文方法通過引入人工先驗結構,展示了顯著減少計算量的可行路徑。本文貢獻可總結如下:
引入了一種新穎的實時基于CNN的Segment Anything任務解決方案,顯著降低了計算需求同時保持競爭性能。
本研究首次提出了將CNN檢測器應用于segment anything任務,并提供了在復雜視覺任務中輕量級CNN模型潛力的見解。
通過在多個基準測試上對所提出的方法和SAM進行比較評估,揭示了該方法在segment anything領域的優勢和劣勢。
方法
下圖2展示了FastSAM網絡架構圖。該方法包括兩個階段,即全實例分割和提示引導選擇。前一個階段是基礎階段,第二個階段本質上是面向任務的后處理。與端到端的Transformer方法不同,整體方法引入了許多與視覺分割任務相匹配的人類先驗知識,例如卷積的局部連接和感受野相關的對象分配策略。這使得它針對視覺分割任務進行了定制,并且可以在較少的參數數量下更快地收斂。
圖2. FastSAM網絡架構圖
FastSAM包含兩個階段:全實例分割(AIS)和提示引導選擇(PGS)。先使用YOLOv8-seg 對圖像中的所有對象或區域進行分割。然后使用各種提示來識別感興趣的特定對象。主要涉及點提示、框提示和文本提示的利用。
實例分割
YOLOv8 的架構是基于其前身YOLOv5 發展而來的,融合了最近算法(如YOLOX 、YOLOv6 和YOLOv7 )的關鍵設計。YOLOv8的主干網絡和特征融合模塊(neck module)將YOLOv5的C3模塊替換為C2f模塊。更新后的頭部模塊采用解耦結構,將分類和檢測分開,并從基于Anchor的方法轉向了基于Anchor-Free的方法。
YOLOv8-seg應用了YOLACT的實例分割原理。它通過主干網絡和特征金字塔網絡(Feature Pyramid Network, FPN)從圖像中提取特征,集成了不同尺度的特征。輸出包括檢測分支和分割分支。檢測分支輸出目標的類別和邊界框,而分割分支輸出k個原型(在FastSAM中默認為32個)以及k個掩碼系數。分割和檢測任務并行計算。分割分支輸入高分辨率特征圖,保留空間細節,并包含語義信息。該特征圖經過卷積層處理,上采樣,然后通過另外兩個卷積層輸出掩碼。與檢測頭部的分類分支類似,掩碼系數的范圍在-1到1之間。通過將掩碼系數與原型相乘并求和,得到實例分割結果。
YOLOv8可以用于各種目標檢測任務。而通過實例分割分支,YOLOv8-Seg非常適用于segment anything任務,該任務旨在準確檢測和分割圖像中的每個對象或區域,而不考慮對象的類別。原型和掩碼系數為提示引導提供了很多可擴展性。例如,可以額外訓練一個簡單的提示編碼器和解碼器結構,以各種提示和圖像特征嵌入作為輸入,掩碼系數作為輸出。在FastSAM中,本文直接使用YOLOv8-seg方法進行全實例分割階段。
提示引導選擇
在使用YOLOv8成功地對圖像中的所有對象或區域進行分割后,segment anything 任務的第二階段是利用各種提示來識別感興趣的特定對象。這主要涉及到點提示、框提示和文本提示的利用。
點提示
點提示的目標是將所選點與第一階段獲得的各種掩碼進行匹配,以確定點所在的掩碼。類似于SAM在方法中采用前景/背景點作為提示。在前景點位于多個掩碼中的情況下,可以利用背景點來篩選出與當前任務無關的掩碼。通過使用一組前景/背景點,我們能夠選擇感興趣區域內的多個掩碼。這些掩碼將被合并為一個單獨的掩碼,完整標記出感興趣的對象。此外,還可以利用形態學操作來提高掩碼合并的性能。
框提示
框提示涉及將所選框與第一階段中對應的邊界框進行IoU(交并比)匹配。目標是識別與所選框具有最高IoU得分的掩碼,從而選擇感興趣的對象。
文本提示
在文本提示的情況下,我們使用CLIP模型提取文本的相應嵌入。然后,確定與每個掩碼的固有特征進行匹配的圖像嵌入,并使用相似度度量方法進行匹配。選擇與文本提示的圖像嵌入具有最高相似度得分的掩碼。
通過精心實施這些基于提示的選擇技術,FastSAM可以可靠地從分割圖像中選擇特定的感興趣對象。上述方法為在實時情況下完成segment anything任務提供了高效的方式,從而極大地增強了YOLOv8模型在復雜圖像分割任務中的實用性。對于更有效的基于提示的選擇技術,將留待未來探索。
實驗結果
SAM和FastSAM在單個NVIDIA GeForce RTX 3090 GPU上的運行速度對比。可以看出,FastSAM在所有提示數量上超過了SAM。此外,FastSAM的運行速度與提示數量無關,使其成為"Everything mode"的更好選擇。
FastSAM分割結果
邊緣檢測zero-shot能力評估-量化指標評估
邊緣檢測zero-shot能力評估-可視化結果評估
在COCO的所有類別上與無需學習的方法進行比較。此處報告了無需學習的方法、基于深度學習的方法(在VOC上進行訓練)以及本文方法與SAM方法在所有泛化上的平均召回率(AR)和AUC對比結果。
與OLN和SAM-H的比較
在異常檢測中的應用,其中SAM-point/box/everything分別表示使用點提示、框提示和全部模式。
在顯著性分割中的應用,其中SAM-point/box/everything分別表示使用點提示、框提示和全部模式。
在建筑物提取中的應用,其中SAM-point/box/everything分別表示使用點提示、框提示和全部模式。
相比SAM,FastSAM在大對象的狹窄區域上可以生成更精細的分割掩碼。
Limitations
總體而言,FastSAM在性能上與SAM相當,并且比SAM (32×32) 快50倍,比SAM (64×64) 快170倍。其運行速度使其成為工業應用的良好選擇,如道路障礙檢測、視頻實例跟蹤和圖像處理。在一些圖像上,FastSAM甚至能夠為大尺寸對象生成更好的掩碼。
圖11
然而,正如實驗中所展示的,FastSAM在生成框上具有明顯的優勢,但其掩碼生成性能低于SAM,如上圖11所示。FastSAM具有以下特點:
低質量的小尺寸分割掩碼具有較高的置信度分數。作者認為這是因為置信度分數被定義為YOLOv8的邊界框分數,與掩碼質量關系不大。改變網絡以預測掩碼的IoU或其它質量指標是改進的一種方式。
一些微小尺寸對象的掩碼傾向于接近正方形。此外,大尺寸對象的掩碼可能在邊界框的邊緣出現一些偽影,這是YOLACT方法的弱點。通過增強掩碼原型的能力或重新設計掩碼生成器,可以預期解決這個問題。
結論
在本文中,我們重新思考了Segment Anything的任務和模型架構選擇,并提出了一種替代方案,其運行速度比SAM-ViT-H (32×32)快50倍。實驗證明,FastSAM可以很好地解決多個下游任務。然而,FastSAM還存在一些可以改進的弱點,例如評分機制和實例掩碼生成范式。這些問題將留待未來的研究解決。
-
模型
+關注
關注
1文章
3172瀏覽量
48711 -
SAM
+關注
關注
0文章
112瀏覽量
33500 -
數據集
+關注
關注
4文章
1205瀏覽量
24641
原文標題:中科院自動化所發布FastSAM | 精度相當,速度提升50倍!!!
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論