圖靈獎(jiǎng)得主 Geoffrey Hinton 和谷歌研究院的幾位研究者近日提出了一個(gè)用于目標(biāo)檢測(cè)的簡(jiǎn)單通用框架 Pix2Seq。與顯式集成相關(guān)任務(wù)先驗(yàn)知識(shí)的現(xiàn)有方法不同,該框架簡(jiǎn)單地將目標(biāo)檢測(cè)轉(zhuǎn)換為以觀察到的像素輸入為條件的語(yǔ)言建模任務(wù)。其中,將對(duì)目標(biāo)的描述(例如邊界框和類標(biāo)簽)表示為離散 token 的序列,并且該研究還訓(xùn)練神經(jīng)網(wǎng)絡(luò)來(lái)感知圖像并生成所需的序列。

論文地址:https://arxiv.org/abs/2109.10852
該方法主要基于一種直覺(jué),即如果神經(jīng)網(wǎng)絡(luò)知道目標(biāo)的位置和內(nèi)容,那么就只需要教它如何讀取目標(biāo)。除了使用特定于任務(wù)的數(shù)據(jù)增強(qiáng)之外,該方法對(duì)任務(wù)做出了最少的假設(shè)。但在 COCO 數(shù)據(jù)集上的測(cè)試結(jié)果表明,新方法完全可以媲美高度專業(yè)化和優(yōu)化過(guò)的檢測(cè)算法。
Pix2Seq 框架

該研究提出的 Pix2Seq 框架將目標(biāo)檢測(cè)作為語(yǔ)言建模任務(wù),其中以像素輸入為條件。上圖所描述的 Pix2Seq 架構(gòu)和學(xué)習(xí)過(guò)程有四個(gè)主要組成部分,如下圖 2 所示,包括:
- 圖像增強(qiáng):在訓(xùn)練計(jì)算機(jī)視覺(jué)模型中很常見(jiàn),該研究使用圖像增強(qiáng)來(lái)豐富一組固定的訓(xùn)練樣例(例如,隨機(jī)縮放和剪裁)。
- 序列構(gòu)建和增強(qiáng):由于圖像的目標(biāo)注釋通常表征為一組邊界框和類標(biāo)簽,該研究將它們轉(zhuǎn)換為離散 token 的序列。
- 架構(gòu):該研究使用編碼器 - 解碼器的模型架構(gòu),其中編碼器感知像素輸入,解碼器生成目標(biāo)序列(一次一個(gè) token)。
- 目標(biāo) / 損失函數(shù):該模型經(jīng)過(guò)訓(xùn)練以最大化 token 的對(duì)數(shù)似然。

基于目標(biāo)描述的序列構(gòu)建
在常見(jiàn)的目標(biāo)檢測(cè)數(shù)據(jù)集中,例如 Pascal VOC、COCO 等,圖像中往往具有數(shù)量不一的目標(biāo),這些目標(biāo)被表征一組邊界框和類標(biāo)簽,Pix2Seq 將它們表示為離散 token 的序列。
類標(biāo)簽自然地被表示為離散 token,但邊界框不是。邊界框由其兩個(gè)角點(diǎn)(即左上角和右下角)或其中心點(diǎn)加上高度和寬度確定。該研究提出離散化用于指定角點(diǎn)的 x、y 坐標(biāo)的連續(xù)數(shù)字。具體來(lái)說(shuō),一個(gè)目標(biāo)被表征為一個(gè)由 5 個(gè)離散的 token 組成的序列,即 [y_min, x_min, y_max, x_max, c],其中每個(gè)連續(xù)的角坐標(biāo)被均勻地離散為[1, n_bins] 之間的一個(gè)整數(shù),c 為類索引。該研究對(duì)所有 token 使用共享詞表,因此詞匯量大小等于 bin 的數(shù)量 + 類(class)的數(shù)量。邊界框的這種量化方案使得在實(shí)現(xiàn)高精度的同時(shí)僅使用較小的詞匯量。例如,一張 600×600 的圖像只需要 600 個(gè) bin 即可實(shí)現(xiàn)零量化誤差。這比具有 32K 或更大詞匯量的現(xiàn)代語(yǔ)言模型小得多。不同級(jí)別的量化對(duì)邊界框的影響如下圖 3 所示。

