博客專欄

EEPW首頁(yè) > 博客 > CV面試面經(jīng)寶典:目標(biāo)檢測(cè)共性問(wèn)題總結(jié)與詳解(1)

CV面試面經(jīng)寶典:目標(biāo)檢測(cè)共性問(wèn)題總結(jié)與詳解(1)

發(fā)布人:計(jì)算機(jī)視覺(jué)工坊 時(shí)間:2023-02-21 來(lái)源:工程師 發(fā)布文章
作者丨愛(ài)者之貽@知乎(已授權(quán))

來(lái)源丨h(huán)ttps://zhuanlan.zhihu.com/p/555123262編輯丨極市平臺(tái)

目標(biāo)檢測(cè)兩階段和一階段的核心區(qū)別

目標(biāo)檢測(cè)技術(shù)從階段上分為兩種,一階段和二階段。二階段的核心思想是首先提出proposal框,通過(guò)第一階段的網(wǎng)絡(luò)回歸出目標(biāo)框的大概位置、大小及是前景的概率,第二階段是通過(guò)另一個(gè)網(wǎng)絡(luò)回歸出目標(biāo)框的位置、大小及類(lèi)別;而一階段網(wǎng)絡(luò)的核心是,對(duì)于輸入圖像,通過(guò)網(wǎng)絡(luò)直接回歸出目標(biāo)大小、位置和類(lèi)別。

目標(biāo)檢測(cè)兩階段比一階段的算法精度高的原因

1.正負(fù)樣本的不均衡性

當(dāng)某一類(lèi)別的樣本數(shù)特別多的時(shí)候,訓(xùn)練出來(lái)的網(wǎng)絡(luò)對(duì)該類(lèi)的檢測(cè)精度往往會(huì)比較高。而當(dāng)某一類(lèi)的訓(xùn)練樣本數(shù)較少的時(shí)候,模型對(duì)該類(lèi)目標(biāo)的檢測(cè)精度就會(huì)有所下降,這就是所謂樣本的不均衡性導(dǎo)致的檢測(cè)精度的差異。

對(duì)于一階段的目標(biāo)檢測(cè)來(lái)說(shuō),它既要做定位又要做分類(lèi),最后幾層中1×1的卷積層的loss都混合在一起,沒(méi)有明確的分工哪部分專門(mén)做分類(lèi),哪部分專門(mén)做預(yù)測(cè)框的回歸,這樣的話對(duì)于每個(gè)參數(shù)來(lái)說(shuō),學(xué)習(xí)的難度就增加了。

對(duì)于二階段的目標(biāo)檢測(cè)來(lái)說(shuō)(Faster RCNN),在RPN網(wǎng)絡(luò)結(jié)構(gòu)中進(jìn)行了前景和背景的分類(lèi)和檢測(cè),這個(gè)過(guò)程與一階段的目標(biāo)檢測(cè)直接一上來(lái)就進(jìn)行分類(lèi)和檢測(cè)要簡(jiǎn)單的很多,有了前景和背景的區(qū)分,就可以選擇性的挑選樣本,是的正負(fù)樣本變得更加的均衡,然后重點(diǎn)對(duì)一些參數(shù)進(jìn)行分類(lèi)訓(xùn)練。訓(xùn)練的分類(lèi)難度會(huì)比一階段目標(biāo)檢測(cè)直接做混合分類(lèi)和預(yù)測(cè)框回歸要來(lái)的簡(jiǎn)單很多。

2.樣本的不一致性

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

如何解決目標(biāo)檢測(cè)中密集遮擋問(wèn)題

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

對(duì)于前一種類(lèi)型遮擋,很難有針對(duì)性的辦法去解決,最好的辦法也就是使用更多的數(shù)據(jù)和更強(qiáng)的feature??梢詮挠?xùn)練數(shù)據(jù)入手。加掩膜,加擾動(dòng),提高算法對(duì)遮擋的應(yīng)對(duì)能力。

對(duì)于第二種遮擋,提出了兩個(gè)針對(duì)這個(gè)問(wèn)題的loss,

通過(guò)設(shè)置損失函數(shù)的方式,即Repulsion Loss,使預(yù)測(cè)框和所負(fù)責(zé)的真實(shí)目標(biāo)框的距離縮小,而使得其與周?chē)秦?fù)責(zé)目標(biāo)框(包含真實(shí)目標(biāo)框和預(yù)測(cè)框)的距離加大 。如下式,如果與周?chē)繕?biāo)的距離越大,損失值會(huì)越小。

