R-CNN與SPPnet的缺點(diǎn)
1. 訓(xùn)練是多階段的: CNN -> SVM -> BB畸写;
2. 訓(xùn)練速度慢,用來存儲特征的存儲空間比較大;
3. 測試速度慢魂莫。
Fast R-CNN
ROI pooling[5] 只是SPP的單層次特例(1-level唆铐,7 * 7 bins)哲戚;
檢測過程
1. 輸入圖片(將原始圖片的最短邊保持長寬比放大到600)和候選區(qū)域集(2000個);
2. 對于每個RoI艾岂,一次前傳產(chǎn)生各類概率以及各類的修正邊框顺少;
3. 對于每一類,根據(jù)ROI概率得分進(jìn)行NMS王浴;
訓(xùn)練
fine-tuning
Fast R-CNN的訓(xùn)練是高效的脆炎。SPPnet[2]和R-CNN[3]的預(yù)訓(xùn)練中每個batch的樣本都可能來自不同的圖片(隨機(jī)挑選128個RP),重復(fù)計算多(論文里的解釋沒看懂)氓辣。所以Fast R-CNN采用的是層次化訓(xùn)練:首先隨機(jī)挑選N張圖片腕窥,然后在每張圖片里隨機(jī)挑選出R / N個RP(文中N = 2, R = 128)筛婉。這樣就能共享計算簇爆,加快訓(xùn)練速度(64x)癞松。
Multi-task loss
(1)式也說明了只對預(yù)測為GT類的邊框回歸枫甲。不同類的參數(shù)不共享。
使用Smooth L1代替RCNN和SPPnet的L2是因?yàn)樗鄬τ陔x群點(diǎn)更不敏感扼褪。如果采用L2想幻, 則需要小心調(diào)節(jié)學(xué)習(xí)率以防止梯度爆照。
實(shí)驗(yàn)
使用SVD只下降0.3%话浇,速度提升超過30%脏毯。
fc6使用top 1024的奇異值,fc7使用top 256的奇異值幔崖。
文中闡述:在小型網(wǎng)絡(luò)中如(AlexNet食店, VGG CNN M 1024)的conv1是通用的與任務(wù)無關(guān)的,從conv1開始fine-tuning并沒有提升mAP赏寇。對于VGG16這樣的大網(wǎng)絡(luò)吉嫩,只需從conv3_1開始FT,因?yàn)椋?/p>
1)從conv2_1開始FT的訓(xùn)練時間是conv3_1開始FT的1,3x(12.5 vs 9.5)嗅定,但mAP只提升了0.3%自娩;
2)從conv1_1開始FT會超出GPU顯存。
多任務(wù)學(xué)習(xí)確實(shí)有效的提高了模型性能
單尺度測試時性價比最高的
Fast R-CNN中Softmax優(yōu)于SVM
參考文獻(xiàn)
1.?Fast R-CNN
2.?SPPNet
3.?R-CNN
4.?Softmax回歸
5.?ROI Pooling