免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

圖神經(jīng)網(wǎng)絡(luò)試圖打入CV主流?中科大華為等聯(lián)合開源ViG:首次用于視覺任務(wù)的GNN

 mynotebook 2022-07-01 發(fā)布于湖南

作者丨科技猛獸
編輯丨極市平臺

極市導(dǎo)讀

 

通用視覺模型一般以序列的結(jié)構(gòu)或者網(wǎng)格的結(jié)構(gòu)來處理圖片信息,本文作者創(chuàng)新性地提出以圖的方式來處理圖片:計算機(jī)視覺的一個基本任務(wù)是識別圖像中的物體。本文提出一種基于圖表示的新型通用視覺架構(gòu)ViG,這是一個在通用視覺模型方面有價值的探索。>>加入極市CV技術(shù)交流群,走在計算機(jī)視覺的最前沿

本文目錄

1 Vision GNN:把一張圖片建模為一個圖
(來自中國科學(xué)院大學(xué),華為諾亞方舟實驗室,北大)
1.1 Vision GNN 原理分析
1.1.1 背景和動機(jī)
1.1.2 圖片的圖表示 (Graph Representation)
1.1.3 使用 GNN 作為模型骨干
1.1.4 ViG Block
1.1.5 實驗結(jié)果
1.1.6 可視化結(jié)果
1.2 Vision GNN PyTorch 偽代碼

1 Vision GNN:把一張圖片建模為一個圖

圖片

論文地址:https:///pdf/2206.00272.pdf

PyTroch代碼:https://github.com/huawei-noah/Efficient-AI-Backbones

MindSpore代碼:https:///mindspore/models

1.1 Vision GNN 原理分析

本文提出了一種 GNN 通用視覺模型,是來自中國科學(xué)院大學(xué),北京華為諾亞方舟實驗室的學(xué)者們在通用視覺模型方面有價值的探索。

1.1.1 背景和動機(jī)

在現(xiàn)代計算機(jī)視覺任務(wù)中,通用視覺模型最早以 CNN 為主。近期 Vision Transformer,Vision MLP 為代表的新型主干網(wǎng)絡(luò)的研究進(jìn)展將通用視覺模型推向了一個前所未有的高度。

不同的主干網(wǎng)絡(luò)對于輸入圖片的處理方式也不一樣,如下圖1所示是一張圖片的網(wǎng)格表示,序列表示圖表示。圖像數(shù)據(jù)通常表示為歐幾里得空間 (Euclidean space) 中的規(guī)則像素網(wǎng)格,CNN 通過在圖片上進(jìn)行滑動窗口操作引入平移不變形和局部性。而 Vision Transformer,Vision MLP 為代表的新型主干網(wǎng)絡(luò)將圖片視為圖片塊的序列,比如一般將 224×224 大小的圖片分為196個 16×16 的圖片塊。

但是無論是上面的網(wǎng)格表示還是序列表示,圖片都以一種非常規(guī)則的方式被建模了,也就是說,每個圖片塊之間的 '聯(lián)系' 已經(jīng)固化。比如圖1中這條 '魚' 的 '魚頭' 可能分布在多個圖片塊中,這些 Patch 按照網(wǎng)格表示或者序列表示都沒有 '特殊' 的聯(lián)系,但是它們在語義上其實都表示 '魚頭'。這或許就是傳統(tǒng)的圖片建模方法的不完美之處。

本文提出以一種更加靈活的方式來處理圖片:計算機(jī)視覺的一個基本任務(wù)是識別圖像中的物體。由于圖片中的物體通常不是形狀規(guī)則的方形,所以經(jīng)典的網(wǎng)格表示或者序列表示在處理圖片時顯得冗余且不夠靈活。比如一個對象可以被視為由很多部分的組合:例如,一個人可以粗略地分為頭部、上身、手臂和腿,這些由關(guān)節(jié)連接的部分自然形成一個圖結(jié)構(gòu)。

圖片
圖1:一張圖片的網(wǎng)格表示,序列表示和圖表示。在網(wǎng)格表示中,像素或小塊僅僅通過空間位置排序。在序列表示中,2D 圖像被切分成為一系列小塊。在圖表示中,節(jié)點通過其內(nèi)容鏈接起來,不受本地位置的約束

在網(wǎng)格表示中,像素或小塊僅僅通過空間位置排序。在序列表示中,2D 圖像被切分成為一系列小塊。在圖表示中,節(jié)點通過其內(nèi)容鏈接起來,不受本地位置的約束。網(wǎng)格表示和序列表示都可以視為是圖表示的特例。因此,將一張圖片視為圖是相對于前二者更加靈活且有效。

本文基于把圖片視為圖表示的觀點,本文提出一種基于圖表示的新型通用視覺架構(gòu) ViG。將輸入圖像分成許多小塊,并將每個小塊視為圖中的一個節(jié)點。在構(gòu)建好了輸入圖片的圖表征之后,作者使用 ViG 模型在所有節(jié)點之間交換信息。ViG 的基本組成單元包括兩部分:用于圖形信息處理的 GCN (圖形卷積網(wǎng)絡(luò)) 模塊和用于節(jié)點特征變換的 FFN (前饋網(wǎng)絡(luò)) 模塊。在圖像識別,目標(biāo)檢測等視覺任務(wù)中證明了該方法的有效性。

1.1.2 圖片的圖表示 (Graph Representation)

對于一張大小為  大小的圖片,首先分成  個 Patch。把每個 Patch 轉(zhuǎn)化成向量  ,就可以得到  ,其中,  為 embedded dimension,  。這  個 Patch 的特征可以被視為一組無序結(jié)點,表示為  。對于每個結(jié)點  ,都找到  個最近鄰結(jié)點  ,并添加一條從  ) 到  的邊  。

這樣就得到了一個圖,表示為  ,其中  表示所有的邊。通過這樣的方式把 Image 建模成 Graph,就可以使用 GCN 處理圖像數(shù)據(jù)了,如下圖1所示。

圖片
圖1:通過把 Image 建模成 Graph 的方法以使用 GCN 處理圖像數(shù)據(jù)

1.1.3 使用 GNN 作為模型骨干

總的來說,從特征  開始,作者首先構(gòu)造一個圖 。GCN 層可以通過聚合來自其鄰居節(jié)點的特征來在節(jié)點之間交換信息。具體來說,GCN 的操作如下:

其中,  和  分別是聚合和更新操作的可學(xué)習(xí)的權(quán)重。具體而言,聚合操作通過聚合每一個節(jié)點周圍所有的鄰居節(jié)點的特征來計算當(dāng)前節(jié)點的特征:

式中,  是節(jié)點  的相鄰節(jié)點。這里,作者采用最大相對圖卷積[1],因為它簡單有效。

則以上的圖維度的處理方法可以寫成:  。

作者進(jìn)一步引入了 multi-head 的結(jié)構(gòu),聚合之后的特征  被分為  個 head:  ,然后每個 head 分別通過對應(yīng)的權(quán)重進(jìn)行更新,最終將  個 head 的結(jié)果 concat 在一起。

多頭更新操作允許模型在多個表示子空間更新信息,有利于特征多樣性。

1.1.4 ViG Block

GCN 通過重復(fù)使用連續(xù)的幾個圖卷積層來提取圖形數(shù)據(jù)的聚集特征。Deep GCN 中的過平滑現(xiàn)象會降低節(jié)點特征的獨特性,并導(dǎo)致圖像識別的性能下降。其中,多樣性可以寫成  ,其中  。為了緩解這個問題,我們在ViG塊中引入了更多的特征變換和非線性激活。

作者在 GCN 之前和之后應(yīng)用線性層,以將節(jié)點特征投影到同一域中,并增加特征多樣性。在圖形卷積后插入一個非線性激活函數(shù)以避免層特征的坍塌,得到的模塊稱為 Grapher 模塊。可以表達(dá)成:

其中,  ,  和  是 FC 層的權(quán)重,  是激活函數(shù)。

Transformer 中常用的 FFN 層保持一致:

在 Grapher 和 FFN 模塊中,在每個 FC 層或 GCN 層之后應(yīng)用 BN,Grapher 模塊和 FFN 模塊的堆疊構(gòu)成了 ViG模塊,其用作構(gòu)建網(wǎng)絡(luò)的基本構(gòu)建單元,如上圖1所示。與 ResGCN 相比,ViG 的特征豐富度更高,如下圖2所示。

圖片
圖2:與 ResGCN 相比,ViG 的特征豐富度更高

1.1.5 模型架構(gòu)

在計算機(jī)視覺領(lǐng)域,常用的 Transformer通常具有各向同性的架構(gòu),而 CNN 更喜歡使用金字塔架構(gòu)。作者為 ViG 建立了兩種網(wǎng)絡(luò)結(jié)構(gòu),即各向同性結(jié)構(gòu)和金字塔結(jié)構(gòu)。

各向同性結(jié)構(gòu)

各向同性結(jié)構(gòu)是指模型塊從頭到尾特征的尺寸都不發(fā)生變化。和 ViT,ResMLP 保持一致,作者設(shè)計了 ViG-Ti,ViG-S,ViG-B 三種不同的模型。節(jié)點數(shù)為 Patch 數(shù)196,為了逐漸擴(kuò)大感受野,在這三個模型中,隨著層的深入,鄰居節(jié)點  的數(shù)量從9線性增加到18。默認(rèn)情況下,head 數(shù)設(shè)置為  。

圖片
圖3:各向同性結(jié)構(gòu)不同尺寸的 ViG 模型

金字塔結(jié)構(gòu)

金字塔結(jié)構(gòu)模型的特征圖隨著網(wǎng)絡(luò)的深入而逐漸變小,已經(jīng)被很多視覺 Transformer 模型 (如 PVT[2],Swin [3]等) 證明是有效的性能提升的手段。因此,作者進(jìn)一步建立了四個版本的金字塔 ViG 模型,如下圖4所示。

圖片
圖4:金字塔結(jié)構(gòu)不同尺寸的 ViG 模型

位置編碼

為了表示節(jié)點的位置信息,作者對每個節(jié)點特征添加位置編碼向量:

式中,  。

絕對位置編碼適用于各向異性和金字塔結(jié)構(gòu)。對于金字塔 ViG,作者遵循 Swin Transformer 的設(shè)計方法,進(jìn)一步使用相對位置編碼。對于節(jié)點  和  ,它們之間的相對位置距離是  ,這個相對位置距離會被添加到圖的特征距離中。

1.1.5 實驗結(jié)果

作者在 ImageNet 圖像分類任務(wù)和 COCO 目標(biāo)檢測任務(wù)上驗證了 ViG 的有效性。不同尺寸模型的實驗設(shè)置如下。對于 COCO 目標(biāo)檢測任務(wù),作者使用 RetinaNet 和 Mask R-CNN 作為檢測框架,Pyramid ViG 作為骨干網(wǎng)絡(luò)。訓(xùn)練策略采用 '1×' schedule。

圖片
圖5:不同尺寸模型的實驗設(shè)置

ImageNet 圖像分類任務(wù)

具有各向同性結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)在模型前向傳播中保持特征大小不變,易于擴(kuò)展,并且有利于硬件加速。實驗結(jié)果如下圖6所示。與同樣尺寸的其他各向同性結(jié)構(gòu)的 CNN,Transformer,或者 MLP 模型相比,ViG 性能更好。

圖片
圖6:各向同性 ViG 模型 ImageNet 圖像分類任務(wù)實驗結(jié)果

金字塔結(jié)構(gòu)隨著網(wǎng)絡(luò)的深入,特征圖逐漸變小,可以形成多尺度的特征。作者進(jìn)一步將 Pyramid ViG 模型和幾種典型的金字塔式 CNN,Transformer,MLP 模型進(jìn)行比較,結(jié)果表明 ViG 系列可以超越或媲美最先進(jìn)的金字塔網(wǎng)絡(luò),結(jié)果如下圖7所示。這表明圖形神經(jīng)網(wǎng)絡(luò)能很好地完成視覺任務(wù),有潛力成為計算機(jī)視覺系統(tǒng)的基本組成部分。

圖片
圖7:金字塔式 ViG 模型 ImageNet 圖像分類任務(wù)實驗結(jié)果

消融實驗

作者使用各向同性的 ViG-Ti 作為基礎(chǔ)架構(gòu),在 ImageNet 分類任務(wù)上進(jìn)行了消融實驗。

消融實驗1:圖卷積的類型

作者測試了圖卷積的代表性變體,包含:EdgeConv,GIN,GraphSAGE 和 Max-Relative GraphConv,結(jié)果如下圖8所示。從圖8中我們可以看到不同圖卷積的 Top-1 精度優(yōu)于 DeiT-Ti,表明了 ViG 架構(gòu)的靈活性。其中Max-Relative 實現(xiàn)了 FLOPs 和精度的最佳權(quán)衡。因此本文實驗?zāi)J(rèn)使用 Max-Relative GraphConv 作為圖卷積方案。

圖片
圖8:使用不同圖卷積方案的實驗結(jié)果

消融實驗2:ViG 中不同模塊的影響

為了使圖形神經(jīng)網(wǎng)絡(luò)適應(yīng)視覺任務(wù),作者在 Grapher 模塊中引入了 FC 層,并利用 FFN 塊進(jìn)行特征變換,通過消融研究來評估這些模塊的效果,如下圖9所示。可以看出,直接利用圖卷積進(jìn)行圖像分類的效果很差。通過引入 FC 層和 FFN 來增加更多的特征變換,可以使得精度不斷提高。

圖片
圖9:ViG 中不同模塊的影響

消融實驗3:neighbors 數(shù)量的影響

在構(gòu)建圖的過程中,鄰居節(jié)點數(shù)  是一個控制聚集范圍的超參數(shù)。太少的鄰居會降低信息交換的幅度,而太多的鄰居會導(dǎo)致過平滑現(xiàn)象的出現(xiàn)。作者將  從3調(diào)至20,結(jié)果如圖10所示。我們可以看到,在9到15范圍內(nèi)的鄰居節(jié)點數(shù)可以很好地執(zhí)行 ImageNet 分類任務(wù)。

圖片
圖10:neighbors 數(shù)量的影響

