開放集合目標(biāo)檢測(cè)任務(wù) Open-set Detection
【GiantPandaCV 導(dǎo)語】最近因?yàn)楣こ绦枰?,就去調(diào)研一下 open-set detection 算法,然后發(fā)現(xiàn)一篇不錯(cuò)的論文 《Towards Open-Set Object Detection and Discovery》。論文使用了額外的 memory 來當(dāng)做網(wǎng)絡(luò)的記憶緩存,在實(shí)現(xiàn)對(duì)未知類物體的坐標(biāo)回歸的同時(shí),還挖掘了未知類物體潛在的類別。算法挺有意思的,里面也涉及了很多自己的知識(shí)盲點(diǎn),于是和大家分享一下,一起研究研究。
論文地址:https://arxiv.org/abs/2204.05604
1.介紹
在之前的 open-set object detection (OSOD) 中,除了檢測(cè)識(shí)別已知物體外,還會(huì)檢測(cè)一些未知類別的物體,但把所有未知的物體都?xì)w到 “未知類”。該論文提出的 Open-Set Object Detection and Discovery (OSODD),不僅可以檢測(cè)未知物體,還可以挖掘它們潛在的類別。OSODD 采用了兩階檢測(cè)方式,先對(duì)已知物體和未知物體進(jìn)行預(yù)測(cè),然后通過無監(jiān)督和半監(jiān)督方式學(xué)習(xí)預(yù)測(cè)到的物體的表征并進(jìn)行聚類,從而挖掘出未知物體的類別。
2. 任務(wù)形式
在 OSODD 中,假設(shè)已知類為 Ck = {C1, C21,....,Cm};未知類為 Cu = {Cm+1, Cm+2, ..... Cm+n},Ck 和 Cu 沒有交集。訓(xùn)練集只包含 Ck,而測(cè)試集是 Ck 和 Cu 的合集。模型的任務(wù)就是對(duì)所有物體進(jìn)行定位和分類 I = [c, x, y, w, h],已知物體歸于Ck,未知物體則歸于 Cu。
3. 具體方法
論文提出的 OSODD 包含兩個(gè)部分,分別是 Object Detection and Retrieval (ODR) 和 Object Category Discovery (OCD)。

ODR 是一個(gè)帶有兩個(gè)記憶緩存的開集檢測(cè)器,對(duì)于已知物體,檢測(cè)器預(yù)測(cè)他們的位置信息和類別,對(duì)于未知物體,只預(yù)測(cè)其位置信息。其中已知物體和類別信息儲(chǔ)存在 known memory 中,未知物體則儲(chǔ)存在 working memory 中。 OCD 則是主要利用 working memory 來挖掘未知物體的類別,包含了一個(gè)特征編碼器和聚類辨別器。首先使用非監(jiān)督對(duì)比學(xué)習(xí)方式,從 known 和 working memory 中訓(xùn)練一個(gè)編碼器,在 latent space 中學(xué)習(xí)更好的物體表征。最后用 constrained k-means 來進(jìn)行聚類。
3.1 Object Detection and Retrieval
open-set object detector 主要是對(duì)所有物體進(jìn)行定位,同時(shí)對(duì)已知物物體進(jìn)行分類,且把未知物體歸到“unknown” 一類。文中使用了 faster-rcnn 作為模型的 backbone,利用了 RPN 對(duì)類別無感知的特性,把那些與 ground-truth 沒有重疊且置信度比較高的候選框作為位置物體。為了讓物體的特征更具有區(qū)別性,作者使用了對(duì)比損失,也就是計(jì)算從 ROI pooling 中得到的特征和模板之間的相差度:

其中模板 pi 是該類別特征的滑動(dòng)平均值。所以在 region of interest pooling 中的 loss 變成:

3.2 Object Category Discovery
因?yàn)槲粗矬w的類別是不確定的,只能通過一些方式來挖掘出這些物體潛在的類別信息,文中采用了 DCT,主要是通過一種特殊的無參數(shù)學(xué)習(xí)的 k-mean 來估計(jì)潛在的類別數(shù)目。為了更好地挖掘未知物體的潛在類別,作者在 OCD 中加入了一個(gè) encoder,用來學(xué)習(xí)更有判別性的 embedding。在encoder 中使用 known memory 和 working memory 來進(jìn)行對(duì)比學(xué)習(xí),增大 positive pairs 的相似度,而減小 negative pairs的相似度,類似減小類內(nèi)差而增大類間差,這樣更有益于后面的聚類操作。對(duì)比學(xué)習(xí)的 ?InfoNCE loss 為:

為了使得 embedding 有更加好的分布和創(chuàng)建更多的訓(xùn)練樣本,作者還使用一種無監(jiān)督增強(qiáng)方法,把 {k} 和 q 線性組合起來,代替原本的 {k},對(duì)應(yīng)地,loss 中的虛擬標(biāo)簽也變成:

4.實(shí)驗(yàn)
在實(shí)驗(yàn)中,作者把數(shù)據(jù)分成三種,對(duì)應(yīng)著不同的 Known / Unknown。對(duì)于已知類物體,采用 mAP 作為檢測(cè)評(píng)價(jià)標(biāo)準(zhǔn),對(duì)于未知類物體,則采用 UDR 和 UDP 作為檢測(cè)評(píng)價(jià)標(biāo)準(zhǔn):

對(duì)于類別挖掘的評(píng)價(jià)指標(biāo),作者采用了聚類準(zhǔn)確率、歸一化互信息和聚類純度:

因?yàn)槭?unknown class,所以不確定具體哪個(gè)物體的類別 ID具體是多少,Object Category Discovery (OCD) 也是通過 k-mean 來聚類。所以必須對(duì)unknown object 的label 進(jìn)行排列組合,算出最大的那個(gè) ACC,作為最終的結(jié)果。


5. 結(jié)果與分析
作者在 Object Detection 和 Category Discovery 的baseline 上做了對(duì)比試驗(yàn),還進(jìn)行了多種組合的消融實(shí)驗(yàn),證明文中提出的方法幾乎在所有評(píng)價(jià)指標(biāo)都達(dá)到了最優(yōu)性能。



