首頁 > 科技

玩GTA5嗎?高清真人版那種,英特爾新模型將3D渲染圖變逼真圖片

2021-06-07 19:53:18

機器之心報道

編輯:小舟、澤南

英特爾在俠盜獵車手 5(GTA5)上測試了他們的影象增強新模型,該模型給出了令人印象深刻的結果。

GTA5 是一款經典的 3D 冒險遊戲,它的畫風是這樣的:

畫面接近真實,但少了一些質感......

近日,來自英特爾的研究者給 GTA 做了一個畫質增強補丁,先來看下效果:

左為 GTA 中的 3D 渲染圖,右為英特爾新模型生成結果。

效果很不錯,下面這一張畫質增強的效果就更明顯了,該模型處理後的畫面宛如相機實拍:

在 3D 渲染領域,實時和真實感是兩個關鍵要素。通常照片級渲染引擎處理單幀可能就要花費幾分鐘甚至幾小時,而英特爾的新系統則能夠以相對較高的幀速率處理影象。並且研究者表示,他們還將進一步優化該深度學習模型以更快地工作。那麼英特爾這個影象增強補丁是如何實現的呢?我們來看一下具體的技術細節。

論文地址:https://arxiv.org/abs/2105.04619項目地址:https://github.com/intel-isl/PhotorealismEnhancement

方法與架構

如下圖所示,該系統由幾個相互連線的神經網路組成。

G-buffer 編碼器將不同的渲染圖轉換為一組數字特徵。多個 G-buffer 分別用作表面法線資訊、深度、反照率、光澤度、大氣和目標分割的渲染圖。系統中的神經網路使用卷積層來處理這些資訊,並輸出一個包含 128 個特徵的向量,以提升影象增強網路的效能,並避免像其他類似技術一樣產生偽影。G-buffer 可以直接從遊戲引擎獲得。

影象增強網路將遊戲的渲染幀和來自 G-buffer 編碼器的特徵作為輸入,生成逼真版的影象。鑑別器和 LPIPS 損失函數和其他元件則在訓練期間使用。研究者通過評估生成影象與原始遊戲渲染幀的一致性和比較生成影象與真實影象的逼真質量來給該增強網路的輸出評級。

影象增強的推斷成本

如果該技術可用,遊戲玩家是否能夠在他們的計算機上運行它?探究這個問題首先需要計算推斷成本,或者計算運行經過訓練的模型所需記憶體量和算力。計算推斷成本只需要 G-buffer 編碼器和影象增強網路,在此可以省去鑑別器網路。

研究者在論文中介紹,增強網路是基於 HRNetV2 的神經網路,HRNetV2 是一種用於處理高解析度影象的深度學習架構。高解析度神經網路產生的視覺偽影比對影象進行下采樣的模型要少一些。HRNet 通過以不同解析度運行的多個分支來處理影象。其中較為重要的是,有一個特徵流會保持相對較高的解析度(輸入解析度的 1/4),以保留精細的影象結構。

這意味著如果以全高清 (1920×1080) 的解析度運行遊戲,那麼最頂行的層(top row layer)將以 480×270 畫素處理輸入。接下來每低一行,解析度減半。研究者改變了該神經網路中每個塊的結構,以計算來自 G-buffer 編碼器(RAD 層)的輸入。G-buffer 的輸入包括材料資訊的 one-hot 編碼,法線、深度和顏色的密集連續值(dense continuous values for normal)、以及光暈和天空 buffer 的稀疏連續資訊。此外,該模型在 G-buffer 的子集上仍然表現良好。

那麼,該模型需要多少記憶體呢?該研究的論文並沒有說明記憶體大小,但根據 HRNetV2 的論文,完整網路需要 1.79 GB 的記憶體才能用於 1024×2048 的輸入。英特爾使用的影象增強網路具有較小的輸入尺寸,但還需要考慮 RAD 層和 G-buffer 編碼器引入的額外參數。因此,假設您至少需要 1 GB 的視訊記憶體來為全高清遊戲運行基於深度學習的影象增強,如果您想要 4K 的解析度,那麼記憶體可能需要超過 2 GB。

