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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SOLOv2论文简读

發(fā)布時間:2025/3/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SOLOv2论文简读 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

論文:SOLOv2: Dynamic, Faster and Stronger
代碼:https://github.com/WXinlong/SOLO

摘要

主要提出了作者在SOLOv2中實現(xiàn)的優(yōu)秀的實例分割方法,旨在創(chuàng)建一個簡單、直接、快速的實例分割框架:

  • 通過提出動態(tài)學(xué)習(xí)對象分割器的mask head,使mask head依賴于位置。具體來說,將mask branch分解為mask kernel branch和mask feature branch,分別負(fù)責(zé)學(xué)習(xí)卷積核和卷積特征 – mask learning
  • 提出Matrix NMS顯著減少了由于mask的NMS導(dǎo)致的推斷時間開銷。 – Matrix NMS
  • SOLOv2 可以用于目標(biāo)檢測和全景分割
  • 介紹

    SOLOv2首先引入了一個動態(tài)方案,它允許按位置動態(tài)分割對象。具體來說,mask learn 可以分為兩部分:convolution kernel learning 和 feature learning。

    文章提出的Matrix NMS有很好的性能優(yōu)勢,文章表示Matrix NMS在準(zhǔn)確性和速度上均勝過現(xiàn)有的NMS和同類產(chǎn)品。

    通過這些改進(jìn),SOLOv2的AP性能比SOLOv1高出1.9%,速度也提高了33%。
    文章給出了在單個V100 GPU卡上的評估結(jié)果,在MS COCO數(shù)據(jù)集上,Res-50-FPN SOLOv2在18 FPS時可實現(xiàn)38.8%的mask AP。

    Related Work

    1、Dynamic Convolutions(動態(tài)卷積)

    • 在傳統(tǒng)的卷積層中,學(xué)習(xí)到的卷積核是固定的,并且獨立于輸入。
    • 空間變換網(wǎng)絡(luò)[Spatial Transform Networks]預(yù)測全局參數(shù)變換以扭曲特征圖,從而使網(wǎng)絡(luò)能夠自適應(yīng)地變換以輸入為條件的特征圖。
    • 提出了動態(tài)濾波器[Dynamic filter]來主動預(yù)測卷積濾波器的參數(shù)。 它以特定于樣本的方式將動態(tài)生成的濾鏡應(yīng)用于圖像。
    • 變形卷積網(wǎng)絡(luò)[Deformable Convolutional Networks]通過預(yù)測每個圖像位置的偏移量來動態(tài)學(xué)習(xí)采樣位置。

    2、Non-Maximum Suppression

    • Soft-NMS根據(jù)鄰居與較高得分的預(yù)測的重疊程度來降低其置信度得分。與傳統(tǒng)的NMS相比,檢測精度有所提高,但由于順序操作,推理速度較慢。
    • Adaptive NMS將動態(tài)抑制閾值應(yīng)用于每個實例,該閾值是針對人群中的行人檢測量身定制的。
    • Fast NMS能夠并行決定要保留的預(yù)測或丟棄的預(yù)測。但是它以性能下降為代價加快了速度。
    • ++Matrix NMS同時解決了硬去除和順序操作的問題。在簡單的PyTorch實施中,Matrix NMS能夠在不到1 ms的時間內(nèi)處理500個掩模,并且比Fast NMS的效率高出0.4%。++

    SOLOv1

    SOLOv1框架的核心思想是按位置分割對象。將輸入圖片劃分為S X S的網(wǎng)格。如果一個對象的中心落在一個網(wǎng)格單元格中,該網(wǎng)格單元格負(fù)責(zé)預(yù)測語義類別以及分配每個像素的位置信息。主要包括兩個分支:category branch and mask branch。

    • Category branch:預(yù)測語義類別,掩碼分支對對象實例進(jìn)行分段。具體地說,類分支輸出S×S×C形張量,其中C為對象類的個數(shù)。
    • Mask branch

    SOLOv2

    1、Dynamic Instance Segmentation

    SOLOv2 的網(wǎng)格,多層次的預(yù)測,coordConv和損失函數(shù)都是繼承于SOLOv1,提出了一套動態(tài)方案
    動態(tài)方案:將原始的mask branch解耦為mask kernel branch以及mask feature branch,分別用于預(yù)測卷積核和卷積特征。

    如圖2所示,在SOLOv1中,mask branch如2(a)所示,由于參數(shù)量較多,預(yù)測結(jié)果存在冗余信息,因此進(jìn)行解耦如圖2(b)所示,本文考慮到都是從預(yù)測結(jié)果層面出發(fā)。對此作者想到為什么不從卷積核角度出發(fā),由此得到2(c),上面為mask kernal分支,下面為mask特征分支。

    2、Mask Kernel Branch

    Mask kernel 分支位于prediction head內(nèi),與語義類別分支一起。prediction head 在 FPN 輸出的特征圖金字塔上工作。Head內(nèi)的兩分支由4個卷積組成用于特征提取,最后一個卷積用于預(yù)測。Head 的權(quán)重在不同的特征圖層級上共享。 作者通過給第一個卷積添加歸一化的坐標(biāo),即連接兩個附加的輸入通道,將空間功能添加到內(nèi)核分支。
    對每個網(wǎng)格來說, kernel分支預(yù)測D維輸出來表示預(yù)測的卷積核權(quán)值,其中D為參數(shù)的數(shù)量。當(dāng)為了生成具有E個輸入通道的1 × 1卷積的權(quán)重,D = E,當(dāng) 3 × 3卷積D = 9E。這些生成的權(quán)重取決于位置,即網(wǎng)格單元。 如果將輸入圖像劃分為S × S 個網(wǎng)格,則輸出空間將為 S × S × D。注意到這里不需要激活函數(shù)。
    這里輸入為 H × W × E的特征 F,其中 E是輸入特征的通道數(shù);輸出為卷積核 S × S × D,其中S是劃分的網(wǎng)格數(shù)目,D 是卷積核的通道數(shù)。對應(yīng)關(guān)系如下:1 × 1 × E 的卷積核,則 D = E ,3 × 3 × E的卷積核,則 D = 9E。

    3、Mask Feature Branch

    由于Mask Feature和Mask Kernel是解耦并分別預(yù)測的,因此有兩種構(gòu)造Mask Feature Branch的方法:

  • predict the mask features for each FPN levels:可以把它和Kernel分支一起放到head中,這意味著我們可以預(yù)測每個FPN級別的掩碼特征
  • predict a unified mask feature representation for all FPN levels:為所有FPN級別預(yù)測一個統(tǒng)一的掩碼特征表示
  • 文中采用的是第二種方法。

    作者采用了特征金字塔融合來學(xué)習(xí)統(tǒng)一的高分辨率掩碼特征表示。將FPN P2 至 P5層分別依次經(jīng)過 【3 × 3 conv,group norm,ReLU和 2x bilinear upsampling,這樣FPN特征P2至P5 被合并到了一個相同的輸出(原圖的1/4),然后再做逐點相加(element-wise summation),最后一層做【1x1卷積,group norm 和ReLU】操作。如圖3所示。應(yīng)該注意的是,在進(jìn)行卷積和雙線性上采樣之前,將歸一化的像素坐標(biāo)輸入到最深的FPN級別(以1/32比例)。 提供的準(zhǔn)確位置信息對于啟用位置敏感度和預(yù)測實例感知功能非常重要。

    Forming Instance Mask

    對于每個單元格(i,j),首先得到掩碼核
    Gi,j,:∈RDG_{i,j,:} \in R^D Gi,j,:?RD
    然后將G_{i,j}與F卷積得到實例掩碼。總的來說,每個預(yù)測級別最多有S^2掩碼。最后,使用Matrix NMS 得到最終的實例分割結(jié)果。

    Learning and Inference

    Loss 函數(shù)和 SOLOv1 一樣,如公式2所示:

    L=Lcate+λLmaskL = L_{cate}+λL_{mask} L=Lcate?+λLmask?

    Matrix NMS

    其啟發(fā)自soft-NMS,soft-NMS 是每次選擇置信度最高的候選mask(或框)降低與其存在重疊的候選mask(或框)的置信度。這種過程像傳統(tǒng)的Greedy NMS一樣是順序的,無法并行實現(xiàn)。作者反其道而行之,既然是降低每個mask的置信度,那就想辦法按照一定規(guī)則對所有mask挨個降低置信度。

    某一候選mj置信度被降低,和兩方面因素有關(guān):其衰減因子受以下因素影響:

    • The penalty of each prediction mi on mj (si > sj) 各預(yù)測mi對mj (si > sj)的罰值;
    • The probability of mi being suppressed. mi被抑制的概率

    對第一個來說, 可以通f(ioui,j)f(iou_{i, j})f(ioui,j?)輕松計算mj上每個預(yù)測mi的懲罰值

    第二個比較麻煩,概率通常與IoUs呈正相關(guān)。所以在這里作者直接用the most overlapped prediction on mi預(yù)測來近似概率:

    為此,最終的衰變因子變成公式4:

    更新后的分?jǐn)?shù)由 sj=sj?decayjs_j=s_j \cdot decay_jsj?=sj??decayj?計算得出
    考慮兩個最簡單的遞減函數(shù),表示為線性函數(shù):

    Gaussian:

    Implementation

    Matrix NMS的所有操作都可以一次性實現(xiàn),不需要遞歸。

  • 對按分?jǐn)?shù)降序排列的前N個預(yù)值計算一個N×N的兩兩IoU矩陣。對于二進(jìn)制掩碼,IoU矩陣可以通過矩陣運算有效地實現(xiàn);
  • 計算得到了IoU矩陣上的最大列數(shù)重疊的IoU;
  • 計算所有較高得分預(yù)測的衰減因子,通過逐列最小值選取各預(yù)測的衰減因子作為最有效的衰減因子(Eqn. (4));
  • 最后,通過衰減因子對分?jǐn)?shù)進(jìn)行更新。
  • 為了使用,只需要threshing和選擇 top-k 得分掩碼作為最終的預(yù)測。

    圖4顯示了Pytorch風(fēng)格的 Matrix NMS 偽代碼:

    Experiments

    Main Results

    SOLOv2 Visualization

    The outputs of mask feature branch.作者使用的模型具有64個輸出通道(即,在mask prediction之前的最后一層特征圖的通道 E = 64。
    這里有兩種主要模式:首先,最重要的是,mask features是position-aware。它顯示了水平和垂直掃描圖像中對象的明顯行為。另一個明顯的模式是某些特征圖負(fù)責(zé)激活所有前景對象,例如在白框中的那個。

    與Mask R-CNN分割結(jié)果的比較:

    最終的輸出如圖8所示。不同的物體有不同的顏色,SOLOv2方法在不同的場景中顯示了良好的效果,值得指出的是,邊界處的細(xì)節(jié)被很好地分割,特別是對于大型對象。

    Ablation Experiments

    在表1中,將SOLOv2與MS COCO test-dev上最先進(jìn)的實例分割方法進(jìn)行了比較。

    參考:http://blog.csdn.net/john_bh/

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的SOLOv2论文简读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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