PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
傳送門:
摘要
1.實現了高精確度的多類目標檢測任務同時通過調整和結合最近的技術創新達到最小化計算cost的目標
2.使用" CNN feature extraction + region proposal + RoI classification"的結構,主要對feature extraction(特征提取)進行重新設計。因為,region proposal部分計算量不太大而且classification部分可以使用通用的技術(例如:truncated SVD)進行有效的壓縮。
3.設計原則:less channels with more layers 和 采用一些building blocks(包括:串級的ReLU、Inception和HyperNet)
4.設計的網絡deep and thin,在batch normalization、residual connections和基於plateau detection的learning rate的調整的幫助下進行訓練。
5.結果:VOC2007——83.8%mAP;VOC2012——82.5%mAP,46ms/image在NVIDIA Titan X GPU;計算量是ResNet-101的12.3%(理論上)
1 介紹
准確率很高的檢測算法有heavy computational cost,現在壓縮和量化技術的發展對減小網絡的計算量很重要。這篇文章展示了我們用於目標檢測的一個輕量級的特征提取的網絡結構——PVANET,它達到了實時的目標檢測性能而沒有損失准確率(與現在先進的系統比較):
- Computational cost:輸入1065*640大小的圖像在特征提取時需要7.9GMAC(ResNet-101:80.5GMAC)
- Runtime performance:750ms/image (1.3FPS) 在 Intel i7-6700K CPU (單核);46ms/image (21.7FPS) on NVIDIA Titan X GPU
- Accuracy: 83.8% mAP on VOC-2007; 82.5% mAP on VOC-2012 (2nd place)
設計的關鍵:less channels with more layers 和 采用一些building blocks(其中有的未證實對檢測任務有效)
1.串級的ReLU(C.ReLU——Concatenated rectified linear unit)被用在我們的CNNs的初期階段來減少一半的計算數量而不損失精度。
2.Inception被用在剩下的生成feature的子網絡中。一個Inception module產生不同大小的感受野(receptive fields)的輸出激活值,所以增加前一層感受野大小的變化。我們觀察疊加的Inception modules可以比線性鏈式的CNNs更有效的捕捉大范圍的大小變化的目標。
3.采用multi-scale representation的思想(像HyperNet中)結合多個中間的輸出,所以,這使得可以同時考慮多個level的細節和非線性。
我們展示設計的網絡deep and thin,在batch normalization、residual connections和基於plateau detection的learning rate的調整的幫助下進行有效地訓練
網絡的簡單的描述——2;PVANET的細節總結——3;實驗,訓練和測試的細節——4
2 網絡設計的細節
2.1 C.ReLU:Earlier building blocks in feature generation
C.ReLU來源於CNNs中間激活模式引發的。輸出節點傾向於是"配對的",一個節點激活是另一個節點的相反面。根據這個觀察,C.ReLU減少一半輸出通道(output channels)的數量,通過簡單的連接相同的輸出和negation使其變成雙倍,即達到原來輸出的數量,這使得2倍的速度提升而沒有損失精度。
C.ReLU的實現:

與原始的C.ReLU相比,我們增加了scaling and shifting(縮放和移動)在concatenation(串聯)之后,這允許每個channel(通道)的斜率和激活閾值與其相反的channel不同。
2.2 Inception:Remaining building blocks in feature generation
Inception沒有廣泛的使用在現存的網絡中,也沒有驗證其有效性。我們發現Inception是用於捕獲輸入圖像中小目標和大目標的最具有cost-effective(成本效益)的building blocks之一。為了學習捕獲大目標的視覺模式,CNNs的輸出特征應該對應於足夠大的感受野,這可以很容易的通過疊加 3*3或者更大的核(kernel)卷積實現。在另外一方面,為了捕獲小尺寸的物體,輸出特征應該對應於足夠小的感受野來精確定位小的感興趣region。

上面所示的Inception可滿足以上需求。最后面的1*1的conv扮演了關鍵的角色,它可以保留上一層的感受野(receptive field)。只是增加輸入模式的非線性,它減慢了一些輸出特征的感受野的增長,使得可以精確地捕獲小尺寸的目標。

