2017-10-04 14 views
0

最近リリースされたテンソルフロー/モデル/../ object_detectionモデル、特に高速のr-cnnを調べました。4ステップのRPN/Faster R-CNNトレーニングを交互に行う? - Tensorflowオブジェクト検出モデル

紙はあなたが

  1. 電車RPNだろう4段階の交互訓練を、言及し、その後、電車RCNN
  2. 、RPN層を凍結し、次いで凍結RCNN層、
  3. 列車のRPNを、凍結RPN層
  4. 列車RCNN。私が集めたものから

、2 = RCNN、RPNが実際に凍結されている段階で:

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

のでRCNNの訓練に続いて、RPN +はRPNのレイヤーを凍結訓練はカバーされますが、どこ他はさ3ステップが実行されましたか?

何か不足していますか?

答えて

2

TFオブジェクト検出APIでのFaster R-CNNの実装は、このペーパーの後に非常に詳細に記載されていますが、いくつかの点で異なります。その違いの1つは、論文で使用されている交互のトレーニングの代わりに、モデルをエンドツーエンドでトレーニングすることです。

あなたが言及したstop_gradientは、実際にはRPNをフリーズしません。つまり、プロポーザル座標によるグラディエントの寄与は無視されますが、グラディエントがRPN機能を通過できるようにし続けます。

希望すると便利です。

+0

ありがとうジョナサン!他のコードベースと比較して終了しました。実際には4ステップの交互アルゴリズムを実装するものはほとんどありません... 近似的なジョイントトレーニングを使用しているため、グラジエントの通過を停止しますか? 基本的に、これは:「ソリューションは、ネットワーク応答でもあるプロポーザルボックスの座標の導関数を無視します。私たちがnon-approxを実装するならば、RoI Warping Layerとスワップする必要があります。 – 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のばかげたルールのため、私はコメントを追加できません。私はここでそれを「答え」と書く必要があります。しかし、これは実際にジョナサン・フアンの回答の質問に従っています。

私はまだ停止勾配について混乱しています。ボックスのグラデーションを止めれば、RPNボックスの精度はどう改善できますか?この場合、検出とRPNオブジェクト精度が改善されたように見えますが、RPNボックス精度は決して向上できません。

RPNの損失はボックスの損失とオブジェクトの損失で構成されますが、場所のグラデーションを無効にすると、たとえば256Kテンソルからの4K座標を推定するレイヤのパラメータが一定になる可能性があります。次にRPNボックスの位置をどのように改善するか?

誰かが説明を教えてください。ありがとうございます

関連する問題