目標(biāo)檢測(cè)干貨 | 多級(jí)特征重復(fù)使用大幅度提升檢測(cè)精度
近年來(lái),在利用深度卷積網(wǎng)絡(luò)檢測(cè)目標(biāo)方面取得了顯著進(jìn)展。然而,很少有目標(biāo)檢測(cè)器實(shí)現(xiàn)高精度和低計(jì)算成本。今天分享的干貨,就有研究者提出了一種新的輕量級(jí)框架,即多級(jí)特性重用檢測(cè)器(MFRDet),它可以比兩階段的方法達(dá)到更好的精度。它還可以保持單階段方法的高效率,而且不使用非常深的卷積神經(jīng)網(wǎng)絡(luò)。該框架適用于深度和淺層特征圖中包含的信息的重復(fù)利用,具有較高的檢測(cè)精度。
二、背景
(a)僅使用單尺度特征進(jìn)行預(yù)測(cè),(b)整合來(lái)自高級(jí)和低級(jí)特征圖的信息,(c)從不同尺度的特征圖生成預(yù)測(cè),(d)就是今天分享的多層特征重用模塊可以獲得不同尺度的特征圖。
Shot learning
在深度學(xué)習(xí)領(lǐng)域,特別是目標(biāo)檢測(cè)領(lǐng)域,數(shù)據(jù)集的建設(shè)是至關(guān)重要的。進(jìn)行了許多優(yōu)秀和有價(jià)值的研究,改進(jìn)了多元數(shù)據(jù)集的理論和實(shí)踐。有研究者創(chuàng)建了一種有效的從Web學(xué)習(xí)方法來(lái)解決問(wèn)題的數(shù)據(jù)集偏差,沒(méi)有手動(dòng)注釋。這可能提供了一種幫助zero-shot學(xué)習(xí)的方法。zero-shot學(xué)習(xí)研究的主要問(wèn)題是目標(biāo)分類問(wèn)題和目標(biāo)檢測(cè)問(wèn)題。目前,在zero-shot學(xué)習(xí)中仍存在一些需要解決的問(wèn)題,如domain shift problem, hubness problem和semantic gap問(wèn)題。zero-shot學(xué)習(xí)通常將視覺(jué)特征嵌入其他模態(tài)空間,或?qū)⒍鄠€(gè)模型空間映射到一個(gè)共同的潛在空間,使用最近鄰思想對(duì)看不見(jiàn)目標(biāo)進(jìn)行分類,這對(duì)目標(biāo)檢測(cè)器有很高的需求。
One-shot學(xué)習(xí)的目的是從一個(gè)或只有少數(shù)的訓(xùn)練圖像中學(xué)習(xí)有關(guān)目標(biāo)類別的信息。與zero-shot學(xué)習(xí)不同,One-shot學(xué)習(xí)依賴于先驗(yàn)知識(shí),比如物體識(shí)別,它需要對(duì)形狀和外觀的先驗(yàn)知識(shí)。
三、新框架
SSD分析
SSD和Yolo一樣都是采用一個(gè)CNN網(wǎng)絡(luò)來(lái)進(jìn)行檢測(cè),但是卻采用了多尺度的特征圖,其基本架構(gòu)如下圖所示。下面將SSD核心設(shè)計(jì)理念總結(jié)為以下三點(diǎn):
SSD基本框架
(1)采用多尺度特征圖用于檢測(cè)
所謂多尺度采用大小不同的特征圖,CNN網(wǎng)絡(luò)一般前面的特征圖比較大,后面會(huì)逐漸采用stride=2的卷積或者pool來(lái)降低特征圖大小,這正如上圖所示,一個(gè)比較大的特征圖和一個(gè)比較小的特征圖,它們都用來(lái)做檢測(cè)。這樣做的好處是比較大的特征圖來(lái)用來(lái)檢測(cè)相對(duì)較小的目標(biāo),而小的特征圖負(fù)責(zé)檢測(cè)大目標(biāo),如下圖所示,8x8的特征圖可以劃分更多的單元,但是其每個(gè)單元的先驗(yàn)框尺度比較小。
不同尺度的特征圖
(2)采用卷積進(jìn)行檢測(cè)
與Yolo最后采用全連接層不同,SSD直接采用卷積對(duì)不同的特征圖來(lái)進(jìn)行提取檢測(cè)結(jié)果。對(duì)于形狀為 的特征圖,只需要采用 這樣比較小的卷積核得到檢測(cè)值。
(3)設(shè)置先驗(yàn)框
在Yolo中,每個(gè)單元預(yù)測(cè)多個(gè)邊界框,但是其都是相對(duì)這個(gè)單元本身(正方塊),但是真實(shí)目標(biāo)的形狀是多變的,Yolo需要在訓(xùn)練過(guò)程中自適應(yīng)目標(biāo)的形狀。而SSD借鑒了Faster R-CNN中anchor的理念,每個(gè)單元設(shè)置尺度或者長(zhǎng)寬比不同的先驗(yàn)框,預(yù)測(cè)的邊界框(bounding boxes)是以這些先驗(yàn)框?yàn)榛鶞?zhǔn)的,在一定程度上減少訓(xùn)練難度。一般情況下,每個(gè)單元會(huì)設(shè)置多個(gè)先驗(yàn)框,其尺度和長(zhǎng)寬比存在差異,如圖5所示,可以看到每個(gè)單元使用了4個(gè)不同的先驗(yàn)框,圖片中貓和狗分別采用最適合它們形狀的先驗(yàn)框來(lái)進(jìn)行訓(xùn)練,后面會(huì)詳細(xì)講解訓(xùn)練過(guò)程中的先驗(yàn)框匹配原則。
SSD的先驗(yàn)框SSD的檢測(cè)值也與Yolo不太一樣。對(duì)于每個(gè)單元的每個(gè)先驗(yàn)框,其都輸出一套獨(dú)立的檢測(cè)值,對(duì)應(yīng)一個(gè)邊界框,主要分為兩個(gè)部分。第一部分是各個(gè)類別的置信度或者評(píng)分,值得注意的是SSD將背景也當(dāng)做了一個(gè)特殊的類別,如果檢測(cè)目標(biāo)共有 個(gè)類別,SSD其實(shí)需要預(yù)測(cè) 個(gè)置信度值,其中第一個(gè)置信度指的是不含目標(biāo)或者屬于背景的評(píng)分。后面當(dāng)我們說(shuō) 個(gè)類別置信度時(shí),請(qǐng)記住里面包含背景那個(gè)特殊的類別,即真實(shí)的檢測(cè)類別只有 個(gè)。在預(yù)測(cè)過(guò)程中,置信度最高的那個(gè)類別就是邊界框所屬的類別,特別地,當(dāng)?shù)谝粋€(gè)置信度值最高時(shí),表示邊界框中并不包含目標(biāo)。第二部分就是邊界框的location,包含4個(gè)值 ,分別表示邊界框的中心坐標(biāo)以及寬高。但是真實(shí)預(yù)測(cè)值其實(shí)只是邊界框相對(duì)于先驗(yàn)框的轉(zhuǎn)換值(paper里面說(shuō)是offset,但是覺(jué)得transformation更合適,參見(jiàn)R-CNN)。先驗(yàn)框位置用 表示,其對(duì)應(yīng)邊界框用 $表示,那么邊界框的預(yù)測(cè)值 其實(shí)是 相對(duì)于 的轉(zhuǎn)換值:
習(xí)慣上,我們稱上面這個(gè)過(guò)程為邊界框的編碼(encode),預(yù)測(cè)時(shí),你需要反向這個(gè)過(guò)程,即進(jìn)行解碼(decode),從預(yù)測(cè)值 中得到邊界框的真實(shí)位置 :然而,在SSD的Caffe源碼實(shí)現(xiàn)中還有trick,那就是設(shè)置variance超參數(shù)來(lái)調(diào)整檢測(cè)值,通過(guò)bool參數(shù)variance_encoded_in_target來(lái)控制兩種模式,當(dāng)其為True時(shí),表示variance被包含在預(yù)測(cè)值中,就是上面那種情況。但是如果是False(大部分采用這種方式,訓(xùn)練更容易?),就需要手動(dòng)設(shè)置超參數(shù)variance,用來(lái)對(duì) 的4個(gè)值進(jìn)行放縮,此時(shí)邊界框需要這樣解碼:綜上所述,對(duì)于一個(gè)大小 的特征圖,共有 個(gè)單元,每個(gè)單元設(shè)置的先驗(yàn)框數(shù)目記為 ,那么每個(gè)單元共需要 個(gè)預(yù)測(cè)值,所有的單元共需要 個(gè)預(yù)測(cè)值,由于SSD采用卷積做檢測(cè),所以就需要 個(gè)卷積核完成這個(gè)特征圖的檢測(cè)過(guò)程。
新框架(MFRDet)
如上面所述,有許多利用嘗試觀察和充分利用金字塔特征。圖(b)顯示了最常見(jiàn)的模式之一。這種類型經(jīng)過(guò)了歷史驗(yàn)證,大大提高了傳統(tǒng)檢測(cè)器的性能。但是這種設(shè)計(jì)需要多個(gè)特征合并過(guò)程,從而導(dǎo)致大量額外的計(jì)算。
今天分享的框架提出了一種輕量級(jí)、高效的多級(jí)特征重用(MFR)模塊(如圖(d)所示)。該模塊能夠充分利用不同尺度的特征圖,集成了深、淺層的特征,提高了檢測(cè)性能。特征重用模塊可簡(jiǎn)要說(shuō)明如下:
S的選擇:
在初步設(shè)計(jì)它們時(shí),需要考慮以下幾個(gè)關(guān)鍵因素。首先,應(yīng)該選擇要重用的圖層。在傳統(tǒng)的SSD中,作者部署了conv4_3、fc7和另外四個(gè)SSD層進(jìn)行預(yù)測(cè)。6個(gè)選定的特征地圖的比例表包括38×38、19×19、10×10、5×5和1×1。在不同的SSD中,這些層是獨(dú)立的,今天這個(gè)研究者不同意。研究者相信,小尺度特征圖中存在的語(yǔ)義信息在尺度變換后的檢測(cè)中仍然有效。選擇了六個(gè)預(yù)測(cè)層和conv5_3層作為框架要重用的源層。從下表中,可以得出一個(gè)明確的結(jié)論,即重用conv3_3將降低檢測(cè)精度。高分辨率特征圖沒(méi)有足夠的高級(jí)語(yǔ)義信息,因此放棄了對(duì)其信息的重用。
Ti的轉(zhuǎn)換策略:
在傳統(tǒng)的SSD中,規(guī)模為38×38、語(yǔ)義信息很少的淺層conv4_3負(fù)責(zé)小目標(biāo)識(shí)別。conv4_3層被設(shè)置為需要包含更深層語(yǔ)義信息的基本層。策略因特征圖的標(biāo)準(zhǔn)而不同。首先,對(duì)每個(gè)源層應(yīng)用Conv1×1來(lái)減小特征尺寸。然后,在Conv1×1層后,通過(guò)雙線性插值,將尺度小于38×38的層(四個(gè)SSD_layers和fc7層)放入相同大小的38×38中。這樣,所有的源特性都會(huì)轉(zhuǎn)換為相同的大小。
Ψt的選擇:
在轉(zhuǎn)換策略Ti的過(guò)程完成后,創(chuàng)建了新的變換特征圖。它們是conv4_3、conv5_3、fc7、conv8_2、conv9_2、conv10_2和conv11_2。有兩種方法可以將新轉(zhuǎn)換的特征映射合并在一起。通過(guò)實(shí)驗(yàn)驗(yàn)證,這兩種方法都能得到良好的結(jié)果。從上表中,可以了解到連接似乎更適合我們的模型。
四、實(shí)驗(yàn)
在coco數(shù)據(jù)集上的檢測(cè)可視化結(jié)果
? THE END
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。