計(jì)算機(jī)視覺(jué)中的Transformer
點(diǎn)擊上方“小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
推薦閱讀
本文轉(zhuǎn)載自AI公園
作者:Cheng He
編譯:ronghuaiyang
將Transformer應(yīng)用到CV任務(wù)中現(xiàn)在越來(lái)越多了,這里整理了一些相關(guān)的進(jìn)展給大家。

Transformer結(jié)構(gòu)已經(jīng)在許多自然語(yǔ)言處理任務(wù)中取得了最先進(jìn)的成果。Transformer 模型的一個(gè)主要的突破可能是今年年中發(fā)布的GPT-3,被授予NeurIPS2020“最佳論文“。

在計(jì)算機(jī)視覺(jué)領(lǐng)域,CNN自2012年以來(lái)已經(jīng)成為視覺(jué)任務(wù)的主導(dǎo)模型。隨著出現(xiàn)了越來(lái)越高效的結(jié)構(gòu),計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理越來(lái)越收斂到一起,使用Transformer來(lái)完成視覺(jué)任務(wù)成為了一個(gè)新的研究方向,以降低結(jié)構(gòu)的復(fù)雜性,探索可擴(kuò)展性和訓(xùn)練效率。
以下是幾個(gè)在相關(guān)工作中比較知名的項(xiàng)目:
-
DETR(End-to-End Object Detection with Transformers),使用Transformers進(jìn)行物體檢測(cè)和分割。 -
Vision Transformer (AN IMAGE IS WORTH 16X16 WORDS: Transformer FOR IMAGE RECOGNITION AT SCALE),使用Transformer 進(jìn)行圖像分類。 -
Image GPT(Generative Pretraining from Pixels),使用Transformer進(jìn)行像素級(jí)圖像補(bǔ)全,就像其他GPT文本補(bǔ)全一樣。 -
End-to-end Lane Shape Prediction with Transformers,在自動(dòng)駕駛中使用Transformer進(jìn)行車道標(biāo)記檢測(cè)
結(jié)構(gòu)
總的來(lái)說(shuō),在CV中采用Transformer的相關(guān)工作中主要有兩種模型架構(gòu)。一種是純Transformer結(jié)構(gòu),另一種是將CNNs/主干網(wǎng)與Transformer相結(jié)合的混合結(jié)構(gòu)。
-
純Transformer -
混合型:(CNNs+ Transformer)
Vision Transformer是基于完整的自注意力的Transformer結(jié)構(gòu)沒(méi)有使用CNN,而DETR是使用混合模型結(jié)構(gòu)的一個(gè)例子,它結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)(CNNs)和Transformer。
一些問(wèn)題
-
為什么要在CV中使用Transformer?如何使用 -
benchmark上的結(jié)果是什么樣的? -
*What are the constraints and challenges of using Transformer in CV?* -
哪種結(jié)構(gòu)更高效和靈活?為什么?
你會(huì)在ViT、DETR和Image GPT的下面的深入研究中找到答案。
Vision Transformer
Vision Transformer(ViT)將純Transformer架構(gòu)直接應(yīng)用到一系列圖像塊上進(jìn)行分類任務(wù),可以取得優(yōu)異的結(jié)果。它在許多圖像分類任務(wù)上也優(yōu)于最先進(jìn)的卷積網(wǎng)絡(luò),同時(shí)所需的預(yù)訓(xùn)練計(jì)算資源大大減少(至少減少了4倍)。

圖像序列patches
它們是如何將圖像分割成固定大小的小塊,然后將這些小塊的線性投影連同它們的圖像位置一起輸入變壓器的。然后剩下的步驟就是一個(gè)干凈的和標(biāo)準(zhǔn)的Transformer編碼器和解碼器。
在圖像patch的嵌入中加入位置嵌入,通過(guò)不同的策略在全局范圍內(nèi)保留空間/位置信息。在本文中,他們嘗試了不同的空間信息編碼方法,包括無(wú)位置信息編碼、1D/2D位置嵌入編碼和相對(duì)位置嵌入編碼。

一個(gè)有趣的發(fā)現(xiàn)是,與一維位置嵌入相比,二維位置嵌入并沒(méi)有帶來(lái)顯著的性能提升。
數(shù)據(jù)集
該模型是從多個(gè)大型數(shù)據(jù)集上刪除了重復(fù)數(shù)據(jù)預(yù)訓(xùn)練得到的,以支持微調(diào)(較小數(shù)據(jù)集)下游任務(wù)。
-
ILSVRC-2012 ImageNet數(shù)據(jù)集有1k類和130萬(wàn)圖像 -
ImageNet-21k具有21k類和1400萬(wàn)圖像 -
JFT擁有18k類和3.03億高分辨率圖像
模型的變體

