DenseCL

摘要:到目前為止,大多數(shù)現(xiàn)有的自監(jiān)督學(xué)習(xí)方法都是針對圖像分類而設(shè)計(jì)和優(yōu)化的。由于圖像級預(yù)測和像素級預(yù)測之間的差異,這些預(yù)訓(xùn)練的模型對于密集預(yù)測任務(wù)可能是次優(yōu)的。為了填補(bǔ)這一空白,我們設(shè)計(jì)了一種有效的、稠密的自監(jiān)督學(xué)習(xí)方法,通過考慮局部特征之間的對應(yīng)關(guān)系,直接在像素(或局部特征)水平上進(jìn)行學(xué)習(xí)。本文提出了一種密集對比學(xué)習(xí)算法,該算法通過在像素級優(yōu)化輸入圖像兩視圖間的成對的對比損失(ie 相似或不相似)來實(shí)現(xiàn)自監(jiān)督學(xué)習(xí)。

與基線方法MoCo-v2相比,我們的方法引入了微不足道的計(jì)算開銷(只慢了<1%),但在轉(zhuǎn)移到下游密集預(yù)測任務(wù)(包括目標(biāo)檢測、語義分割和實(shí)例分割)時(shí)表現(xiàn)出了一貫的優(yōu)越性能;并且大大超過了最先進(jìn)的方法。具體來說,在強(qiáng)大的MoCo-v2基線上,我們的方法在PASCAL VOC對象檢測上實(shí)現(xiàn)了2.0%的AP,在COCO對象檢測上實(shí)現(xiàn)了1.1%的AP,在COCO實(shí)例分割上實(shí)現(xiàn)了0.9%的AP,在PASCAL VOC語義分割上實(shí)現(xiàn)了3.0%的mIoU,在Cityscapes語義分割上實(shí)現(xiàn)了1.8%的mIoU

https://git.io/AdelaiDet

https://hub.fastgit.org/aim-uofa/AdelaiDet

https://hub.fastgit.org/WXinlong/DenseCL

https://hub.fastgit.org/CoinCheung/denseCL

圖1 通過微調(diào)物體檢測和語義分割數(shù)據(jù)集對預(yù)訓(xùn)練模型進(jìn)行比較。SupIN表示ImageNet上的監(jiān)督預(yù)訓(xùn)練。“COCO”和“ImageNet”分別表示在COCO和ImageNet上訓(xùn)練的預(yù)訓(xùn)練模型。(a) :在VOC trainval07+12上微調(diào)的Faster?R-CNN檢測器的目標(biāo)檢測結(jié)果,用于24k迭代,并在VOC test2007上評估;(b):在VOC?trainaug?2012上微調(diào)的FCN模型的語義分割結(jié)果,用于20k迭代,并在VAL2012上評估。結(jié)果是5個(gè)獨(dú)立試驗(yàn)的平均值。

1. 引言

在許多計(jì)算機(jī)視覺任務(wù)中,預(yù)訓(xùn)練已經(jīng)成為一種成熟的范例。在典型的預(yù)訓(xùn)練范式中,模型首先在大規(guī)模數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,然后在訓(xùn)練數(shù)據(jù)較少的目標(biāo)任務(wù)上進(jìn)行微調(diào)。具體地說,有監(jiān)督的ImageNet預(yù)訓(xùn)練已經(jīng)占據(jù)主導(dǎo)地位多年,在那里模型被預(yù)訓(xùn)練以解決圖像分類問題,并轉(zhuǎn)移到下游任務(wù)。然而,圖像分類預(yù)訓(xùn)練和目標(biāo)密集預(yù)測任務(wù)之間存在差距,如目標(biāo)檢測[8,24]和語義分割[4]。前者側(cè)重于為輸入圖像分配一個(gè)類別,而后者則需要對整個(gè)圖像進(jìn)行密集分類或回歸。例如,語義分割的目的是為每個(gè)像素分配一個(gè)類別,而目標(biāo)檢測的目的是為所有感興趣的對象實(shí)例預(yù)測類別和邊界框。一個(gè)簡單的解決方案是直接對密集預(yù)測任務(wù)進(jìn)行預(yù)訓(xùn)練。然而,與圖像級標(biāo)注相比,這些任務(wù)的標(biāo)注非常耗時(shí),難以大規(guī)模采集數(shù)據(jù)來預(yù)訓(xùn)練通用特征表示。

無監(jiān)督視覺預(yù)訓(xùn)練是近年來研究的熱點(diǎn),其目的是從大量未標(biāo)記圖像中學(xué)習(xí)正確的視覺表征。一些方法[16,1,2,13]顯示了在下游任務(wù)中的有效性,與有監(jiān)督的ImageNet預(yù)訓(xùn)練相比,這些方法獲得了相當(dāng)或更好的結(jié)果。然而,圖像分類預(yù)訓(xùn)練和目標(biāo)密集預(yù)測任務(wù)之間的差距仍然存在。首先,目前幾乎所有的自監(jiān)督學(xué)習(xí)方法都將學(xué)習(xí)描述為利用全局特征的圖像級預(yù)測。它們都可以被認(rèn)為是將每幅圖像分類為自己的版本,即實(shí)例辨別[38]。此外,現(xiàn)有的方法通常是在圖像分類基準(zhǔn)上進(jìn)行評估和優(yōu)化。然而,更好的圖像分類并不能保證更準(zhǔn)確的目標(biāo)檢測,如[17]所示。因此,為密集預(yù)測任務(wù)定制的自監(jiān)督學(xué)習(xí)仍然是個(gè)有待解決的問題。對于無監(jiān)督的預(yù)訓(xùn)練,不再需要密集標(biāo)注。一個(gè)明確的方法是直接將預(yù)訓(xùn)練作為密集預(yù)測任務(wù),從而消除預(yù)訓(xùn)練和目標(biāo)密集預(yù)測任務(wù)之間的差距。