圖片

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

圖片

“狹長(zhǎng)形狀”目標(biāo)檢測(cè)有什么合適方法

使用可旋轉(zhuǎn)bonding box進(jìn)行標(biāo)注

手工設(shè)計(jì)anchors

如何解決動(dòng)態(tài)目標(biāo)檢測(cè)

1.光流法

光流是空間運(yùn)動(dòng)物體被觀測(cè)面上的像素點(diǎn)運(yùn)動(dòng)產(chǎn)生的瞬時(shí)速度場(chǎng),包含了物體表面結(jié)構(gòu)和動(dòng)態(tài)行為的重要信息。光流計(jì)算法大致可分為三類(lèi):

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

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

(3)基于梯度的方法利用圖像序列的時(shí)空微分計(jì)算2D速度場(chǎng)(光流)。由于計(jì)算簡(jiǎn)單和較好的實(shí)驗(yàn)結(jié)果,基于梯度的方法得到了廣泛應(yīng)用。

2.相鄰幀差法

相鄰幀差法是在運(yùn)動(dòng)目標(biāo)檢測(cè)中使用的最多的一類(lèi)算法。原理就是將前后兩幀圖像對(duì)應(yīng)的像素值相減,在環(huán)境亮度變化不大的情況下,如果對(duì)應(yīng)像素值相差值很小,可認(rèn)為此處景物是靜止的,反之,則是運(yùn)動(dòng)物體。

相鄰幀差法對(duì)于動(dòng)態(tài)環(huán)境具有較強(qiáng)的自適應(yīng)性,魯棒性較好,能夠適應(yīng)各種動(dòng)態(tài)環(huán)境,但一般不能完全提取出所有相關(guān)的特征像素點(diǎn),這樣在運(yùn)動(dòng)實(shí)體內(nèi)部容易產(chǎn)生空洞現(xiàn)象。

3.背景差法

背景差法是常用的運(yùn)動(dòng)目標(biāo)檢測(cè)方法之一。它的基本思想是將輸入圖像與背景模型進(jìn)行比較,通過(guò)判定灰度等特征的變化,或用直方圖等統(tǒng)計(jì)信息的變化來(lái)判斷異常情況的發(fā)生和分割運(yùn)動(dòng)目標(biāo)。

與幀間差法比較,背景差法可以檢測(cè)視頻中停止運(yùn)動(dòng)的物體,其缺點(diǎn)是背景的更新導(dǎo)致算法的復(fù)雜性增加,實(shí)時(shí)性變差。

圖片

4. 基于事件相機(jī)來(lái)做

事件相機(jī)是具有微秒反應(yīng)時(shí)間的仿生傳感器,可記錄每像素亮度變化的異步流,稱為“事件”。事件相機(jī)通過(guò)檢測(cè)每個(gè)像素的亮度變化來(lái)生成一個(gè)事件,相比于傳統(tǒng)相機(jī),更適合在高動(dòng)態(tài)和高速度的環(huán)境下使用,具有高動(dòng)態(tài)范圍 (HDR)、高時(shí)間分辨率和無(wú)運(yùn)動(dòng)模糊的優(yōu)勢(shì)。

  1. 高動(dòng)態(tài)范圍:對(duì)于傳統(tǒng)相機(jī)來(lái)說(shuō),在黑暗的情況下,傳統(tǒng)的相機(jī)幾乎沒(méi)有辦法使用,但對(duì)于事件相機(jī)來(lái)說(shuō),只檢測(cè)正在運(yùn)動(dòng)的物體,所以無(wú)論是黑暗情況還是有光亮的情況,事件相機(jī)都可以發(fā)揮作用。
  2. 低延時(shí):相鄰事件之間的時(shí)間可以小于1毫秒
  3. 無(wú)運(yùn)動(dòng)模糊:即使是高速運(yùn)動(dòng)的物體,事件相機(jī)也可以捕獲到
FPN的作用

FPN是在卷積神經(jīng)網(wǎng)絡(luò)中圖像金字塔的應(yīng)用。圖像金字塔在多尺度識(shí)別中有重要的作用,尤其是小目標(biāo)檢測(cè)。頂層特征上采樣后和底層特征融合,每層獨(dú)立預(yù)測(cè)。

fpn設(shè)計(jì)動(dòng)機(jī):

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

2.不同尺度的目標(biāo)可以分配到不同層預(yù)測(cè),達(dá)到分而治之。

圖片

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

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

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

圖片

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

backbone可以分為淺層網(wǎng)絡(luò)和深層網(wǎng)絡(luò),淺層網(wǎng)絡(luò)負(fù)責(zé)提取目標(biāo)邊緣等底層特征,而深層網(wǎng)絡(luò)可以構(gòu)建高級(jí)的語(yǔ)義信息,通過(guò)使用FPN這種方式,讓深層網(wǎng)絡(luò)更高級(jí)語(yǔ)義的部分的信息能夠融合到稍淺層的網(wǎng)絡(luò),指導(dǎo)淺層網(wǎng)絡(luò)進(jìn)行識(shí)別。

從感受野的角度思考,淺層特征的感受野比較小,深層網(wǎng)絡(luò)的感受野比較大,淺層網(wǎng)絡(luò)主要負(fù)責(zé)小目標(biāo)的檢測(cè),深層的網(wǎng)絡(luò)負(fù)責(zé)大目標(biāo)的檢測(cè)(比如人臉檢測(cè)中的SSH就使用到了這個(gè)特點(diǎn))。

FPN在RPN中的應(yīng)用

rpn在faster rcnn中用于生成proposals,原版rpn生成在每個(gè)image的最后一張?zhí)卣鲌D上生成3x3個(gè)proposal。但實(shí)際上,小目標(biāo)下采樣到最后一個(gè)特征圖,已經(jīng)很小了。fpn可以在之前的多個(gè)特征圖上獲得proposal,具體做法是:在每個(gè)feature map上獲得1:1、1:2、2:1長(zhǎng)寬比的框,尺寸是{32^2、64^2、128^2、256^2、512^2}分別對(duì)應(yīng){P2、P3、P4、P5、P6}這五個(gè)特征層上。P6是專門(mén)為了RPN網(wǎng)絡(luò)而設(shè)計(jì)的,用來(lái)處理512大小的候選框。它由P5經(jīng)過(guò)下采樣得到。

如何解決小目標(biāo)識(shí)別問(wèn)題

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

小目標(biāo)檢測(cè)的難點(diǎn):可利用特征少,現(xiàn)有數(shù)據(jù)集中小目標(biāo)占比少,小目標(biāo)聚集問(wèn)題

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

另外通常網(wǎng)絡(luò)為了減少計(jì)算量,都使用到了下采樣,而下采樣過(guò)多,會(huì)導(dǎo)致小目標(biāo)的信息在最后的特征圖上只有幾個(gè)像素(甚至更少),信息損失較多。

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

YOLO所屬類(lèi)別為one-stage,F(xiàn)ast-Rcnn所屬類(lèi)別為two-stage

two stage:

先進(jìn)行區(qū)域生成,該區(qū)域稱為region proposal(RP,一個(gè)有可能包含物體的預(yù)選框);再通過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行樣本分類(lèi),精度高,適合做高檢測(cè)精度的任務(wù)

任務(wù)流程:特征提取—生成RP—分類(lèi)/定位回歸

圖片

one stage:

不用RP,直接在網(wǎng)絡(luò)中提取特征來(lái)預(yù)測(cè)物體的分類(lèi)和位置,速度非???,適合做實(shí)時(shí)檢測(cè)任務(wù),但是效果不會(huì)太好

任務(wù)流程:特征提取—分類(lèi)/定位回歸

圖片

YOLO和SSD區(qū)別

YOLO將物體檢測(cè)這個(gè)問(wèn)題定義為bounding box和分類(lèi)置信度的回歸問(wèn)題。

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

SSD將物體檢測(cè)這個(gè)問(wèn)題的解空間,抽象為一組預(yù)先設(shè)定好(尺度,長(zhǎng)寬比,1,2,3,1/2,1/3)的bounding box。在每個(gè)bounding box,預(yù)測(cè)分類(lèi)label,以及box offset來(lái)更好的框出物體。對(duì)一張圖片,結(jié)合多個(gè)大小不同的feature map的預(yù)測(cè)結(jié)果,能夠處理大小不同的物體。

區(qū)別:

YOLO在卷積層后接全連接層,即檢測(cè)時(shí)只利用了最高層Feature maps。而SSD采用金字塔結(jié)構(gòu),即利用了conv4-3/fc7/conv6-2/conv7-2/conv8_2/conv9_2這些大小不同的feature maps,在多個(gè)feature maps上同時(shí)進(jìn)行softmax分類(lèi)和位置回歸

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


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