[陳云海]
隨著移動互聯(lián)網(wǎng)、智能終端及高性能編解碼技術(shù)的發(fā)展,視頻豐富多彩的表達(dá)形式促成了手機(jī)短視頻成為爆款應(yīng)用。加上智能手機(jī)攝像頭硬件水平的提升,能拍出高質(zhì)量圖像的智能手機(jī)自然也就成為了拍攝短視頻的首選工具。但是,智能手機(jī)的攝像頭的默認(rèn)參數(shù)一般調(diào)校為清晰出片即可,不考慮過多的藝術(shù)加工,再加上拍攝者往往不具備攝影師的拍攝技巧,容易受燈光、環(huán)境、角度、抖動等因素影響,所以各種圖像修正優(yōu)化工具應(yīng)運(yùn)而生,它們可以為短視頻進(jìn)行各種優(yōu)化處理,如美顏,濾鏡,特效等。
傳統(tǒng)的圖像修正優(yōu)化工具一般只能對一些簡單的參數(shù)進(jìn)行調(diào)整,例如調(diào)整亮度/飽和度/色相、黑白效果、炫彩效果等。隨著人工智能技術(shù)的不斷發(fā)展進(jìn)步,短視頻的圖像處理功能得到了極大的加強(qiáng),擁有更加高級的特效功能。通過人工智能相關(guān)技術(shù),短視頻工具可以跟蹤人像的特定部分進(jìn)行不同的特效優(yōu)化,從而實(shí)現(xiàn)如加眼影、大眼、瘦臉、動態(tài)貼紙、三維飾品等3D特效效果。本文對三維AR視頻特效的關(guān)鍵技術(shù)進(jìn)行了研究。
首先,通過人臉識別技術(shù)跟蹤人臉視頻畫面得到人臉的位置、五官位置、相對于鏡頭的旋轉(zhuǎn)角度、三維空間位置等信息。
第二,通過三維渲染引擎可以構(gòu)造一個虛擬的三維空間,再通過算法把人臉的相關(guān)信息映射到構(gòu)造的三維空間里,最后把人臉與虛擬的三維物體一起渲染到輸出畫面,從而實(shí)現(xiàn)現(xiàn)實(shí)的人臉與虛擬三維物體的融合。
第三,將短視頻的視頻畫面輸入虛擬三維空間,同時進(jìn)行人臉識別與三維物體綁定,最后輸出到應(yīng)用預(yù)覽畫面上或編碼輸出視頻文件,實(shí)現(xiàn)三維AR視頻特效。如圖1所示。
圖1 三維AR視頻特效
第一步,人臉檢測(face detection)。(如圖2所示)
圖2 人臉檢測
人臉檢測在實(shí)際中主要用于人臉識別的預(yù)處理,即在圖像中準(zhǔn)確標(biāo)定出人臉的位置和大小。人臉圖像中包含的模式特征十分豐富,如直方圖特征、顏色特征、模板特征、結(jié)構(gòu)特征及Haar特征等。人臉檢測就是把這其中有用的信息挑出來,并利用這些特征實(shí)現(xiàn)人臉檢測。傳統(tǒng)的人臉檢測方法基于以上特征采用Adaboost學(xué)習(xí)算法,近年出現(xiàn)的CNN,MTCNN,PCN等算法能夠?qū)崿F(xiàn)高速準(zhǔn)確的人臉檢測。
第二步,五官對齊(face alignment)。(如圖3所示)
人臉識別系統(tǒng)可使用的特征通常分為視覺特征、像素統(tǒng)計特征、人臉圖像變換系數(shù)特征、人臉圖像代數(shù)特征等。人臉特征提取就是針對人臉的某些特征進(jìn)行的。人臉特征提取,也稱人臉表征,它是對人臉進(jìn)行特征建模的過程。人臉特征提取的方法歸納起來分為兩大類:一種是基于知識的表征方法;另外一種是基于代數(shù)特征或統(tǒng)計學(xué)習(xí)的表征方法?;谥R的表征方法主要是根據(jù)人臉器官的形狀描述以及他們之間的距離特性來獲得有助于人臉分類的特征數(shù)據(jù),其特征分量通常包括特征點(diǎn)間的歐氏距離、曲率和角度等。人臉由眼睛、鼻子、嘴、下巴等局部構(gòu)成,對這些局部和它們之間結(jié)構(gòu)關(guān)系的幾何描述,可作為識別人臉的重要特征,這些特征被稱為幾何特征?;谥R的人臉表征主要包括基于幾何特征的方法和模板匹配法。
圖3 五官對齊
第三步,姿態(tài)識別與三維重建(face reconstruction)。(如圖4所示)
圖4 三維重建
傳統(tǒng)3D人臉重建方法,大多是立足于圖像信息,如基于圖像亮度、邊緣信息、線性透視、顏色、相對高度、視差等等一種或多種信息建模技術(shù)進(jìn)行3D人臉重建?;谀P偷?D人臉重建方法,是目前較為流行的3D人臉重建方法;3D模型主要用三角網(wǎng)格或點(diǎn)云來表示,現(xiàn)下流行的模型有通用人臉模型(CANDIDE-3)和三維變形模型(3DMM)及其變種模型,基于它們的3D人臉重建算法既有傳統(tǒng)算法也有深度學(xué)習(xí)算法。端到端3D人臉重建方法,是近年新起的方法;它們繞開了人臉模型,設(shè)計自己的3D人臉表示方法,采用CNN結(jié)構(gòu)進(jìn)行直接回歸,端到端地重建3D人臉。
3D渲染是通過電腦計算的方式把模型從 3D 模型網(wǎng)格呈現(xiàn)出 2D 真實(shí)感高的圖像,計算過程包含光線及輔助光線,材料的材質(zhì)和紋理,相機(jī)相關(guān)設(shè)置等綜合變量。
2.3.1 3D實(shí)時渲染
實(shí)時渲染主要應(yīng)用在游戲領(lǐng)域,電腦會實(shí)時的計算和展示所渲染的結(jié)果,幀率在 20~120 頻率左右。因此需要在幀率一定的情況下最大化的展示真實(shí)性。計算機(jī)在圖像處理的過程中會用到一些”技巧“是肉眼感官為”真實(shí)“世界,這些”技巧“都包括鏡頭光暈(lends flare),景深(depth of field)和動態(tài)模糊(motion blur)。計算機(jī)的算力決定了渲染的真實(shí)感,通常需要 GPU 來協(xié)助完成。
2.3.2 3D非實(shí)時渲染
3D 非實(shí)時渲染通常是電影或視頻,借助計算機(jī)有限的算力,通過延長渲染時間達(dá)到更加真實(shí)的效果。射線追蹤(ray tracing)和輻射度算法(radiosity)是非實(shí)時渲染常用的技巧,以達(dá)到更加真實(shí)的感覺。隨著技術(shù)的發(fā)展,不同種類的物質(zhì)形式有了更精確的計算技巧,例如粒子系統(tǒng)(模擬雨,煙和火),容積取樣(模擬霧,灰塵),以及焦散性質(zhì)和子面散射(subsurface scattering)。渲染過程中不同層的物質(zhì)是分開計算后合成為一個最終布景。
2.3.3 渲染API
目前的計算設(shè)備一般需要GPU來協(xié)助進(jìn)行3D渲染,而GPU提供的渲染能力一般通過D3D和OpenGL來提供,D3D為windows平臺上微軟提供的標(biāo)準(zhǔn),而OpenGL為跨平臺的開放式圖形接口庫,可以適用各種平臺更為通用。如圖5所示。
圖5 OpenGL架構(gòu)圖
2.3.4 3D模型(如圖6所示)
存儲在計算設(shè)備上的3D模型眾多,主要有:
(Xdaeobj3dsmaxmambc4dmd2fbx wxwrlstlstp3mfslprtdwgosgiges)其中obj格式比較通用,可以通過一些3D建模軟件生成3D模型,如3DMAX、MAYA。
圖6 對人像進(jìn)行3D建模
2.3.5 3D引擎
直接使用渲染API進(jìn)行3D渲染較為繁瑣,所以一般會使用3D引擎來協(xié)助進(jìn)行一些常用的渲染邏輯,3D引擎還會提供多樣的3D渲染相關(guān)功能,例如3D動畫。
2.3.6 3D動畫渲染流程
進(jìn)行3D動畫渲染的一般流程為:
(1)準(zhǔn)備需要渲染的場景,場景中包括需要渲染的各種模型
(2)調(diào)用一次渲染函數(shù)對場景進(jìn)行一幀的渲染輸出
(3)根據(jù)相關(guān)動畫邏輯,調(diào)整場景里各模型的參數(shù)(如坐標(biāo)/大小/紋理)
(4)再次調(diào)用渲染函數(shù)對場景進(jìn)行下一幀的渲染輸出
(5)循環(huán)3/4步驟直到結(jié)束
本文對三維AR視頻特效的關(guān)鍵技術(shù)進(jìn)行了研究,分析了三維AR視頻特效的處理過程和步驟,總結(jié)了目前業(yè)界用來處理三維AR視頻特效的相關(guān)技術(shù),通過應(yīng)用上述技術(shù),可以實(shí)現(xiàn)商用效果的三維AR視頻特效。