You Only Look One-level Feature

How哥
7 min readApr 13, 2021

--

YOLOF

一篇 CVPR2021 的論文

Introduction

我們在做物件偵測時,常用到 FPN (Feature Pyramid Network),他有兩個好處

第一個,他能夠把多尺度的 feature 融合在一起

第二個,divide-and-conquer,輸出多個尺度的 feature,讓模型分別去解決不同尺度會遇到的問題

我們可以把 FPN 想像成一個,多輸入多輸出(MiMo)的盒子,只要稍微做一些修改,就能變成,單進多出(SiMo),多進單出(MiSo),單進單出(SiSo),有人對上面四個結構放入模型中觀察其表現,結果如圖

沒想到的是 MiMo 只比 SiMo 多了0.9mAP,這結果顯然告訴我們, FPN 重要的不僅僅是他能融合多尺度輸入,divide-and-conquer 可能才是他最主要的作用,而上圖的輸入層 C5 也帶有足夠的資訊量讓後面來解析

Cost Analysis of MiMo Encoders

作者開始分析 MiMo 到底哪裡比別人還要不好,他把物件偵測的過程分為三個階段,Backbone,Encoder,Decoder

接著在同樣的骨架底下,換掉編碼器和解碼器,這邊的編碼器和解碼器指的就是 FPN 單進多出,多進單出的這些架構,結果如下圖

可以看到 MiMo 只有精準度比較高,其他不管是速度和參數量都比人還要高出許多,想要把 MiMo 換成 SiSo 就要解決 SiSo 精準度下降的問題,作者認為造成精準度下降主要是因為

  • 只單看 C5 的話,視野域會很受限
  • 稀疏的 anchor 問題,讓 positive anchor 和 negative anchor 非常不平行

接著他們要想想如何解決這兩個問題

Limited Scale Range (視野受限問題)

想到增加視野域,最簡單的方式就是指用 dilation convolution,下圖是不同rate 的 dilation convolution

有了 dilation convolution 就可以增加視野域,從下圖中可知, C5 接出來後先經過一個降維和 3x3 conv,再經過四個 Residual Blocks ,裡面每一個 3x3 conv 都是由不同 rate 的 dilation convolution 組成

Imbalance Problem on Positive Anchors

正樣本的定義上,GT (GroundTrue bounding box) 跟 anchor 之間的 IOU 要大於 threshold,他才會被設為正樣本,在 RetinaNet 中,threshold是0.5

但是如果想要用 SiSo 的方法,正負樣本之間會極度不平衡,因為輸出層變少了,意味著更少 anchor 可以去配對 GT,又設定超過 threshold 才能設定為正樣本,直觀來說大物件會比小物件還要容易符合這個條件,這會導致大物件和小物件的訓練也發生不平衡,這時他們提出一個新方法,叫做 Uniform Matching

Uniform Matching

規定每個 GT 都要去配對 k 的anchor,如此就能保證每個 GT 都能配對到anchor,而且配對到的數量也都相同,IOU大於0.7的負樣本和IOU<0.15的正樣本都忽略不記

YOLOF

在他們提出的新架構分成三個部分,Backbone,Encoder,Decoder

Backbone

使用 ResNet 和 ResNeXt 在 ImageNet上已經 pre-trained 的模型當骨架,C5 的 output 有2048個 channels,downsample rate of 32

Encoder

為了增加視野域,後面的 convolution layer 有使用 dilation convolution

  • Projector x 1 : one 1 × 1 and one 3 × 3 convolution
  • Residual Blocks x 4 : one 1 × 1(channel reduction) and a 3 × 3 convolution with dilation, at last, a 1 × 1 convolution to recover the number of channels

Decoder

擁有兩個平行的 head,classification head and the regression head

特地設計成兩個 head 的convolution layer 數量不同

依據 Autoassign,為每個 anchor 增加一個 objectness,通過分類氣的結果最後要乘上 objectness 的分數,才是最終分類預測分數

Other Details

由於 YOLOF 造成 anchor 的稀疏性,為了增加 anchor 和 GT 之間的重疊,我們會把圖片隨機朝上下左右位移最多32個 pixel,限制位移的量也有助於 anchor 最終的分類結果

Experiments

YOLOF is trained with synchronized SGD over 8 GPUs with a total of 64 images per minibatch (8 images per GPU). All models are trained with an initial learning rate of 0.12

以下是用 RetinaNet 和把 ResNet 當骨架的表現結果,雖然 YOLOF 在小物件的偵測結果輸給 RetinaNet+,但在大物件偵測上是贏他的,而且如果在同樣的速度上,只要把 YOLOF 的骨架改成 ResNet 或是 ResNeXt,結果就能爆打 RetinaNet+

跟 YOLOv4 比較的結果

Ablation Study

使用 dilation and Uniform Matching

  • a. 解碼器中用多少個 block
  • b. 不同的 dilation rate
  • c. short cut

--

--

How哥
How哥

Written by How哥

台灣科技大學資工所研究生,把有趣的電腦視覺論文整理上來,希望能幫助到有需要的人,聯絡信箱 b10515007@gmail.com

No responses yet