受有監(jiān)督的稠密預(yù)測任務(wù)(如語義分割)的啟發(fā),本文提出了稠密對比學(xué)習(xí)的自監(jiān)督視覺預(yù)訓(xùn)練方法。DenseCL認(rèn)為自監(jiān)督學(xué)習(xí)任務(wù)是一種密集的成對對比學(xué)習(xí),而不是全局圖像分類。首先,我們引入一個(gè)密集投影頭(dense projection head),它以骨干網(wǎng)的特征作為輸入,生成密集的特征向量(dense feature vectors)。我們的方法自然地保留了空間信息并構(gòu)造了一種密集的輸出格式,與現(xiàn)有的全局投影頭相比,全局投影頭對主干特征進(jìn)行全局合并,并為每幅圖像輸出一個(gè)單一的全局特征向量。其次,通過提取視圖間的對應(yīng)關(guān)系,定義每個(gè)局部特征向量的正樣本。為了構(gòu)造一個(gè)無監(jiān)督的目標(biāo)函數(shù),我們進(jìn)一步設(shè)計(jì)了一個(gè)稠密的對比損失,將傳統(tǒng)的信息損失[28]擴(kuò)展到稠密范式。通過上述方法,我們使用完全卷積網(wǎng)絡(luò)(FCN)[25]密集地執(zhí)行對比學(xué)習(xí),類似于目標(biāo)密集預(yù)測任務(wù)。

因此,我們的主要貢獻(xiàn)總結(jié)如下。

?????我們提出了一種新的對比學(xué)習(xí)范式,即密集對比學(xué)習(xí),它在像素(或局部特征)水平上進(jìn)行密集的成對對比學(xué)習(xí)。

?????通過提出的密集對比學(xué)習(xí),我們設(shè)計(jì)了一種簡單有效的針對密集預(yù)測任務(wù)的自監(jiān)督學(xué)習(xí)方法DenseCL,填補(bǔ)了自監(jiān)督預(yù)訓(xùn)練和密集預(yù)測任務(wù)之間的空白。

?????DenseCL在將預(yù)訓(xùn)練模型轉(zhuǎn)移到下游密集預(yù)測任務(wù)(包括目標(biāo)檢測(+2:0%AP)、實(shí)例分割(+0:9%AP)和語義分割(+3:0%mIoU))時(shí),顯著優(yōu)于最先進(jìn)的MoCo-v2[2],并遠(yuǎn)遠(yuǎn)超過有監(jiān)督的ImageNet預(yù)訓(xùn)練。

2????相關(guān)工作

自監(jiān)督的預(yù)訓(xùn)練。????一般來說,自監(jiān)督學(xué)習(xí)的成功[38,16,39,44,15,13]可以歸因于兩個(gè)重要方面,即對比學(xué)習(xí)和借口任務(wù)。在許多方法中,用于訓(xùn)練視覺表征的目標(biāo)函數(shù)要么是基于重建的損失函數(shù)[6,29,11],要么是測量多個(gè)視圖同時(shí)出現(xiàn)的對比損失[36]。對比學(xué)習(xí)是大多數(shù)最先進(jìn)方法的關(guān)鍵[38,16,1,39],在這種方法中,正例的一對通常由同一圖像(或其他視覺模式)的兩個(gè)增強(qiáng)視圖組成,而負(fù)例的一對則由不同的圖像組成。

為了學(xué)習(xí)好的表征,人們探索了各種各樣的借口任務(wù)。這些例子包括彩色化[43]、上下文自動(dòng)編碼器[6]、修復(fù)[29]、空間拼圖[27]和辨別方向[10]。這些方法在計(jì)算機(jī)視覺中取得的成功非常有限。突破性的方法是SimCLR[1],它遵循一個(gè)實(shí)例辨別借口任務(wù),類似于[38],其中每個(gè)實(shí)例的特征都與訓(xùn)練集中所有其他實(shí)例的特征拉遠(yuǎn)距離(are pulled away)。"不變性"(Invariances)由低級的圖像變換來編碼,例如裁剪、縮放和顏色抖動(dòng)。對比學(xué)習(xí)和借口任務(wù)經(jīng)常被結(jié)合起來形成一個(gè)表征學(xué)習(xí)框架。DenseCL渴望采用自監(jiān)督的預(yù)訓(xùn)練模式,并且我們自然地使該框架對密集的預(yù)測任務(wù)(如語義分割和目標(biāo)檢測)友好。

密集預(yù)測預(yù)訓(xùn)練任務(wù)。????預(yù)訓(xùn)練在許多密集的預(yù)測任務(wù)上取得了令人驚訝的結(jié)果,包括目標(biāo)檢測[32,30]和語義分割[25]。這些模型通常是從為圖像級識別任務(wù)而設(shè)計(jì)的ImageNet預(yù)訓(xùn)練模型中進(jìn)行微調(diào)的。以前的一些研究已經(jīng)表明,在網(wǎng)絡(luò)體系結(jié)構(gòu)的背景下,ImageNet預(yù)訓(xùn)練和密集預(yù)測任務(wù)之間存在差距[23,21,35,34]。YOLO9000[31]建議對目標(biāo)檢測器進(jìn)行分類和檢測數(shù)據(jù)的聯(lián)合訓(xùn)練。He等人[17]證明,即使我們在非常大的分類數(shù)據(jù)集(例如Instagram[26],比ImageNet大3000倍)上進(jìn)行預(yù)訓(xùn)練,目標(biāo)檢測的傳輸改進(jìn)也相對較小。最近的工作[22,45]表明,與ImageNet預(yù)訓(xùn)練模型相比,利用目標(biāo)檢測數(shù)據(jù)和注釋的預(yù)訓(xùn)練模型(例如MS-COCO[24])可以在目標(biāo)檢測和語義分割方面取得相當(dāng)?shù)男阅?。在DenseCL之前,人們對密集預(yù)測任務(wù)的有監(jiān)督預(yù)訓(xùn)練進(jìn)行了探索,但對于密集預(yù)測任務(wù)的無監(jiān)督預(yù)訓(xùn)練模式的設(shè)計(jì)卻鮮有研究。

視覺對應(yīng)。????視覺對應(yīng)問題是從來自同一場景的兩幅圖像中計(jì)算像素對[40],這對于許多應(yīng)用至關(guān)重要,包括光流[7]、從運(yùn)動(dòng)到結(jié)構(gòu)[33]、SLAM[19],三維重建[9]等。視覺對應(yīng)可以表示為匹配的圖像塊或點(diǎn)之間的特征相似性學(xué)習(xí)問題。最近,人們提出了各種基于卷積神經(jīng)網(wǎng)絡(luò)的方法來度量圖像中的塊之間的相似性,包括有監(jiān)督的方法[3,20]和無監(jiān)督的方法[42,14]。以前的工作通常利用顯式監(jiān)督來學(xué)習(xí)特定應(yīng)用上的對應(yīng)關(guān)系。DenseCL學(xué)習(xí)可在多個(gè)密集預(yù)測任務(wù)上都能用的通用表示。

3. 方法

3.1. 背景

對于自監(jiān)督表征學(xué)習(xí),突破性的方法是MoCo-v1/v2[16,2]和SimCLR[1],它們都采用對比無監(jiān)督學(xué)習(xí)從未標(biāo)記數(shù)據(jù)中學(xué)習(xí)良好的表征。我們通過抽象出一個(gè)共同的范式,簡要介紹了最先進(jìn)的自監(jiān)督學(xué)習(xí)框架。

Pipeline????給定一個(gè)未標(biāo)記的數(shù)據(jù)集,然后執(zhí)行實(shí)例判別[38]借口任務(wù),將訓(xùn)練集中每個(gè)圖像的特征從其他圖像的特征中分離出來。對于每幅圖像,通過隨機(jī)數(shù)據(jù)擴(kuò)充生成隨機(jī)的“視圖”。每個(gè)視圖都被輸入到編碼器中,用于提取特征,該特征能夠編碼和表示整個(gè)視圖。編碼器有兩個(gè)核心部件,即主干網(wǎng)和投影頭。投影頭連接到主干網(wǎng)。主干是預(yù)訓(xùn)后要轉(zhuǎn)移的模型,而投影頭在預(yù)訓(xùn)結(jié)束后會(huì)被扔掉。對于一對視圖,它們可以由同一個(gè)編碼器編碼[1],也可以由一個(gè)編碼器及其動(dòng)量更新的編碼器[16]。編碼器通過優(yōu)化成對對比損失(相似性或不相似性)來訓(xùn)練,如下所述。整個(gè)pipeline如圖2a所示。

圖2?????代表性學(xué)習(xí)的兩種對比學(xué)習(xí)范式的概念闡釋。為了更簡單的說明,我們使用了一對查詢和鍵。主干可以是任何卷積神經(jīng)網(wǎng)絡(luò)。(a) 在全局特征層次上計(jì)算全局投影頭輸出的單個(gè)特征向量之間的對比損失;(b)在局部特征層次上計(jì)算密集投影頭輸出的密集特征向量之間的密集對比損失。對于這兩種范式,這兩個(gè)分支可以是相同的編碼器,也可以是不同的編碼器,例如,一個(gè)編碼器和及其動(dòng)量更新版本。

損失函數(shù)。????遵循MoCo的原則[16],對比學(xué)習(xí)可以看作是一項(xiàng)查字典的任務(wù)。對于每個(gè)編碼查詢q,有一組編碼鍵\left\{ {k_0,k_1\cdots } \right\} ,其中一個(gè)正鍵k_+與查詢q匹配。編碼過的查詢(query)和鍵(keys)是從不同的視圖生成的。對于編碼的查詢q,它的正鍵k_+編碼的是同一圖像的不同視圖,而負(fù)鍵編碼的是不同圖像的視圖。對比損失InfoNCE[28]被用來將q拉近k_+,同時(shí)將q推離其他負(fù)鍵:

其中\tau表示溫度超參數(shù),和[38]一樣。

3.2. DenseCL管道

