功能描述:
貢獻主要有兩點1:可以將卷積神經網絡應用region proposal的策略,自底下上訓練可以用來定位目標物和圖像分割 2:當標注數據是比較稀疏的時候,在有監督的數據集上訓練之后到特定任務的數據集上fine-tuning可以得到較好的新能,也就是說用Imagenet上訓練好的模型,然后到你自己需要訓練的數據上fine-tuning一下,檢測效果很好。現在達到的效果比目前最好的DPM方法 mAP還要高上20點,目前voc上性能最好。
著篇文章主要是介紹RCNN,跟后面的,Fast RCNN和Faster RCNN比較關聯,這篇文章是后兩個的基礎
1.介紹
在開始他說到LeCun對卷積神經網絡中采用的SGD(通過反向傳播的隨機梯度下降算法)對網絡訓練很有效,也直接促進了利用CNN來做檢測。
其實CNN的算法在90年代就已經出現了,可惜當時被SVM取代了,主要原因就是當時訓練不動。2012年的時候Krizhevsky復燃了CNN,其在Imagenet的數據集上訓練達到了非常好的效果,主要是用了LeCun中的一些技巧如(rectifying non-linearities and “dropout” regularization)
后來就有了討論說把CNN方到目標檢測上能達到什么樣的效果。因此RossGirshick把問題主要聚集在了2個點上:
1一個是用深度網絡來做一個檢測,并且在整個high-capacity model中用較少的標注數據來training,比如幾萬張圖像,(畢竟Imagenet上有上千萬的圖像數據)。不像圖像分類任務,檢測是需要定位的。因此RCNN里把這個定位轉換成一個regression problem(即回歸問題)。當然他們在當時也想采用最經典的也就是sliding window,在卷積層增加了較大的感受野。但是他們最后沒有采用,因為之前的DPM中也已經不采用這種方法了,無效的操作太多(PS.這里是我個人感覺,而且會增加復雜度)。他們最后采用的是Recognition using region的策略(這種paradigm已經在目標識別和semantic segmention中取得了較好的成功)。在測試階段,他們提取約2000K預選框,從預選框中通過CNN提取出fixed-length的特征,最后通過特定類別的SVM來分類。對于不同大小的ROI采用了(affine image warping)來調整到固定的size,這種方法是不考慮region的形狀的。整個系統的overview
2.在實際檢測中,訓練的樣本肯定是scarce,不足以訓練一個大型的CNN網絡。解決這個問題的方法是,首先通過無監督的預訓練unsupervised pretraining,然后再進行supervised training,在實驗中他們提到經過fine-tuninig,檢測的mAP有8個點的提高。Ross提到Donahue的同時期的工作,其直接拿了krizhevsky的CNN網絡用來做一個blackbox feature的extractor,這也在識別任務中表現出了較好的性能,如場景識別,細粒度的子分類,領域適應。分類計算中只有整個的分類工作只是一個矩陣相乘和非極大值抑制。
在錯誤分析中,可以發現bounding box的regression 可以明顯的減少mislocalization。同理,作者說因為RCNN是工作在Region上的,因此其也可以較好的應用到semantic segmentation,最后也在voc2011上取得了較好的效果,比最好的高出1個點,(PS.我認為應該會有更好的性能,應該還沒有做透,原來的那些分割仍然依賴淺層的特征)
特征提。涸诰W絡之前,ROI不管大小形狀都被縮放到一個固定的尺寸以適應網絡。
2.2
測試時檢測
在RCNN中,為每一類都訓練了一個SVM,最后根據輸出的特征類判斷,每一個區域都有一個得分,最后通過greedy non-maximun supperssinon(for each class independently)來接受或者拒絕一個region,主要是看他這個有IoU的region是否比學習到的閾值有更高的得分。
對于運行分析
1.所有的CNN參數都在各個類別分享參數
2.CNN計算出來的參數是low dimensional 低維的,與其他方法比起來如空間金字塔,以及視覺詞帶模型
-
The only class-specific computations are dot products between features and SVM weights and non-maximum suppression
4.RCNN可以應付類別很多情況并且不需要借助一些額外的近似手段,比如哈希什么的,別的方法在類別增長時,整個復雜度會上升很多,比之前的DPM的方法也要好很多
2.3 訓練過程
supervised-pretraining ----> domain-specifi fine-tuning ---->object categroy classier
1.supervised-pretraining是在imagenet上訓練好的模型
2.domian-specific fine-tuning 首先需要修改類別數目,并且在文中,Ross將IoU和GT大于0.5的看成是正樣本,在SGD中 lr為pre-training rate的十分之一為0.001,這樣不會影響預訓練。在SGD中,每一次迭代,mini-batch大小是128,總共有32個postive window,96個negtive window.`
3可視化學習的特征
在可視化學習特征中中,采用了一個很大的局部感受野的數據集。這了主要對卷基層進行可視化,輸入region圖像,根據unit激活之的大小排序,來看他對什么樣的輸入敏感。下圖可以看到有一些Unit對人臉敏感如1,有一些對點陣,狗敏感如2行,第三行,對紅色敏感,對第四行對文字敏感,也能將一些特征融合到一起入顏色、紋理、形狀,如5行的屋子。。等等
3.2 關于參數消除的研究
1.performace沒有fine-tuning
從表中可以看到fc7產生的特征比fc6澶色恒的特征要差,這也就是說29%差不多1.68million個數據是可以從CNN網絡中去掉的,并且幾乎對mAP沒什么影響。更加驚訝的是,如果把f6和f7都去掉的話,只用pool5層的參數也就是大于整個網絡6%的參數也可以取得不錯的結果如下圖所示:可以看到大部分representational的能力主要是來自于CNN的卷積層,而不是主要的全連接層。這個發現可以用在稠密的特征map中,比如說Hog。這種表現能力也就是說我們有可以將其應用到一些滑動窗檢測子中如DPM,在pool5的特征基礎之上。作者原文(Much of the CNN’s representationalpower comes from its convolutional layers, rather than fromthe much larger densely connected layers. This finding suggests potential utility in computing a dense feature map, in the sense of HOG, of an arbitrary-sized image by using only the convolutional layers of the CNN. This representation would enable experimentation with sliding-window detectors, including DPM, on top of pool5 features)
2.經過fine-tuning的性能
可以看到fine-tuning的效果還是很明顯的,幾乎提高了8個點,并且對于fc67的效果更明顯,這也就是說從imagenet中學習到的pool5的特征比較general,并且對于性能的提升主要是來自對于在他們基礎上的domain-specific具體應用場景的non-linear分類器的訓練。
3.4 關于BBOX
首先需要明確的是,RCNN并不是從預選框里選擇一個判斷一下那么簡單,在論文中的錯誤分析,大部分的檢測錯誤的主要成分都是localize error 也就是定位錯誤,IoU在0.1和0.5之間。與別的類別以及背景confusion比例非常小,在這里作者根據最后輸出的feature 進一步做了regression, 采用的是之前在DPM檢測中的用的Linear regression model,這個讓mAP大概提高了4個點。
4 Semantic segmentation
文中也提到了將RCNN網絡用語分割,但是效果與目前較好的O2P的方法沒有本質的提高約0.9。我認為主要還是網絡學習過程并不足,其對于細粒度的特征沒有一個整體的學習過程,目前在semantic segmentation上性能最好的是《Learning Deconvolution Network for Semantic Segmentation》目前在pascal-voc數據集上是第一的性能,他的網絡中有一個對稱的deconvolutoin network。
結束語:最近這幾年確實,在目標物檢測的性能上是停滯不前了,現在最好的DPM算法都是結合好多low-level的feature,并且這些feature都是手工設計的加上一些high-level context from detector和scene classifier。這篇文章給出了基于Region proposal和CNN網絡極大的提高了mAP。有監督的預訓練在特定場合的fine-tuning這一模式會針對很多數據系稀疏的是視覺問題有效。作者這里的意思是說拿Imagenet上訓練好的那個模型,然后根據自己的特定應用場景,把模型用自己的數據fine-tuning一下,這樣的做法是挺有效的。
|