鑒于每個(gè)目標(biāo)的描述表達(dá)為一個(gè)短的離散序列,接下來(lái)需要將多個(gè)目標(biāo)的描述序列化,以構(gòu)建一個(gè)給定圖像的單一序列。因?yàn)槟繕?biāo)的順序?qū)τ跈z測(cè)任務(wù)本身并不重要,因此研究者使用了一種隨機(jī)排序策略(每次顯示圖像時(shí)目標(biāo)的順序是隨機(jī)化的)。此外,他們也探索了其他確定性排序策略,但是假設(shè)隨機(jī)排序策略和任何確定性排序是一樣有效的,給定一個(gè)可用的神經(jīng)網(wǎng)絡(luò)和自回歸模型(在這里,網(wǎng)絡(luò)可以學(xué)習(xí)根據(jù)觀察到的目標(biāo)來(lái)為剩余目標(biāo)的分布建模)。
最后,因?yàn)椴煌膱D像通常有不同的目標(biāo)數(shù)量,所生成的序列會(huì)有不同的長(zhǎng)度。為了表示序列的結(jié)束,研究者合并了一個(gè) EOS token。
下圖 4 展示了使用不同排序策略的序列構(gòu)建過(guò)程。

架構(gòu)、目標(biāo)和推理
此處把從目標(biāo)描述構(gòu)建的序列作為一種「方言」來(lái)處理,轉(zhuǎn)向在語(yǔ)言建模中行之有效的通用體系架構(gòu)和目標(biāo)函數(shù)。
這里使用了一種編解碼器架構(gòu)。編碼器可以是通用的感知像素圖像編碼器,并將它們編碼成隱藏的表征形式,比如 ConvNet (LeCun et al. ,1989; Krizhevsky et al. ,2012; He et al. ,2016) ,Transformer (Vaswani et al. ,2017; Dosovitskiy et al. ,2020) ,或者它們的組合(Carion et al. ,2020)。
在生成上,研究者使用了廣泛用于現(xiàn)代語(yǔ)言建模 (Radford 等人,2018; Raffel 等人,2019) 的 Transformer 解碼器。它每次生成一個(gè) token,取決于前面的 token 和編碼的圖像表征。這消除了目標(biāo)檢測(cè)器結(jié)構(gòu)中的復(fù)雜性和自定義,例如邊界框提名(bounding box proposal)和邊界框回歸(bounding box regression),因?yàn)?token 是由一個(gè)帶 softmax 的單詞表生成的。
與語(yǔ)言建模類似,給定一個(gè)圖像和前面的 token,Pix2Seq 被訓(xùn)練用來(lái)預(yù)測(cè) token,其具有最大似然損失,即

其中 x 是給定的圖像,y 和 y^~ 分別是相關(guān)的輸入序列和目標(biāo)序列,l 是目標(biāo)序列長(zhǎng)度。在標(biāo)準(zhǔn)語(yǔ)言建模中,y 和 y^~ 是相同的。此外,wj 是序列中為 j-th token 預(yù)先分配的權(quán)重。我們?cè)O(shè)置 wj = 1,something j,但是可以根據(jù) token 的類型 (如坐標(biāo) vs 類 token) 或相應(yīng)目標(biāo)的大小來(lái)權(quán)重 token。
在推理過(guò)程中,研究者從模型似然中進(jìn)行了 token 采樣,即