我們提出了一種新的自監(jiān)督學(xué)習(xí)框架,稱為DenseCL。DenseCL將現(xiàn)有的框架擴(kuò)展并概括為一個(gè)密集的范例。與3.1中重新討論的現(xiàn)有范例相比,核心區(qū)別在于編碼器和損失函數(shù)。給定一個(gè)輸入視圖,由主干網(wǎng)絡(luò)(例如ResNet[18]或任何其他卷積神經(jīng)網(wǎng)絡(luò))提取密集的特征映射,并輸入給投影頭。投影頭由兩個(gè)并行的子頭組成,分別是全局投影頭和密集投影頭。全局投影頭可以被實(shí)例化為任何現(xiàn)有的投影頭,例如[16,1,2]中的投影頭,它將密集特征映射作為輸入,并為每個(gè)視圖生成全局特征向量。例如,文獻(xiàn)[2]中的投影頭由一個(gè)全局池層和一個(gè)MLP組成,MLP包含兩個(gè)全連接的層,它們之間有一個(gè)ReLU層。相反,密集投影頭采用相同的輸入,但輸出密集的特征向量。

具體地說,全局池層被移除,MLP被相等的1×1卷積層替換[25FCN](identical 1×1 convolution layers)。實(shí)際上,密集投影頭與全局投影頭具有相同數(shù)量的參數(shù)。通過在全局特征和局部特征兩個(gè)層次上優(yōu)化聯(lián)合成對對比(dis)相似性損失,對主干和兩個(gè)平行投影頭進(jìn)行端到端訓(xùn)練。

3.3. 密集對比學(xué)習(xí)

我們通過將原始的對比損失函數(shù)擴(kuò)展到一個(gè)稠密的范式來進(jìn)行稠密的對比學(xué)習(xí)。我們?yōu)槊總€(gè)編碼過的查詢r定義一組編碼過的鍵\left\{ {t_0,t_1\cdots } \right\} 。然而,這里每個(gè)查詢不再代表整個(gè)視圖,而是對視圖的局部部分進(jìn)行編碼。具體地說,它對應(yīng)于由密集投影頭生成的S_h×S_w特征向量之一,其中S_hS_w表示生成的密集特征圖的空間大小。請注意,S_hS_w可以不同,但我們使用S_h=S_w=S以進(jìn)行更簡單的說明。每個(gè)負(fù)鍵t_-是來自不同圖像的視圖的池化過的特征向量(the pooled feature vector of a view from a different image)。正鍵t_+是根據(jù)視圖間的對應(yīng)關(guān)系來分配的,其是來自同一圖像的另一個(gè)視圖的S^2個(gè)特征向量中的一個(gè)?,F(xiàn)在,讓我們假設(shè)我們可以很容易地找到正鍵t_+。討論推遲到下一節(jié)。密集對比損失定義為:

其中r^s表示S^2個(gè)編碼過的查詢中第s個(gè)。

總的來說,我們的DenseCL的總損失可以表述為:

L=(1-\lambda )L_{q} +\lambda L_{r}? ??(3)

其中\lambda充當(dāng)平衡這兩個(gè)項(xiàng)的權(quán)重。\lambda設(shè)置為0.5,這在第4.3節(jié)中的實(shí)驗(yàn)進(jìn)行驗(yàn)證。

3.4. 視圖間的密集對應(yīng)

我們提取了同一幅輸入圖像的兩個(gè)視圖之間的密集對應(yīng)關(guān)系。對于每個(gè)視圖,主干網(wǎng)提取特征圖F\in R^{H×W×K} ,密集投影頭從中生成Sh×Sw×E的密集特征向量\Theta \in R^{S_h\times S_w\times E}。請注意,S_hS_w可以不同,但我們使用S_h=S_w=S進(jìn)行更簡單的說明。對應(yīng)關(guān)系建立在兩個(gè)視圖的密集特征向量之間,即\Theta _{1} \Theta _{2} 。我們使用主干特征圖F_{1} F_{2} 來匹配\Theta _{1} \Theta _{2} 。

首先通過自適應(yīng)平均池化對F_1F_2進(jìn)行下采樣,使其具有S×S的空間形狀,然后用其計(jì)算余弦相似矩陣\Delta \in R^{{S^2 }\times {S^2}}。匹配規(guī)則是將一個(gè)視圖中的每個(gè)特征向量與另一個(gè)視圖中最相似的特征向量進(jìn)行匹配。具體地,對于\Theta _{1} 的所有S^2個(gè)特征向量,通過沿最后維度對相似矩陣\Delta 應(yīng)用argmax操作來獲得與\Theta _{2} 的對應(yīng)。匹配過程可表述為:

c_{i} = {\argmax}_{j} sim(f_{i} ,f_{j}’)? ??(4)

其中f_i是主干特征圖F_1的第i個(gè)特征向量,f_{j}’F_2的第j個(gè)特征向量。sim(u,v)表示余弦相似度,計(jì)算為先對uvl_{2} 歸一化,然后再點(diǎn)積,也就是sim(u,v)=u^Tv/{\vert \vert u \vert  \vert }{\vert \vert v \vert  \vert }。得到的c_{i} 表示從\Theta _{1} \Theta _{2} S^2個(gè)匹配中的第i個(gè),其含義是\Theta _{1} 的第i個(gè)特征向量匹配\Theta _{2} 的第c_{i} 個(gè)。整個(gè)匹配過程可以通過矩陣運(yùn)算高效地實(shí)現(xiàn),從而引入的延遲開銷可以忽略不計(jì)。

對于S=1的最簡單情況,匹配退化為全局對比學(xué)習(xí)中的匹配,因?yàn)閮蓚€(gè)全局特征向量之間自然存在單一的對應(yīng)關(guān)系,這是第3.1節(jié)介紹的情況。

在第3.3節(jié)介紹的密集對比學(xué)習(xí)過程中,根據(jù)提取的密集對應(yīng)關(guān)系,可以很容易地找到每個(gè)查詢r的正鍵t_+

4 實(shí)驗(yàn)

