深度學習中目標檢測Object Detection的基礎概念及常用方法


What is detection?

  • detection的任務就是classification+localization

cs231n 課程截圖

從左到右:語義分割semantic segmentation,圖片分類classification,目標檢測detection,實例分割instance segmentation

關鍵術語

  • ROI Region Of Interest 感興趣區域,通常可以理解成圖片中可能是物體的區域。 輸入圖片可以預先做一些標記找到候選框 proposal

  • bounding box 在localization任務里的概念, 即給出物體在圖片中的定位區域

    • 一般表示為 (top, left, bottom, right) or (left, top, right, bottom). (left, top)為bbox左上角的坐標,(right, bottom)為右下角的坐標
  • IoU Intersection of Union 定義兩個bbox的重疊程度 = (A交B) / (A並B) ,用於評價算法結果和人工標注(ground-truth)的差別

img

方法

two stage

將問題分兩個階段解決:首先從原圖選出一系列候選框(object proposal)作為圖中各個物體可能的bbox;然后將這些候選框輸入到網絡中,得出框的分類結果(多分類,是哪一類物體or背景?)和框的回歸結果(坐標定位的准確值)

R-CNN

在第一階段使用selective search這類region proposal method來得出一系列proposal;階段二將每個region proposal分別輸入到CNN網絡中,提取出特征向量,然后交給SVM分類器。

  • 因為是將proposal分別輸入到網絡,也就是針對各個region進行分類和回歸,因此稱為Region-based CNN

  • 局限在於涉及很多重復計算(選出來的region很可能一大部分都是互相重疊的);而且selective research的效率不高

Fast R-CNN

在階段二,針對R-CNN將每個proposal分別輸入到網絡帶來的許多重復計算做出改進,提出直接將整張圖輸入到網絡,只是在分類之前添加ROI pooling層,將階段一提取出來的proposal(也就是ROI)映射到特征圖中【注意階段一提出來的proposal坐標是在原圖坐標系下,因此還包括一個從原圖尺度到當前特征圖尺度的轉換,一般是乘上縮放倍數】。

另一方面,Fast R-CNN也簡化了整體的訓練過程,不同於R-CNN將提取特征的網絡、SVM分類、bbox回歸看做三個獨立的訓練階段,Fast R-CNN通過在網絡中添加分類損失softmax loss和回歸損失regression loss,結合兩個損失(一般是加權求和),得到multi-task的loss,用其訓練網絡,使訓練過程簡化為只有一個階段。

Faster R-CNN

Fast R-CNN提高了效率,但在階段一仍然使用的是selective search之類的方法,階段一和階段二之間是分離的,這意味着訓練的時候並不能做到端到端(end to end)的訓練,換句話說,如果階段一出現了錯誤導致階段二表現不好,這個不好的結果無法在訓練的時候回傳到階段一去使其做出調整。

因此Faster R-CNN提出了RPN(Region Proposal Network),將階段一提取proposal的任務也用一個網絡來解決,並且讓階段一和階段二的網絡共享一部分權值,從而節省了許多算力。

Faster R-CNN architecture

Faster R-CNN = RPN + Fast R-CNN

圖中可以看出RPN 與 Fast R-CNN 兩個網絡共享了用來提取特征的卷積層,而得出特征圖之后,RPN繼續生成proposal,將RPN的輸出與之前提取的特征圖通過ROI pooling之后,作為Fast R-CNN后續部分的輸入,得到分類結果與回歸結果

RPN

RPN做的事情只是先粗略地提取出一堆候選框,通過網絡進行分類(二分類,是物體or背景?)以及回歸,得到較為准確的候選框,然后送入Fast RCNN進行更細致的分類與回歸