遊戲計算機通常具有 4-8 GB VRAM 的顯示卡,因此需要 1 GB 的記憶體並不算多。而像 GeForce RTX 系列的高階顯示卡則可以擁有高達 24 GB 的 VRAM。

但同樣值得注意的是,3D 遊戲會消耗大量顯示卡資源。遊戲會在視訊記憶體上儲存儘可能多的資料,以加快渲染速度,並避免在 RAM 和 VRAM 之間進行交換,而這種操作會導致巨大的速度損失。據估計,《俠盜獵車手 5》在全高清解析度下消耗高達 3.5 GB 的 VRAM。而賽博朋克 2077 等新興遊戲擁有更大的 3D 世界和更細緻的畫面物件,輕鬆就可以佔用高達 7-8 GB 的 VRAM,如果想以更高的解析度播放,則需要更多記憶體。

因此基本上,當前的中高階顯示卡讓使用者不得不在低解析度高真實感和高解析度合成圖形之間進行選擇。不過,記憶體使用並不是基於深度學習的影象增強面臨的唯一問題。

非線性處理引起的延遲

一個更大的問題是深度學習操作的連續和非線性屬性。要理解這個問題,我們首先要使用深度學習推斷進行 3D 圖形比較。三維圖形依賴大量的矩陣乘法。3D 圖形的渲染幀從一組頂點開始,每個頂點用一組數字表示,這些數字代表 3D 物件上點的屬性,包括座標、顏色、材質、法線方向等。

在渲染每一幀前,頂點必須經過一系列矩陣乘法,以將頂點的的局部座標對映到世界座標、相機空間座標、影象幀座標。索引緩衝區將頂點捆綁成三個一組以形成三角形。這些三角形被光柵化——或轉換成畫素——然後每個畫素通過它自己的一組矩陣操作,根據材質顏色、紋理、反射和折射圖、透明度級別等來確定它的顏色。

3D 渲染 pipeline,圖源:LearnEveryone

這聽起來似乎要進行很多操作,尤其是現在的 3D 遊戲是由數百萬個多邊形組成的。在計算機上玩遊戲時能夠獲得非常高的幀率實際上有兩個原因。首先,顯示卡專為並行矩陣乘法而設計。與 CPU 最多隻有幾十個計算核心不同,圖形處理器有數千個核心,每個核心都可以獨立執行矩陣乘法。

其次,圖形變換大多是線性的,而多個線性變換可以繫結在一起。例如將分別用於世界、檢視和投影變換的 3 個矩陣相乘以創建一個能夠執行這三個操作的矩陣,操作量將減少三分之二。

類似的,深度學習也依賴於矩陣乘法,每個神經網路都由層層矩陣計算組成,這也是顯示卡在深度學習社群越來越流行的原因。

但與 3D 圖形不同的是,深度學習的操作不能組合。神經網路中的層依靠非線性啟用函數來執行復雜的任務。基本上,這意味著您無法將多個層的轉換操作壓縮為單個操作。

例如,假設有一個以 100×100 畫素的影象(10000 個特徵)作為輸入的深度神經網路,該網路用七個層處理影象。此時具有數千個核心的顯示卡也許能夠並行處理所有畫素,但是仍然需要依次執行七層神經網路的操作,這使得它很難提供實時影象處理,尤其是在低端顯示卡上。

因此,一個必須要考慮的瓶頸是必要的順序操作數量。英特爾該模型的影象增強網路的頂層有 16 個按順序連結的殘差塊。在每個殘差塊中有兩個卷積層、RAD 塊和 ReLU 操作依次連線。這相當於 96 層順序操作。在 G-buffer 編碼器輸出其特徵編碼之前,影象增強網路無法開始其操作。因此必須至少新增處理第一組高解析度特徵的兩個殘差塊,序列中又增加了 8 層,這使得用於影象增強的操作至少有 108 層。

英特爾該模型的影象增強網路。

這意味著除了記憶體之外,你還需要高頻率的處理器來運行這些操作。在英特爾的論文中我們看到了這樣有趣的說法:「使用我們的方法在推理過程中未優化的應用人物需花費一塊 GeForce RTX 3090 GPU 半秒時間。」

