久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > CV面試面經寶典:目標檢測共性問題總結與詳解(1)

CV面試面經寶典:目標檢測共性問題總結與詳解(1)

發布人:計算機視覺工坊 時間:2023-02-21 來源:工程師 發布文章
作者丨愛者之貽@知乎(已授權)

來源丨https://zhuanlan.zhihu.com/p/555123262編輯丨極市平臺

目標檢測兩階段和一階段的核心區別

目標檢測技術從階段上分為兩種,一階段和二階段。二階段的核心思想是首先提出proposal框,通過第一階段的網絡回歸出目標框的大概位置、大小及是前景的概率,第二階段是通過另一個網絡回歸出目標框的位置、大小及類別;而一階段網絡的核心是,對于輸入圖像,通過網絡直接回歸出目標大小、位置和類別。

目標檢測兩階段比一階段的算法精度高的原因

1.正負樣本的不均衡性

當某一類別的樣本數特別多的時候,訓練出來的網絡對該類的檢測精度往往會比較高。而當某一類的訓練樣本數較少的時候,模型對該類目標的檢測精度就會有所下降,這就是所謂樣本的不均衡性導致的檢測精度的差異。

對于一階段的目標檢測來說,它既要做定位又要做分類,最后幾層中1×1的卷積層的loss都混合在一起,沒有明確的分工哪部分專門做分類,哪部分專門做預測框的回歸,這樣的話對于每個參數來說,學習的難度就增加了。

對于二階段的目標檢測來說(Faster RCNN),在RPN網絡結構中進行了前景和背景的分類和檢測,這個過程與一階段的目標檢測直接一上來就進行分類和檢測要簡單的很多,有了前景和背景的區分,就可以選擇性的挑選樣本,是的正負樣本變得更加的均衡,然后重點對一些參數進行分類訓練。訓練的分類難度會比一階段目標檢測直接做混合分類和預測框回歸要來的簡單很多。

2.樣本的不一致性

怎么理解樣本不一致性呢?首先我們都知道在RPN獲得多個anchors的時候,會使用一個NMS。在進行回歸操作的時候,預測框和gt的IoU同回歸后預測框和gt的IOU相比,一般會有較大的變化,但是NMS使用的時候用的是回歸前的置信度,這樣就會導致一些回歸后高IoU的預測框被刪除。這就使得回歸前的置信度并不能完全表征回歸后的IoU大小。這樣子也會導致算法精度的下降。在第一次使用NMS時候這種情況會比較明顯,第二次使用的時候就會好很多,因此一階段只使用一次NMS是會對精度有影響的,而二階段目標檢測中會在RPN之后進行一個更為精細的回歸,在該處也會用到NMS,此時檢測的精度就會好很多。

如何解決目標檢測中密集遮擋問題

遮擋本身也可以分為兩種類型,一種是由于非目標造成的遮擋,一種是由于也是需要檢測的目標造成的遮擋。這兩種遮擋分別被叫做occlusion和crowded。

對于前一種類型遮擋,很難有針對性的辦法去解決,最好的辦法也就是使用更多的數據和更強的feature。可以從訓練數據入手。加掩膜,加擾動,提高算法對遮擋的應對能力。

對于第二種遮擋,提出了兩個針對這個問題的loss,

通過設置損失函數的方式,即Repulsion Loss,使預測框和所負責的真實目標框的距離縮小,而使得其與周圍非負責目標框(包含真實目標框和預測框)的距離加大 。如下式,如果與周圍目標的距離越大,損失值會越小。

圖片

除了常用的smooth L1使回歸目標與GT接近之外,這兩個loss一個的目標是使proposal和要盡量遠離和它overlap的第二大的GT,另一個目標是要上被assign到不同GT的proposal之間盡量遠離。通過這兩個loss,不僅僅使得proposal可以向正確的目標靠近,也可以使其遠離錯誤的目標,從而減少NMS時候的誤檢。

圖片

“狹長形狀”目標檢測有什么合適方法

使用可旋轉bonding box進行標注

手工設計anchors

如何解決動態目標檢測

1.光流法

光流是空間運動物體被觀測面上的像素點運動產生的瞬時速度場,包含了物體表面結構和動態行為的重要信息。光流計算法大致可分為三類:

(1)基于匹配的光流計算方法,包括基于特征和基于區域的兩種。基于特征的方法是不斷地對目標主要特征進行定位和跟蹤,對大目標的運動和亮度變化具有魯棒性,存在的問題是光流通常很稀疏,而且特征提取和精確匹配也十分困難;基于區域的方法先對類似的區域進行定位,然后通過相似區域的位移計算光流,這種方法在視頻編碼中得到了廣泛的應用,但它計算的光流仍不稠密。

(2)基于頻域的方法利用速度可調的濾波組輸出頻率或相位信息,雖然能獲得很高精度的初始光流估計,但往往涉及復雜的計算,而且可靠性評價也十分困難。

(3)基于梯度的方法利用圖像序列的時空微分計算2D速度場(光流)。由于計算簡單和較好的實驗結果,基于梯度的方法得到了廣泛應用。

2.相鄰幀差法

相鄰幀差法是在運動目標檢測中使用的最多的一類算法。原理就是將前后兩幀圖像對應的像素值相減,在環境亮度變化不大的情況下,如果對應像素值相差值很小,可認為此處景物是靜止的,反之,則是運動物體。

相鄰幀差法對于動態環境具有較強的自適應性,魯棒性較好,能夠適應各種動態環境,但一般不能完全提取出所有相關的特征像素點,這樣在運動實體內部容易產生空洞現象。

3.背景差法

背景差法是常用的運動目標檢測方法之一。它的基本思想是將輸入圖像與背景模型進行比較,通過判定灰度等特征的變化,或用直方圖等統計信息的變化來判斷異常情況的發生和分割運動目標。

與幀間差法比較,背景差法可以檢測視頻中停止運動的物體,其缺點是背景的更新導致算法的復雜性增加,實時性變差。

圖片

4. 基于事件相機來做

事件相機是具有微秒反應時間的仿生傳感器,可記錄每像素亮度變化的異步流,稱為“事件”。事件相機通過檢測每個像素的亮度變化來生成一個事件,相比于傳統相機,更適合在高動態和高速度的環境下使用,具有高動態范圍 (HDR)、高時間分辨率和無運動模糊的優勢。

  1. 高動態范圍:對于傳統相機來說,在黑暗的情況下,傳統的相機幾乎沒有辦法使用,但對于事件相機來說,只檢測正在運動的物體,所以無論是黑暗情況還是有光亮的情況,事件相機都可以發揮作用。
  2. 低延時:相鄰事件之間的時間可以小于1毫秒
  3. 無運動模糊:即使是高速運動的物體,事件相機也可以捕獲到
FPN的作用

FPN是在卷積神經網絡中圖像金字塔的應用。圖像金字塔在多尺度識別中有重要的作用,尤其是小目標檢測。頂層特征上采樣后和底層特征融合,每層獨立預測。

fpn設計動機:

1.高層特征向低層特征融合,增加低層特征表達能力,提升性能

2.不同尺度的目標可以分配到不同層預測,達到分而治之。

圖片

FPN每層做特征融合的特征圖有兩個,首先是前向傳播,然后取了每個特征圖做上采樣(最近鄰插值),對應前向傳播的特征圖做融合。融合的方式是:通過1x1卷積調整通道數,然后直接add。之后進行3x3卷積操作,目的是消除上采樣的混疊效應。

其實,fpn真正起作用的是分而治之的策略,特征融合的作用其實很有限,此外fpn存在消耗大量顯存,降低推理速度。

為什么FPN采用融合以后效果要比使用pyramidal feature hierarchy這種方式要好?

圖片

卷積雖然能夠高效地向上提取語義,但是也存在像素錯位問題,通過上采樣還原特征圖很好地緩解了像素不準的問題。

backbone可以分為淺層網絡和深層網絡,淺層網絡負責提取目標邊緣等底層特征,而深層網絡可以構建高級的語義信息,通過使用FPN這種方式,讓深層網絡更高級語義的部分的信息能夠融合到稍淺層的網絡,指導淺層網絡進行識別。

從感受野的角度思考,淺層特征的感受野比較小,深層網絡的感受野比較大,淺層網絡主要負責小目標的檢測,深層的網絡負責大目標的檢測(比如人臉檢測中的SSH就使用到了這個特點)。

FPN在RPN中的應用

