0

如果我想實現k = k0 + log2(√(w * h)/ 224)特徵金字塔網絡對象檢測,哪裏和哪些文件應該改變?特徵金字塔網絡與tensorflow/models/object_detection

請注意,此公式適用於ROI池。 W和H是ROI的寬度和高度,而k代表應該使用ROI的特徵金字塔的級別。

*說object_detection中的FasterRCNN meta_architecture文件可能會有所幫助,但請告知我可以更改哪種方法。

回答

1

查看this document以瞭解過程的大致概述。簡而言之,您必須爲您所需的元架構創建一個「FeatureExtractor」子類。對於FasterRCNN,您可以從我們的Resnet101 Feature Extractor的副本開始。

+0

謝謝你回答我的問題。那麼在fast_rcnn_meta_arch.py​​中可以進行什麼修改?因爲我看到很多控制第一階段和第二階段的方法。與此同時,我已經更改了Resnet101 Feature Extractor(返回變量已從單層resnet更改爲包含整個金字塔的字典)。我真的想知道我可以在哪裏實踐這個公式。 –

1

簡短的回答是,這種變化並不是微不足道的,因爲我們目前不支持多層裁剪區域。這裏是一個什麼需要改變,如果你想反正追求這個大綱:

  • 生成新的定位設置 目前更快RCNN使用「GridAnchorGenerator」作爲first_stage_anchor_generator - 而不是你將不得不使用MultipleGridAnchorGenerator(與我們在SSD管道中使用的相同)。
  • 您將不得不使用一個32^2錨點框 - >爲錨點生成器的縮放字段,基本上你必須添加一個.125
  • 你將不得不修改代碼以生成和裁剪多個圖層:要開始,請在faster_rcnn_meta_arch文件中查找名爲「_extract_rpn_feature_maps」的函數,該函數具有提示性命名,但目前只返回單張量!您還需要添加一些邏輯,以根據提案的大小確定要裁剪哪個圖層(文章中的公式1)
  • 您必須在Derek鏈接到的directions之後最終創建一個新的特徵提取器。
+0

非常感謝您的支持!我即將完成FPN。只有一些小問題(關於批次和維度)留給解決。 –

+0

嘿喬納森,你能否詳細說明.125和MultipleGridAnchorGenerator? (1.0,0.0),(1.0,0.0),(1.0,2.0)],#P3 box_specs_list = [[(2.0,0.5),(2.0,1.0),(2.0,2.0)],#P2 [ [(0.5,0.5),(0.5,1.0),(0.5,2.0)],#P4 [(0.25,0.5),(0.25,1.0),(0.25,2.0)],#P5 [(0.125, 0.5),(0.125,1.0),(0.125,2.0)]],#P6 會是這樣的意義嗎?一些實現使用8的比例... – macguy