我們采用MoCo-v2[2]作為我們的基線方法,因?yàn)樗@示了最新的結(jié)果,并且在下游目標(biāo)檢測任務(wù)上比其他方法有很大的優(yōu)勢,如表1所示。它表明,它應(yīng)該作為一個(gè)非常有力的基線,我們可以在此基礎(chǔ)上證明我們的方法的有效性。

技術(shù)細(xì)節(jié)。????我們遵循[2]的大多數(shù)設(shè)置。采用ResNet[18]作為主干網(wǎng)。后接的全局投影頭和密集投影頭都有固定的尺寸輸出。前者為每個(gè)輸入輸出一個(gè)128通道特征向量,后者輸出密集的128通道特征向量。每個(gè)l_2歸一化過的特征向量表示一個(gè)查詢或鍵。對于全局對比學(xué)習(xí)和密集對比學(xué)習(xí),字典大小(dictionary size)都設(shè)置為65536。動(dòng)量設(shè)為0.999。在訓(xùn)練過程中使用Shuffling BN[16]。式(1)和式(2)中的溫度τ設(shè)為0.2。數(shù)據(jù)增強(qiáng)管道包括224×224像素隨機(jī)縮放裁剪、隨機(jī)顏色抖動(dòng)、隨機(jī)灰度轉(zhuǎn)換、高斯模糊和隨機(jī)水平翻轉(zhuǎn)。

4.1. 實(shí)驗(yàn)設(shè)置

數(shù)據(jù)集。????預(yù)訓(xùn)練實(shí)驗(yàn)在兩個(gè)大規(guī)模數(shù)據(jù)集上進(jìn)行:MS-COCO[24]和ImageNet[5]。預(yù)訓(xùn)練時(shí)只使用訓(xùn)練集,分別為118k和128萬張圖像。COCO和ImageNet代表兩種圖像數(shù)據(jù)。前者更自然,更真實(shí),包含戶外的不同場景。在目標(biāo)檢測、實(shí)例分割等目標(biāo)級和像素級識別任務(wù)中,它是一種應(yīng)用廣泛且具有挑戰(zhàn)性的數(shù)據(jù)集。而后者是精心策劃,精心構(gòu)建的圖像級識別。一個(gè)清晰和定量的比較是感興趣對象的數(shù)量。例如,COCO總共有123k個(gè)圖像和896k個(gè)標(biāo)記對象,平均每幅圖像有7.3個(gè)對象,這遠(yuǎn)遠(yuǎn)超過ImageNet DET數(shù)據(jù)集的每幅圖像有1.1個(gè)對象。

預(yù)訓(xùn)練設(shè)置。????對于ImageNet預(yù)訓(xùn)練,我們嚴(yán)格遵循MoCo-v2[2],并使用相同的訓(xùn)練參數(shù)。對于COCO預(yù)訓(xùn)練(包括基線和我們的),我們使用0.3的初始學(xué)習(xí)率,而不是原來的0.03,因?yàn)榍罢咴贑OCO預(yù)培訓(xùn)時(shí)在MoCo-v2基線中表現(xiàn)更好。我們采用SGD作為優(yōu)化器,將其權(quán)重衰減設(shè)置為0.0001,動(dòng)量設(shè)置為0.9。每個(gè)預(yù)訓(xùn)練模型在8個(gè)GPU上進(jìn)行優(yōu)化,采用余弦學(xué)習(xí)率衰減機(jī)制,mini-batch size為256。我們?yōu)镃OCO訓(xùn)練了800個(gè)epoch,總共368k次迭代。對于ImageNet,我們訓(xùn)練了200個(gè)epoch,總共100萬次迭代。

評估協(xié)議。????我們通過對目標(biāo)密集預(yù)測任務(wù)的端到端微調(diào)來評估預(yù)訓(xùn)練的模型。針對不同的目標(biāo)任務(wù),采用具有挑戰(zhàn)性和流行性的數(shù)據(jù)集對主流算法進(jìn)行微調(diào),即VOC對象檢測、COCO對象檢測、COCO實(shí)例分割、VOC語義分割和Cityscapes語義分割。在評估目標(biāo)檢測時(shí),我們遵循通用協(xié)議,即,在VOC trainval07+12集上用×2 schedule[37]來微調(diào)Faster R-CNN檢測器(C4主干),在VOCtest2007上測試。此外,我們在COCO train2017split(118k圖像)上用標(biāo)準(zhǔn) ×1 schedule來微調(diào)Mask R-CNN檢測器(FPN主干),在COCO 5k val 2017上評估目標(biāo)檢測和實(shí)例分割。對于語義分割,F(xiàn)CN模型[25]在VOC TrainAug2012集(10582個(gè)圖像)上微調(diào)20k次迭代,并在VAL2012集上評估。在Cityscapes數(shù)據(jù)集上,我們用train fine set(2975幅圖像)訓(xùn)練FCN模型進(jìn)行40k次迭代,并在valset上進(jìn)行測試,對語義分割進(jìn)行了評估。

4.2. 主要結(jié)果

