1. 程式人生 > >IoU-Net論文筆記

IoU-Net論文筆記

  1. 論文背景及大致思路
    a. 清北,Face++,頭條四家聯合出品,一看就是有點厲害的文章。發表於ECCV2018.
    b. 文章從我們常常忽略的定位的準確率出發,提出了利用預測IoU來輔助檢測的IoU Net。在多個數據集上得到了當前的最佳效果。

  2. 發現的問題和主要工作
    a. 首先大概的講一下傳統的NMS。首先拿出分類置信度最高的預測框,然後將同一類別的框都拿出來和他算一算IoU,如果大於了一個閾值,那就把後面的這個框刪了。這裡就出現了一個問題,為什麼分類置信度高就代表著檢測的效果好呢,作者對這個問題得到了如下的兩張表:
    在這裡插入圖片描述
    也就是說IoU其實和分類的置信度並不是正相關的,那麼傳統的NMS就可能會導致一些原本IoU很高,但是預測分不高的框被扔掉了,反而留下了一些不是那麼重合的框。於是,作者提出了一個改了排序依據的IoU-guided NMS。作者將不同演算法得到的迴歸框結果進行了統計,可以看到,在較高精度的部分,NMS抑制了更多的框,而在較低的定位準確度時,反而留下了較多的框。但這部分有個地方我不是很理解,就是為什麼會比No-NMS還要多。
    在這裡插入圖片描述


    b. 很多情況下,邊框迴歸的時候並不是單調的,所以在迭代中,迴歸的結果可能反而退化了。於是提出了基於優化的邊框修正方法,結合新的PrRoI Pooling,使得整個過程可以使用梯度下降優化。
    在這裡插入圖片描述

  3. IoU-Net
    a. 結構如圖所示,主幹網路為FPN,通過RPN後利用PrRoI-Pooling提取RoI,然後一路預測IoU,這一路還有一個Jittered RoI,功能就和字面一樣,我們並不是直接把GT全部用於預測IoU的,而是將所有的GT人為的進行一些變化,然後將變化後的GT和真實值進行計算,去除IoU小於0.5的,得到最終的訓練資料,作者發現這樣的方法可以提高網路的魯棒性和最後的效果。另一路做具體分類和邊框修正:
    在這裡插入圖片描述


    b. IoU-guided NMS:和傳統的NMS,主要就是將排序的key換為了定位的置信度也就是IoU。並且會將抑制了其他框的結果框的分類置信度也置為最高值。也就是對於某個GT對應所有box,選出置信度都是最高的進行代表。虛擬碼如下:
    在這裡插入圖片描述
    c. Bounding box refinement as an optimization procedure :基於迴歸的方法,直接預測調整框的引數c,但是在迭代時,對於框的迴歸操作會影響資料的分佈,導致定位的準確度非線性的增長。本文的方法利用了預測的IoU,控制迭代的次數,也就是early-stop操作。同時,演算法中會根據bj的尺度調整更新的步長。在虛擬碼的第六行有所體現:
    在這裡插入圖片描述

    d. Precise RoI Pooling:也是一個為了避免整數化座標的Pooling方法,但是比RoI Align更進一步,那就是直接在對應區域算積分。這就避免了RoI Align中的N的選擇(就是在多少塊上進行插值)。整個結果連續可微,所以結果更精確。
    在這裡插入圖片描述

  4. PS
    a. 這篇內容也比較多,還需要重複的閱讀。