Facebook 又再實驗新科技,讓平面照片秒變 3D 照片

作者 | 發布日期 2020 年 03 月 16 日 10:10 | 分類 AI 人工智慧 , Facebook , 軟體、系統 line share follow us in feedly line share
Facebook 又再實驗新科技,讓平面照片秒變 3D 照片


隨著科技的發展,現在人們可以隨時隨地用手機等裝置拍照記錄自己喜歡的瞬間。可能不少人都想過,假如出現一種黑科技,讓我們拍攝的平面 2D 照片變成立體的 3D 照片……

Facebook 也早就想到了這件事,為改善用戶體驗,2018 年,Facebook 就推出了 3D 照片功能。這是一種全新的沉浸式格式,你可以用它與朋友、家人分享照片。但是,這項功能依賴於高階智慧手機才具備的雙鏡頭「人像模式」功能,無法在一般的行動裝置上使用。

為了讓更多人體驗到這種新的視覺格式,Facebook 利用機器學習開發了一個系統。這個系統可以推斷出任何圖像的 3D 結構,任何裝置、任何時間拍攝的圖像都可以被轉換成 3D 形式,這就可以讓人們輕鬆使用 3D 照片技術。

不僅如此,它還可以處理幾十年前的家庭照片和其他珍貴圖像。任何擁有 iPhone 7 及以上版本,或中階以上 Android 裝置的人,現在都可以在 Facebook 應用程式中嘗試這個功能。

▲ 估計 2D 圖像不同區域的深度,以創建 3D 圖像。(Source:Facebook,以下同)

構建這種增強的 3D 圖片需要克服不少技術挑戰,例如,要訓練一個能夠正確推斷各種主題 3D 位置的模型,並優化系統,使其能夠在 1 秒鐘內在典型的行動處理器裝置上執行。為了克服這些挑戰,Facebook 在數百萬公共 3D 圖像及其附帶的深度圖上訓練了卷積神經網路(CNN),並利用 Facebook AI 之前開發的各種行動優化技術,如 FBNet 和 ChamNet。團隊最近也討論了 3D 理解的相關研究

現在,所有使用 Facebook 的人都可以使用這個功能,那麼,它究竟是如何構建的?我們可以一起來看看其中的技術細節。

▲ 小狗的原始照片是用單鏡頭相機拍攝的,沒有任何深度圖像數據,系統將其轉換成上圖顯示的 3D 圖像。

在行動裝置上提供高效性能

給定一個標準的 RGB 圖像,3D Photos CNN(3D 照片卷積神經網路)可以估計每個像素與攝影機的距離。研究人員透過 4 種方式達成這個目標:

  • 使用一組可參數化、可行動優化的神經構建模組構建網路架構。
  • 自動化架構搜尋,以找到這些模組的有效配置,使系統能夠在不到 1 秒鐘的時間內在各種裝置上執行任務。
  • 量化感知訓練,在行動裝置上利用高性能 INT8 量化,同時使量化過程中的性能下降最小化。
  • 從公開的 3D 照片獲取大量的訓練數據。

神經構建模組

Facebook 的架構使用受 FBNet 的構建模組啟發。FBNet 是一個為行動裝置等資源受限的裝置優化 ConvNet 架構的框架。一個構建模組由逐點卷積(pointwise convolution)、可選的上採樣、kxk 深度卷積和附加的點逐點卷積組成。Facebook 實現了一個 U-net 風格的架構,該架構已被修改為沿著跳過連接放置 FBNet 構建模組。U-net 編碼器和解碼器各包含 5 個階段,每個階段對應不同的空間解析度。

▲ 網路架構概述。

自動化架構搜尋

為了找到一個有效的架構配置,Facebook AI 開發的 ChamNet 演算法自動完成搜尋過程。ChamNet 演算法不斷從搜尋空間中抽取點來訓練精準度預測器。該精準度預測器用於加速遺傳搜尋,以找到在滿足特定資源約束的情況下,使預測精度最大化的模型。

這個設置中使用了一個搜尋空間,它可以改變通道擴展因子和每個模組的輸出通道數,進而產生 3.4×1,022 種可能的體系結構。然後,Facebook 使用 800 Tesla V100 GPU 在大約 3 天內完成搜尋,設置並調整模型架構上的 FLOP 約束,以實現不同的操作點。

量化感知訓練

默認情況下,其模型使用單精度浮點權值和觸發進行訓練,但研究人員發現,將權值和觸發量化為 8 位元具有顯著的優勢。尤其是,int8 權重只需要 float32 權重所需儲存量的四分之一,進而減少首次使用時必須傳輸到裝置的位元數。

▲ 每幅圖像都是從一個規則的 2D 圖像開始,然後用深度估計神經網路轉換成 3D 圖像。

與基於 float32 的運算符相比,基於 Int8 的運算符的吞吐量也要高得多,這要歸功於 Facebook AI 的 QNNPACK 等經過優化的資料庫,後者已經集成到 PyTorch 中。我們使用量化感知訓練(QAT)來避免量化導致的品質下降。QAT 現在是 PyTorch 的一部分,它在訓練期間模擬量化並支援反向傳播,進而消除了訓練和生產性能之間的差距。

▲ 神經網路處理各種內容,包括繪畫和複雜場景的圖像。

尋找創造 3D 體驗的新方法

除了改進深度估計演算法之外,研究人員還致力於為行動裝置拍攝的影像提供高品質的深度估計。

由於每個幀的深度必須與下一幀一致,影像處理技術具有一定挑戰性,但它也是一個提高性能的機會。對同一物體進行多次觀測,可以為高精準度的深度估計提供額外的信號。隨著 Facebook 神經網路性能不斷提高,團隊還將探索在即時應用(如擴增實境)中利用深度估計、曲面法向估計和空間推理等技術。

除了這些潛在的新經驗,這項工作將幫助研究人員更好地理解 2D 圖像的內容。更好地理解 3D 場景還可以幫助機器人導航以及與物理世界互動。Facebook 希望透過分享 3D 圖片系統的細節,幫助人工智慧社群在這些領域取得進展,並創造利用先進的 3D 新體驗。

(本文由 雷鋒網 授權轉載;首圖來源:pixabay

延伸閱讀: