回顧R-CNN系列:
(1),R-CNN:生成候選框 + 對每個框進行分類回歸的結構(生成region proposals + 提特征 + 多svm分類器 + bb回歸);
(2),Fast R-CNN:在feature map上生成候選框,使用RoIpooling以統一全連接配接層的輸入(softmax分類回歸,146倍);
Faster R-CNN,貢獻:提出RPN網絡
(一)RPN
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90zdNlXRE10a0dkY6R2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zN3YDMzYDM2EDOwkDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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:
其中,i 為每個mini-batch中anchor的編号;
pi是第i個anchor為前景的機率;
pi*是真實框為前景的機率(1或0);
ti是第i個anchor的位置表示(一個4維數組);
ti*是真實框的位置表示(一個4維數組);
而,分類損失函數是二值損失函數;回歸損失函數使用smooth L1(計算ti和ti*的4項smooth L1值然後相加)。
t包含四項:
其實是預測框相對于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特有層。