提出概念anchor:

  • anchor是在原圖上的

  • anchor以特征圖上每個像素為中心,假設RPN的最后一層特征圖尺寸為 f * f,原圖的尺寸為 n * n,則anchor其實就是在原圖 n * n上均勻地采 f * f個候選框,該候選框的面積和長寬比例是預定義的(anchor的參數)

  • anchor可以理解為 從特征圖上的一點 s ,對應回原圖的區域 S,注意這里的對應區域並不等於感受野。

  • 同一個中心點,可以有多種形狀\面積的anchor,代表着不同形狀/面積的區域。

  • 判斷anchor是否屬於物體,其實就是看在原圖的區域里是否包含有物體,如果只有一部分的物體,則可能說明anchor取的面積比較小

  • 換句話說,anchor其實就是對ground-truth bbox的一個encode。一張原圖上分布有多個anchor,如果某一區域有ground-truth的bbox,它的類別標簽是c,則與這個區域交疊的anchor,其分類目標應該為類別c,其回歸目標應該為與ground-truth bbox的offset。

one stage

直接在整張圖片上采樣一系列的候選框

  • 二者的區別,兩階段的方法中,對於稀疏的候選框集進行分類;單階段則是將分類器應用到對原圖進行常規地、稠密地采樣得到的候選框集。

    • 什么叫單階段是常規地采樣?因為兩階段的方法中,有一些可能會使用learning的方法進行采樣,而單階段則可能直接根據預先定義好的anchor數量尺寸等參數 在原圖均勻地采樣

共同存在問題

多尺度

不同物體有不同種尺寸,有的網絡可能比較傾向於檢測出大尺寸的物體(在圖像中占面積比較大),而難以應對小物體

image pyramid

將同一張輸入圖像resize為多種尺寸,然后分別輸入到網絡中,將檢測結果綜合起來

feature pyramid

只用一張輸入圖像,但使用網絡中來自不同層的特征圖(不同層則意味着特征圖尺寸不同),分別進行分類和回歸,將結果綜合起來

平移不變性

樣本不均衡


各個步驟可能出現的問題

輸入:

  • 輸入圖片可能是多尺度的

    • 輸入的圖片可能是同一張圖的不同縮放版本,有的早期網絡只能接受固定尺寸的輸入,因而需要對圖片進行剪裁、拉伸、壓縮等操作來滿足尺寸要求
  • 由於一張圖片中可能有多個物體,因此大多數方法都可以理解成,將一張圖片切分成多張子圖,分別輸入到網絡中

網絡:

  • 正負樣本不均衡 class imbalance between positve and negtive

    • 訓練時,正樣本(物體)遠少於負樣本(背景)的個數,這在one-stage的方法中非常常見,因為one stage是進行稠密地采樣得到候選框

    • 解決方法:

      • hard negative mining,計算分類損失的時候,只用正樣本和一部分的負樣本來算loss,這些被選取的負樣本 分類到背景的置信度較低(也就是分類正確的置信度較低),稱為“難負樣本”

      • focal loss,認為應該讓所有樣本都參與到分類損失的計算中,根據分到正確類別的置信度來調整權重,也就是說,那些 易分的樣本(分到正確類別的置信度較高)權重則相應調低,難分的樣本(分到正確類別的置信度較低) 權重則相應調高。

      • ...

  • ROI pooling,兩個作用:

    • 將ROI從原圖映射到feature map上,從而只需將一整張原圖輸入到網絡,而不是將原圖中不同的ROI分別輸入網絡;

    • 將不同的ROI都pooling成固定的尺寸,也就是使得不同大小的ROI通過池化輸出固定尺寸的特征向量,便於后續的分類與回歸

  • anchor

    • 某類方法會使用,預先定義好候選框的尺寸和比例,訓練時需要encode ground-truth bbox為anchor的形式,regression分支的target是offset between anchor and ground-truth bbox,對於輸出需要decode anchor為最終預測的bbox位置(其實就是加上offset)

輸出:

  • NMS 非極大值抑制

    • 可能一個物體的實際bbox,周圍有好幾個候選框都被檢測出來,也就是對應着好幾個檢測結果,這時需要根據 confidence (理解為分類得分) 抑制那些非最大值,只保留confidence高的檢測結果
  • 評判標准

    • TP,FP計算precision 和 recall

    • mAP, mean average precision,VOC的11-point方法,取不同的threshold,計算precision和recall,畫出P-R curve


參考資料

2D 總結 https://zhuanlan.zhihu.com/p/34142321

https://zhuanlan.zhihu.com/p/34179420 模型的評測與訓練技巧

https://blog.csdn.net/JNingWei/article/details/80039079 他人總結的 框架圖的形式解釋各個類別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM