將Transformer套用到CV任務中現在越來越多了,這裏整理了一些相關的進展給大家。這裏CVer先推薦大家看一下最近的兩篇視覺Transformer綜述:
導讀
將Transformer套用到CV任務中現在越來越多了,這裏整理了一些相關的進展給大家。
Transformer結構已經在許多自然語言處理任務中取得了最先進的成果。Transformer 模型的一個主要的突破可能是今年年中釋出的GPT-3,被授予NeurIPS2020「最佳論文「。
在電腦視覺領域,CNN自2012年以來已經成為視覺任務的主導模型。隨著出現了越來越高效的結構,電腦視覺和自然語言處理越來越收斂到一起,使用Transformer來完成視覺任務成為了一個新的研究方向,以降低結構的復雜性,探索可延伸性和訓練效率。
以下是幾個在相關工作中比較知名的專案:
結構
總的來說,在CV中采用Transformer的相關工作中主要有兩種模型架構。一種是純Transformer結構,另一種是將CNNs/主幹網與Transformer相結合的混合結構。
Vision Transformer 是基於完整的自註意力的Transformer結構沒有使用CNN,而 DETR 是使用混合模型結構的一個例子,它結合了摺積神經網絡(CNNs)和Transformer。
一些問題
你會在ViT、DETR和Image GPT的下面的深入研究中找到答案。
Vision Transformer
Vision Transformer(ViT)將純Transformer架構直接套用到一系列影像塊上進行分類任務,可以取得優異的結果。它在許多影像分類任務上也優於最先進的摺積網絡,同時所需的預訓練計算資源大大減少(至少減少了4倍)。
影像序列patches
它們是如何將影像分割成固定大小的小塊,然後將這些小塊的線性投影連同它們的影像位置一起輸入變壓器的。然後剩下的步驟就是一個幹凈的和標準的Transformer編碼器和解碼器。
在影像patch的嵌入中加入位置嵌入,透過不同的策略在全域範圍內保留空間/位置資訊。在本文中,他們嘗試了不同的空間資訊編碼方法,包括無位置資訊編碼、1D/2D位置嵌入編碼和相對位置嵌入編碼。
一個有趣的發現是,與一維位置嵌入相比,二維位置嵌入並沒有帶來顯著的效能提升。
數據集
該模型是從多個大型數據集上刪除了重復數據預訓練得到的,以支持微調(較小數據集)下遊任務。
模型的變體
像其他流行的Transformer 模型(GPT、BERT、RoBERTa)一樣,ViT(vision transformer)也有不同的模型尺寸(基礎型、大型和巨大型)和不同數量的transformer層和heads。例如,ViT-L/16可以被解釋為一個大的(24層)ViT模型,具有16×16的輸入影像patch大小。
註意,輸入的patch尺寸越小,計算模型就越大,這是因為輸入的patch數目N = HW/P*P,其中(H,W)為原始影像的分辨率,P為patch影像的分辨率。這意味著14 x 14的patch比16 x 16的影像patch在計算上更昂貴。
Benchmark結果
以上結果表明,該模型在多個流行的基準數據集上優於已有的SOTA模型。
在JFT-300M數據集上預訓練的vision transformer(ViT-H/14, ViT-L/16)優於所有測試數據集上的ResNet模型(ResNet152x4,在相同的JFT-300M數據集上預訓練),同時在預訓練期間占用的計算資源(TPUv3 core days)大大減少。即使是在ImageNet-21K上預訓練的ViT也比基線表現更好。
模型效能 vs 數據集大小
上圖顯示了數據集大小對模型效能的影響。當預訓練數據集的大小較小時,ViT的表現並不好,當訓練數據充足時,它的表現優於以前的SOTA。
哪種結構更高效?
如一開始所提到的,使用transformer進行電腦視覺的架構設計也有不同,有的用Transformer完全取代CNNs (ViT),有的部份取代,有的將CNNs與transformer結合(DETR)。下面的結果顯示了在相同的計算預算下各個模型結構的效能。
以上實驗表明:
ViT (vision transformer)的重點
DETR
DETR是第一個成功地將Transformer作為pipeline中的主要構建塊的 目標檢測 框架。它與以前的SOTA方法(高度最佳化的Faster R-CNN)的效能匹配,具有更簡單和更靈活的pipeline。
上圖為DETR,一種以CNN和Transformer為主要構建塊的混合pipeline。以下是流程:
- CNN被用來學習影像的二維表示並提取特征
- CNN的輸出是扁平化的,並輔以位置編碼,以饋入標準Transformer的編碼器
- Transformer的解碼器透過輸出嵌入到前饋網絡(FNN)來預測類別和包圍框
更簡單的Pipeline
傳統的目標檢測方法,如Faster R-CNN,有多個步驟進行 錨的生成 和 NMS 。DETR放棄了這些手工設計的元件,顯著地簡化了物體檢測pipeline。
當擴充套件到全景分割時,驚人的結果
在這篇論文中,他們進一步擴充套件了DETR的pipeline用於全景分割任務,這是一個最近流行和具有挑戰性的像素級辨識任務。為了簡單解釋全景分割的任務,它統一了2個不同的任務,一個是傳統的 語意分割 (為每個像素分配類標簽),另一個是 例項分割 (檢測並分割每個物件的例項)。使用一個模型架構來解決兩個任務(分類和分割)是非常聰明的想法。
上圖顯示了全景分割的一個例子。透過DETR的統一pipeline,它超越了非常有競爭力的基線。
註意力視覺化
下圖顯示了Transformer解碼器對預測的註意力。不同物體的註意力分數用不同的顏色表示。
透過觀察顏色/註意力,你會驚訝於模型的能力,透過自註意在全域範圍內理解影像,解決重疊的包圍框的問題。尤其是斑馬腿上的橙色,盡管它們與藍色和綠色局部重疊,但還是可以很好的分類。
DETR的要點
Image GPT
Image GPT是一個在像素序列上用影像補全訓練的GPT-2 transformer 模型。就像一般的預訓練的語言模型,它被設計用來學習高質素的無監督影像表示。它可以在不知道輸入影像二維結構的情況下自回歸預測下一個像素。
來自預訓練的影像GPT的特征在一些分類基準上取得了最先進的效能,並在ImageNet上接近最先進的無監督精度。
下圖顯示了由人工提供的半張影像作為輸入生成的補全模型,隨後是來自模型的創造性補全。
Image GPT的要點:
總結
Transformer在自然語言處理中的巨大成功已經在電腦視覺領域得到了探索,並成為一個新的研究方向。
英文原文:https:// towardsdatascience.com/ transformer-in-cv-bbdb58bf335e
更多電腦視覺中的Transformer可參考影片