PASCAL VOC目標(biāo)檢測。????在表1中,我們報(bào)告了PASCAL VOC的目標(biāo)檢測結(jié)果,并將其與其他最先進(jìn)的方法進(jìn)行了比較。在接受COCO預(yù)訓(xùn)練時(shí),我們的DenseCL比MoCo-v2基線性能高2%。當(dāng)在ImageNet上進(jìn)行預(yù)訓(xùn)練時(shí),MoCo-v2基線已經(jīng)超過了其他最先進(jìn)的自監(jiān)督學(xué)習(xí)方法。DenseCL仍能使AP進(jìn)一步提高1.7%,有力地證明了我們方法的有效性。這三個(gè)指標(biāo)的收益都是一致的。需要注意的是,與AP50相比,我們在更嚴(yán)格的AP75上實(shí)現(xiàn)了更大的改進(jìn),這表明DenseCL在很大程度上有助于提高定位精度。與有監(jiān)督的ImageNet預(yù)訓(xùn)練相比,我們獲得了顯著的4.5%的AP增益。

表1?PASCAL VOC上微調(diào)的目標(biāo)檢測任務(wù)。“CC”和“IN”分別表示在COCO和ImageNet上訓(xùn)練的預(yù)訓(xùn)練模型?!?”表示復(fù)現(xiàn)。其他方法的結(jié)果要么來自他們的論文,要么來自第三方實(shí)現(xiàn)。所有探測器都在trainval07+12上進(jìn)行24k迭代訓(xùn)練,并在test2007上進(jìn)行評估。指標(biāo)包括VOC指標(biāo)AP 50(即IoU閾值為50%)和COCO風(fēng)格的AP和AP 75。結(jié)果是5個(gè)獨(dú)立試驗(yàn)的平均值。

COCO目標(biāo)檢測與分割。? ? COCO上的目標(biāo)檢測和實(shí)例分割結(jié)果如表2所示。在目標(biāo)檢測方面,DenseCL在COCO和ImageNet上分別比MoCo-v2提高了1.1%和0.5%的AP。在實(shí)例分割上,提升分別為0.9%AP和0.3%AP。請注意,在COCO上預(yù)訓(xùn)練,再在COCO上微調(diào)并不是個(gè)典型的設(shè)置。但是還是可以帶來提升。

表2?COCO的目標(biāo)檢測和實(shí)例分割?!癈C”和“IN”分別表示在COCO和ImageNet上預(yù)訓(xùn)練。所有的檢測器都在train2017訓(xùn)練,默認(rèn)1x schedule,并在2017 val上進(jìn)行評估。指標(biāo)包括bounding box AP(APb)和maskAP(APm)。

PASCAL-VOC語義分割。????我們展示了語義分割的最大改進(jìn)。如表3a所示,對FCN在COCO上預(yù)訓(xùn)練,在VOC上微調(diào)時(shí),有3%的mIoU的提升。在COCO上用DenseCL上預(yù)訓(xùn)練達(dá)到與在ImageNet上用MoCo-v2預(yù)訓(xùn)練相同的67.5%mIoU。注意,與200 epoch ImageNet預(yù)訓(xùn)練相比,800 epoch COCO預(yù)訓(xùn)練僅使用1/10圖像和1/3迭代。在ImageNet上進(jìn)行預(yù)訓(xùn)練時(shí),DenseCL始終帶來1.9%的mIoU提升。值得注意的是,在ImageNet上預(yù)訓(xùn)練時(shí),MoCo-v2預(yù)訓(xùn)練與監(jiān)督學(xué)習(xí)預(yù)訓(xùn)練相比沒有遷移的優(yōu)勢(67.5%對67.7%的mIoU)。但DenseCL在很大程度上優(yōu)于監(jiān)督學(xué)習(xí)的預(yù)訓(xùn)練,即1.7%的mIoU。

城市景觀語義分割。????城市景觀是一個(gè)基準(zhǔn),與上述VOC和COCO有很大不同。它聚焦于城市街景。盡管如此,我們還是為DenseCL提供了同樣的性能提升。即使是COCO預(yù)訓(xùn)練的DenseCL也能比有監(jiān)督的ImageNet預(yù)訓(xùn)練模型提高1.9%mIoU。

表3?PASCAL VOC和cityscape的語義分割?!癈C”和“IN”分別表示在COCO和ImageNet上訓(xùn)練的預(yù)訓(xùn)練模型。度量是常用的平均IoU(mIoU)。結(jié)果是5個(gè)獨(dú)立試驗(yàn)的平均值。

4.3. 消融研究

我們進(jìn)行了廣泛的消融實(shí)驗(yàn),以說明每個(gè)成分對DenseCL的貢獻(xiàn)。我們通過在4.1節(jié)所述的在COCO上預(yù)訓(xùn)練,在VOC2017上微調(diào)目標(biāo)檢測器來報(bào)告消融研究。結(jié)果是5個(gè)獨(dú)立試驗(yàn)的平均值。我們和[12,41]一樣,還提供了VOC2007 SVM分類的結(jié)果,該分類使用從凍結(jié)主干提取的特征在VOC train 2007集上訓(xùn)練線性SVM,并在test2007集上評估。

損失函數(shù)的加權(quán)系數(shù)\lambda ? ? 公式(3)中的超參數(shù)\lambda 作為平衡兩個(gè)對比損失項(xiàng)的權(quán)重,即全局項(xiàng)和稠密項(xiàng)。我們在表4中報(bào)告了不同\lambda的結(jié)果。這表明,當(dāng)我們增加\lambda時(shí),檢測性能會(huì)有所提高。對于基線方法,即\lambda=0,結(jié)果為54.7%AP。當(dāng)\lambda=0:3時(shí),AP為56.2%,這將基線提高1.5%AP。將\lambda從0.3增加到0.5將帶來另一個(gè)0.5%的AP增益。雖然進(jìn)一步將其提高到0.7,但在檢測性能上仍有了一些小的改進(jìn)(0.1%AP),但分類結(jié)果從82.9%下降到81.0%??紤]到權(quán)衡,我們在其他實(shí)驗(yàn)中使用\lambda=0.5作為默認(rèn)設(shè)置。應(yīng)注意,當(dāng)\lambda=0.9時(shí),與MoCo-v2基線相比,分類性能迅速下降(-4.8%mAP),而檢測性能提高0.8%AP。根據(jù)我們的意圖,DenseCL是專門為密集預(yù)測任務(wù)設(shè)計(jì)的。

