玩GTA5嗎?高清真人版那種,英特爾新模型將3D渲染圖變逼真圖片
英特爾在俠盜獵車(chē)手 5(GTA5)上測(cè)試了他們的圖像增強(qiáng)新模型,該模型給出了令人印象深刻的結(jié)果。
GTA5 是一款經(jīng)典的 3D 冒險(xiǎn)游戲,它的畫(huà)風(fēng)是這樣的:
畫(huà)面接近真實(shí),但少了一些質(zhì)感......
近日,來(lái)自英特爾的研究者給 GTA 做了一個(gè)畫(huà)質(zhì)增強(qiáng)補(bǔ)丁,先來(lái)看下效果:
左為 GTA 中的 3D 渲染圖,右為英特爾新模型生成結(jié)果。
效果很不錯(cuò),下面這一張畫(huà)質(zhì)增強(qiáng)的效果就更明顯了,該模型處理后的畫(huà)面宛如相機(jī)實(shí)拍:
在 3D 渲染領(lǐng)域,實(shí)時(shí)和真實(shí)感是兩個(gè)關(guān)鍵要素。通常照片級(jí)渲染引擎處理單幀可能就要花費(fèi)幾分鐘甚至幾小時(shí),而英特爾的新系統(tǒng)則能夠以相對(duì)較高的幀速率處理圖像。并且研究者表示,他們還將進(jìn)一步優(yōu)化該深度學(xué)習(xí)模型以更快地工作。那么英特爾這個(gè)圖像增強(qiáng)補(bǔ)丁是如何實(shí)現(xiàn)的呢?我們來(lái)看一下具體的技術(shù)細(xì)節(jié)。
論文地址:https://arxiv.org/abs/2105.04619
項(xiàng)目地址:https://github.com/intel-isl/PhotorealismEnhancement
方法與架構(gòu)
如下圖所示,該系統(tǒng)由幾個(gè)相互連接的神經(jīng)網(wǎng)絡(luò)組成。
G-buffer 編碼器將不同的渲染圖轉(zhuǎn)換為一組數(shù)字特征。多個(gè) G-buffer 分別用作表面法線(xiàn)信息、深度、反照率、光澤度、大氣和目標(biāo)分割的渲染圖。系統(tǒng)中的神經(jīng)網(wǎng)絡(luò)使用卷積層來(lái)處理這些信息,并輸出一個(gè)包含 128 個(gè)特征的向量,以提升圖像增強(qiáng)網(wǎng)絡(luò)的性能,并避免像其他類(lèi)似技術(shù)一樣產(chǎn)生偽影。G-buffer 可以直接從游戲引擎獲得。
圖像增強(qiáng)網(wǎng)絡(luò)將游戲的渲染幀和來(lái)自 G-buffer 編碼器的特征作為輸入,生成逼真版的圖像。鑒別器和 LPIPS 損失函數(shù)和其他組件則在訓(xùn)練期間使用。研究者通過(guò)評(píng)估生成圖像與原始游戲渲染幀的一致性和比較生成圖像與真實(shí)圖像的逼真質(zhì)量來(lái)給該增強(qiáng)網(wǎng)絡(luò)的輸出評(píng)級(jí)。
圖像增強(qiáng)的推斷成本
如果該技術(shù)可用,游戲玩家是否能夠在他們的計(jì)算機(jī)上運(yùn)行它?探究這個(gè)問(wèn)題首先需要計(jì)算推斷成本,或者計(jì)算運(yùn)行經(jīng)過(guò)訓(xùn)練的模型所需內(nèi)存量和算力。計(jì)算推斷成本只需要 G-buffer 編碼器和圖像增強(qiáng)網(wǎng)絡(luò),在此可以省去鑒別器網(wǎng)絡(luò)。
研究者在論文中介紹,增強(qiáng)網(wǎng)絡(luò)是基于 HRNetV2 的神經(jīng)網(wǎng)絡(luò),HRNetV2 是一種用于處理高分辨率圖像的深度學(xué)習(xí)架構(gòu)。高分辨率神經(jīng)網(wǎng)絡(luò)產(chǎn)生的視覺(jué)偽影比對(duì)圖像進(jìn)行下采樣的模型要少一些。HRNet 通過(guò)以不同分辨率運(yùn)行的多個(gè)分支來(lái)處理圖像。其中較為重要的是,有一個(gè)特征流會(huì)保持相對(duì)較高的分辨率(輸入分辨率的 1/4),以保留精細(xì)的圖像結(jié)構(gòu)。
這意味著如果以全高清 (1920×1080) 的分辨率運(yùn)行游戲,那么最頂行的層(top row layer)將以 480×270 像素處理輸入。接下來(lái)每低一行,分辨率減半。研究者改變了該神經(jīng)網(wǎng)絡(luò)中每個(gè)塊的結(jié)構(gòu),以計(jì)算來(lái)自 G-buffer 編碼器(RAD 層)的輸入。
G-buffer 的輸入包括材料信息的 one-hot 編碼,法線(xiàn)、深度和顏色的密集連續(xù)值(dense continuous values for normal)、以及光暈和天空 buffer 的稀疏連續(xù)信息。此外,該模型在 G-buffer 的子集上仍然表現(xiàn)良好。
那么,該模型需要多少內(nèi)存呢?該研究的論文并沒(méi)有說(shuō)明內(nèi)存大小,但根據(jù) HRNetV2 的論文,完整網(wǎng)絡(luò)需要 1.79 GB 的內(nèi)存才能用于 1024×2048 的輸入。英特爾使用的圖像增強(qiáng)網(wǎng)絡(luò)具有較小的輸入尺寸,但還需要考慮 RAD 層和 G-buffer 編碼器引入的額外參數(shù)。因此,假設(shè)您至少需要 1 GB 的視頻內(nèi)存來(lái)為全高清游戲運(yùn)行基于深度學(xué)習(xí)的圖像增強(qiáng),如果您想要 4K 的分辨率,那么內(nèi)存可能需要超過(guò) 2 GB。
游戲計(jì)算機(jī)通常具有 4-8 GB VRAM 的顯卡,因此需要 1 GB 的內(nèi)存并不算多。而像 GeForce RTX 系列的高端顯卡則可以擁有高達(dá) 24 GB 的 VRAM。
但同樣值得注意的是,3D 游戲會(huì)消耗大量顯卡資源。游戲會(huì)在視頻內(nèi)存上存儲(chǔ)盡可能多的數(shù)據(jù),以加快渲染速度,并避免在 RAM 和 VRAM 之間進(jìn)行交換,而這種操作會(huì)導(dǎo)致巨大的速度損失。據(jù)估計(jì),《俠盜獵車(chē)手 5》在全高清分辨率下消耗高達(dá) 3.5 GB 的 VRAM。而賽博朋克 2077 等新興游戲擁有更大的 3D 世界和更細(xì)致的畫(huà)面對(duì)象,輕松就可以占用高達(dá) 7-8 GB 的 VRAM,如果想以更高的分辨率播放,則需要更多內(nèi)存。
因此基本上,當(dāng)前的中高端顯卡讓用戶(hù)不得不在低分辨率高真實(shí)感和高分辨率合成圖形之間進(jìn)行選擇。不過(guò),內(nèi)存使用并不是基于深度學(xué)習(xí)的圖像增強(qiáng)面臨的唯一問(wèn)題。
非線(xiàn)性處理引起的延遲
一個(gè)更大的問(wèn)題是深度學(xué)習(xí)操作的連續(xù)和非線(xiàn)性屬性。要理解這個(gè)問(wèn)題,我們首先要使用深度學(xué)習(xí)推斷進(jìn)行 3D 圖形比較。三維圖形依賴(lài)大量的矩陣乘法。3D 圖形的渲染幀從一組頂點(diǎn)開(kāi)始,每個(gè)頂點(diǎn)用一組數(shù)字表示,這些數(shù)字代表 3D 對(duì)象上點(diǎn)的屬性,包括坐標(biāo)、顏色、材質(zhì)、法線(xiàn)方向等。
在渲染每一幀前,頂點(diǎn)必須經(jīng)過(guò)一系列矩陣乘法,以將頂點(diǎn)的的局部坐標(biāo)映射到世界坐標(biāo)、相機(jī)空間坐標(biāo)、圖像幀坐標(biāo)。索引緩沖區(qū)將頂點(diǎn)捆綁成三個(gè)一組以形成三角形。這些三角形被光柵化——或轉(zhuǎn)換成像素——然后每個(gè)像素通過(guò)它自己的一組矩陣操作,根據(jù)材質(zhì)顏色、紋理、反射和折射圖、透明度級(jí)別等來(lái)確定它的顏色。
3D 渲染 pipeline,圖源:LearnEveryone
這聽(tīng)起來(lái)似乎要進(jìn)行很多操作,尤其是現(xiàn)在的 3D 游戲是由數(shù)百萬(wàn)個(gè)多邊形組成的。在計(jì)算機(jī)上玩游戲時(shí)能夠獲得非常高的幀率實(shí)際上有兩個(gè)原因。首先,顯卡專(zhuān)為并行矩陣乘法而設(shè)計(jì)。與 CPU 最多只有幾十個(gè)計(jì)算內(nèi)核不同,圖形處理器有數(shù)千個(gè)內(nèi)核,每個(gè)內(nèi)核都可以獨(dú)立執(zhí)行矩陣乘法。
其次,圖形變換大多是線(xiàn)性的,而多個(gè)線(xiàn)性變換可以綁定在一起。例如將分別用于世界、視圖和投影變換的 3 個(gè)矩陣相乘以創(chuàng)建一個(gè)能夠執(zhí)行這三個(gè)操作的矩陣,操作量將減少三分之二。
類(lèi)似的,深度學(xué)習(xí)也依賴(lài)于矩陣乘法,每個(gè)神經(jīng)網(wǎng)絡(luò)都由層層矩陣計(jì)算組成,這也是顯卡在深度學(xué)習(xí)社區(qū)越來(lái)越流行的原因。
但與 3D 圖形不同的是,深度學(xué)習(xí)的操作不能組合。神經(jīng)網(wǎng)絡(luò)中的層依靠非線(xiàn)性激活函數(shù)來(lái)執(zhí)行復(fù)雜的任務(wù)?;旧?,這意味著您無(wú)法將多個(gè)層的轉(zhuǎn)換操作壓縮為單個(gè)操作。
例如,假設(shè)有一個(gè)以 100×100 像素的圖像(10000 個(gè)特征)作為輸入的深度神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)用七個(gè)層處理圖像。此時(shí)具有數(shù)千個(gè)內(nèi)核的顯卡也許能夠并行處理所有像素,但是仍然需要依次執(zhí)行七層神經(jīng)網(wǎng)絡(luò)的操作,這使得它很難提供實(shí)時(shí)圖像處理,尤其是在低端顯卡上。
因此,一個(gè)必須要考慮的瓶頸是必要的順序操作數(shù)量。英特爾該模型的圖像增強(qiáng)網(wǎng)絡(luò)的頂層有 16 個(gè)按順序鏈接的殘差塊。在每個(gè)殘差塊中有兩個(gè)卷積層、RAD 塊和 ReLU 操作依次連接。這相當(dāng)于 96 層順序操作。在 G-buffer 編碼器輸出其特征編碼之前,圖像增強(qiáng)網(wǎng)絡(luò)無(wú)法開(kāi)始其操作。因此必須至少添加處理第一組高分辨率特征的兩個(gè)殘差塊,序列中又增加了 8 層,這使得用于圖像增強(qiáng)的操作至少有 108 層。
英特爾該模型的圖像增強(qiáng)網(wǎng)絡(luò)。
這意味著除了內(nèi)存之外,你還需要高頻率的處理器來(lái)運(yùn)行這些操作。在英特爾的論文中我們看到了這樣有趣的說(shuō)法:「使用我們的方法在推理過(guò)程中未優(yōu)化的應(yīng)用人物需花費(fèi)一塊 GeForce RTX 3090 GPU 半秒時(shí)間?!?/p>
RTX 3090 具有 24 GB 的顯存,這意味著緩慢的 2 FPS 渲染速率不是由于內(nèi)存限制,而是由于順序處理圖像增強(qiáng)器網(wǎng)絡(luò)的所有層所需的時(shí)間。這不是一個(gè)可以通過(guò)添加更多內(nèi)存或 CUDA 核來(lái)解決的問(wèn)題,只能指望處理器的頻率更快才能解決。
論文中這樣寫(xiě)道「用于輸入的 G-buffer 是在 GPU 本地生成的,我們的方法若與游戲引擎深度整合,可以提高效率,可能也會(huì)帶來(lái)更高的真實(shí)化效果?!?/p>
將圖像增強(qiáng)器網(wǎng)絡(luò)集成到游戲引擎中可能會(huì)大大提高速度,但目前看來(lái)仍然無(wú)法帶來(lái)可玩的幀率。
相比之下,我們?cè)?HRNet 的論文中可以看到研究人員使用了英偉達(dá) V100,這是一種昂貴的專(zhuān)業(yè)級(jí) GPU,專(zhuān)門(mén)為深度學(xué)習(xí)的推理和訓(xùn)練設(shè)計(jì)。由于沒(méi)有內(nèi)存限制和其他游戲內(nèi)容計(jì)算的阻礙,V100 的推理時(shí)間為每張輸入 150 毫秒,約為 7 fps,這不足以帶來(lái)流暢的游戲畫(huà)面(電影是 24 幀,PS4 標(biāo)準(zhǔn)版是 30 幀)。
開(kāi)發(fā)和訓(xùn)練神經(jīng)網(wǎng)絡(luò)
另一個(gè)復(fù)雜的問(wèn)題是開(kāi)發(fā)和訓(xùn)練圖像增強(qiáng)神經(jīng)網(wǎng)絡(luò)的成本。想要引入深度學(xué)習(xí)技術(shù)的游戲公司都會(huì)面臨三座大山的考驗(yàn):數(shù)據(jù)、計(jì)算資源和機(jī)器學(xué)習(xí)人才。
構(gòu)建數(shù)據(jù)集是個(gè)大問(wèn)題,但幸運(yùn)的是英特爾已經(jīng)想辦法把問(wèn)題解決了。他們?cè)谟?xùn)練模型時(shí)引入了 Cityscapes 數(shù)據(jù)集,其中收集了德國(guó) 50 座城市的帶注釋街景圖像,精細(xì)標(biāo)注過(guò)的圖片數(shù)量達(dá)到了 5000 張。根據(jù)數(shù)據(jù)集的論文,每張帶注釋的圖像平均需要一個(gè)半小時(shí)的人工操作來(lái)精確指定圖像中包含的對(duì)象,及其邊界和類(lèi)型。這些細(xì)粒度的注釋使圖像增強(qiáng)器能夠?qū)⒄_的逼真紋理映射到游戲圖形上。
Cityscapes 是政府撥款、商業(yè)公司和學(xué)術(shù)機(jī)構(gòu)大力支持的成果,如果是應(yīng)用在其他城市環(huán)境的游戲中,或許也能獲得不錯(cuò)的效果。
Cityscapes 數(shù)據(jù)集中對(duì)于人物和街景物體的精細(xì)分割。
實(shí)驗(yàn)結(jié)果
研究者將該方法與其他多個(gè)圖像轉(zhuǎn)換模型對(duì)比了生成效果,結(jié)果如下表所示:
并進(jìn)行了對(duì)照實(shí)驗(yàn)來(lái)評(píng)估該方法中一些特定設(shè)計(jì)思路的影響,包括采樣策略、G-buffer 的作用等,實(shí)驗(yàn)結(jié)果如下表所示:
此外,相比于其他模型,英特爾的新模型在視覺(jué)效果上具有顯著優(yōu)勢(shì),例如 CUT 模型生成的畫(huà)面中存在一些偽影,而英特爾的新模型以較小的圖塊進(jìn)行采樣,減少了源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集之間的不匹配,很好地避免了產(chǎn)生偽影的問(wèn)題:
擴(kuò)展到其他游戲
如果要給《古墓麗影》做真實(shí)化怎么辦?這可能就需要游戲開(kāi)發(fā)者來(lái)自己收集圖像,然后打標(biāo)簽了。
計(jì)算資源也構(gòu)成了一個(gè)挑戰(zhàn)。用幾千美元訓(xùn)練一個(gè)用于圖像增強(qiáng)的神經(jīng)網(wǎng)絡(luò)是可以接受的——對(duì)于大游戲公司來(lái)說(shuō)不是問(wèn)題。但如果你想要做一些生成性人物,例如照片級(jí)圖像增強(qiáng)時(shí),訓(xùn)練就變得富有挑戰(zhàn)性了。它需要人們對(duì)超參數(shù)進(jìn)行大量的測(cè)試和調(diào)整,訓(xùn)練很多步,這會(huì)導(dǎo)致成本的激增。英特爾為 GTA 5 訓(xùn)練了模型,其他游戲公司或許可以在不同游戲中借鑒這一經(jīng)驗(yàn)以減少成本。但類(lèi)型差別較大的游戲就只能從頭開(kāi)始訓(xùn)練了。英特爾的深度學(xué)習(xí)模型適用于城市環(huán)境,其中景物和人物分隔明顯。但如果在自然環(huán)境如森林和洞穴里,情況可能會(huì)有所不同。
大多數(shù)游戲公司還沒(méi)有招募機(jī)器學(xué)習(xí)工程師,因此他們需要招募人才,或者外包任務(wù)——而即使這樣做了,我們也不能百分之百保證「真實(shí)風(fēng)格的畫(huà)面」可以帶來(lái)更好的游戲體驗(yàn)。
英特爾寫(xiě)實(shí)風(fēng)格的圖像增強(qiáng)技術(shù)向我們展示了機(jī)器學(xué)習(xí)算法的一個(gè)全新應(yīng)用方向,但在算力、游戲公司準(zhǔn)備好,玩家真正接受之前,我們距離看到真正的落地可能還有一段時(shí)間。
CVPR 2021 線(xiàn)下論文分享會(huì)
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。