編譯:ronghuaiyang
導讀
將Transformer應用到CV任務中現在越來越多了,這裡整理了一些相關的進展給大家。
Transformer結構已經在許多自然語言處理任務中取得了最先進的成果。Transformer 模型的一個主要的突破可能是今年年中釋出的GPT-3,被授予NeurIPS2020“最佳論文“。
在計算機視覺領域,CNN自2012年以來已經成為視覺任務的主導模型。隨著出現了越來越高效的結構,計算機視覺和自然語言處理越來越收斂到一起,使用Transformer來完成視覺任務成為了一個新的研究方向,以降低結構的複雜性,探索可擴充套件性和訓練效率。
以下是幾個在相關工作中比較知名的專案:
DETR(End-to-End Object Detection with Transformers),使用Transformers進行物體檢測和分割。Vision Transformer (AN IMAGE IS WORTH 16X16 WORDS: Transformer FOR IMAGE RECOGNITION AT SCALE),使用Transformer 進行影象分類。Image GPT(Generative Pretraining from Pixels),使用Transformer進行畫素級影象補全,就像其他GPT文字補全一樣。End-to-end Lane Shape Prediction with Transformers,在自動駕駛中使用Transformer進行車道標記檢測結構總的來說,在CV中採用Transformer的相關工作中主要有兩種模型架構。一種是純Transformer結構,另一種是將CNNs/主幹網與Transformer相結合的混合結構。
純Transformer混合型:(CNNs+ Transformer)Vision Transformer是基於完整的自注意力的Transformer結構沒有使用CNN,而DETR是使用混合模型結構的一個例子,它結合了卷積神經網路(CNNs)和Transformer。
一些問題為什麼要在CV中使用Transformer?如何使用benchmark上的結果是什麼樣的?*What are the constraints and challenges of using Transformer in CV?*哪種結構更高效和靈活?為什麼?你會在ViT、DETR和Image GPT的下面的深入研究中找到答案。
Vision TransformerVision Transformer(ViT)將純Transformer架構直接應用到一系列影象塊上進行分類任務,可以取得優異的結果。它在許多影象分類任務上也優於最先進的卷積網路,同時所需的預訓練計算資源大大減少(至少減少了4倍)。
Vision Transformer模型結構
影象序列patches它們是如何將影象分割成固定大小的小塊,然後將這些小塊的線性投影連同它們的影象位置一起輸入變壓器的。然後剩下的步驟就是一個乾淨的和標準的Transformer編碼器和解碼器。
在影象patch的嵌入中加入位置嵌入,透過不同的策略在全域性範圍內保留空間/位置資訊。在本文中,他們嘗試了不同的空間資訊編碼方法,包括無位置資訊編碼、1D/2D位置嵌入編碼和相對位置嵌入編碼。
不同位置編碼策略的對比
一個有趣的發現是,與一維位置嵌入相比,二維位置嵌入並沒有帶來顯著的效能提升。
ILSVRC-2012 ImageNet資料集有1k類和130萬影象ImageNet-21k具有21k類和1400萬影象JFT擁有18k類和3.03億高解析度影象模型的變體像其他流行的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結果影象分類的Benchmark
以上結果表明,該模型在多個流行的基準資料集上優於已有的SOTA模型。
在JFT-300M資料集上預訓練的vision transformer(ViT-H/14, ViT-L/16)優於所有測試資料集上的ResNet模型(ResNet152x4,在相同的JFT-300M資料集上預訓練),同時在預訓練期間佔用的計算資源(TPUv3 core days)大大減少。即使是在ImageNet-21K上預訓練的ViT也比基線表現更好。
模型效能 vs 資料集大小預訓練資料集大小VS模型效能
上圖顯示了資料集大小對模型效能的影響。當預訓練資料集的大小較小時,ViT的表現並不好,當訓練資料充足時,它的表現優於以前的SOTA。
哪種結構更高效?如一開始所提到的,使用transformer進行計算機視覺的架構設計也有不同,有的用Transformer完全取代CNNs (ViT),有的部分取代,有的將CNNs與transformer結合(DETR)。下面的結果顯示了在相同的計算預算下各個模型結構的效能。
不同模型架構的效能與計算成本
以上實驗表明:
純Transformer架構(ViT)在大小和計算規模上都比傳統的CNNs (ResNet BiT)更具效率和可擴充套件性混合架構(CNNs + Transformer)在較小的模型尺寸下效能優於純Transformer,當模型尺寸較大時效能非常接近ViT (vision transformer)的重點使用Transformer架構(純或混合)輸入影象由多個patch平鋪開來在多個影象識別基準上擊敗了SOTA在大資料集上預訓練更便宜更具可擴充套件性和計算效率DETRDETR是第一個成功地將Transformer作為pipeline中的主要構建塊的目標檢測框架。它與以前的SOTA方法(高度最佳化的Faster R-CNN)的效能匹配,具有更簡單和更靈活的pipeline。
DETR結合CNN和Transformer的pipeline的目標檢測
上圖為DETR,一種以CNN和Transformer為主要構建塊的混合pipeline。以下是流程:
CNN被用來學習影象的二維表示並提取特徵CNN的輸出是扁平化的,並輔以位置編碼,以饋入標準Transformer的編碼器Transformer的解碼器透過輸出嵌入到前饋網路(FNN)來預測類別和包圍框更簡單的Pipeline傳統目標檢測pipeline和DETR的對比
傳統的目標檢測方法,如Faster R-CNN,有多個步驟進行錨的生成和NMS。DETR放棄了這些手工設計的元件,顯著地簡化了物體檢測pipeline。
當擴充套件到全景分割時,驚人的結果在這篇論文中,他們進一步擴充套件了DETR的pipeline用於全景分割任務,這是一個最近流行和具有挑戰性的畫素級識別任務。為了簡單解釋全景分割的任務,它統一了2個不同的任務,一個是傳統的語義分割(為每個畫素分配類標籤),另一個是例項分割(檢測並分割每個物件的例項)。使用一個模型架構來解決兩個任務(分類和分割)是非常聰明的想法。
畫素級別的全景分割
上圖顯示了全景分割的一個例子。透過DETR的統一pipeline,它超越了非常有競爭力的基線。
注意力視覺化下圖顯示了Transformer解碼器對預測的注意力。不同物體的注意力分數用不同的顏色表示。
透過觀察顏色/注意力,你會驚訝於模型的能力,透過自注意在全域性範圍內理解影象,解決重疊的包圍框的問題。尤其是斑馬腿上的橙色,儘管它們與藍色和綠色區域性重疊,但還是可以很好的分類。
預測物體的解碼器注意力視覺化
DETR的要點使用Transformer得到更簡單和靈活的pipeline在目標檢測任務上可以匹配SOTA並行的更有效的直接輸出最終的預測集統一的目標檢測和分割架構大目標的檢測效能顯著提高,但小目標檢測效能下降Image GPTImage GPT是一個在畫素序列上用影象補全訓練的GPT-2 transformer 模型。就像一般的預訓練的語言模型,它被設計用來學習高質量的無監督影象表示。它可以在不知道輸入影象二維結構的情況下自迴歸預測下一個畫素。
來自預訓練的影象GPT的特徵在一些分類基準上取得了最先進的效能,並在ImageNet上接近最先進的無監督精度。
下圖顯示了由人工提供的半張影象作為輸入生成的補全模型,隨後是來自模型的創造性補全。
來自Image GPT的影象補全
Image GPT的要點:
使用與NLP中的GPT-2相同的transformer架構無監督學習,無需人工標記需要更多的計算來生成有競爭力的表示學習到的特徵在低解析度資料集的分類基準上實現了SOTA效能總結Transformer在自然語言處理中的巨大成功已經在計算機視覺領域得到了探索,併成為一個新的研究方向。
Transformer被證明是一個簡單和可擴充套件的框架,用於計算機視覺任務,如影象識別、分類和分割,或僅僅學習全域性影象表示。與傳統方法相比,在訓練效率上具有顯著優勢。在架構上,可以採用純Transformer的方式使用,也可以與cnn結合使用混合的方式使用。它也面臨著挑戰,比如在DETR中檢測小目標的效能較低,在Vision Transformer (ViT)中,當預訓練資料集較小時,效能也不是很好。Transformer正在成為學習序列資料(包括文字、影象和時間序列資料)的更通用的框架。英文原文:https://towardsdatascience.com/transformer-in-cv-bbdb58bf335e