上圖說明了實現的Inception。5*5的conv用2個順序的3*3的conv代替。
2.3 HyperNet:Concatenation of multi-scale intermediate outputs(連接多尺度的中間輸出)
多尺度表示和它們的結合在許多dl任務中被證明是有效的。細粒度細節與高度概括的語義信息的結合有助於隨后的region proposal網絡和分類網絡檢測不同尺度的目標。然而,因為直接連接所有的abstraction layers也許產生有很多計算需要求的冗余信息(redundant information),我們需要仔細設計不同 abstraction layers和layers的數量。如果選擇的層對於object proposal和分類太早的話,當我們考慮增加計算復雜度的話幫助很小。
我們的設計選擇不同於ION和HyperNet。We choose the middle-sized layer as a reference scale (= 2x), and concatenate the 4x-scaled layer and the last layer with down-scaling (pooling) and up-scaling (linear interpolation), respectively.
2.4 深度網絡訓練
隨着網絡深度的增加,訓練會更加的麻煩。我們采用residual structures解決此問題。
與原residual不同,
1.我們將residual連接到Inception layers以穩定網絡框架的后半部分,
2.我們在所有的ReLU 激活層(activation layers)前添加Batch normalization layers。mini-batch樣本統計用於pre-training階段,並且隨后moving-averaged統計作為固定的尺度和移動的參數。
3.學習率策略對成功地訓練網絡也很重要。我們的策略是:基於plateau detection動態地控制學習率。我們采用移動平均數(moving average)損失並且如果在某次的迭代周期期間其改進低於一個閥值,則將其確定為on-plateau(高原)。無論何時plateau被檢測到,學習率減少一個常數因子。在實驗中,我們的學習率策略對准確率有一個顯著的結果。
3 Faster R-CNN with our feature extraction network

表一顯示了PVANET的整個結構。在初期(conv1_1,...,conv3_4),C.ReLU用在卷積層來減少一半K*K conv的計算消耗。1*1conv layers添加在K*K conv的前面和后面,目的是減少輸入的大小然后分別表示的能力。
三個中間輸出conv3_4(with down-scaling)、conv4_4和conv5_4(with up-scaling)結合到512-channel多尺度輸出特征(convf),之后被送到Faster R-CNN模型:
•計算的有效性。僅convf的前128通道被送到the region proposal network(RPN)。我們的RPN是一系列"3*3conv(384channels- 1x1 conv(25x(2+4) = 150 channels)"層來生成regions of interest(RoIs)。
•R-CNN采用convf中的全部512 channels。對於每一個RoI,RoI pooling 生成 6*6*512 tensor(張量),之后通過一系列的"4096-4096-(21+84)"的輸出節點的FC layers。
4 Experimental results
4.1 Training and testing
PVANET 用1000類別的 ILSVRC2012 訓練圖像進行預訓練。所有的圖像被調整到256*256大小,之后隨機裁剪成192*192的patches被作為網絡的輸入。學習率的初值設為0.1,之后只要檢測到plateau時就以因子
減少。若學習率小於1e-4就終止預訓練,這個過程大約需要2M次迭代。

之后,PVANET在聯合的數據集(MS COCO trainval,VOC2007 trainval 和 VOC2012 trainval)訓練。之后用VOC2007 trainval 和 VOC2012 trainval進行fine-tuning(微調)也是需要的,因為在MS COCO和VOC競賽的類別定義是稍有不同。訓練數據被隨機的調整大小,圖像較短的邊的長度在416和864之間。
對於PASCAL VOC評價,每個輸入圖像調整大小使其短的一邊為640。所有有關Faster R-CNN的參數被設置在原始的work中,除了在極大值抑制(NMS:non-maximum suppression)(=12000)前的proposal boxes的數量和NMS的閾值(=0.4)。所有的評估在單核的Intel i7-6700K CPU和 NVIDIA Titan X GPU 上完成。
4.2 VOC2007

Table2展示了我們的模型在不同配置下的准確率。由於Inception和多尺度feature,我們的RPN產生的initial proposals非常的准確。因為結果表示超過200個proposals沒有對檢測的准確率起到顯著的幫助,我們在剩下的實驗中把proposals 的數量固定在200個。我們也測量了當迭代回歸不使用時用帶有bounding-box voting的性能。
Faster R-CNN包含的FC layer,它容易壓縮並且准確率沒有顯著的下降。我們通過the truncated singular value decomposition (SVD)把"4096-4096"的FC layer壓縮成"512-4096-412-4096",之后進行一些微調。這個壓縮的網絡達到了82.9%mAP(-0.9%)而且運行達到了31.3FPS(+9.6FPS)
4.3 VOC2012

Table3總結了PVANET+和一些先進的網絡在PASCAL VOC2012排行榜上的比較。我們PVANET+達到了82.5%mAP,位列排行榜的第二名,超過其他競爭者除了"Faster R-CNN + ResNet-101"。然而第一名使用的ResNet-101比PVANET大很多同時一些耗時的技術,例如global contexts(全局上下文)和多尺度測試,導致至少比我們慢40倍。在Table3,won,我們也比較computation cost。在所有超過80%mAP的網絡中,PVANET是唯一一個運行時間小於50ms的。考慮精度和計算cost,PVANET+是排行榜中最有效的網絡。