官术网_书友最值得收藏!

第1章 雙階段檢測

1.4.2 Faster R-CNN的訓練

由于RPN使用Fast R-CNN的網絡模型可以更好地提取候選區域,而Fast R-CNN可以使用RPN生成的候選區域進行目標檢測,兩者相輔相成。Faster R-CNN嘗試了多種模型訓練策略,并最終采用了交替訓練(alternating training)。

交替訓練可以分成4個步驟:

(1)使用無監督學習即ImageNet的訓練結果初始化網絡訓練RPN;

(2)使用RPN生成的候選區域訓練Fast R-CNN,Fast R-CNN和RPN使用的是兩個不同的輸出層,也是通過ImageNet任務進行初始化;

(3)使用Fast R-CNN初始化RPN,但是共享的卷積層固定,只調整RPN獨有的網絡層;

(4)固定共享的卷積層,訓練Fast R-CNN。

前面指出,RPN的輸出是候選區域的坐標以及它們的置信度得分,所以通過RPN生成候選區域的步驟如下:

(1)所有在圖像內部的錨點均輸入訓練好的網絡模型,得到樣本得分和預測坐標;

(2)使用NMS根據得分過濾錨點,NMS的IoU閾值固定為0.7,之后生成的便是候選區域。

從Faster R-CNN的開源代碼中可以看出,它使用的是近似聯合訓練(approximate joint training),即將RPN和Fast R-CNN的損失函數簡單地加在一起,作為一個多任務的損失函數進行學習。Faster R-CNN論文中也指出,這種方法忽略了“Fast R-CNN將RPN的輸出作為其輸入”這一事實。實際上,Faster R-CNN的RPN和Fast R-CNN并不是并行的多任務的關系,而是串行級聯的關系。圖1.17說明了并行多任務和串行級聯的區別。在實際應用中,并行訓練和串行訓練的差距其實不是很明顯,但是并行訓練的方式需要的人為干預更少且效率更高,因此后面得到了更廣泛的使用。

圖1.17 并行多任務和串行級聯的區別

Faster R-CNN的檢測流程在使用RPN生成候選區域后,剩下的便和Fast R-CNN一樣了。這里不贅述。

主站蜘蛛池模板: 周宁县| 稻城县| 孝感市| 镇赉县| 大竹县| 白沙| 沈阳市| 泌阳县| 彭州市| 石泉县| 紫阳县| 德兴市| 丹凤县| 潮安县| 夏邑县| 芦溪县| 东乡族自治县| 大丰市| 龙川县| 大方县| 青岛市| 文安县| 大连市| 宁强县| 隆昌县| 泸水县| 疏勒县| 札达县| 崇明县| 岳阳县| 赣榆县| 珲春市| 沙洋县| 庆云县| 柏乡县| 美姑县| 清远市| 黄浦区| 观塘区| 景德镇市| 黎川县|