機器之心發布
機器之心編輯部
臨近虎年春節,抖音上線了一系列 AR 相機特效。在抖音的鏡頭下,日常生活的景觀呈現出各種奇妙的效果。其中,「AR 中國年」憑借将鏡頭掃描的畫面場景轉換成酷炫的賽博朋克新年風格最受歡迎,在廣大網友的創意之下玩出了各色花樣。
「AR 中國年」的效果源自于抖音産品團隊對于未來賽博朋克中國城場景的設想。但要實現這樣的效果,需要整合 AI 算法、圖形渲染、特效設計等大量研發資源。為此,抖音技術團隊專門研發了一套融合了深度學習、SLAM 與圖形渲染技術的 AR 特效鍊路,整體的鍊路如下圖所示。
「AR 中國年」特效鍊路
系統首先通過對捕獲的視頻數據基于深度學習模型進行分析,獲取實時的深度圖、法向圖與場景分割 Mask 等語義與幾何信息,同時通過 SLAM 技術獲取相機位姿等空間信息,并結合語義、幾何與空間信息,對不同種類的道具進行放置與跟蹤。通過 SLAM,還可以進行算法結果的多幀匹配,從而幫助提升語義幾何分析的準确性和連續性,保證後續道具挂載的穩定性。在接下來的章節中,文章将會對部分關鍵算法環節展開剖析。
道具挂載檢測
「AR 中國年」的一大亮點是能夠在場景中較為自然地貼合道具素材。在 AR 場景中為了使素材的出現位置更加貼合場景,需要設計一套端上的自動道具挂載算法。為了使得挂載結果更加自然,算法還需要輸出若幹個符合透視的不規則四邊形。
在算法設計之初,技術團隊考慮了一套基于三維表面檢測(3D Surface Detection)、二維形狀檢測(2D Shape Detection)與單幀 VP 檢測(Vanishing Point Detection)結合的方案,并研發了一套基于線段和角點檢測結合的 VP 檢測系統。但由于該方案涉及的算法模塊和策略較為複雜,移植到移動端并達到實時的性能具有較大的技術難度,技術團隊便開始嘗試使用較為輕量的 “目标檢測 回歸” 的方案,試圖 “蒸餾” 學習出實時的道具挂載檢測模型。
在「AR 中國年」特效中,為了營造出新年的氣氛,需要同時挂載十幾個不同的素材,而且素材出現的位置也并不是往往出現在平面上,例如 “燈籠” 就需要被挂載到屋檐或者天花闆上。這就需要算法同時兼顧召回、透視以及場景分類。為此,技術團隊設計了先通過檢測模塊進行召回,再通過回歸模塊進行篩選的二階段算法。在檢測階段,檢測模塊去盡可能多的召回挂載區域,這些區域往往集中在建築物、牆壁和物體上。在召回足夠多的候選區域後,回歸模塊負責解決透視以及分類問題。為了降低坐标回歸難度,需要加入一定的規則先驗,将挂載框視作左上、左下、右上、右下四個點構成的凸四邊形進行回歸,最終模型的結果将經過排序、篩選、去重來保留高質量的挂載框。為了滿足不同素材的特定要求,算法還會将挂載框進行分類來針對性的進行後處理,例如将比較長的區域進行切分來營造出比較工整的燈籠串效果。
值得一提的是,雖然由于性能原因,技術團隊在算法方案上最終選擇了 “目标檢測 回歸” 的方案,但基于 VP 檢測的方案具備更真實的挂載效果,因此也被應用在了剪映玩法上,服務于基于服務端的編輯特效「國潮賽博 2022」。
基于 “檢測 回歸” 的道具挂載檢測結果
法向估計
在完成道具挂載檢測後,在真實環境中插入虛拟物體還需要準确理解世界的三維法向信息。在相機坐标系下直接使用 SLAM 輸出三維朝向會存在空缺以及由三維點朝向方向不準确的問題, 所以還需要一個面向移動端的輕量級法向估計解決方案。
為此,技術團隊通過用帶有激光雷達的 iPhone 離線采集了大量的環境數據(包含室内外不同光照條件下的數據,以及渲染生成等方式獲取的場景法向數據),訓練了魯棒的端上法向估計模型。此外,團隊還進一步利用了手機 IMU 的重力方向對法向的角度進行矯正,從而保證挂載物始終能夠和重力方向吻合,更符合一般的建築規律, 來規避深度學習網絡在法向預測不夠完全準确的情況。從下圖的結果可以看到,在不同變換角度與光照環境條件下, 虛拟的貼圖仍然可以很好的貼合圖像法向,從而能支持各種虛拟挂載的真實特性。
基于法向估計的貼圖效果
視覺 SLAM
為了将道具能夠持續跟蹤在建築上,技術團隊構建了一套大場景下的視覺 SLAM 系統,在大部分抖音用戶手機上均能進行實時魯棒地跟蹤。該 SLAM 系統具備如下幾個特性:
• 用戶無感的快速初始化 。傳統的視覺 SLAM 算法依賴嚴格的初始化,需要用戶進行充分的運動之後才能使用 AR 特效,這大大提升了使用 AR 特效的門檻。為了讓廣大抖音用戶都能更容易地玩起 AR 特效,該方案基于輕量化的多層級初始化設計研發,融合了場景結構先驗、多假設的濾波估計和小運動下的全局優化,實現了首幀即時的 AR 體驗。
• 覆蓋不同的移動端機型。由于抖音用戶覆蓋面非常大,尤其是安卓用戶機型衆多,對算法的魯棒性提出了更高層面的要求。視覺 SLAM 系統以視覺為主,同時輔助利用了系統的傳感器信息來對位姿進行約束。由于不同手機的傳感器質量參差不齊,系統還結合離線标定和在線估計的策略,在離線标定通用參數的基礎上又實時進行參數優化,低成本地覆蓋更多的用戶機型。
• 大場景實時跟蹤。在大場景下,純視覺的 SLAM 系統容易受到遠點和動态物體的幹擾,尤其在長時間直行的情況下相機的估計高度容易産生漂移。基于多幀幾何分析與語義先驗,系統對視覺特征進行了分類處理,同時将實時全局信息壓縮後持續在系統中進行優化,減少了長時間運動下的漂移。
• 網格與平面估計。基于 SLAM 系統輸出的稀疏點雲,系統結合 2D 圖像信息和 3D 平面估計信息,對點雲進行單幀的實時網格化息。為了解決弱紋理和遠景區域幾何信息缺失的問題,系統還結合了上述的法向估計模型,保證了全區域的挂載可用性。
大場景軌迹跟蹤和場景三維估計
以 SLAM 初始化為例,在用戶實際使用道具拍攝時,會經常發生由于相機僅有純旋轉或靜止不動無法初始化 SLAM 系統或 SLAM 初始化成功但重建的網格質量仍無法滿足特效需求的情況。為了解決這個問題,系統引入了深度估計模型,對靜止的圖像進行相對深度估計并重建出三角網絡。待 SLAM 初始化成功後,再對三角網格進行過渡融合。通過這種方式,在 SLAM 無法初始化的情況下也可以輸出三角網格,并結合道具挂載檢測與法向估計進行素材挂載,在後續使用過程中也能過渡到真實深度場景。
包體積優化
由于「AR 中國年」整個流程涉及到多個算法模塊,導緻整體的算法包體積偏大,進而會影響特效下發到移動端的成功率。為此,技術團隊還針對包體積進行了極緻的性能優化。在深度模型訓練流程中,遵循如下原則:首先通過 AutoML 算法,找到緊湊的模型結構;然後,再采用剪枝和非結構量化相結合的壓縮算法,在訓練中将網絡中的不重要權值剪枝為零值,使其達到一定的稀疏比例,再将剩下非零的權值進行非結構量化;最後結合低比特結構化量化算法,在保證算法精度的前提下,極緻壓縮算法模型體積。基于上述方案,所有算法模塊依賴的深度模型體積大小得到了有效控制,保證了最終特效下發的成功率。
智能創作團隊介紹
在抖音中,大量創新性的熱門特效均出自于字節跳動 - 智能創作團隊。智能創作團隊是字節跳動音視頻創新技術和業務中台,覆蓋了計算機視覺、圖形學、語音、拍攝編輯、特效、客戶端、服務端工程等技術領域,在部門内部實現了前沿算法 - 工程系統 - 産品全鍊路的閉環,旨在以多種形式向公司内部各業務線以及外部合作客戶提供業界最前沿的内容理解、内容創作、互動體驗與消費的能力和行業解決方案。
目前,智能創作團隊已通過字節跳動旗下的火山引擎向企業開放技術能力和服務。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!