。也可以通過(guò)使用最大似然性 (arg max 采樣) 的 token,或者使用其他隨機(jī)采樣技術(shù)來(lái)實(shí)現(xiàn)。研究者發(fā)現(xiàn)使用核采樣 (Holtzman et al., 2019) 比 arg max 采樣 (附錄 b) 更能提高召回率。在生成 EOS token 時(shí),序列結(jié)束。一旦序列生成,它直接提取和反量化了目標(biāo)描述(即獲得預(yù)測(cè)邊界框和類標(biāo)簽)。
序列增強(qiáng)
EOS token 會(huì)允許模型決定何時(shí)終止,但在實(shí)踐中,發(fā)現(xiàn)模型往往在沒(méi)預(yù)測(cè)所有目標(biāo)的情況下終止。這可能是由于:
- 注釋噪音(例如,注釋者沒(méi)有標(biāo)識(shí)所有的目標(biāo)) ;
- 識(shí)別或本地化某些目標(biāo)時(shí)的不確定性。因?yàn)檎倩芈屎蜏?zhǔn)確率對(duì)于目標(biāo)檢測(cè)來(lái)說(shuō)都很重要,一個(gè)模型如果沒(méi)有很好的召回率就不可能獲得很好的整體性能(例如,平均準(zhǔn)確率)。
獲得更高召回率的一個(gè)技巧是通過(guò)人為地降低其可能性來(lái)延遲 EOS token 的采樣。然而,這往往會(huì)導(dǎo)致噪聲和重復(fù)預(yù)測(cè)。
序列增強(qiáng)引入的修改如下圖 5 所示,詳細(xì)情況如下:

研究者首先通過(guò)以下兩種方式創(chuàng)建合成噪聲目標(biāo)來(lái)增加輸入序列:
- 向現(xiàn)有的地面真值目標(biāo)添加噪聲(例如,隨機(jī)縮放或移動(dòng)它們的包圍盒) ;
- 生成完全隨機(jī)的邊框(帶有隨機(jī)相關(guān)的類標(biāo)簽)。值得注意的是,其中一些噪聲目標(biāo)可能與一些 ground-truth 目標(biāo)相同或重疊,模擬噪聲和重復(fù)預(yù)測(cè),如下圖 6 所示。

變化推理。使用序列增強(qiáng),研究者能夠大幅度地延遲 EOS token,提升召回率,并且不會(huì)增加噪聲和重復(fù)預(yù)測(cè)的頻率,因此,他們令模型預(yù)測(cè)到最大長(zhǎng)度,產(chǎn)生一個(gè)固定大小的目標(biāo)列表。當(dāng)從生成的序列中提取邊界框和類標(biāo)簽時(shí),研究者用在所有真實(shí)類標(biāo)簽中具有最高似然的真實(shí)類標(biāo)簽替換噪聲類標(biāo)簽。他們還使用選定類標(biāo)簽的似然作為目標(biāo)的排名分?jǐn)?shù)。
實(shí)驗(yàn)結(jié)果
研究者主要與兩個(gè)被廣泛認(rèn)可的基線方法進(jìn)行比較,分別是 Facebook AI 于 2020 年提出的 DETR 和更早期的 Faster R-CNN。
結(jié)果如下表 1 所示,Pix2Seq 實(shí)現(xiàn)了媲美這兩個(gè)基線方法的性能,其中在小型和中型目標(biāo)上的表現(xiàn)與 R-CNN 相當(dāng),但在大型目標(biāo)上表現(xiàn)更好。與 DETR 相比,Pix2Seq 在中型和大型目標(biāo)上表現(xiàn)相當(dāng)或略差,但在小型目標(biāo)上表現(xiàn)明顯更好(4-5 AP)。

