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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Light Head R-CNN论文笔记

發(fā)布時間:2024/9/21 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Light Head R-CNN论文笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

先上鏈接:?
論文:Light-Head R-CNN: In Defense of Two-Stage Object Detector?
鏈接:https://arxiv.org/abs/1711.07264?
代碼:?TF鏈接

introduction

本篇文章介紹的算法是是曠視和清華大學在COCO 2017比賽拿到冠軍的算法。目前常用的object detection框架有兩種:一種是基于single-stage的SSD和YOLO,特點是速度快,但是精度有待提升;另一種是基于two-stage的Faster R-CNN、R-FCN和Mask R-CNN等,特點是精度高,但是速度慢。在文中,作者分析了two-stage算法主要有兩部分組成:第一步是生成proposal(或說ROI)的過程(作者稱之為body),第二步是基于proposal(ROI)的recognition過程(作者稱之為head)。為了實現(xiàn)best accurcy,head一般都設計的很“重”,且head部分有一些層(例如:fc層)計算量大并耗時,故導致檢測速度很慢。本文提出的light head RCNN則是主要通過對head部分的修改減少了較多計算量,故稱之為light head。?
網(wǎng)絡結構包括兩部分:ROI warping和 R-CNN subnet。

先上一張圖直觀感受一下本文算法對比其他object detection算法的效果。

Approach

下圖介紹的是Faster R-CNN、R-FCN和light head RCNN在結構上的對比。可以看出two-stage網(wǎng)絡大都可以分為兩部分:ROI warping和 R-CNN subnet。圖中虛線框起來的部分是各網(wǎng)絡的R-CNN subnet部分。這類算法的基本流程是這樣的:通過base feature extractor(即特征提取網(wǎng)絡)中某一層輸出的feature map作為ROI warping的輸入從而生成ROI,接著將ROI和feature map共同作為R-CNN subnet的輸入完成 image classification和 object regression。

以下將Faster R-CNN網(wǎng)絡簡稱為F,R-FCN網(wǎng)絡簡稱為R。因為圖中使用的特征提取網(wǎng)絡均為Resnet-101,以下貼出Resnet的網(wǎng)絡結構圖。Resnet-101的conv5_x的輸出是2048維。

F網(wǎng)絡中,通過Resnet-101獲得2048維特征圖,接著是一個ROI pooling層,該層的輸入包括2048維特征圖和RPN中生成的ROI,輸出是size統(tǒng)一的特征圖(關于ROI pooling有不清楚的小伙伴,可以移步看一下SPP Net?和ROI pooling的源碼解析。),再通過global average pool后接入兩個全連接層,最后通過兩個分支進行classification和location。在精度上,F為了減少全連接層的計算量,使用了global average pool, 這會導致在一定程度上丟失位置信息;在速度上,F的每一個ROI都要通過R-CNN subnet做計算,這必將引起計算量過大,導致檢測速度慢。

R網(wǎng)絡在實際使用中,conv5_x的2048維輸出要接一個1024維1*1的filter用于降低“厚度”,接著用p*p*(c+1)維1*1的filter去卷積生成position-sensitive score map,也就是圖中的彩色部分(從圖中看p=9,但是在coco數(shù)據(jù)集上應用時p=7,所以p*p*(c+1)=3969,這也是本文的一個小漏洞吧),同時將conv4_x的feature map作為RPN的輸入,生成ROI,將ROI 和position-sensitive score map共同作為輸入,通過PSROI pooling層,得到c+1維p*p的特征圖。最后經(jīng)過一個global average pool層得到c+1維1*1的特征圖,這C+1維就是對應該ROI的類別概率信息。相較于F網(wǎng)絡,R解決了每個ROI都要通過R-CNN subnet導致重復計算的問題。在精度上,R也使用了global average pool;在速度上,R的head雖然不用計算每一個ROI,但是其需要一個維度非常大的score map,這在一定程度上也會降低檢測速度。

關于Faster R-CNN網(wǎng)絡和R-FCN網(wǎng)絡有不了解的同學,可以移步這里這里

light head RCNN主體和R-FCN差不多。針對R-FCN的score map維度過大的問題,作者用10代替了class,也就是說score map維度變成了10*p*p=490(作者稱之為thinner feature map),因此降低了PSROI pooling和fc層的計算量;此外作者使用了large separable convolution代替1*1convolution,示意圖如下圖所示,可以看出作者借鑒了Inception V3 的思想,將k*k的卷積轉(zhuǎn)化為1*k和k*1,同時采用圖中左右兩邊的方法,最后通過padding融合feature map,得到size不變的特征圖。將490維特征圖和ROI作為PSROI 的輸入則得到10維p*p的特征圖,如果將490維特征圖和ROI 作為ROI pooling的輸入,則得到490維特征圖,所以圖中寫了10 or 490。因為class更改為了10,所以沒辦法直接進行分類,所以接了個fc層做channel變換,再進行分類和回歸。

