在會上,谷歌公布了一個秘密開發多年的黑科技:全息視頻聊天技術 Project Starline。Project Starline 本質上是一個 3D 視頻聊天室,旨在取代一對一的 2D 視頻電話會議,讓用戶感覺就像坐在真人面前一樣。
通過 Starline,相互視頻的人,不需要佩戴任何眼鏡或者頭盔,真實的就像坐在對面聊天一樣,人物細節飽滿。我們先來感受一下它的效果:
實際上,這是由高分辨率傳感器、數十個景深掃描傳感器以及 65 英寸「光場顯示器」重新生成的實時 3D 模型。谷歌表示這一項目已開發了數年之久,其背后是大量計算機視覺、機器學習、空間音頻和數據壓縮技術。谷歌還為此開發出了一套突破性的光場系統,讓人無需佩戴眼鏡或耳機即可感受到逼真的體積和深度感。
我們可以想象實現這一技術有多難,首先你需要讓大腦認為有一個真人坐在離你不遠的地方;其次圖像需要高分辨率并且沒有偽影;此外是音頻問題,因為系統需要讓聲音聽起來是從對面人的嘴里發出來的,還有諸如眼神交流等的小問題。
這項前沿黑科技背后的技術是怎么實現的呢?想必很多人都想了解,近日,谷歌在一篇論文中公布了 Project Starline 演示背后的技術。
硬件部分,Project Starline 系統圍繞一個以 60Hz 運行的大型 65 英寸 8K 面板構建。圍繞它,谷歌的工程師布置了三個用于捕獲彩色圖像和深度數據的「捕獲 pod」。該系統還包括四個額外的追蹤攝像頭、四個麥克風、兩個揚聲器和一個紅外投影儀。整體來看,系統需要捕獲來自四個視角的彩色圖像以及三個深度圖,共計七個視頻流。系統還需要捕獲 44.1 kHz 的音頻,并以 256 Kbps 編碼。
顯然,所有這些硬件都會產生大量需要傳輸的數據,谷歌表示,傳輸帶寬從 30Mbps 到 100Mbps 不等,具體取決于用戶衣服的紋理細節和手勢的大小。因此,這遠遠超過標準的 Zoom 通話。Project Starline 配備了四塊高端 Nvidia 顯卡(兩塊 Quadro RTX 6000 卡和兩塊 Titan RTX)來對所有這些數據進行編碼和解碼。端到端延遲平均為 105.8 毫秒。
系統實現
如下圖 4 所示,谷歌的系統主要有兩個組件:一個包含顯示器、攝像頭、揚聲器、麥克風、照明器和計算機的顯示單元,另一個是包含紅外背光并用作 bench seat 的背光單元。兩個單元都包含向墻壁和天花板傾斜的白色 LED 燈條,用于產生柔和的反射照明。
捕獲子系統由三個同步立體的 RGBD 捕獲 pod 組成:兩個在顯示器上方,一個在顯示器下方的「中墻」(middle wall)中。更下方的 pod 包括一個額外的彩色相機,用于放大拍攝對象的臉部。另外,四個單色追蹤攝像頭中的兩個在顯示器上方,其余兩個一側一個,用于捕捉眼睛、耳朵和嘴巴的高速廣角圖像。
下圖 5 展示了捕獲和顯示組件的排列。
更詳細的系統組件信息如下:
下圖 6 為系統中的數據流,展示了 Starline 主要的處理組件如何映射到 GPU 和 CPU。系統中的所有視頻處理都在 60 Hz 下進行,除了 120 Hz 的面部跟蹤和 180 Hz 的紅外立體模式捕獲。
照明
谷歌使用間接「反彈」(bounce)光源創造了一個柔和的照明環境。在顯示和背光單元的側面和背面,白色 LED 燈帶照亮了周圍的墻壁,產生舒適的漫射源,最大限度地減少銳利高光。與明亮的 LED 直接照明相比,這種散射的光對用戶來說也更舒適。
同時,光亮保持一定的不均勻分布也很重要。谷歌發現,完全均勻的入射光使人臉和其他 3D 形狀看起來扁平且不真實,阻礙了系統中其他 3D 效果的發揮。攝影師尤其是電影攝影師將拍攝對象完全照亮和陰影兩側之間的對比度稱為「照明比」。為了保持對象的立體感,谷歌在鄰近墻壁的顯示單元一側使用更強的強度,產生大約 2:1 的照明比。
展示效果如下圖 7 所示:
色彩校準
谷歌通過調整每個相機的增益、色彩校正 (3×3) 矩陣和 gamma 對系統的 RGB 相機進行色彩校準,以使標準色彩目標 [McCamy et al. 1976] 匹配 D65 光源下的參考色彩值,抵消了室內照明的影響。經過色彩校準的顯示器在 D65 光源下拍攝的圖像看起來像是在當地房間的照明條件(強度和色彩)下拍攝的。這種色彩校準方案可確保系統自動校正兩個用戶位置之間的細微照明差異。
對象捕獲
谷歌的目標是渲染每個用戶的新圖像,這是因為它們應該出現在其他用戶的左眼和右眼。顯然,如果可以將相機精確地放置在這些眼睛位置,那么捕捉就變得微不足道了。
遺憾的是,這是不可行的。一方面,這些位置位于顯示器的中心附近,因而會被遮擋;另一方面,用戶將會在所有 3 個維度上自由運動。新興的透視顯示技術或許能夠部分解決這個問題,但透明的自動立體顯示器還不存在,并且無論如何都無法解決觀看者的運動問題。
因此,谷歌將捕獲傳感器放置在顯示器的外圍。由于顯示器對著本地用戶的角度很大,因此捕獲視角與需要渲染的眼睛位置相距甚遠。為了解決這種大視差,谷歌使用可見光和近紅外(NIR)全局快門圖像傳感器的組合來重建用戶的幾何近似值。
如上圖 5 所示,傳感器分布在三個捕獲 pod 中,兩個在顯示器上方,一個位于其下方的中墻。上方的 pod 可以很好地觀察手勢以及頭部和軀干的側面,同時下方的 pod 又能很好地觀察頸部、面部和下巴。pod 的體積足夠大,寬 1.4 m、高 1.0 m 和深 0.9 m,用于捕捉坐著自然談話和打手勢的用戶的頭部、軀干、手臂和手。
3D 臉部追蹤
谷歌采用了四個同步的 1280×1024 單色相機,它們以 120Hz 運行并配有過濾器來阻擋 NIR 光。對于每個捕獲的圖像,谷歌檢測面部并定位 34 個面部標志 [FaceDetector 2019]。此外,他們還將眼睛、嘴巴和耳朵的 2D 位置確定為鄰近標志的加權組合。為了讓四個追蹤相機中至少有兩個找出這些對象,谷歌使用三角測距法(triangulation)來獲取它們的 3D 位置。
視頻壓縮以及傳輸
來自 RGBD 捕獲 pod 的四種顏色和三種深度流在 GPU 上進行壓縮,并使用 WebRTC 與追蹤的 3D 面部點一起傳輸。
通過使用視頻壓縮技術,該研究能夠利用現代 GPU 中高度優化的視頻編碼器和解碼器。具體來說,他們使用四個 NVIDIA GPU 的 NVENC/NVDEC 單元。這樣一來會有足夠的吞吐量處理四種顏色和三種深度流在全分辨率和 60Hz 的幀率。顏色和深度流都使用帶有 YUV420 chroma 子采樣的 H.265 編解碼器進行編碼。顏色流每通道使用 8 位, 深度流每通道使用 10 位,深度數據存儲在 Y 亮度(luminance)通道中,而 UV chroma 通道設置為 512(灰色)。該研究通過省略雙向編碼 (B) 幀來減少編碼和解碼延遲。
渲染
在接收客戶端上解壓好 3 個深度圖和 4 個彩色圖像后,該研究從本地用戶的眼睛位置渲染虛擬遠程用戶左右透視圖。它由三個步驟組成:
對于每個 4 色相機,通過為每條射線找到與輸入深度圖融合的表面的第一個交點,使用光線投射計算陰影圖;
對于 2 用戶視圖 (左和眼) 中的每一個,使用相同的光線投射算法計算輸出深度圖;
對于每個輸出深度映射點(output depth map point),計算由第 1 步得出的陰影映射圖加權顏色混合。
對于左視圖和右視圖,該研究通過將彩色圖像投射到融合幾何體上來獲得每個像素的顏色(圖 10):
圖 11 顯示了沒有邊緣融合的不規則像素化輪廓。該圖還顯示,基于圖像的融合提供了比輪廓附近體積融合(volumetric fusion)更完整的重建:
聲音傳輸
該研究使用的音頻傳輸技術是將一系列先進技術進行組合:talker-tracked 波束成形、混響消減、WebRTC 傳輸、talker/listener-tracked 虛擬音頻合成、雙耳串擾消除分頻組合以及振幅平移。與傳統的視頻會議系統相比,對談話者和傾聽者精確的追蹤是共享空間達到真實性的關鍵因素(圖 12)。據了解,這是首次在視頻會議中無需耳機、頭部追蹤的音頻技術。