序列構(gòu)成的消融實(shí)驗(yàn)
下圖 7a 探索了坐標(biāo)量化對(duì)性能的影響。在這一消融實(shí)驗(yàn)中,研究者考慮使用了 640 像素的圖像。該圖表表明量化至 500 或以上 bin 就足夠了,500 個(gè) bin(每個(gè) bin 大約 1.3 個(gè)像素)時(shí)不會(huì)引入顯著的近似誤差。事實(shí)上,只要 bin 的數(shù)量與像素?cái)?shù)(沿著圖像的最長(zhǎng)邊)一樣多,就不會(huì)出現(xiàn)由邊界框坐標(biāo)量化導(dǎo)致的顯著誤差。
訓(xùn)練期間,研究者還考慮了序列構(gòu)成中的不同目標(biāo)排序策略。這些包括 1)隨機(jī)、2)區(qū)域(即目標(biāo)大小遞減)、3)dist2ori(即邊界框左上角到原點(diǎn)的距離)、4)類(名稱)、5)類+區(qū)域(即目標(biāo)先按類排序,如果同類有多個(gè)目標(biāo),則按區(qū)域排序)、6)類+dist2ori。
下圖 7b 展示了平均精度(AP),7c 展示了 top-100 預(yù)測(cè)的平均召回率(AR)。在精度和召回率這兩方面,隨機(jī)排序均實(shí)現(xiàn)了最佳性能。研究者推測(cè),使用確定性排序,模型可能難以從先前流失目標(biāo)的錯(cuò)誤中恢復(fù)過(guò)來(lái),而使用隨機(jī)排序,則可以在之后檢索到它們。

增強(qiáng)的消融實(shí)驗(yàn)
研究者主要使用的圖像增強(qiáng)方法是尺度抖動(dòng)(scale jittering),因此比較了不同的尺度抖動(dòng)強(qiáng)度(1:1 表示無(wú)尺度抖動(dòng))。下圖 8a 展示了模型在沒(méi)有合適尺度抖動(dòng)時(shí)會(huì)出現(xiàn)過(guò)擬合(即驗(yàn)證 AP 低但訓(xùn)練 AP 高)。研究者預(yù)計(jì),強(qiáng)大的圖像增強(qiáng)在這項(xiàng)研究中非常有用,這是因?yàn)?Pix2Seq 框架對(duì)任務(wù)做了最小假設(shè)。
研究者還探究了「使用和不使用序列增強(qiáng)訓(xùn)練」的模型性能變化。對(duì)于未使用序列增強(qiáng)訓(xùn)練的模型,他們?cè)谕评磉^(guò)程中調(diào)整 EOS token 似然的偏移量,以運(yùn)行模型做更多預(yù)測(cè),從而產(chǎn)生一系列召回率。如下圖 8b 所示,在無(wú)序列增強(qiáng)時(shí),當(dāng) AR 增加時(shí),模型會(huì)出現(xiàn)顯著的 AP 下降。使用序列增強(qiáng)時(shí),模型能夠避免噪聲和重復(fù)預(yù)測(cè),實(shí)現(xiàn)高召回率和高精度。

解碼器交叉注意力地圖的可視化
在生成一個(gè)新的 token 時(shí),基于 Transformer 的解碼器在前面的 token 上使用自注意力,在編碼的視覺(jué)特征圖上使用交叉注意力。研究者希望在模型預(yù)測(cè)新的 token 時(shí)可視化交叉注意力(層和頭的平均值)。
下圖 9 展示了生成前幾個(gè) token 時(shí)的交叉注意力圖,可以看到,在預(yù)測(cè)首個(gè)坐標(biāo) token(即 y_min)時(shí),注意力呈現(xiàn)出了非常強(qiáng)的多樣性,但隨后很快集中并固定在目標(biāo)上。

研究者進(jìn)一步探索了模型「通過(guò)坐標(biāo)關(guān)注指定區(qū)域」的能力。他們將圖像均勻地劃分為 N×N 的矩形區(qū)域網(wǎng)格,每個(gè)區(qū)域由邊界框的序列坐標(biāo)制定。然后在讀取每個(gè)區(qū)域的坐標(biāo)序列之后,他們將解碼器的注意力在視覺(jué)特征圖上實(shí)現(xiàn)可視化。最后,他們打亂圖像的像素以消除對(duì)現(xiàn)有目標(biāo)的干擾,并為了清晰起見(jiàn)消除了 2%的 top 注意力。
有趣的是,如下圖 10 所示,模型似乎可以在不同的尺度上關(guān)注制定區(qū)域。




































