1

我的問題是關於更快的R-CNN的實現。使用更快R-CNN的對象檢測

我看報紙和正在經歷的config.py文件由算法的作者寫的是可以在這裏找到:https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/fast_rcnn/config.py

我很不能理解的是,爲什麼我們需要BBOX_INSIDE_WEIGHTS(在提到第84行)和RPN_POSITIVE_WEIGHT(在第124行提到)?

在其他一些實現中,我也看到了錨口罩(線659),錨迴歸權重和錨迴歸口罩它們可在這裏:https://github.com/DeepRNN/object_detection/blob/master/model.py

可有人請給簡易回答這些是什麼參數和爲什麼我們實際上需要它們?

回答

1

更快RCNN你有一個RPN(地區提案網絡),這是該模型的一部分,它與所有的網絡

的RPN的作用是表明在圖像邊界框的培訓在其上對象被認爲是。

對於圖像中的每個位置,RPN試圖適合k個預定義的「錨點」中的每一個,並且爲它們中的每一個提供了4個參數,這些參數定義了相對於錨點的邊界框建議和2個概率分數對象在邊界框內的概率。

如果盒子具有不同的長寬比和比例,那麼錨點是一個預定義的集合。

如果我們看看code在359行和360行的代碼,我們在這裏計算損失,我們可以看到「錨掩碼」用於使用真正的迴歸錨來定義圖像中的區域。這是因爲在Fast-RCNN的損失函數的定義中,我們只計算正錨的迴歸損失。

這同樣適用於「anchor_reg_masks」如可在線路362

術語「anchor_weights」被看作是用於標準化loos0術語。在359行之後,如果我們通過計算損失,我們將得到偏差結果,損失0對於不在掩模中的位置具有零損失。 「anchor_weights」規範了loss0只能從真正的錨點計算出來。

+0

這意味着錨點掩碼,錨點回歸權重和錨點回歸掩碼以及BBOX_INSIDE_WEIGHTS是一樣的東西嗎?正如我理解論文所述,除了概率分數之外,圖像中每個位置都有RPN的4 * k輸出(迴歸部分),其中k是錨的數量。那麼RPN的迴歸部分不應該有4 * k的權重? –