表4? 加權(quán)系數(shù)\lambda的消融研究。\lambda=0是MoCo-v2基線。\lambda=0.5表示檢測和分類之間的最佳折衷。“*”表示熱身訓(xùn)練,如第4.4節(jié)所述。

匹配策略。????在表5中,我們比較了三種不同的匹配策略,用于提取視圖之間的對應(yīng)關(guān)系。1) “random”:兩個(gè)視圖中的密集特征向量被隨機(jī)地匹配;2)“max-sim\Theta ”:使用密集投影頭生成的密集特征向量\Theta _{1} \Theta _{2} 來提取密集對應(yīng)關(guān)系;3)“max sim F”:根據(jù)主特征F_1F_2提取密集對應(yīng)關(guān)系,如公式4所示。與MoCo-v2相比,隨機(jī)匹配策略也能實(shí)現(xiàn)1.3%的AP改進(jìn),同時(shí)分類性能下降0.9%。這可能是因?yàn)槊芗妮敵龈袷奖旧碛袔椭硗庖惨驗(yàn)椴糠蛛S機(jī)匹配有點(diǎn)正確。通過密集投影頭的輸出(即\Theta _{1} \Theta _{2})進(jìn)行匹配,沒有明顯的改善。根據(jù)主干特征F_1F_2,提取密集對應(yīng)關(guān)系,得到了最佳結(jié)果。

表5? 匹配策略的消融實(shí)驗(yàn)。根據(jù)主干特征F_1F_2提取密集對應(yīng)關(guān)系,得到了最佳結(jié)果。

網(wǎng)格大小。????在默認(rèn)設(shè)置中,采用的ResNet 主干網(wǎng)絡(luò)輸出具有步幅32的特征。對于224×224的裁剪圖像,主干特征F的空間大小為7×7。我們將密集特征向量\Theta 的空間大小默認(rèn)設(shè)為7×7,即S=7。但是,S可以靈活調(diào)整,而F可以通過自適應(yīng)池化來池化到指定大小。表6是使用不同數(shù)量網(wǎng)格大小的結(jié)果。對于S=1,它與MoCo-v2基線除了兩點(diǎn)區(qū)別以外是相同的:1) 密集投影頭的參數(shù)與全局投影頭參數(shù)是相互獨(dú)立的。2) 密集的對比學(xué)習(xí)維持著一本獨(dú)立的詞典。結(jié)果與MoCo-v2基線值相似。這表明,額外的參數(shù)和字典并沒有帶來改進(jìn)。隨著網(wǎng)格大小(這里的網(wǎng)格大小我覺得是說小網(wǎng)格的數(shù)量)的增大,性能也會(huì)提高。我們使用網(wǎng)格大小為7作為默認(rèn)設(shè)置,因?yàn)楫?dāng)網(wǎng)格的性能增長超過7時(shí)性能將變得穩(wěn)定。

表6 網(wǎng)格大小S的消融。S越大結(jié)果就越好。我們在其它的實(shí)驗(yàn)中設(shè)S=7,因?yàn)镾>7時(shí)就飽和了

訓(xùn)練時(shí)長Training schedule????我們在表7中展示了不同訓(xùn)練schedule的使用結(jié)果。隨著訓(xùn)練時(shí)間的延長,從200個(gè)epoch到1600個(gè)epoch,性能持續(xù)提高。在COCO上用DenseCL預(yù)訓(xùn)練1600epoch甚至超過了在ImageNet上用MoCo-v2預(yù)訓(xùn)練200epoch。與200epoch的ImageNet相比,1600epoch的COCO預(yù)訓(xùn)練只使用了1/10的圖像和7/10次迭代。在圖3中,隨著培訓(xùn)練時(shí)間的延長,我們進(jìn)一步提供了與基線的直觀比較。結(jié)果表明,DenseCL的性能始終優(yōu)于MoCo-v2,至少比MoCo-v2高出2%的AP。

表7訓(xùn)練時(shí)長的研究。隨著訓(xùn)練時(shí)間的延長,成績不斷提高。雖然1600 epoch的訓(xùn)練計(jì)劃是0.5%AP更好,我們在其他實(shí)驗(yàn)使用800 epoch的設(shè)置為,以訓(xùn)練得更快。
圖3 在COCO上預(yù)訓(xùn)練不同的時(shí)長。對于每個(gè)預(yù)訓(xùn)練的模型,F(xiàn)aster R-CNN檢測器在VOC trainval07+12上微調(diào)24k次迭代并在test2007上進(jìn)行了評估。指標(biāo)是COCO風(fēng)格的AP。結(jié)果是對5個(gè)獨(dú)立的試驗(yàn)取平均。

預(yù)訓(xùn)練速度????表8,我們比較Densel和MoCo-v2在訓(xùn)練速度方面的差異。當(dāng)分別在COCO和ImageNet上進(jìn)行預(yù)訓(xùn)練時(shí),Densel每一個(gè)epoch僅慢1s和6s。開銷小于1%。它有力地證明了我們方法是很快的。

