Cascade R-CNN的一些记录
Cascade R-CNN的一些記錄
《Cascade R-CNN: Delving into High Quality Object Detection》CVPR2018的一篇文章
論文鏈接:https://arxiv.org/abs/1712.00726?
代碼鏈接:https://github.com/zhaoweicai/cascade-rcnn
參考鏈接:https://blog.csdn.net/qq_21949357/article/details/80046867
本文主要針對的是目標檢測問題中的IoU閾值選取問題,眾所周知,閾值選取越大就越容易得到高質量的樣本,但是一味選取高的閾值會引發兩個問題:
- 樣本減少引發的過擬合
- 在train和inference使用不一樣的閾值很容易導致mismatch。(只有輸入的region proposal自身的IOU值和訓練器訓練用的設定IOU閾值較為接近的時候,訓練器輸出的IOU值才會高即性能才好)
為了解決上述兩個問題就提出了一種基于Faster-RCNN的muti-stage的architecture,核心就是利用不斷提高的閾值,在保證正例樣本數不減少的情況下訓練出高質量的檢測器
Abstract
1 Introduction
2 Related Work
RetinaNet解決密集物體檢測,前景和背景極端不平衡問題,并取得了比兩步的目標檢測更好的效果。
3、Object Detection
基于Faster-RCNN,第一步proposal subnetwork(RPN網絡)生成候選框H0,第二步是ROI池化層H1,將不同大小候選框在特征圖上的映射patch,把映射的patch采樣成固定大小的特征,和SPP類似,但只是用一個尺度(一個patch不論大小就劃分為4個部分)進行劃分。分類器是C,邊界框是B
3.1 Bounding box regression
邊界框b=(bx,by,bw,bh),邊界框回歸f(x,b)的作用是從候選邊界框中選出目標邊界框,邊界框的損失函數在faster-RCNN中是L1損失函數,并通常用均值和方差正則化處理。在FatserRCNN中一個單獨的邊界框回歸器f不能解決精確定位的問題,所以使用Bbox,但是Bbox中IOU的值固定(單一閾值即使用的是完全相同的級聯結構),所以IOU的值不一定一直是最優的,并且邊界框的分布隨每次迭代變化很大。
(C0的結果是anchor中有目標或者沒有目標)
3.2 Classification
分類器的函數是h(x),h(x)是后驗概率的M+1維估計,hk(x) = p(y = k|x),通過最小化交叉熵損失來學習,
3.3 Detection Quality
如果IOU的值大于給定閾值,則認為這個patch是這個類中的一個。
當給定的IOU閾值大時,正例中包含很少的背景,但是正例數量會很少;當小時,容易產生接近但不正確的判斷(假陽率高)。解決方法:傳統最容易想到的是使用分類器的集成,如圖c,Iterative Loss實際上沒有級聯結構,從c圖可以看出來,它只是使用了不同的閾值來進行分類,然后融合他們的結果進行分類推理,并沒有同時進行BBox reg,因此沒有解決 不同數量的正例數應對應不同的損失 的問題。
?
4、Cascade R-CNN
與Bbox不同的是,級聯RCnn通過重采樣改變了不同階段的輸入假設分布,并且通過重采樣保證了每個階段有足夠固定數量的正例樣本數。這就實現了沒有過擬合和更深層的訓練階段可以有更高的IOU閾值.
- cascaded regression通過調整閾值的方式重采樣,不斷改變候選框region proposal的分布,而且cascaded重采樣后的每個檢測器,都對重采樣后的樣本proposals是最優的,沒有mismatch問題。
- cascaded在train和inference時都會使用,因此并沒有偏差問題。
其實像我這樣的入門者有很多不懂之處,歡迎指正。
總結
以上是生活随笔為你收集整理的Cascade R-CNN的一些记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Faster-RCNN的一些记录。
- 下一篇: 超干货!为了让你彻底弄懂MySQL事务日