天天看點

Faster R-CNN學習筆記

回顧R-CNN系列:

    (1),R-CNN:生成候選框 + 對每個框進行分類回歸的結構(生成region proposals + 提特征 + 多svm分類器 + bb回歸);

    (2),Fast R-CNN:在feature map上生成候選框,使用RoIpooling以統一全連接配接層的輸入(softmax分類回歸,146倍);

Faster R-CNN,貢獻:提出RPN網絡

(一)RPN

Faster R-CNN學習筆記

      1):輸入,特征圖。

      2):輸出,一系列proposals及其分數。

      3):步驟,先進行一個卷積核為3*3的卷積,生成次元為256的特征圖;

                 再分别進行兩個1*1的卷積,生成次元為2*k(預測前景和背景)和4*k(預測BB的4個坐标)的特征圖;

      4):損失函數

                 (1)為每個anchor設定标簽:positive(和某一個真實框IoU最高;或和任意真實框IoU大于0.7)

                                                                  negative(和所有真實框IoU小于0.3);

                 (2)其他的anchors不參與訓練;

                 (3) loss function:

Faster R-CNN學習筆記

                          其中,i 為每個mini-batch中anchor的編号;

                                     pi是第i個anchor為前景的機率;

                                     pi*是真實框為前景的機率(1或0);

                                     ti是第i個anchor的位置表示(一個4維數組);

                                     ti*是真實框的位置表示(一個4維數組);

                          而,分類損失函數是二值損失函數;回歸損失函數使用smooth L1(計算ti和ti*的4項smooth L1值然後相加)。

                          t包含四項:

Faster R-CNN學習筆記

                           其實是預測框相對于anchor的偏移量,x, y為中心坐标,w, h為寬和高;ti*同理。

      5):RPN的訓練(FRCN論文中的方案)

                1):每個mini-batch有256個anchor,且取于同一張圖檔;

                2):positive和negative為1:1,若positive不夠,用negative填充;

                3):用SGD訓練,

                         所有的new layers權重初始化為高斯分布(均值為0,标準差為0.01),

                         所有的other layers(如共享卷積層)通過ImageNet classification 預訓練得到;                                            

                4):用PASCAL VOC資料集fine-tuning(ZF net所有層,VGG16中conv3_1以上層),

                         前60k個mini-batch學習率為0.001,後20k個mini-batch學習率為0.0001,

                         momentum選0.9,學習衰減率選0.0005。

(二)RPN和Fast R-CNN檢測網絡的訓練政策

      論文中提出了三種方法:

                1):交替訓練,先訓練RPN,再用該RPN生成的proposals訓練Fast R-CNN,然後用被Fast R-CNN微調過的權重初          始化RPN,然後訓練RPN,交替循環;

                2):近似聯合訓練,把RPN loss和Fast R-CNN loss結合在一起同時訓練;

                3):非近似聯合訓練,對近似聯合訓練改進,論文中未讨論。

      論文中最後選用的是一種4階段法:

                1):按(一)中方法單獨訓練RPN;

                2):利用上一步産生的proposals單獨訓練Fast R-CNN;

                3):用檢測網絡初始化RPN的訓練,固定卷積層,然後fine-tune RPN特有層;

                4):經上,卷積層已共享。現在,固定卷積層,然後fine-tune Fast R-CNN特有層。

繼續閱讀