表8?預(yù)訓(xùn)練速度比較。報(bào)告每個(gè)epoch的訓(xùn)練時(shí)間。我們在同一臺8-GPU機(jī)器上測量結(jié)果。對于COCO或ImageNet上的預(yù)訓(xùn)練,DenseCL引入的訓(xùn)練時(shí)間開銷小于1%。

4.4. 關(guān)于DenseCL的討論

為了進(jìn)一步研究Densel的工作原理,在本節(jié)中,我們將Densel中學(xué)習(xí)到的密集對應(yīng)進(jìn)行可視化。同時(shí)還討論了預(yù)訓(xùn)練過程中的雞與蛋問題。

密集對應(yīng)的可視化。????我們從兩個(gè)方面對密集的對應(yīng)關(guān)系進(jìn)行了可視化:比較從不同的預(yù)訓(xùn)練方法(MoCo-v2和DenseCL)中提取的最終對應(yīng)關(guān)系,以及比較不同的訓(xùn)練狀態(tài)(從隨機(jī)初始化到良好訓(xùn)練的DenseCL)。給定同一幅圖像的兩個(gè)視圖,我們使用預(yù)訓(xùn)練好的主干提取特征F_1F_2。對于F_1中的每個(gè)特征向量,我們在F_2中找到對應(yīng)的具有最高余弦相似度的特征向量。如果從F_2F_1也是這樣的匹配,這個(gè)匹配就被保留(The match is kept if the same match holds from F2 to F1)。每個(gè)匹配被分配一個(gè)平均相似度。在圖4中,我們可視化了高相似度匹配(即,相似度大于等于0.9)。如圖所示,DenseCL提取了比其基線更多的高相似度匹配。從同一幅圖像的兩個(gè)視圖中提取的局部特征應(yīng)該是相似的,這與我們的意圖是一致的。

圖4? ?密集對應(yīng)的可視化。利用200epoch的ImageNet預(yù)訓(xùn)練模型,提取同一幅圖像的兩個(gè)視圖之間的對應(yīng)關(guān)系。與MoCo-v2相比,DenseCL提取了更多的高相似度匹配。最好在屏幕上放大觀看

圖5顯示了對應(yīng)關(guān)系是如何隨著訓(xùn)練時(shí)間而變化的。隨機(jī)初始化模型提取隨機(jī)噪聲匹配。隨著訓(xùn)練時(shí)間的增加,匹配變得更加精確。

圖5?從隨機(jī)初始化中提取的密集對應(yīng)與訓(xùn)練良好的DenseCL的比較。利用ImageNet預(yù)訓(xùn)練模型,提取同一幅圖像的兩個(gè)視圖之間的對應(yīng)關(guān)系。所有的匹配都被可視化了,沒有使用閾值。

雞和蛋的問題。????在我們的初步實(shí)驗(yàn)中,我們發(fā)現(xiàn)如果將lambda設(shè)置為1.0,即去掉全局對比學(xué)習(xí),只使用密集對比學(xué)習(xí),則訓(xùn)練損失不會(huì)收斂。這可能是因?yàn)樵谟?xùn)練開始時(shí),隨機(jī)初始化的模型無法在視圖之間生成正確的對應(yīng)關(guān)系。因此,如果提取不正確的對應(yīng)關(guān)系,就無法學(xué)習(xí)到好的特征,如果特征不夠好,就無法獲得正確的對應(yīng)關(guān)系,這是一個(gè)雞和蛋的問題。如圖5所示,大多數(shù)匹配在隨機(jī)初始化時(shí)是不正確的。核心解決方案是在培訓(xùn)開始時(shí)提供指導(dǎo),以打破僵局。我們介紹三種不同的解決方案來解決這個(gè)問題。1) 使用預(yù)訓(xùn)練的模型的權(quán)重初始化模型;2)在開始時(shí)設(shè)置預(yù)熱期,在此期間將λ設(shè)置為0;3)在整個(gè)訓(xùn)練期間都設(shè)置\lambda \in (0,1)。三種方案都很好地解決了這個(gè)問題。第二個(gè)方案報(bào)告在表4中,在第一個(gè)10k迭代之后,\lambda從0更改為1.0。為了簡單起見,我們采用最后一個(gè)作為默認(rèn)設(shè)置。

5 結(jié)論

在這項(xiàng)工作中,我們開發(fā)了一個(gè)簡單有效的自監(jiān)督學(xué)習(xí)框架DenseCL,它是為密集預(yù)測任務(wù)而設(shè)計(jì)和優(yōu)化的。提出了一種新的對比學(xué)習(xí)范式,在像素(或局部特征)水平上進(jìn)行密集的成對的對比學(xué)習(xí)。我們的方法在很大程度上彌補(bǔ)了自監(jiān)督預(yù)訓(xùn)練和密集預(yù)測任務(wù)之間的差距,并且在各種任務(wù)和數(shù)據(jù)集上都有顯著的改進(jìn),包括PASCAL VOC對象檢測、COCO對象檢測、COCO實(shí)例分割、PASCAL VOC語義分割和Cityscapes語義分割。我們期望所提出的有效和高效的自監(jiān)督預(yù)訓(xùn)練技術(shù)能夠應(yīng)用于更大規(guī)模的數(shù)據(jù)中,以充分發(fā)揮其潛力,同時(shí)也希望DenseCL預(yù)訓(xùn)練模型能夠在計(jì)算機(jī)視覺中的許多密集預(yù)測任務(wù)中完全取代監(jiān)督預(yù)訓(xùn)練模型。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容