rpn在faster rcnn中用于生成proposals,原版rpn生成在每個image的最后一張特征圖上生成3x3個proposal。但實際上,小目標下采樣到最后一個特征圖,已經很小了。fpn可以在之前的多個特征圖上獲得proposal,具體做法是:在每個feature map上獲得1:1、1:2、2:1長寬比的框,尺寸是{32^2、64^2、128^2、256^2、512^2}分別對應{P2、P3、P4、P5、P6}這五個特征層上。P6是專門為了RPN網絡而設計的,用來處理512大小的候選框。它由P5經過下采樣得到。

如何解決小目標識別問題

通用的定義來自 COCO 數據集(https://so.csdn.net/so/search%3Fq%3D%25E6%2595%25B0%25E6%258D%25AE%25E9%259B%2586%26spm%3D1001.2101.3001.7020),定義小于 32x32 pix 的為小目標。

小目標檢測的難點:可利用特征少,現有數據集中小目標占比少,小目標聚集問題

首先小目標本身分辨率低,圖像模糊,攜帶的信息少。由此所導致特征表達能力弱,也就是在提取特征的過程中,能提取到的特征非常少,這不利于我們對小目標的檢測。

另外通常網絡為了減少計算量,都使用到了下采樣,而下采樣過多,會導致小目標的信息在最后的特征圖上只有幾個像素(甚至更少),信息損失較多。

  1. 數據。
    提高圖像采集的分辨率:基于 GAN 的方法解決的也是小目標本身判別性特征少的問題,其想法非常簡單但有效:利用 GAN 生成高分辨率圖片或者高分辨率特征。
  2. Data Augmentation。一些特別有用的小物體檢測增強包括隨機裁剪、隨機旋轉和馬賽克增強。copy pasting, 增加小目標數量。縮放與拼接,增加中小目標數量
  3. 修改模型輸入尺寸。提高模型的輸入分辨率,也就是減少或者不壓縮原圖像。tiling,將圖像切割后形成batch,可以在保持小輸入分辨率的同時提升小目標檢測,但是推理時也需要 tiling,然后把目標還原到原圖,整體做一次 NMS。
  4. 修改 Anchor。適合小目標的 Anchor
  5. Anchor Free。錨框設計難以獲得平衡小目標召回率與計算成本之間的矛盾,而且這種方式導致了小目標的正樣本與大目標的正樣本極度不均衡,使得模型更加關注于大目標的檢測性能,從而忽視了小目標的檢測。
  6. 多尺度學習。FPN, 空洞卷積,通過多尺度可以將下采樣前的特征保留,盡量保留小目標
  7. 減小下采樣率。比如對于 YOLOv5 的 stride 為 32, 可以調整其 stride 來減小下采樣率,從而保留某些比較小的特征。
  8. SPP 模塊。增加感受野,對小目標有效果,SPP size 的設置解決輸入 feature map 的size 可能效果更好。
  9. 損失函數。小目標大權重,此外也可以嘗試 Focal Loss。
介紹目標檢測RCNN系列和Yolo系列的區別

YOLO所屬類別為one-stage,Fast-Rcnn所屬類別為two-stage

two stage:

先進行區域生成,該區域稱為region proposal(RP,一個有可能包含物體的預選框);再通過卷積神經網絡進行樣本分類,精度高,適合做高檢測精度的任務

任務流程:特征提取—生成RP—分類/定位回歸

圖片

one stage:

不用RP,直接在網絡中提取特征來預測物體的分類和位置,速度非常快,適合做實時檢測任務,但是效果不會太好

任務流程:特征提取—分類/定位回歸

圖片

YOLO和SSD區別

YOLO將物體檢測這個問題定義為bounding box和分類置信度的回歸問題。

將整張圖像作為輸入,劃分成SxS grid,每個cell預測B個bounding box(x, y, w, h)及對應的分類置信度(class-specific confidence score)。分類置信度是bounding box是物體的概率及其與真實值IOU相乘的結果。

SSD將物體檢測這個問題的解空間,抽象為一組預先設定好(尺度,長寬比,1,2,3,1/2,1/3)的bounding box。在每個bounding box,預測分類label,以及box offset來更好的框出物體。對一張圖片,結合多個大小不同的feature map的預測結果,能夠處理大小不同的物體。

區別:

YOLO在卷積層后接全連接層,即檢測時只利用了最高層Feature maps。而SSD采用金字塔結構,即利用了conv4-3/fc7/conv6-2/conv7-2/conv8_2/conv9_2這些大小不同的feature maps,在多個feature maps上同時進行softmax分類和位置回歸

SSD還加入了Prior box(先驗框)


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區

關閉