目標檢測論文閱讀:Cascade R-CNN: Delving into High Quality Object Detection
Cascade R-CNN: Delving into High Quality Object Detection
- 樣本減少引發的過擬合
- 在train和inference使用不一樣的閾值很容易導致mismatch(這一點在下面會有解釋)
作者為了解決上述問題就提出了一種muti-stage的architecture,核心就是利用不斷提高的閾值,在保證樣本數不減少的情況下訓練出高質量的檢測器。
以下是論文的核心內容和一些實驗,當然是按照我自己的理解組織的。
1.思想簡介
我們知道,檢測問題和分類問題有很大的不同,檢測問題通過IoU來判斷樣本是否是正確的,因此IoU的選取對train和inference的影響都很大,來看作者做的一組實驗:
先看左圖,橫軸的是proposal的IoU,縱軸的是經過box reg得到的新的IoU,不同的線條代表不同閾值訓練出來的detector,顯然新的IoU越高,說明detector進行迴歸的效能越好。可以看到在0.55~0.6的範圍內閾值為0.5的detector效能最好,在0.6~0.75閾值為0.6的detector效能最佳,而到了0.75之後就是閾值為0.7的detector了……
這就說明了,只有proposal自身的閾值和訓練器訓練用的閾值較為接近的時候,訓練器的效能才最好,如果兩個閾值相距比較遠,就是我們之前說的mismatch問題了。
從圖中我們可以意識到,單一閾值訓練出的檢測器效果非常有限,以現在最常見的閾值0.5為例,由於所有IoU大於0.5的proposal都會被選中,那麼對於IoU0.6~0.95的proposal來說,detector的表現就很差了。那麼,我能不能直接選用0.7的高閾值呢?畢竟這樣子0.5~0.7的proposal都被排除了,橫軸0.7~0.95之間,紅色線條的表現似乎不差啊?但是看到右圖你就會發現,實際上detector的效能反而是最低的,原因是這樣子訓練樣本大大減少,過擬合問題非常嚴重
如何能保證proposal的高質量又不減少訓練樣本?採用cascade R-CNN stages,用一個stage的輸出去訓練下一個stage,就是作者給出的答案。留意到左圖大部分線條都是在y=x的灰色線條之上的,這就說明某個proposal在經過detector後的IoU幾乎必然是增加的,那麼再經過一個更大閾值訓練的detector,它的IoU就會更好。
舉個例子,有三個串聯起來的用0.5/0.6/0.7的閾值訓練出來的detector,有一個IoU約為0.55的proposal,經過0.5的detector,IoU變為0.75;再經過0.6的detector,IoU變為0.82;再經過0.7的detector,最終IoU變為0.87……比任何一個單獨的detector的結果都要好。不僅僅只有IoU改善的好處,因為每經過detector,proposal的IoU都更高,樣本質量更好了,那麼即使我下一個detector閾值設定得比較高,也不會有太多的樣本被刷掉,這樣就可以保證樣本數量避免過擬合問題。
2.相關工作及一些證明
作者還把他的工作和類似的幾種工作做了實驗比較,在論文中是分開的,我這裡統一列出來方便大家對比。先來看一張圖:
Iterative BBox及對比
這是目前幾個非常典型的工作。圖(b)的Iterative BBox為了定位準確,採用了級聯結構來對Box進行迴歸,使用的是完全相同的級聯結構。但是這樣以來,第一個問題:單一閾值0.5是無法對所有proposal取得良好效果的,如第1部分的圖所示,proposal經過0.5閾值的detector後IoU都在0.75以上,再使用這一閾值並不明智;第二個,detector會改變樣本的分佈,這時候再使用同一個結構效果也不好,看下圖:
第一行橫縱軸分別是迴歸目標中的box的x方向和y方向偏移量;第二行橫縱軸分別是迴歸目標中的box的寬、高偏差量,由於比較基礎這裡不貼公式了。我們可以看到,從1st stage到2nd stage,proposal的分佈其實已經發生很大變化了,因為很多噪聲經過box reg實際上也提高了IoU,2nd和3rd中的那些紅色點已經屬於outliers,如果不提高閾值來去掉它們,就會引入大量噪聲干擾,對結果很不利。從這裡也可以看出,閾值的重新選取本質上是一個resample的過程,它保證了樣本的質量。
當然,這裡會有另一個問題,我們這樣子真的不會減少樣本數量麼?雖然第1部分給了比較直觀感性的解釋,但是似乎還不夠……作者給出了更加詳細的實驗證明:
從這張圖,我們可以看到,1st stage大於0.5的,到2nd stage大於0.6的,到3rd stage大於0.7的……在這一個過程中proposal的樣本數量確實沒有特別大的改變,甚至還有稍許提升,和2圖結合起來看,應該可以說是非常強有力的證明了。
總結起來,就是:
- cascaded regression不斷改變了proposal的分佈,並且通過調整閾值的方式重取樣
- cascaded在train和inference時都會使用,並沒有偏差問題
- cascaded重取樣後的每個檢測器,都對重取樣後的樣本是最優的,沒有mismatch問題
Iterative Loss
Iterative Loss實際上沒有級聯結構,從c圖可以看出來,它只是使用了不同的閾值來進行分類,然後融合他們的結果進行分類推理,並沒有同時進行Box reg。作者認為,從圖4中的第一個圖可以看出來,當IoU提高的時候,proposal的比重下降非常迅速,這種方法沒有從根本上克服overfit問題;另外,這種結構使用了多個高閾值的分類器,訓練閾值卻只能有一個,必然會導致mismatch問題而影響效能。
3.Cascade R-CNN的實現與結果
Cascade R-CNN的結構圖在第2部分的(d)圖已經給出了……
最後總結一下,作者最終確定的結構一共是4個stages: 1個RPN+3個檢測器(閾值設定分別為0.5/0.6/0.7)……其中RPN的實現想必大家都很清楚了,而後面三個檢測器,則按照之前介紹的那樣,每個檢測器的輸入都是上一個檢測器進行了邊框迴歸後的結果,實現思路應該類似於Faster RCNN等二階段檢測器的第二階段。
貼一下結果吧:
個人認為,這個提升還是相當驚豔的。特別需要說明的一點是,對於目前流行的檢測結構來說,特徵提取是耗時最多的,因此儘管Cascade R-CNN增加了比較多的引數,但是速度的影響並沒有想象中的大,具體可以參考下表:
實際上,論文中還有相當多的部分沒有提及。這篇文章還做了大量的對比實驗,例如通過新增ground truth來提高proposal的質量從而驗證mismatch問題;通過新增stages來分析適合的級聯階段數等等;包括一些和第2部分中提到的兩種思路的對比等等,可以說是有理有據……再加上不俗的效果和曉暢通俗的語言,還是非常值得閱讀的,另外作者的code也已經發布,有興趣的同學可以前去觀摩~
4.總結
其實像我這樣的入門者是很難準確說出這篇文章好在哪裡的,這裡引用Naiyan Wang大神的評論吧:Detection其實並不是一個很合適的分類問題,沒有一個明確的離散的正負樣本的定義,而是通過IoU來連續定義的。但是IoU這個指標很難通過gradient descent來優化,雖然之前也有一些IoU loss的工作,但是效果並不理想。Cascade RCNN便是一個在這個方向上很好的嘗試。
相關推薦
目標檢測論文閱讀:Cascade R-CNN: Delving into High Quality Object Detection
Cascade R-CNN: Delving into High Quality Object Detection 樣本減少引發的過擬合 在train和inference使用不一樣的閾值很容易導致mismatch(這一點在下面會有解釋) 作者為
【論文解析】Cascade R-CNN: Delving into High Quality Object Detection
論文連結 CVPR2018的文章。和BPN一樣,本文主要關注的是目標檢測中IoU的閾值選取問題,但是BPN主要針對的是SSD等single-stage的detector,感興趣的童鞋可以看我的另一篇博文BPN 目標檢測中,detector經常是用低IoU閾值來train的,如果提高IoU閾值
目標檢測論文Cascade R-CNN: Delving into High Quality Object Detection
轉自:https://zhuanlan.zhihu.com/p/36095768 Cascade R-CNN: Delving into High Quality Object Detection 論文連結:https://arxiv.org/abs/1712.00726 程式碼連結:htt
【譯】Cascade R-CNN:Delving into High Quality Object Detection論文翻譯
CVPR 2018年論文:Cascade R-CNN----------------------------------------------------------------------------------------------------博主也是正在看這篇論文,
目標檢測演算法理解:從R-CNN到Mask R-CNN
因為工作了以後時間比較瑣碎,所以更多的時候使用onenote記錄知識點,但是對於一些演算法層面的東西,個人的理解畢竟是有侷限的。我一直做的都是影象分類方向,最近開始接觸了目標檢測,也看了一些大牛的論文,雖然網上已經有很多相關的演算法講解,但是每個人對同一個問題的理解都不太一樣,本文主
目標檢測技術演進:Fast R-CNN、Faster R-CNN
在上一篇目標檢測技術演進:R-CNN、Fast R-CNN、Faster R-CNN 之 RCNN中,我講了 RCNN 演算法,似乎它的表現不太好,所以這次我們講講它的進化版 —— Fast RCNN 和 Faster RCNN。 如果你還沒看上一篇,可以在我的部落格或者知乎檢視。
大話目標檢測經典模型:Mark R-CNN
在之前的文章中介紹了目標檢測經典模型(R-CNN、Fast R-CNN、Faster R-CNN),目標檢測一般是為了實現以下效果: 在R-CNN、Fast R-CNN、Faster R-CNN中,實現了對目標的識別和定位,如下圖所示: 為了更加精確地識別目標,實現在畫素級場
目標檢測論文閱讀:Relation Networks for Object Detection
Relation Networks for Object Detection 論文連結:https://arxiv.org/abs/1711.11575 程式碼連結:暫無,尚不清楚是否會公開 這個是CVPR 2018的文章,雖然並沒有什麼巧妙的設
目標檢測論文閱讀:Deformable Convolutional Networks
ans 過程 上層 適合 其他 簡易 基礎上 可能 代碼 https://blog.csdn.net/qq_21949357/article/details/80538255 這篇論文其實讀起來還是比較難懂的,主要是細節部分很需要推敲,尤其是deformable的卷積如何實
目標檢測論文閱讀:RFB Net
Receptive Field Block Net for Accurate and Fast Object Detection 1. Background 這篇論文要解決的問題很簡單,作為單階段的檢測方法,它試圖尋找速度和精度之間的平衡,就像之前很多sing
論文閱讀:You Only Look Once: Unified, Real-Time Object Detection
Preface 注:這篇今年 CVPR 2016 年的檢測文章 YOLO,我之前寫過這篇文章的解讀。但因為不小心在 Markdown 編輯器中編輯時刪除了。幸好同組的夥伴轉載了我的,我就直
轉:Cascade R-CNN,一個使你的檢測更加準確的網絡
位置 重要 fast 展示 ~~ 大小 tle tab poi 轉自:https://blog.csdn.net/Chunfengyanyulove/article/details/86414810 簡要概述文章精華 本篇文章主要解決了在目標檢測中,檢測框不是特別準
王權富貴論文篇:Faster R-CNN論文翻譯——中英文對照
文章作者:Tyan 感謝Tyan作者大大,相見恨晚,大家可以看原汁原味的Tyan部落格哦。 部落格:noahsnail.com | CSDN | 簡書 宣告:作者翻譯論文僅為學習,如有侵權請聯
Faster R-CNN網路的另一種優化思路:cascade R-CNN網路詳解
論文:Cascade R-CNN: Delving into High Quality Object Detection 論文地址:https://arxiv.org/pdf/1712.00726.pdf Github專案地址:https://github.com/zhaoweicai/
目標檢測(二)——Fast R-CNN
學習Fast R-CNN之前我們先了解一下SPP-Net網路 SPP-net SPP-net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition, He et a
目標檢測模型以及一些網路R-CNN、SPP-NET、Fast R-CNN、Faster R-CNN
計算機視覺問題 semantic segmentation(no object,just pixels) classification+localization single object(異常檢測) objective detection 2D&3D
目標檢測(八)--Faster R-CNN
轉自:www.cnblogs.com/dudumiaomiao/p/6560841.html 略刪改 R-CNN --> FAST-RCNN --> FASTER-RCNN R-CNN: (1)輸入測試影象; (2)利用selective search 演
【目標檢測】[論文閱讀][yolo] You Only Look Once: Unified, Real-Time Object Detection
論文名稱《You Only Look Once: Unified, Real-Time Object Detection》 摘要 1、之前的目標檢測方法採用目標分類思想解決檢測問題,本文提出一個基於迴歸的框架,用於目標的定位及識別。 2、一個網路,一次預
【深度學習:目標檢測】RCNN學習筆記(1):Rich feature hierarchies for accurate object detection and semantic segmentat
轉載:http://blog.csdn.net/u011534057/article/details/51218218 rcnn主要作用就是用於物體檢測,就是首先通過selective search 選擇2000個候選區域,這些區域中有我們需要的所對應的物體的bound
【論文解析】Single-Shot Bidirectional Pyramid Networks for High-Quality Object Detection
論文地址 AAAI 2018的文章,和Cascade R-CNN一樣,注意到了IoU閾值的設定對目標檢測的影響,但是這篇論文的網路設計比Cascade R-CNN複雜多了。 本文提出的Bidirectional Pyramid Networks(BPN)主要有兩個模組:(1)a Bidire