2017-10-04 101 views
0

正在經歷最近發佈的tensorflow/models /../ object_detection模型,特別是更快的r-cnn。四步交替RPN /更快的R-CNN培訓? - Tensorflow對象檢測模型

本文提到的4步交替訓練,在這裏將

  1. 列車的RPN,然後冷凍RPN層,
  2. 列車RCNN,然後冷凍RCNN層,
  3. 列車RPN,然後冷凍RPN層
  4. 列車RCNN。

從我所收集,在階段2 = RCNN,RPN確實與凍結:

if self._is_training: 
    proposal_boxes = tf.stop_gradient(proposal_boxes) 

所以訓練RPN +凍結RPN圖層,然後RCNN培訓覆蓋,但如果是其他3個步驟執行?

我錯過了什麼嗎?

回答

2

我們在TF Object Detection API中實現更快的R-CNN的方法非常接近,但在幾個方面有所不同。這些差異之一是我們對模型進行了端到端的培訓,而不是本文中使用的交替培訓。

您提到的stop_gradient實際上並未凍結RPN ---它所做的是忽略提案座標中漸變的貢獻,但會繼續允許漸變通過RPN要素。

希望這會有所幫助!

+0

謝謝喬納森!與其他代碼庫比較結束。很少實際實現4步交替算法... 我們是否因爲使用近似聯合訓練而阻止了漸變? 基本上是這樣的:「解決方案忽略了也是網絡響應的提議框的導數w.r.」。如果我們要實現非約束,我們必須交換一個RoI變形層... – macguy

+0

我們停止漸變那裏不是因爲我們必須(crop_and_resize是完全可微分的,並且基本上與您的ROIAlign操作相同可能在一些論文中已經看到)---我們阻止它,因爲我們發現它在訓練初期不穩定。 –

+0

我有這麼多的問題!我只能將其中的一部分拼在一起! 在Fast/Faster/X R-CNN的第1階段,我們使用NMS將RPN提議限制爲300。 在Faster R-CNN的第2階段,我們使用這300個提案框,每個圖像採樣256個錨點,最多128個爲+,其餘爲 - 。 是否等同於_unpad_proposals_and_sample_box_classifier_batch? – macguy

0

由於StackOverflow的荒謬規則,我無法添加評論。我必須在這裏寫下它作爲「答案」。但這實際上是在@Jonathan Huang的回答中提出的問題。

我仍然對停止梯度感到困惑。如果我們停止盒子的漸變,RPN盒子的精度如何提高?在這種情況下,似乎只有檢測和RPN目標精度得到改善,但RPN盒的精度永遠無法改善。

儘管RPN丟失由盒損和對象損失組成,但禁用位置梯度可能會導致圖層中的參數從256D張量估計4K座標,例如變得恆定。那麼如何改進RPN箱位置?

任何人都可以提供一些解釋嗎?謝謝

相關問題