大變活人,需要幾個步驟?
萬萬沒想到,這么經典的大型魔術,現在都能零基礎入門了。
在快手和江蘇衛視聯手打造的「一千零一夜」晚會上,迪麗熱巴就當場表演了一個。
不需要道具,不需要托兒,也不挑時間地點,她就這么在直播鏡頭里blingbling地閃現了。
并且位場的波動,完全沒有破壞背景的完整。(手動狗頭)
最關鍵的是,給你一部安裝了快手的手機,你同樣可以實現。
沒錯,這個能實時實現電影大片里隱身特效的黑科技,就是快手最近上線的AI新玩法——「隱身魔法」。這是結合單圖圖像修復和幀間圖像對齊技術的視頻修復算法,在短視頻行業中的首次應用。
不僅能「憑空出現」,對著鏡頭比個「6」,你還能當場變身透明人,跟空氣融為一體。
效果如此絲滑,難怪上線幾天時間,快手用戶就玩得飛起,迅速貢獻了77.5w個相關作品。
一時成為年度短視頻最熱特效玩法。
移動端的實時視頻修復技術
讓視頻里的人實時隱身,怎么個原理?
此前,量子位其實介紹過類似的「隱身」算法,比如弗吉尼亞大學和Facebook聯手打造的基于光流邊緣引導的視頻修復算法。
雖然有學術領域的前例,但想要把這樣的技術應用到移動端,仍然存在不小的挑戰。
最主要的問題在于計算量,視頻修復涉及到多幀計算,其深度學習模型普遍計算量較大,很難在移動端運行。
那么快手是怎么做到的?量子位照例來一一捋清楚。
其實道理很簡單,想要把畫面中的人抹掉,除了自動把人像摳出來之外,AI還得學會腦補人像遮擋住的真實背景。
這就涉及到兩方面的問題:
初始幀人像區域的背景修復
后續相機、人物運動過程中人像區域的背景填充
為了解決這兩個問題,快手的工程師們將算法整體分成了兩個階段:
首幀使用移動端腦補模型實現對人像區域的背景填充,后續幀使用幀間實時跟蹤匹配投影,實現可見背景區域向人物遮擋區域的填充。
基于DeepFill的圖像修復算法
首先來看首幀修復。具體到模型架構上,快手工程師主要基于開源的DeepFill模型,根據實際需求進行了定制化開發和優化。
DeepFill是一種基于GAN提出的圖像修復方法,修復能力是醬嬸的:
在此基礎上,快手在整個模型設計中采用coarse to refine雙階段結構。
第一階段,在小尺寸上進行初步修復,利用較少計算量的coarse網絡得到缺失區域的大概輪廓。
第二階段,將該初步結果融合到原圖在大尺寸上利用refine網絡生成缺失區域的細節。
而為了讓模型能在移動端上更好地部署運行,工程師們還采用剪枝和蒸餾方法進一步壓縮了模型結構。
在算法研發過程中,工程師還發現,缺失區域越大,圖像修復結果越不可控,使用L1損失和GAN損失無法有效的約束修復區域的結構和語義的合理性。
針對此問題,一方面采用邊界生成聯合訓練的方法,對邊界這一結構信息進行直接約束,明顯提高了大缺失區域情況下修復結果的合理性。另一方面采用多尺度預測的方式對模型中間層的特征進行了約束,有效提升了修復結果的清晰度。
在損失函數方面,在訓練中工程師采用了SSIM、Lpips感知損失、PatchGan損失和蒸餾損失,在小模型上也實現良好的圖像修復結果。
在訓練數據方面,快手工程師構建了一個包含100W背景圖和10W人像mask的通用圖像修復數據集,包含居家、辦公、建筑、風景、虛擬CG等常見環境。
并且,根據背景數據的紋理復雜度進行了分類,模型訓練過程中隨著網絡逐步收斂,逐漸加大復雜紋理數據的比例,使得模型更好地完成從簡單到復雜等多種背景的修復。
一套組合拳下來,測試的結果如下。從左到右,分別是輸入圖像、邊界預測、腦補結果和實際背景。
實時跟蹤投影匹配
而在后續幀的背景修復上,為了更好地利用已有的背景信息,需要將已經存在的背景投影到當前幀實現對人像遮擋區域的修復,即幀間圖像映射。
目前對幀間圖像映射關系的描述主要有三種方式:簡單的全局單應變換,基于柵格的局部單應變換,以及復雜的逐像素的稠密光流。
其中,全局單應變換雖然計算量較小,但無法描述復雜的三維結構映射。
逐像素的稠密光流算法可以得到精確的圖像間可見像素的映射關系,但對于人像區域內未知區域的修復無法實現,另外限于手機平臺計算量的限制,該算法無法滿足實時獲取映射關系的需求。
因此,快手采用基于柵格的局部單應變換的圖像對齊算法,來平衡計算量和精確度之間的關系。通過同時優化幀間特征點的光度誤差和柵格的形變誤差,在低計算量的情況下也能得到精準的幀間映射關系,有效地將歷史幀的可見區域信息實時傳播到當前畫面。
并且,通過調節柵格數量,可以很方便的調節算法的計算量和映射的精度,實現多機型的算法適配。
中低端機型都能用,真正麻瓜的「魔法」
其實,對快手的工程師而言,僅僅實現效果是遠遠不夠的。
更重要的一點,是要在移動端硬件種類繁多的情況下,覆蓋高、中、低端各種手機型號,讓每一個檔次的機型的能力都發揮到最大。
一方面,是因為每一次的產品落地,都關系到4億用戶的實際體驗,牽一發而動全身。
另一方面,快手的用戶特性決定,用戶手中的手機型號分布會很廣,不同機型算力和內存資源差異很大。
而要做到這一點,快手依靠的是自研的YCNN深度學習推理引擎。
拿CPU來說,無論是蘋果、高通、華為還是聯發科的芯片,無論是高端的驍龍865還是低端的驍龍450、430,YCNN引擎都能支持模型在上面運行。同樣,GPU方面,YCNN引擎同時支持Mali、Adreno、Apple和英偉達等多種GPU。NPU方面,蘋果Bionic,華為HiAI,高通SNPE和MTK的APU均在支持范圍之內。
同時,YCNN引擎具有完備的模型結構與數值精度,支持常見的CNN, RNN結構,支持float32, float16,uint8等不同精度計算。
為了在更大程度上利用手機算力,YCNN引擎還提供了多種模型,既有針對高算力NPU設計的大模型,有針對高端CPU、GPU設計的級的不同的小模型,也有針對中低端CPU處理器設計的特定小模型。同時,通過模型下發的方式,將設備上的最好算力與相應的模型進行匹配,以期達到效果與性能的最佳平衡,給用戶帶來最好的體驗。
在推理引擎的優化方面,針對不同的設備端,快手的工程師們分別設計了Metal算子、OpenCL算子以及Neon算子等等,有針對性地進行了算子的優化,以最大化利用設備性能,提升模型的運算速度。
此外,YCNN引擎具有完善的AI模型工具鏈,支持PyTorch, TF/TFlite模型直接轉換為YCNN模型,并支持訓練時模型量化與基于硬件的模型結構搜索。綜合性能比業界引擎有10%左右的優勢。
快手之道
最后,回到AI特效、回到晚會,回到快手本身。
快手的技術和AI特效魔法,之前介紹的也不少。這家依靠短視頻迅速崛起的技術公司,一方面把最新最前沿的技術帶給了更多人,另一方面也通過技術,讓用戶體驗到從「記錄每一種生活」到「擁抱每一種生活」。
但更值得稱道的是,快手之道,更在于面對最前沿技術時的心態——希望無差別地讓每一個用戶使用,感受技術的樂趣,無論是何種機型,無論信號覆蓋如何。
現在,這種快手之道,在往線下延續,讓線上的用戶有機會登上線下的舞臺,和明星一起亮相,展示自己。從線上到線下,跨越平臺和社區。
這次快手「九年磨一劍」打造的「一千零一夜」超豪華陣容晚會,就是最直觀的例證。
一方面,快手與江蘇衛視攜手,臺網聯動,在節目內核和呈現形式上實現了大小屏的深度融合。不只是實時隱身特效,還有黃渤跟周杰倫的低延時連麥、虛擬技術加持下的F4隔空同臺等黑科技,都給觀眾帶來了新的觀賞體驗。
另一方面,從明星陣容上就可以看出快手的號召力在增強,星素同臺的晚會形式,形成了快手獨有的文化IP。
數據同樣也佐證了這一點。據悉,這場晚會快手官方直播間觀看總人數達9008萬,直播間互動總量達1.34億次,最高同時在線人數達315萬,預約直播總人數達到3100萬。
如此巨大的流量和關注度,無疑也是一場技術價值觀的科普。
在舞臺之上,有明星大咖和快手達人的跨界合作;舞臺之下,快手也踏踏實實遵循提升用戶體驗、創造用戶價值的技術信仰,使得陽春白雪和下里巴人的種種「人間煙火」,都能通過AI技術這樣的前沿科技為生活增添色彩。
這是理性科技之外的那一面:用奇幻科技,打破人間藩籬。
之前有句「老話」,說科技是麻瓜的魔法。
但比起這種魔法,打造魔法本身的工程師、讓魔法真正無差別應用的工程師,不易于被推至鎂光燈下,但依然值得掌聲和褒獎。
你還能舉出其他的「魔法」案例嗎?
最后的最后,開發該特效的技術團隊是快手Y-tech團隊,這里也特別傳送一下:
這支團隊致力于計算機視覺、計算機圖形學、機器學習、AR/VR 等領域的技術創新和業務落地,不斷探索新技術與新用戶體驗的最佳結合點。目前 Y-tech 在北京、深圳、杭州、Seattle、Palo Alto 有研發團隊,大部分成員來自于國際知名公司和大學。
責任編輯:lq
-
視頻
+關注
關注
6文章
1959瀏覽量
73187 -
Facebook
+關注
關注
3文章
1432瀏覽量
55053 -
深度學習
+關注
關注
73文章
5521瀏覽量
121636
原文標題:分分鐘擁有哈利波特的隱身衣,還是在手機端的那種
文章出處:【微信號:TheBigData1024,微信公眾號:人工智能與大數據技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論