在本文中,整個網(wǎng)絡的架構如下:?
特征提取網(wǎng)絡使用了L(Resnet-101)和S(Xception)兩種類型的網(wǎng)絡RPN網(wǎng)絡的輸入是conv 4_x,定義了3個aspect ratios{1:2,1:1,2:1}和5個scales{32^2,64^2,128^2,256^2,512^2}(不同與F中3個aspect ratios和3個scales),此外還使用了NMS來降低overlapping,最后得到ROI。conv5_x輸出的feature map通過large separable convolution來得到thinner feature map。k設為15,對于L網(wǎng)絡cmid=256,對于S網(wǎng)絡cmid=64,Cout=10*p*p=490,整個計算的復雜度可以通過Cmid和Cout來控制。將ROI和thinner feature map共同作為PSROI 或ROI pooling的輸入,得到10 or 490channels的feature map。R-CNN subnet部分使用了一個channel為2048的fc層來改變前一層的feature map的通道數(shù),最后通過兩個fc實現(xiàn)分類和回歸。

Experiments

作者的實驗主要是基于COCO數(shù)據(jù)集進行的,object class為80,訓練集有80K,驗證集有35K,測試集有5K。作者用訓練加驗證共115K的數(shù)據(jù)訓練,然后用5K的測試集做驗證。

baselines

先做了一組R-FCN的實驗用于對比,標準的R-FCN記為B1;對R-FCN做一些“增強”:1. image短邊resize為800,長邊resize為1200,并在RPN部分設置5個scales{32^2,64^2,128^2,256^2,512^2} 2.在RCNN部分回歸的loss總是小于分類的,所以將回歸的loss翻倍 3. 根據(jù)loss排序選取loss最大的256個samples用于反向傳播。做了“增強”的R-FCN記為B2,實驗結果如下表所示,B2高于B1約3個百分點。

Thinner feature maps for RoI warping

該部分主要用來驗證thinner feature map和large separable convolution的作用。?
先看thinner feature map。相較于原來的R-FCN,作者使用了如圖4的網(wǎng)絡,與R-FCN不同的是,該網(wǎng)絡的thinner feature map channels為10*p*p=490,R-FCN中score map channels為81*p*p=3969。接著接入同樣的PSROI層,因為圖4中channel的改變,所以使用了fc層來改變channels以便后續(xù)的分類和回歸。注意該網(wǎng)絡沒有使用large separable convolution層,因為要做到“控制變量”,所以兩網(wǎng)絡只有“score map”的channel的不同。

實驗結果如下表所示:從表中可以看出,channel數(shù)大大降低后精度并沒有減小多少,有關速度的提升表中沒有說明,但是可想而知。此外,作者在文中強調(diào)了light head rcnn的 reduce channel操作讓該網(wǎng)絡可以和FPN結合,如果使用原來的R-FCN,要和FPN結合(就是對不同scale的層做position-sensitive pooling)其計算量過大會導致內(nèi)存使用量過大的。

再用large separable convolution代替1*1convolution,實驗結果如下表所示,精度略有提升,速度仍然沒有寫出,但是明顯會有較大的提升。

light head R-CNN

將RoI warping和R-CNN subnet結合到一起,也就是light head R-CNN, 對比其和B2、Faster R-CNN(這里的F是作者改進過的網(wǎng)絡),如下表所示,最后一行表示light head R-CNN,可以看出map有了一定的提升(這些都是在L網(wǎng)絡上實驗的)。

在此解釋一下,該表格最后兩行的區(qū)別。有同學會說Thin feature map+large kernal就是整個light head rcnn呀!其實不然,+large kernal是在Table3中出現(xiàn)的,也就是說是以figure4 為基礎做出來的,而figure 4 中的 RCNN subnet部分直接將10*7*7的feature map接個81channel的fc作為分類結果(對于cls任務來說)。但是Light head rcnn的RCNN subnet部分卻是先使用了一個2048channel的fc,再接81channel的fc用于分類(對于分類層來說),從結果中可以看到提升較為明顯。

此外作者還做了一組improvements的實驗,分別加了pool with alignment、ms train和0.5閾值的NMS,結果如下表所示。

再將light head rcnn與當前主流的檢測算法在coco數(shù)據(jù)集上進行比較,backbone基本都是Resnet-101,結果如下表所示。

為了突出light head rcnn的速度優(yōu)勢,作者使用了類似與Xception的一個小網(wǎng)絡作為backbone,具體結構如表7所示,這里有些細節(jié)博主暫時沒弄清楚。

接著將小網(wǎng)絡的light head rcnn與其他網(wǎng)絡進行速度上的對比,如表8所示。

可以看出,light head rcnn要速度有速度,要精度有精度,坐等源碼公開了。

總結

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

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