日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【实例分割_SOLOv2】SOLOv2:Dynamic,Faster and Stronger

發(fā)布時間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【实例分割_SOLOv2】SOLOv2:Dynamic,Faster and Stronger 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 一、背景
    • 二、相關工作
    • 三、重看 SOLOv1
    • 四、SOLOv2
      • 4.1 Dynamic Instance Segmentation
        • 4.1.1 Mask kernel branch
        • 4.1.2 Mask feature branch
        • 4.1.3 Forming Instance Mask
    • 五、Experiments
      • 5.1 Instance segmentation
        • 5.1.1 Main results
        • 5.1.2 SOLOv2 visualization
        • 5.1.3 Ablation Experiments


論文鏈接: https://arxiv.org/abs/2003.10152
代碼鏈接: http://github.com/WXinlong/SOLO

一、背景

在 SOLOv1的基礎上的兩個提升:

  • 1、Mask Learning

    SOLOv2要進一步動態(tài)學習目標分割器的 mask head,mask head 被解耦成 mask kernel branch 和 mask feature branch,分別來學習卷積核和卷積特征。mask learning 可以分為兩部分:

    • convolutional kernel learning:當把 pixel 分類到不同的網(wǎng)格中時,網(wǎng)絡會自動預測要使用的分類器,并根據(jù)輸入圖像進行調整。
    • feature learning:很多的語義分割技術都可以用來提高性能,受FPN 啟發(fā), SOLOv2 為實例分割構建了一個統(tǒng)一,且有高分辨率 mask 特征表達。
  • 2、Mask NMS

    在 SOLOv1的基礎上,SOLOv2提出了一個 Matrix NMS 來降低 inference 的時間。Matrix NMS 是并行矩陣乘法,能夠一次性實現(xiàn) NMS。

對于 mask NMS,NMS 的缺點被放大了,相比 bbox,mask NMS 需要更多的時間來為每個 mask 計算 IoU,導致更大的開銷。通過引入矩陣 NMS,可以并行的第一性執(zhí)行完成。

二、相關工作

Instance Segmentation:

本文的方法是從SOLO[33]發(fā)展而來的,直接將原始的 mask 預測解耦為 kernel 學習和特征學習。不需要anchor、歸一化、邊界框檢測。直接將輸入圖像映射到所需的類別和 mask。訓練和推理都簡單得多。因此,該框架簡單得多,但實現(xiàn)了顯著的更好的性能(相同速度下提升了6%的AP);最佳模型實現(xiàn)了41.7 AP,而YOLACT的最佳31.2%AP。

Dynamic Convlutions:

傳統(tǒng)的卷積層中學習的卷積核是固定的,且和輸入無關,也就是說一幅圖像共享一個相同的卷積核。
也有一些工作在探究能否給傳統(tǒng)的卷積中引入更靈活的思想。

Spatial Transform Networks[15] 預測全局參數(shù)變換來 wrap 特征圖,使得網(wǎng)絡能夠根據(jù)輸入來自適應的變換特征圖。

Dynamic filter[16] 用于預測卷積核的參數(shù),以特定樣本的方式將動態(tài)生成的卷積核應用于圖像。

Deformable Convolutional Networks [8] 通過預測每個圖像位置的偏移量來動態(tài)學習采樣位置。將動態(tài)方案引入到實例分割中,實現(xiàn)了基于位置的實例分割學習。

三、重看 SOLOv1

SOLOv1框架的核心思想是按位置分割對象。
見博客:https://blog.csdn.net/jiaoyangwm/article/details/105491010

四、SOLOv2

4.1 Dynamic Instance Segmentation

將 SOLOv1 的原始 mask branch 解耦為 mask kernel branch + mask feature branch,如圖2所示。

4.1.1 Mask kernel branch

mask kernel 分支和類別預測分支一起位于預測 head 中。

head 在 FPN 生成的特征圖金字塔中作用,兩個 head 中的 4x conv 用于特征抽取,最后一個 conv 用于預測。head 的權重是共享的。通過給第一個卷積機上歸一化后的坐標,來給 kernel 分支加上空間功能。也就是給第一個卷積層輸出那里增加兩個額外的通道,一個輸入i,一個輸入j。

對于每個 grid,kernel branch 預測 D 維輸出,表示預測的卷積核權重,D 是參數(shù)的個數(shù)。為了給輸出為 E 個通道的1x1卷積產生權重,設定 D=E。對 3x3 卷積,D=9E。這種weights是根據(jù)位置生成的,也就是 grid cell。如果將圖像分割成 S×SS \times SS×S 個格子,輸出為 S×S×DS \times S \times DS×S×D

