Faster RCNN訓練:
四部訓練法:
Faster R-CNN,可以大致分為兩個部分,一個是RPN網絡,另一個是Fast R-CNN網絡,前者是一種候選框(proposal)的推薦算法,而后者則是在此基礎上對框的位置和框內的物體的類別進行細致計算。首先訓練 RPN,用 RPN 輸出的 proposals 訓練 Fast R-CNN。Fast R-CNN 精調后用於初始化 RPN 網絡參數,如此循環迭代。
不管是RPN還是Fast R-CNN網絡,其網絡結構一部分來自於共享的卷積層(下文簡稱 共享cov),另一部分則是他們各自特有的結構。
這里,我主要講的就是訓練過程。
第一步:用 Imagenet 初始化共享cov 部分初始化RPN網絡,然后訓練RPN,在訓練后,共享cov以及RPN的特有部分參數會被更新。
第二步:用Imagenet 初始化共享cov 部分初始化Fast-rcnn網絡,這里是重新初始化。然后使用訓練過的RPN來計算proposal,再將proposal給予Fast-rcnn網絡。接着訓練Fast-rcnn。訓練完以后,共享cov 以及Fast-rcnn的特有部分都會被更新。
說明:第一和第二步,用同樣的COV初始化RPN網絡和Fast-rcnn網絡,然后各自獨立地進行訓練,所以訓練后,各自對cov的更新一定是不一樣的(論文中的different ways),因此就意味着model是不共享的(論文中的dont share convolution layers)。
第三步:使用第二步訓練完成的 共享cov 來初始化RPN網絡,第二次訓練RPN網絡。但是這次要把 共享cov 鎖定,訓練過程中,model始終保持不變,而RPN的unique會被改變。
說明:因為這一次的訓練過程中, 共享cov始終保持和上一步Fast-rcnn中共享cov一致,所以就稱之為着共享。
第四步:仍然保持第三步的 共享cov不變,初始化Fast-rcnn,第二次訓練Fast-rcnn網絡。其實就是對其特有部分進行finetune,訓練完畢,得到一個文中所說的unified network。
anchor如何生成?:https://blog.csdn.net/sinat_33486980/article/details/81099093
參考:https://blog.csdn.net/weixin_40449426/article/details/78141635