像其他流行的Transformer 模型(GPT、BERT、RoBERTa)一樣,ViT(vision transformer)也有不同的模型尺寸(基礎(chǔ)型、大型和巨大型)和不同數(shù)量的transformer層和heads。例如,ViT-L/16可以被解釋為一個(gè)大的(24層)ViT模型,具有16×16的輸入圖像patch大小。
注意,輸入的patch尺寸越小,計(jì)算模型就越大,這是因?yàn)檩斎氲膒atch數(shù)目N = HW/P*P,其中(H,W)為原始圖像的分辨率,P為patch圖像的分辨率。這意味著14 x 14的patch比16 x 16的圖像patch在計(jì)算上更昂貴。
Benchmark結(jié)果

以上結(jié)果表明,該模型在多個(gè)流行的基準(zhǔn)數(shù)據(jù)集上優(yōu)于已有的SOTA模型。
在JFT-300M數(shù)據(jù)集上預(yù)訓(xùn)練的vision transformer(ViT-H/14, ViT-L/16)優(yōu)于所有測(cè)試數(shù)據(jù)集上的ResNet模型(ResNet152x4,在相同的JFT-300M數(shù)據(jù)集上預(yù)訓(xùn)練),同時(shí)在預(yù)訓(xùn)練期間占用的計(jì)算資源(TPUv3 core days)大大減少。即使是在ImageNet-21K上預(yù)訓(xùn)練的ViT也比基線表現(xiàn)更好。
模型性能 vs 數(shù)據(jù)集大小

上圖顯示了數(shù)據(jù)集大小對(duì)模型性能的影響。當(dāng)預(yù)訓(xùn)練數(shù)據(jù)集的大小較小時(shí),ViT的表現(xiàn)并不好,當(dāng)訓(xùn)練數(shù)據(jù)充足時(shí),它的表現(xiàn)優(yōu)于以前的SOTA。
哪種結(jié)構(gòu)更高效?
如一開(kāi)始所提到的,使用transformer進(jìn)行計(jì)算機(jī)視覺(jué)的架構(gòu)設(shè)計(jì)也有不同,有的用Transformer完全取代CNNs (ViT),有的部分取代,有的將CNNs與transformer結(jié)合(DETR)。下面的結(jié)果顯示了在相同的計(jì)算預(yù)算下各個(gè)模型結(jié)構(gòu)的性能。

以上實(shí)驗(yàn)表明:
-
純Transformer架構(gòu)(ViT)在大小和計(jì)算規(guī)模上都比傳統(tǒng)的CNNs (ResNet BiT)更具效率和可擴(kuò)展性 -
混合架構(gòu)(CNNs + Transformer)在較小的模型尺寸下性能優(yōu)于純Transformer,當(dāng)模型尺寸較大時(shí)性能非常接近
ViT (vision transformer)的重點(diǎn)
-
使用Transformer架構(gòu)(純或混合) -
輸入圖像由多個(gè)patch平鋪開(kāi)來(lái) -
在多個(gè)圖像識(shí)別基準(zhǔn)上擊敗了SOTA -
在大數(shù)據(jù)集上預(yù)訓(xùn)練更便宜 -
更具可擴(kuò)展性和計(jì)算效率
DETR
DETR是第一個(gè)成功地將Transformer作為pipeline中的主要構(gòu)建塊的目標(biāo)檢測(cè)框架。它與以前的SOTA方法(高度優(yōu)化的Faster R-CNN)的性能匹配,具有更簡(jiǎn)單和更靈活的pipeline。

上圖為DETR,一種以CNN和Transformer為主要構(gòu)建塊的混合pipeline。以下是流程:
-
CNN被用來(lái)學(xué)習(xí)圖像的二維表示并提取特征 -
CNN的輸出是扁平化的,并輔以位置編碼,以饋入標(biāo)準(zhǔn)Transformer的編碼器 -
Transformer的解碼器通過(guò)輸出嵌入到前饋網(wǎng)絡(luò)(FNN)來(lái)預(yù)測(cè)類別和包圍框
更簡(jiǎn)單的Pipeline

傳統(tǒng)的目標(biāo)檢測(cè)方法,如Faster R-CNN,有多個(gè)步驟進(jìn)行錨的生成和NMS。DETR放棄了這些手工設(shè)計(jì)的組件,顯著地簡(jiǎn)化了物體檢測(cè)pipeline。
當(dāng)擴(kuò)展到全景分割時(shí),驚人的結(jié)果
在這篇論文中,他們進(jìn)一步擴(kuò)展了DETR的pipeline用于全景分割任務(wù),這是一個(gè)最近流行和具有挑戰(zhàn)性的像素級(jí)識(shí)別任務(wù)。為了簡(jiǎn)單解釋全景分割的任務(wù),它統(tǒng)一了2個(gè)不同的任務(wù),一個(gè)是傳統(tǒng)的語(yǔ)義分割(為每個(gè)像素分配類標(biāo)簽),另一個(gè)是實(shí)例分割(檢測(cè)并分割每個(gè)對(duì)象的實(shí)例)。使用一個(gè)模型架構(gòu)來(lái)解決兩個(gè)任務(wù)(分類和分割)是非常聰明的想法。

上圖顯示了全景分割的一個(gè)例子。通過(guò)DETR的統(tǒng)一pipeline,它超越了非常有競(jìng)爭(zhēng)力的基線。
注意力可視化
下圖顯示了Transformer解碼器對(duì)預(yù)測(cè)的注意力。不同物體的注意力分?jǐn)?shù)用不同的顏色表示。
通過(guò)觀察顏色/注意力,你會(huì)驚訝于模型的能力,通過(guò)自注意在全局范圍內(nèi)理解圖像,解決重疊的包圍框的問(wèn)題。尤其是斑馬腿上的橙色,盡管它們與藍(lán)色和綠色局部重疊,但還是可以很好的分類。

DETR的要點(diǎn)
-
使用Transformer得到更簡(jiǎn)單和靈活的pipeline -
在目標(biāo)檢測(cè)任務(wù)上可以匹配SOTA -
并行的更有效的直接輸出最終的預(yù)測(cè)集 -
統(tǒng)一的目標(biāo)檢測(cè)和分割架構(gòu) -
大目標(biāo)的檢測(cè)性能顯著提高,但小目標(biāo)檢測(cè)性能下降
Image GPT
Image GPT是一個(gè)在像素序列上用圖像補(bǔ)全訓(xùn)練的GPT-2 transformer 模型。就像一般的預(yù)訓(xùn)練的語(yǔ)言模型,它被設(shè)計(jì)用來(lái)學(xué)習(xí)高質(zhì)量的無(wú)監(jiān)督圖像表示。它可以在不知道輸入圖像二維結(jié)構(gòu)的情況下自回歸預(yù)測(cè)下一個(gè)像素。
來(lái)自預(yù)訓(xùn)練的圖像GPT的特征在一些分類基準(zhǔn)上取得了最先進(jìn)的性能,并在ImageNet上接近最先進(jìn)的無(wú)監(jiān)督精度。
下圖顯示了由人工提供的半張圖像作為輸入生成的補(bǔ)全模型,隨后是來(lái)自模型的創(chuàng)造性補(bǔ)全。

Image GPT的要點(diǎn):
-
使用與NLP中的GPT-2相同的transformer架構(gòu) -
無(wú)監(jiān)督學(xué)習(xí),無(wú)需人工標(biāo)記 -
需要更多的計(jì)算來(lái)生成有競(jìng)爭(zhēng)力的表示 -
學(xué)習(xí)到的特征在低分辨率數(shù)據(jù)集的分類基準(zhǔn)上實(shí)現(xiàn)了SOTA性能
總結(jié)
Transformer在自然語(yǔ)言處理中的巨大成功已經(jīng)在計(jì)算機(jī)視覺(jué)領(lǐng)域得到了探索,并成為一個(gè)新的研究方向。
-
Transformer被證明是一個(gè)簡(jiǎn)單和可擴(kuò)展的框架,用于計(jì)算機(jī)視覺(jué)任務(wù),如圖像識(shí)別、分類和分割,或僅僅學(xué)習(xí)全局圖像表示。 -
與傳統(tǒng)方法相比,在訓(xùn)練效率上具有顯著優(yōu)勢(shì)。 -
在架構(gòu)上,可以采用純Transformer的方式使用,也可以與cnn結(jié)合使用混合的方式使用。 -
它也面臨著挑戰(zhàn),比如在DETR中檢測(cè)小目標(biāo)的性能較低,在Vision Transformer (ViT)中,當(dāng)預(yù)訓(xùn)練數(shù)據(jù)集較小時(shí),性能也不是很好。 -
Transformer正在成為學(xué)習(xí)序列數(shù)據(jù)(包括文本、圖像和時(shí)間序列數(shù)據(jù))的更通用的框架。
英文原文:https://towardsdatascience.com/transformer-in-cv-bbdb58bf335e
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


