【CV論文閱讀】+【搬運工】LocNet: Improving Localization Accuracy for Object Detection + A Theoretical analysis

論文的關注點在於如何提升bounding box的定位,使用的是機率的預測形式,模型的基礎是region proposal。論文提出一個locNet的深度網絡,不在依賴於迴歸方程。論文中提到locnet能夠很容易與現有的detection系統結合,但我困惑的是(1)它們的訓練的方法,這點論文中沒有明確的提到,而僅僅說用迭代的方法進行(2)到底二者的融合後兩個網絡的結構是怎樣呢?能夠看作一個多任務的系統,仍是存在兩個網絡呢?windows

 

檢測方法網絡

輸入的候選bounding box(使用selective search或者sliding windows得到),經過迭代的方法,得到更精確的box。檢測的由兩個過程組成:識別模型(recognition model)以及定位模型(localization model)。識別模型爲每一個box計算一個置信度(confidence score),度量定位的準確性,定位模型調整box的邊界生成新的候選box,再輸入到識別模型中。僞代碼以下,ide

 

能夠看到,在識別模型中,會根據計算的置信度刪除其中一些box,這樣作的目的是爲了減小計算的複雜度。但從過程能夠看出,置信度對於定位模型幾乎沒有用,這個迭代的過程識別模型的計算好像沒有必要。函數

 

定位模型優化

但上述並非關心的重點,主要是看看這個提高定位準確性的方法。提出的locnet模型步驟總結以下spa

(1)對於輸入的box,把它擴大一個因子的倍數,獲取一個更大的區域R,把R投影到feature map中。3d

(2)通過一個相似於ROI pooling的層,輸出固定大小的map。在這裏須要展開說明。把一個區域劃分紅M*M的格子,這時能夠產生兩個向量,分別表明區域R的每一行或者列包含在bounding box中的機率,如圖(左)。例如,對於ground truth box而言,對於邊界內的行或列機率爲1,不然爲0,code

 

其中B表明四條邊界l,r,t,b。這個稱謂In – Out 機率。blog

除此之外,還定義了邊界機率。即行或列是邊界的機率。對於ground truth box,有get

 

 

(3)通過幾個卷積層和ReLU激活以後,出現兩個分支,分別對應兩個向量。而後通過max pooling獲得row、column對應的向量。

 

(4)通過FC層以後,使用sigmoid函數輸出In –Out機率或者邊界機率或者二者都輸出。

 

損失函數

最重要的是定義損失函數了。使用的是伯努利分佈的模型,即每行或列有兩種可能(是或者不是),取對數後,這也是logistic 迴歸經常使用的損失函數交叉熵,對於In –Out機率有

其中,對於同理。對於邊界機率有

 

這裏有兩個平衡因子,由於做爲邊界的行或列較少,因此增大他們的權重,

 

 

問題引入:對於整個模型,讓人以爲奇怪的最後分支對應的row和column的max pooling的狀況,居然能夠經過這樣蘊含邊界的信息,真的搞不明白爲何。這讓人思考pooling這個操做究竟爲何這麼牛逼,無所不能的樣子。知乎上有人問過這個問題:CNN網絡的pooling層有什麼用圖像分類中的max pooling和average pooling是對特徵的什麼來操做的,結果是什麼?但好像得出結論是,這是一個拍腦殼的結果……而對此係統分析的論文《A Theoretical analysis of feature pooling in Visual Recognition》也說這是一個經驗的操做,並且貌似論文結果也沒得出爲何來……

 

論文《A Theoretical analysis of feature pooling in Visual Recognition》的筆記,當一回搬運工,主要是記錄Pooling Binary Feature部分,後面的已經看不明白了,最終得出結論是:Pooling 能夠把聯合特徵轉變爲一個更重要的表示,同時忽略其餘無關的細節。

 

簡單起見,假設服從伯努利分佈,則均值池化操做爲,最大化池化操做

 

論文中討論的是分佈的可分性,給定兩個類別C一、C2,則計算可分性的兩個條件分佈(最大值池化)爲,均值池化以及。雖然是給定類別下的條件分佈,但事實上也隱含着它屬於某個類別的機率,即後驗。所以能夠用來計算兩個分佈的可分性。

 

使得兩個分佈可分性增大的方法是,使他們的均值指望距離增大,或者使得他們的樣本標準差變小。

 

對於均值池化,由於前面假設服從伯努利分佈,因此的分佈(注意此時不是條件機率分佈,對於條件機率分佈,它們各自下的均值會不一樣)均值爲,可是方差變小了爲

 

對於最大值池化,的均值爲,方差爲。定義爲類條件下的可分性,對於均值的距離爲

 

其中以及。上式是P的函數,把P擴展到實數域,能夠獲得的最值點爲

 

函數先升後降,極限爲0。假設,當P=1時就是均值的指望距離,此時會有許多的P,可使得距離增大。假設,若是,能夠推出,這代表它的一個選擇的特徵表明超過半數的圖像中的patch(這句話個人理解是,由於即類別下選擇/生成特徵的機率,即激活的機率太高),但一般而言這個不會發生在codebook包含超過100個codeword的時候(由於很高)。

 

對於最大值池化的方差,一樣會經歷一個先升後降的過程。

 

據以上,論文總結了幾個點:

 

一、最大池化特別適合在特徵都是很是稀疏的時候來分離(即,有着很是低的機率去激活,這時不多出現的狀況)

二、使用全部可用的樣本去執行池化也許不是最優的

三、最優化池化技術會隨着字典的尺寸增長而增長。

相關文章
相關標籤/搜索