Dtection:PVA-net

開始跑模型就顧不上看理論,就像降低計算量就要犧牲準確率。


摘要

這是一個輕量級的detection模型,基於faster RCNN框架改進,主要重新設計了feature extraction部分(因爲其他RPN分計算量不大、ROI classification部分的全連接層可以用svd方法改進),設計總體原則是“less channels with more layers”。


簡介

在設計網絡上借鑑了一些其他比較新的building block:1)C-RELU、 2)Inception、 3)Hyper-net。還有其他一些常規的比如residual learning、batch normolization、pleateau學習策略等。


設計細節

(1)C-RELU

CNN網絡的前幾層卷積核被觀察到總是有成對出現的情況(一正一負),原因的猜想是RELU抑制了激活值爲負的卷積特徵表達,而在最開始幾層CNN希望捕捉“both positive and negetive phase information”,所以表現出來就是用負卷積核把負的特徵變成正的表達出來,也就是成對出現的原因(Understanding and Improving Convolutional Neural Networks viaConcatenated Rectified Linear Units 有嚴格的數學證明,沒看懂)。

這個現象說明前幾層卷積核存在着嚴重的冗餘,用一個簡單的方法就可以在不損害準確度的前提下大幅減少網絡計算量,那就是下面的C-RELU結構:


相比原版的C-RELU這裏增加了scale層和shift層,可以讓每個channel的斜率和激活閾值不同。


(2)Inception

在detection任務中,捕捉大的物體需要特徵對應一個大的reception field,這個很容易通過堆疊卷積層來得到;同樣小的物體需要對應小的reception field,要同時滿足這兩個條件(多尺度)就有些困難。Inception很好地解決了這一問題,關鍵在於1*1卷積。它在保留上一層reception field大小不變的同時,增加了特徵的非線性,如下:


(3)Hyper-net

把各個scale的feature map拍在一起做成多尺度的Hyper cube,在這裏以最後一層conv5輸出大小爲基準,連結了conv4(2x)、conv3(4x)共3個scale,最後的輸出大小是conv4(2x),另兩個分別作上採樣(deconv)和下采樣。這裏沒太大原理闡述。


對比faster RCNN

主要是理解PVA-net快的原因。定性地表達有兩個原因:1)conv1-conv3十幾層都用了C-RELU,減少一半參數量; 2)在得到512 channels 的 Hyper feature之後,只有128通道輸入給RPN產生proposal,其餘通道在ROI pooling層匯合,產生6*6*512的tensor輸入到classification網絡裏。

至於定量分析,原文中給出了表格,但是實在沒找到computation cost(單位MAC)是怎麼算的,只把表附在這裏。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章