天天看點

目标檢測:RPN — Faster R-CNN 的主幹

動動發财的小手,點個贊吧!

在使用 R-CNN 的目标檢測中,RPN 是真正的主幹,并且到目前為止已被證明非常有效。它的目的是提出在特定圖像中可識别的多個對象。

這種方法是由 Shaoqing Ren、Kaiming He、Ross Girshick 和 Jian Sun 在一篇非常受歡迎的論文“Faster R-CNN:Towards Real Time Object Detection with Region Proposal Networks”中提出的。這是一個非常流行的算法,引起了很多資料科學家、深度學習和人工智能工程師的關注。它具有巨大的應用,例如檢測自動駕駛汽車中的物體,協助不同能力的人并幫助他們等。

1. 什麼是CNN ?

CNN 翻譯成卷積神經網絡,這是一種非常流行的圖像分類算法,通常由卷積層、激活函數層、池化(主要是 max_pooling)層組成,以在不丢失大量特征的情況下降低次元。對于這篇文章[1],你應該知道有一個特征圖是由最後一層卷積層生成的。

例如,如果您輸入貓圖像或狗圖像,算法可以告訴您它是狗還是貓。

但它并不止于此,強大的計算能力帶來了巨大的進步。

許多預訓練模型被開發為直接使用它們,而無需經曆由于計算限制而訓練模型的痛苦。許多模型也很受歡迎,例如 VGG-16、ResNet 50、DeepNet、ImageNet 的 AlexNet。

對于這篇特别的文章,我特别想談談我認為從上述論文中得出的非常聰明的算法或想法。許多人實施 Faster R-CNN 來識别對象,但該算法專門研究了算法如何在已識别對象周圍擷取框背後的邏輯和數學。

該算法的開發者将其稱為 Region Proposal Networks,縮寫為 RPN。

為了為對象所在的區域生成這些所謂的“建議”,一個小型網絡在卷積特征圖上滑動,該特征圖是最後一個卷積層的輸出。

目标檢測:RPN — Faster R-CNN 的主幹

以上是 Faster R-CNN 的架構。 RPN 為對象生成建議。 RPN 本身具有專門且獨特的架構。我想進一步分解RPN架構。

目标檢測:RPN — Faster R-CNN 的主幹

RPN 有一個分類器和一個回歸器。作者引入了錨點的概念。 Anchor 是滑動視窗的中心點。對于作為 AlexNet 擴充的 ZF 模型,尺寸為 256-d,對于 VGG-16,尺寸為 512-d。分類器确定具有目标對象的提議的機率。回歸對提案的坐标進行回歸。對于任何圖像,比例和縱橫比都是兩個重要參數。不知道的朋友,縱橫比=圖檔的寬度/圖檔的高度,scale就是圖檔的大小。開發人員選擇了 3 種比例和 3 種縱橫比。是以,每個像素總共可能有 9 個建議,這就是 k 值的決定方式,對于這種情況,K=9,k 是錨點的數量。對于整個圖像,anchors 的數量是 WHK。

該算法對平移具有魯棒性,是以該算法的關鍵屬性之一是平移不變性。

算法中多尺度錨點的存在導緻“錨點金字塔”而不是“過濾器金字塔”,這使得它比以前提出的算法(如 Multi-Box)更省時且更具成本效益。

2. 它是如何工作的 ?

這些錨點根據兩個因素配置設定标簽:

  1. Intersection-over-union 最高的錨點與地面實況框重疊。
  2. Intersection-Over-Union Overlap 高于 0.7 的錨點。

歸根結底,RPN 是一種需要訓練的算法。是以我們肯定有我們的損失函數。

目标檢測:RPN — Faster R-CNN 的主幹

i → anchor 的索引,p → 是否是物體的機率,t → 預測邊界框的4個參數化坐标的向量,*表示ground truth box。 cls 的 L 表示兩個類的對數損失。

目标檢測:RPN — Faster R-CNN 的主幹

損失函數中帶有回歸項的p確定當且僅當對象被識别為是時,則隻有回歸才算數,否則p将為零,是以損失函數中的回歸項将變為零。

Ncls 和 Nreg 是歸一化。預設情況下,λ 預設為 10,用于在同一級别上縮放分類器和回歸器。

如果您想更詳細地了解,這裡是論文的連結:https://arxiv.org/pdf/1506.01497.pdf。

Reference

[1]Source: https://medium.com/egen/region-proposal-network-rpn-backbone-of-faster-r-cnn-4a744a38d7f9

繼續閱讀