4.1.2 Mask feature branch

mask feature branch 需要預測每個實例的特征圖 F∈RH×W×EF \in R^{H\times W \times E}FRH×W×E,E 是 mask feature 的維度。F 是和 mask kernel branch 預測的 kernel 卷積的得到的。如果所有預測的權重都使用了,也就是 S2S^2S2 個分類器,則最后一層卷積后輸出的實例 mask 是 H×W×S2H \times W \times S^2H×W×S2,和 SOLOv1相同。

由于 mask feature 和 mask kernel 是解耦開的且分別預測的,因此有兩種方法來構造 mask feature 分支:

  • ① 直接和 kernel branch 一起放到 head處,這就意味著可以預測每個 FPN level 的 mask feature
  • ② 給所有的 FPN level 預測相同的 mask feature 表達。

對比兩者,最后作者使用了第二種方法。

為了學習一個統(tǒng)一且高分辨率mask 特征表達,作者使用特征金字塔融合的方法。 經(jīng)過重復的 3x3 卷積+group norm+relu+2x 雙線性上采樣,FPN 特征 P2 到 P5 被合并成一個相同的輸出(1/4 scale)。

逐點相加之后,最后一層是由 1x1 卷積+group norm+ReLU 實現(xiàn)的,如圖3所示。

作者將坐標加到了最深層的 FPN 輸出(1/32)上,這種提供精確位置信息的做法能夠引入位置敏感性并且預測得到與 instance-aware 特征。

4.1.3 Forming Instance Mask

對于每個網(wǎng)格 (i,j)(i,j)(i,j),首先獲得 mask kernel Gi,j,:∈RDG_{i,j,:}\in R^DGi,j,:?RD,然后將 Gi,j,:∈RDG_{i,j,:}\in R^DGi,j,:?RDFFF 卷積,來得到實例 mask。每個預測 level 總共有 S2S^2S2 個mask。最后,使用 Matrix NMS 來得到最終的實例分割結果。

五、Experiments

5.1 Instance segmentation

5.1.1 Main results

5.1.2 SOLOv2 visualization

作者從兩個方面可視化了 SOLOv2 學習到的東西:

  • mask feature的輸出
  • 經(jīng)過動態(tài)學習后的最終輸出

Mask feature branch 的輸出: 使用最終輸出 64 個通道的模型(mask prediction 前的最后一層特征圖的通道 E=64)。圖5展示了每個 channels 。

  • 首先,mask feature 是 position-aware 的
  • 其次,一些特征圖對所有的前景目標響應(白色框)

最終輸出: 如圖8所示,不同的目標是不同的顏色,可以看出本文方法分割邊界的細節(jié)很好,尤其是對大目標。


SOLOv2和 Mask R-CNN 的對比如圖6,SOLOv2表現(xiàn)更好。

5.1.3 Ablation Experiments

Kernel shape: 最優(yōu)的是 1x1x256,文章中所有試驗都用的這個參數(shù)

Effectiveness of coordinates: 由于本文是使用位置,或更確切的說,是利用位置來學習目標分割器。如果 mask kernel branch 對位置不敏感,則外觀相同的目標將會有相同的kernel,導致相同的輸出 mask。如果 mask feature branch 對位置不敏感,則它將不知道如何按照 mask 匹配的順序將像素分配給不同通道。如表4所示,如果沒有 coordinates 輸入,則只能達到 36.3% AP。

這個結果還比較理想,因為 CNN 可以從 zero-padding 操作中隱式的學習到絕對位置信息。但這種隱式的學習是不準確的,使用 coordconv 時,可以增加 1.5 AP。

Unified Mask Feature Representation: 對于 mask 特征的學習,有兩種選擇:

  • 分別學習 FPN 每個 level 的特征(solov1)
  • 統(tǒng)一學習一個表示(圖3)

表5中對比了這兩種不同的方法,后者取得了好的效果,這也很容易理解,在 solov1中,大尺寸對象被分配到高層特征中去分割,高層特征的分辨率較低,會導致邊界估計比較粗略。

Dynamic and Decoupled: 動態(tài)學習 head 和 decoupled head 在表6中進行了對比,dynamic head 比 decoupled head 高 0.7% AP。這種提升,作者覺得來源于網(wǎng)絡根據(jù)輸入來動態(tài)的學習 kernel weights。

Matrix NMS:

總結

以上是生活随笔為你收集整理的【实例分割_SOLOv2】SOLOv2:Dynamic,Faster and Stronger的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。