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+是排行榜中最有效的網絡。