RTX 3090 具有 24 GB 的視訊記憶體,這意味著緩慢的 2 FPS 渲染速率不是由於記憶體限制,而是由於順序處理影象增強器網路的所有層所需的時間。這不是一個可以通過新增更多記憶體或 CUDA 核來解決的問題,只能指望處理器的頻率更快才能解決。

論文中這樣寫道「用於輸入的 G-buffer 是在 GPU 本地生成的,我們的方法若與遊戲引擎深度整合,可以提高效率,可能也會帶來更高的真實化效果。」

將影象增強器網路整合到遊戲引擎中可能會大大提高速度,但目前看來仍然無法帶來可玩的幀率。

相比之下,我們在 HRNet 的論文中可以看到研究人員使用了英偉達 V100,這是一種昂貴的專業級 GPU,專門為深度學習的推理和訓練設計。由於沒有記憶體限制和其他遊戲內容計算的阻礙,V100 的推理時間為每張輸入 150 毫秒,約為 7 fps,這不足以帶來流暢的遊戲畫面(電影是 24 幀,PS4 標準版是 30 幀)。

開發和訓練神經網路

另一個複雜的問題是開發和訓練影象增強神經網路的成本。想要引入深度學習技術的遊戲公司都會面臨三座大山的考驗:資料、計算資源和機器學習人才。

構建資料集是個大問題,但幸運的是英特爾已經想辦法把問題解決了。他們在訓練模型時引入了 Cityscapes 資料集,其中收集了德國 50 座城市的帶註釋街景影象,精細標註過的圖片數量達到了 5000 張。根據資料集的論文,每張帶註釋的影象平均需要一個半小時的人工操作來精確指定影象中包含的物件,及其邊界和類型。這些細粒度的註釋使影象增強器能夠將正確的逼真紋理對映到遊戲圖形上。

Cityscapes 是政府撥款、商業公司和學術機構大力支援的成果,如果是應用在其他城市環境的遊戲中,或許也能獲得不錯的效果。

Cityscapes 資料集中對於人物和街景物體的精細分割。

實驗結果

研究者將該方法與其他多個影象轉換模型對比了生成效果,結果如下表所示:

並進行了對照實驗來評估該方法中一些特定設計思路的影響,包括取樣策略、G-buffer 的作用等,實驗結果如下表所示:

此外,相比於其他模型,英特爾的新模型在視覺效果上具有顯著優勢,例如 CUT 模型生成的畫面中存在一些偽影,而英特爾的新模型以較小的圖塊進行取樣,減少了源資料集和目標資料集之間的不匹配,很好地避免了產生偽影的問題:

擴展到其他遊戲

如果要給《古墓麗影》做真實化怎麼辦?這可能就需要遊戲開發者來自己收集影象,然後打標籤了。

計算資源也構成了一個挑戰。用幾千美元訓練一個用於影象增強的神經網路是可以接受的——對於大遊戲公司來說不是問題。但如果你想要做一些生成性人物,例如照片級影象增強時,訓練就變得富有挑戰性了。它需要人們對超參數進行大量的測試和調整,訓練很多步,這會導致成本的激增。英特爾為 GTA 5 訓練了模型,其他遊戲公司或許可以在不同遊戲中借鑑這一經驗以減少成本。但類型差別較大的遊戲就只能從頭開始訓練了。英特爾的深度學習模型適用於城市環境,其中景物和人物分隔明顯。但如果在自然環境如森林和洞穴裡,情況可能會有所不同。

大多數遊戲公司還沒有招募機器學習工程師,因此他們需要招募人才,或者外包任務——而即使這樣做了,我們也不能百分之百保證「真實風格的畫面」可以帶來更好的遊戲體驗。

英特爾寫實風格的影象增強技術向我們展示了機器學習演算法的一個全新應用方向,但在算力、遊戲公司準備好,玩家真正接受之前,我們距離看到真正的落地可能還有一段時間。


IT145.com E-mail:sddin#qq.com