您當前的位置:首頁 > 舞蹈

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

作者:由 啟思 發表于 舞蹈時間:2021-04-19

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

論文標題:

Neural Supersampling for Real-time Rendering

發表在:SIGGRAPH 2020

本文介紹 facebook 提出的 DLSS(深度學習超取樣)演算法,使渲染器在低解析度渲染,然後使用該演算法輸出高解析度影象。

文章的賣點是 4x4 的誇張的超取樣率,極大地優化了速度,而且質量也十分優秀。

演算法的一大特點是,為了處理 TAA 常見的鬼影問題,使用神經網路為過去幀賦予一個權重,透過該權重消除鬼影等 motion vector 常見問題。

演算法流程

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

整體流程,分為【特徵提取 - 放大 - motion vector 對齊 - 預測過去幀權重 - 重建】這五個步驟。

演算法流程:特徵提取網路

包含三層的 CNN,每一幀單獨處理,過去幀 share weight。

對於每一幀,用 color 和 depth 作為輸入,得到 8-channel 的網路輸出,與輸入 concat 作為最終的輸出 feature。所以網路輸出一共 12-channel 。

此處沒有 upsampling,也就是說還在低解析度。

演算法流程:時序重對映

此處只針對過去幀。這裡一共兩步:

對於過去幀的低解析度 feature ,使用零上取樣,對映到高解析度。所謂零上取樣,即對應位置放原畫素,其餘置零。

對於 motion vector,使用雙線性插值上取樣,對映到高解析度。

使用高解析度的 motion vector 對高解析度的 feature 進行 warp,使其對齊。

這裡的特別之處是:

為什麼要零上取樣?因為這樣網路可以知道哪些是非法值。

之前的方法都是先在低解析度 warp ,再放大到高解析度,該演算法為何要先放大再 warp?因為作者認為,

與其在低解析度重對映丟精度,不如在先把 motion vector 放到高解析度再重對映

。因為 motion vector 在大部分位置都是平滑的,所以雙線性插值不會帶來很大誤差。雖然會在邊界處帶來誤差,但作者認為相比帶來的優勢來說這不重要。這也是本文的 feature 之一。

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

一些中間值。能看出來經過零上取樣和 warp 之後會有明顯的摩爾紋,之後利用了神經網路去修復,讓它還原了

演算法流程:特徵重加權網路

該步驟是為了消除鬼影等問題,即對每一個過去幀計算一個權重再帶權累加。

網路結構還是三層的 CNN。

輸入:將所有的過去幀 warp feature 與當前幀的 RGB-depth feature 打包作為輸入。

輸出:網路需要預測權重,為每一個

過去幀

的逐畫素的權重(每個 pixel 是 0 到 10 的 value,這個 10 是超引數)。將預測的權重乘以每個對應的過去幀的 input feature(4-channel),作為最終的輸出。

演算法流程:重建網路

目前已有過去幀的對齊版本以及對應權重,我們想把它作為指導與當前幀一起重建出最終輸出。

所以這裡就是把當前幀的 feature 和重加權的過去幀的 feature 給 concat 起來,餵給網路,輸出當前幀的高解析度版本。網路使用的是普通的 U-Net。

作者這裡用了一個的 trick:轉換色彩空間。即重建時當前幀處於 YCbCr 空間內,Loss function 在轉換成 RGB 之前計算。該操作能最佳化 0。1 的 PSNR。

Loss

採用 pretrain 的 VGG-16 與 DSSIM 的加權和作為 loss。

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

實驗

對於時間,重建部分用 10 層 U-Net 確實比較慢,作者砍去了 50% 的 U-Net 引數,但是收效甚微,質量略有下降。這個實驗是在 Nvidia Titan V 上跑的 4x4 超取樣的 1080p,需要跑 20ms 左右。

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

文章還指出,得到一個 1600x900 的結果,需要先渲染 400x225 的影象然後 4x4 超取樣。直接渲染的時間是 140ms,渲染低解析度再超取樣的時間是 26。4+17。6=44ms ,最佳化至三倍效能。

對於質量,看起來十分不錯。作者比較了一些 SOTA 的超分辨工作,還有 Unreal 裡的 TAAU。

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

對於 motion vector 是先 warp 再放大還是先放大再 warp,還有對 feature 做零上取樣還是雙線性插值上取樣,作者做了實驗。

【論文導讀】毫秒級時間使影象清晰16倍,Facebook提出的DLSS演算法介紹

標簽: Feature  取樣  Motion  vector  warp