目前的候選框提取方法一般須要提取幾千個候選框,影響檢測效率。
RPN只提取了幾百張,可是對於小物體的檢測和定位仍存在問題。網絡
深層次的卷積層:high recall, but poor localization
低層次的卷積層:better localization, but reduced recall
一個好的目標檢測系統應該 combine the best of both框架
HyperNet的框架如上圖。圖片通過卷積層獲得activition maps。以後彙集各層的feature maps,將它們壓縮到一個統一的空間,Hyper Feature。而後用一個輕量的RPN來提取大約100個proposal。最後用檢測模型對這些proposals分類。學習
給一張照片,咱們用一個預訓練模型的卷積層來計算整張圖片的feature maps。在Fast RCNN中,咱們保留了圖片的比例,並將較小邊的長度設置爲600。由於在CNN中的局部採樣(subsampling)和池操做(pooling),這些feature maps的分辨率發生了改變。爲告終合相同分辨率的多層特徵,咱們爲不一樣層提出了不一樣的採樣策略。咱們在層次較低的卷積層添加了最大池化層。對層次較高的卷積層,咱們添加了一個反捲積操做(Deconv)來進行上採樣。一個卷積層應用與每個採樣結果。卷積操做不只提取了語義特徵,還將它們壓縮到一個統一的空間。最後,用LRN(local response normalization)歸一化多個feature maps,並整合到一個立方體中,這個立方體就是Hyper Feature。
Hyper Feature的優點:測試
多層的抽象編碼
合適的分辨率。Feature Maps的分辨率由1000600變成了250150,更適於檢測。spa
計算高效。全部特徵在RPN和檢測模型以前預計算。設計
在特徵提取器的基礎上設計一個深層的分類網絡對特徵提取自身也很是重要。Ren et al.提出在預計算的feature maps上卷積網絡的表現也不錯。根據這一發現,咱們爲提取候選區域設計了一個輕量級的卷積網絡。這個卷積網絡包括一個ROI pooling layer,一個卷積層,一個FC layer,後面有兩個輸出層。對於每一個圖片,這個網絡產生大約30k個大小不一樣,分辨率不一樣的候選框。
ROI pooling 用動態最大池處理輸出的wxh的箱子(bins)。在論文中w和h都設置爲13。在ROI pooling的輸出上添加了兩個層。一個層是將每一個ROI的位置編碼成一個更抽象的特徵立方體(cube;13x13x4),另外一個層將每一個立方體編碼成一個256維的短特徵向量。得分層計算物體存在的機率,包圍框迴歸層輸出框。
每一個候選框計算出得分和調整值以後,一些候選區域可能會高度重疊。爲了減小重疊,咱們採用了greedy non-maxinum suppression(NMS)。對於每一個框,若是IoU overlap高於一個給定的閾值,就拒絕另外一個框。論文中將IoU的閾值調爲0.7,這樣對每張圖片都會產生1000個候選區域。在NMS以後,咱們用前200個候選區域來訓練檢測網絡,可是在測試的時候會調整數量。orm
實現目標檢測最簡單的方法就是用FC-Dropout-FC-Dropout這樣的層次設計。在此基礎上,咱們作了兩個改動。blog
在FC前添加了一個3x3x63的卷積層加強分類。這樣作也能夠下降特徵的維度,有利於下面的計算。圖片
dropout ratio由0.5改成0.25。發現這樣更高效。
對於提取候選區域模型,檢測網絡也有兩個輸出。不一樣之處是對每一個候選框產生了N+1個分數和4xN個框的調整值。(這裏的N是物體類別的個數,+1是背景)以後又用NMS來減小重疊。這個操做只會過濾少許框,由於大部分框都在提取候選區域步驟中被過濾掉了。
每一個框被分配了一個二進制類別標籤(是一個物體或者不是)。若是這個框的IoU閾值比任何ground truth box大於0.45,那麼這個框就被分配一個正標籤。若是IoU閾值低於0.3,被分配負標籤。
上圖是loss function。Lcls是softmax loss, Lreg是bounding box regression。在候選框提取步驟,Lreg的係數設置爲3。t和t*的值用RCNN中給定的值。以下圖:
P^i =(Px,Py,Pw,Ph)肯定了候選框P的中心像素點的座標值,以及P的長寬。每一個ground truth box G也是這樣定義的。
訓練過程以下:
預訓練一個深度CNN模型。
訓練HyperNet,目的是提取候選區域。
用2獲得的候選區域爲目標檢測訓練HyperNet。
微調HyperNet,共享3獲得的Hyper特徵層,用於產生候選區域。
用4獲得的候選區域微調HyperNet,with 固定的共享Hyper特徵層,用於目標檢測。
輸出4和5聯合訓練獲得的HyperNet做爲最終模型。
在第4步前,候選區域提取和檢測網絡是分開訓練的。在4和5的微調以後,兩個網絡都share network for Hyper特徵提取。最後,將這兩個網絡結合成一個網絡。在proposal/detection中,對前100k個mini batches,學習率爲0.005,接下來訓練和微調的50k mini batches,學習率爲0.0005。對每一個mini batch,每一個圖片中會採樣出64個ROIs。
在生成候選區域的模型中,須要處理的ROI數目很是大,大約總時間的70%要花費在這上面。
本文對這一過程作了一個微小的修改。咱們將3x3x4的卷積層移到ROI pooling層前面。這樣作有兩個優點。一是Hyper Feature maps的數量由126降爲4。二是滑動窗口分類器更簡單。實驗代表,這樣作 is almost cost-free(40X speed up)
Fast R-CNN。HyperNet是在一個網絡中獲得候選物體和檢測結果。且候選框的數量是100 VS 2000。 HyperNet取得了更多準確檢測結果。
Faster R-CNN。 Faster R-CNN仍然依賴Fast R-CNN作目標檢測。而HyperNet將候選框生成模型和檢測模型整合成一個新的網絡。另外,HyperNet在小物體的檢測上表現更好。在高IoU閾值的狀況下,HyperNet的region proposals still perform well。
50 proposals, 95% recall; 100 proposals, 97% recall。
PASCAL VOC 2007 mAP 76.3%; PASCAL VOC 2012 mAP 71.4%。比Fast R-CNN分別高了6/3個百分點。
(GPU) 1.14s in total, 2X faster than Fast R-CNN。speed up version takes 200ms in total.