消融實驗4:head 數(shù)量的影響

multi-head 操作允許 Grapher 模塊在不同的子空間中處理對應(yīng)的節(jié)點特征。作者將 head 數(shù)從1調(diào)至8,結(jié)果如下圖11所示。head 數(shù)量控制著子空間的多樣性。對于不同的 head,ImageNet 上的 FLOPs 和 Top-1 精度略有不同。作者選擇  作為默認(rèn)值,以實現(xiàn) FLOPs 和精度之間的最佳平衡。

圖片
圖11:head 數(shù)量的影響

目標(biāo)檢測實驗結(jié)果

下圖12是 COCO val2017 上的實驗結(jié)果。為了進(jìn)行公平的比較,作者使用 ImageNet 預(yù)訓(xùn)練的金字塔 ViG-S 作為 RetinaNet 和 Mask R-CNN 檢測框架的主干。使用常用的 '1×' schedule 進(jìn)行訓(xùn)練,以 1280×800 的輸入大小計算 FLOPs。從下圖12中的結(jié)果可以看出,金字塔 ViG-S 在 RetinaNet 和 Mask R-CNN 上的表現(xiàn)都優(yōu)于ResNet,CycleMLP 和 Swin Transformer 等主干模型。

圖片
圖12:目標(biāo)檢測實驗結(jié)果

1.1.6 可視化結(jié)果

為了更好地理解 ViG 模型是如何工作的,作者在 ViG-S 中可視化了圖結(jié)構(gòu)。圖13展示的是2個不同的樣本在網(wǎng)絡(luò)的不同深度中的圖表示。五角星形是中心節(jié)點,顏色相同的節(jié)點是它的鄰居,作者為了更簡潔只畫了兩個頂點。這里有一個很有趣的現(xiàn)象:模型可以選擇內(nèi)容相關(guān)的節(jié)點作為一階鄰居。在淺層中,鄰居節(jié)點傾向于基于低級和局部特征 (比如魚的顏色和背景樹木的紋理) 來選擇。在深層中,中心節(jié)點傾向于選擇語義信息更加接近的節(jié)點作為鄰居,屬于同一類別 (比如紙筒和衛(wèi)生紙)。

圖片

1.2 Vision GNN PyTorch 偽代碼

1) 導(dǎo)入必要的庫

圖片

2) Grapher 模塊偽代碼

圖片
圖片

上式5中的  里面的  和  分別對應(yīng)偽代碼中的 self.fc1 和 self.fc2,二者都是由 nn.Conv2d(kernel=1) 進(jìn)行實現(xiàn),并在后面加上 nn.BatchNorm2d。
GCN 部分使用了https://github.com/lightaime/deep_gcns_torch中的 DynConv2d(in_channels, hidden_channels, k, dilation, act=None),激活函數(shù)  使用的是 nn.GeLU()。

3) FFN 模塊偽代碼

Linear Transformation 操作使用了 nn.Conv2d(kernel=1) 進(jìn)行實現(xiàn),并在后面加上 nn.BatchNorm2d 進(jìn)一步執(zhí)行歸一化操作。

圖片

總結(jié)

通用視覺模型一般以序列的結(jié)構(gòu)或者網(wǎng)格的結(jié)構(gòu)來處理圖片信息,本文作者創(chuàng)新性地提出以圖的方式來處理圖片:計算機(jī)視覺的一個基本任務(wù)是識別圖像中的物體。由于圖片中的物體通常不是形狀規(guī)則的方形,所以經(jīng)典的網(wǎng)格表示或者序列表示在處理圖片時顯得冗余且不夠靈活。本文提出一種基于圖表示的新型通用視覺架構(gòu) ViG。將輸入圖像分成許多小塊,并將每個小塊視為圖中的一個節(jié)點?;谶@些節(jié)點構(gòu)造圖形可以更好地表示不規(guī)則復(fù)雜的物體。

在構(gòu)建好了輸入圖片的圖表征之后,作者使用 ViG 模型在所有節(jié)點之間交換信息。ViG 的基本組成單元包括兩部分:用于圖形信息處理的 GCN (圖形卷積網(wǎng)絡(luò)) 模塊和用于節(jié)點特征變換的 FFN (前饋網(wǎng)絡(luò)) 模塊。直接在圖像圖形結(jié)構(gòu)上使用圖形卷積存在過平滑問題,性能較差。因此作者在每個節(jié)點內(nèi)部引入了更多的特征變換來促進(jìn)信息的多樣性。在圖像識別,目標(biāo)檢測等視覺任務(wù)中證明了該方法的有效性。

參考

  1. ^Deepgcns: Can gcns go as deep as cnns?
  2. ^Pyramid vision transformer: A versatile backbone for dense prediction without convolutions
  3. ^Swin transformer: Hierarchical vision transformer using shifted windows

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多