原文英文鏈接: AutoHair: fully automatic hair modeling from a single image
Overview:
該文章首次提出了基于單張圖片帖努,在無需用戶交互輸入情況下撰豺,快速重建3D頭發(fā)模型的方法。該方法的核心包括:
- 基于深度學(xué)習(xí)網(wǎng)絡(luò)的發(fā)型解析算法拼余,支持基于單張2D肖像頭發(fā)圖片污桦,輸出頭發(fā)的2D分割掩碼圖(Mask),以及生長(zhǎng)方向描述匙监。為支持神經(jīng)網(wǎng)絡(luò)的訓(xùn)練凡橱,構(gòu)建了手動(dòng)標(biāo)注的2D發(fā)型圖片庫(kù)小作,標(biāo)注信息包括了頭發(fā)分割掩碼圖、生長(zhǎng)方向圖梭纹、基于聚類方法得到的頭發(fā)分類類型躲惰;
- 3D頭發(fā)模型庫(kù)”涑椋基于少量3D發(fā)型擴(kuò)展生成大量不同類型的3D頭發(fā)模型庫(kù)础拨。數(shù)據(jù)庫(kù)包含了3D頭發(fā)模型、正向(front-view)頭發(fā)分割圖绍载、不同角度的渲染圖诡宗,以及發(fā)型生長(zhǎng)方向圖等元數(shù)據(jù);
- 基于數(shù)據(jù)驅(qū)動(dòng)發(fā)型匹配和頭發(fā)建模方法击儡,支持2D頭發(fā)圖片到3D頭發(fā)模型的快速搜索匹配塔沃,以及基于分割模版和頭發(fā)生成信息,自動(dòng)擬合變形得到與2D輸入形狀一致的3D頭發(fā)模型阳谍。
該方法的整體流程如下圖所示:
解析器訓(xùn)練
步驟一:構(gòu)建肖像發(fā)型的2D圖片庫(kù)蛀柴,并手工標(biāo)注頭發(fā)分割圖和頭發(fā)生長(zhǎng)方向。
步驟二:根據(jù)頭發(fā)的空間分布矫夯,使用基于K-means聚類將頭發(fā)庫(kù)中的圖片劃分為給定的類型鸽疾,并標(biāo)注其頭發(fā)類型(論文中采用四種類型)。
步驟三:根據(jù)標(biāo)注的頭發(fā)類型训貌,訓(xùn)練R-CNN頭發(fā)分類器制肮,學(xué)習(xí)頭發(fā)的分類。
步驟四:針對(duì)訓(xùn)練庫(kù)中的每種類型的頭發(fā)子集递沪,分別訓(xùn)練獨(dú)立的頭發(fā)解析DCNN+CRFs網(wǎng)絡(luò)豺鼻,聯(lián)合學(xué)習(xí)頭發(fā)區(qū)域和生長(zhǎng)方向。
3D頭發(fā)庫(kù)擴(kuò)展
步驟一:清洗公開數(shù)據(jù)集中的3D頭發(fā)模型款慨,包括頭發(fā)模型的對(duì)齊儒飒、剔除懸空的頭發(fā)縷、拆分過寬的頭發(fā)縷檩奠。
步驟二:擴(kuò)展數(shù)據(jù)集约素,通過在不同頭發(fā)模型之間替換和混合發(fā)束,合成新的頭發(fā)模型笆凌。
步驟三:依據(jù)頭發(fā)正視圖掩碼大小排序頭發(fā)模型圣猎,并渲染3D頭發(fā)模型得到頭發(fā)區(qū)域圖和方向圖。
運(yùn)行階段
步驟一:根據(jù)訓(xùn)練得到的頭發(fā)分類器乞而,預(yù)測(cè)輸入圖像中頭發(fā)的類型送悔。
步驟二:根據(jù)頭發(fā)的類型,調(diào)用對(duì)應(yīng)類型的頭發(fā)解析網(wǎng)絡(luò),輸出頭發(fā)分割區(qū)域圖以及生長(zhǎng)方向欠啤。
步驟三:通過頭發(fā)分割圖和生長(zhǎng)方向圖聯(lián)合搜索3D頭發(fā)庫(kù)荚藻,匹配最相近的頭發(fā)模型。
步驟四:對(duì)匹配候選頭發(fā)模型依據(jù)輪廓進(jìn)一步精細(xì)化變形洁段,并細(xì)化成發(fā)絲应狱,得到與輸入2D頭發(fā)對(duì)應(yīng)的3D頭發(fā)模型。
3D頭發(fā)生成可應(yīng)用于眾多的領(lǐng)域祠丝,包括肖像立體化(portrait pop-ups)疾呻、發(fā)型遷移、虛擬頭發(fā)試戴與編輯写半、浮雕3D打印岸蜗、頭發(fā)重打光(Relighting)、頭發(fā)物理仿真等領(lǐng)域叠蝇。
Hair Image Parsing
解析2D頭發(fā)的目的是輸出對(duì)應(yīng)的頭發(fā)掩碼圖和生長(zhǎng)方向璃岳,用于后期的3D頭發(fā)模型檢索、幾何變形和發(fā)絲細(xì)化悔捶。
由于復(fù)雜的幾何結(jié)構(gòu)和外觀表現(xiàn)铃慷,很難準(zhǔn)確的分割頭發(fā)區(qū)域。常用基于經(jīng)驗(yàn)假設(shè)的分割方法存在各種缺陷:
- 基于頭發(fā)分布在人臉兩側(cè)假設(shè)的方法蜕该,對(duì)長(zhǎng)頭發(fā)難以處理犁柜;
- 基于頭發(fā)顏色特定分布假設(shè)的方法,在環(huán)境光照蛇损、染發(fā)以及復(fù)雜混合背景等情況下赁温,穩(wěn)定性較差坛怪;
- 基于頭發(fā)像素在局部高頻變化假設(shè)的方法淤齐,較難處理黑發(fā)以及低分辨率圖像。
由于無法找到一種通用的經(jīng)驗(yàn)方法滿足頭發(fā)精確分割袜匿,可以采用end-to-end的深度學(xué)習(xí)方法更啄。目前深度學(xué)習(xí)方法對(duì)于任意類型頭發(fā)的分割也存在邊界不準(zhǔn)確和錯(cuò)誤的情況。該文提出了針對(duì)不同類型發(fā)型居灯,分別訓(xùn)練特定的分割網(wǎng)絡(luò)祭务,提高了頭發(fā)分割的精度。具體來說怪嫌,先通過聚類方法將頭發(fā)訓(xùn)練圖片分為若干類型(無需手動(dòng)標(biāo)注頭發(fā)類型)义锥,得到標(biāo)簽后再訓(xùn)練一個(gè)分類網(wǎng)絡(luò)用于預(yù)測(cè)新圖片的頭發(fā)類型。針對(duì)每種頭發(fā)類型岩灭,訓(xùn)練頭發(fā)分割網(wǎng)絡(luò)拌倍。將新圖片輸入到與其頭發(fā)類型對(duì)應(yīng)的分割網(wǎng)絡(luò)中,得到精確的頭發(fā)分割圖。
Preprocessing Training Images
該文從Flickr上爬取約10萬張人臉肖像頭發(fā)圖片作為頭發(fā)分割訓(xùn)練數(shù)據(jù)集柱恤,并進(jìn)行如下預(yù)處理操作:
- 圖像選擇:選取2萬張高分辨率数初,包括清晰的人臉和頭發(fā)圖片,去除過度遮擋梗顺、以及光照不充分和過份風(fēng)格化的圖片泡孩。
- 頭發(fā)分割:采用基于筆刷的交互式工具分割和摳圖工具PaintSelection,獲取每張圖的二值發(fā)型區(qū)域圖
寺谤。
- 方向引導(dǎo):在發(fā)型的分割區(qū)域
內(nèi)仑鸥,通過在方向分界處繪制筆刷,將分割區(qū)域進(jìn)一步劃分為不同的子區(qū)域矗漾。每個(gè)子區(qū)域保持了一致而連續(xù)的發(fā)絲生長(zhǎng)方向锈候,并通過單個(gè)筆刷標(biāo)記該區(qū)域的頭發(fā)生長(zhǎng)方向。擴(kuò)散筆刷標(biāo)記方向到整個(gè)子區(qū)域敞贡,并與逐像素的非方向朝向圖
[1]結(jié)合泵琳,得到最終的方向圖
。將方向范圍
離散化到四個(gè)區(qū)塊(例如誊役,
,
,
,
)获列,根據(jù)頭發(fā)生長(zhǎng)方向,計(jì)算每個(gè)頭發(fā)像素所屬的方向區(qū)域蛔垢,并為像素指定區(qū)域標(biāo)記击孩,從而生成頭發(fā)的方向標(biāo)記圖
。發(fā)型區(qū)域外的像素指定一個(gè)特殊的標(biāo)記鹏漆,因此圖像中每個(gè)像素在方向標(biāo)記圖中有唯一的標(biāo)示符巩梢。
經(jīng)過手工處理的每張訓(xùn)練圖片均包含兩個(gè)標(biāo)記圖:二進(jìn)制的分割掩碼圖描述頭發(fā)的區(qū)域,以及方向標(biāo)記圖
描述離散化的逐像素發(fā)絲生長(zhǎng)方向艺玲。全局的發(fā)型生長(zhǎng)方向圖與局部的非方向朝向圖結(jié)合可以解決發(fā)絲方向的歧義性括蝠。由于局部的非方向朝向圖可以由圖像信息計(jì)算得到,算法只需要確定像素的方向符號(hào)饭聚,因此一個(gè)粗略的方向標(biāo)記圖
即可較好的描述全局發(fā)型生長(zhǎng)方向忌警。(通過
結(jié)合由圖像信息推算得到的
合成得到全局方向圖
,因此用更少數(shù)據(jù)的
描述全局方向即可)
Computing Hair Distribution Classes
發(fā)型形狀和分布的巨大差距導(dǎo)致難以精確的分割頭發(fā)秒梳。該文依據(jù)圖像空間中頭發(fā)在人臉周圍的空間分布情況法绵,聚類為若干頭發(fā)類型。根據(jù)每種類型分別定制特定的分割模型酪碘,提高頭發(fā)分割的效果朋譬。
通過聚類方法確定頭發(fā)類型的步驟為:
步驟一:使用人臉檢測(cè)工具,獲取圖像中人臉的關(guān)鍵點(diǎn)兴垦。依據(jù)關(guān)鍵點(diǎn)對(duì)整幅圖像剛性變化徙赢,將圖像中人臉對(duì)齊到參考臉部坐標(biāo)系統(tǒng)庭呜,以矯正縮放以及旋轉(zhuǎn)方向上的差異。
步驟二:以人臉中心點(diǎn)為原點(diǎn)犀忱,構(gòu)建極坐標(biāo)系募谎,并構(gòu)建包含個(gè)塊(bin)(該文選擇16個(gè)塊)的環(huán)形分布直方圖(circular distribution histogram)
。每個(gè)直方圖塊中包含了極坐標(biāo)系下落在該塊角度范圍的頭發(fā)像素的個(gè)數(shù)阴汇。對(duì)直方圖
進(jìn)行單位歸一化数冬,作為該頭發(fā)的分布特征向量。
步驟三:依據(jù)K-means算法將頭發(fā)類聚類為4種基本類型搀庶。聚類過程種采用基于范式的推土機(jī)距離(Earth Mover's Distance, EMD)計(jì)算兩個(gè)頭發(fā)特征向量
和
的距離:
其中是索引為
和
的直方圖塊之間(bin)的環(huán)形距離:
頭發(fā)經(jīng)過聚類分割的效果圖如下所示:
聚類的目的在于確定訓(xùn)練集中頭發(fā)的類型拐纱,用于頭發(fā)分類器以及相關(guān)類型頭發(fā)分割模型的訓(xùn)練。運(yùn)行測(cè)試階段哥倔,會(huì)依據(jù)頭發(fā)分類器來確定輸入圖片中頭發(fā)的類型秸架,而不會(huì)使用聚類方法確定頭發(fā)類型。
Computing the Hierarchical Network
訓(xùn)練階段
根據(jù)手工標(biāo)注的發(fā)型圖片咆蒿,以及自動(dòng)聚類得到的頭發(fā)類型信息东抹,用于訓(xùn)練頭發(fā)分類器、發(fā)型區(qū)域預(yù)測(cè)器和發(fā)型生長(zhǎng)方向預(yù)測(cè)器沃测。
頭發(fā)分類器采用R-CNN網(wǎng)絡(luò)結(jié)構(gòu)缭黔,通過數(shù)據(jù)集的發(fā)型區(qū)域和發(fā)型類型信息微調(diào)得到。
發(fā)型區(qū)域預(yù)測(cè)器和發(fā)型生長(zhǎng)預(yù)測(cè)器均采用VGG16網(wǎng)絡(luò)結(jié)構(gòu)蒂破。原始模型基于ImageNet數(shù)據(jù)集訓(xùn)練馏谨,輸出1000類的預(yù)測(cè)。修改輸出為稠密的一元(unary)標(biāo)記輸出附迷。其中頭發(fā)區(qū)域預(yù)測(cè)標(biāo)記可取值為兩個(gè)惧互,用于標(biāo)示頭發(fā)區(qū)域還是非頭發(fā)區(qū)域;生長(zhǎng)方向預(yù)測(cè)一元輸出可取五個(gè)值喇伯,分別描述頭發(fā)的四個(gè)生長(zhǎng)方向和標(biāo)識(shí)位于頭發(fā)外肆良。
解析階段
完成頭發(fā)分類器追迟、頭發(fā)分割器和頭發(fā)生長(zhǎng)預(yù)測(cè)器后熏挎,即可按照自頂向下(top-down)的方式完成發(fā)型的解析過程芭析。
具體流程如下:
步驟一:通過人臉檢測(cè)方法獲取輸入圖像中的人臉檢測(cè)框截珍,依據(jù)檢測(cè)框位置和大小攀甚,估算20組頭發(fā)的典型候選區(qū)域。
步驟二:每個(gè)發(fā)型候選區(qū)通過旋轉(zhuǎn)岗喉、縮放等操作后秋度,生成一組頭發(fā)備選區(qū)。在備選區(qū)域內(nèi)使用訓(xùn)練得到的頭發(fā)分類器钱床,估計(jì)區(qū)域內(nèi)頭發(fā)的類型荚斯。綜合選擇得分最高的類型為最終類型。
步驟三:依據(jù)具體的發(fā)型,選擇對(duì)應(yīng)的頭發(fā)分割器輸出降采樣的頭發(fā)概率圖事期。升采樣輸出圖滥壕,并使用全連接的條件隨機(jī)場(chǎng)(Conditional Random Field, CRF)避免分割結(jié)果過于光滑。最終分割輸出與輸入圖同尺寸兽泣,包含半透明通道的頭發(fā)區(qū)域圖绎橘。
步驟四:依據(jù)具體的發(fā)型,選擇對(duì)應(yīng)的頭發(fā)生長(zhǎng)預(yù)測(cè)器唠倦,輸出稀疏的像素方向標(biāo)記称鳞。升采樣輸出圖,并與直接計(jì)算得到的無方向像素朝向圖結(jié)合稠鼻,得到與輸入圖同尺寸的頭發(fā)生長(zhǎng)預(yù)測(cè)圖冈止。
頭發(fā)解析的整體流程如下所示:
利用人臉檢測(cè)框預(yù)估頭發(fā)的候選區(qū),避免的傳統(tǒng)RCNN提取proposal所需要的較大計(jì)算量候齿。此外通過限定頭發(fā)的類型熙暴,提高了頭發(fā)分割的準(zhǔn)確性。
Hair Model Exemplars
利用3D頭發(fā)數(shù)據(jù)集輔助頭發(fā)建模是一種數(shù)據(jù)驅(qū)動(dòng)(data-driven)的方法慌盯,由于數(shù)據(jù)集中包含了頭發(fā)結(jié)構(gòu)的先驗(yàn)結(jié)構(gòu)信息怨咪,該類方法可以用于提高重建的效果。該文提出的3D頭發(fā)數(shù)據(jù)集主要用于發(fā)型圖片的檢索润匙,確定發(fā)型的大致形狀和結(jié)構(gòu)诗眨,用于下一步的頭發(fā)絲細(xì)化,而非用于深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練孕讳。
在文獻(xiàn)[4]中匠楚,頭發(fā)融合是在用戶使用筆刷指定頭發(fā)大致方向后進(jìn)行,用戶需要等待時(shí)間厂财。在本文頭發(fā)的重組融合移至預(yù)計(jì)算階段芋簿,避免了用戶交互以及實(shí)時(shí)計(jì)算開銷。通過窮盡式的組合方式構(gòu)建大量的合理發(fā)型樣本璃饱。
Preprocessing
原始3D頭發(fā)數(shù)據(jù)集包含了從互聯(lián)網(wǎng)下載的300多個(gè)典型的3D頭發(fā)模型与斤。頭發(fā)模型由大量獨(dú)立的細(xì)多邊形帶(polygon strips)組成,描述了方向和長(zhǎng)度一致的一束頭發(fā)荚恶,頭發(fā)束的生長(zhǎng)方向被編碼存儲(chǔ)在參數(shù)化紋理坐標(biāo)中撩穿。所有頭發(fā)模型均被對(duì)齊到一個(gè)標(biāo)準(zhǔn)的3D人頭參考模型。
在進(jìn)一步處理前谒撼,需要對(duì)頭發(fā)幾何數(shù)據(jù)進(jìn)行清理:
- 剔除懸空多邊形帶:對(duì)于起始端沒有連接到頭皮而懸空的頭發(fā)多邊形帶食寡,查找與其末端在空間上最接近,并且起始端固定到頭皮的相鄰多邊形帶廓潜。將兩者光滑連接抵皱,構(gòu)成一個(gè)更長(zhǎng)的而且連接到頭皮的多邊形帶善榛。
- 過寬多邊形帶分解:對(duì)于寬度超過指定預(yù)值
(該文設(shè)置為人頭模型半徑的1/10)的多邊形帶,沿寬度方向均勻的對(duì)半細(xì)分呻畸,直到細(xì)分多邊形帶寬度都滿足指定的預(yù)值移盆。
Populating the Exemplars
為了擴(kuò)展頭發(fā)數(shù)據(jù)集的類型,將初始狀態(tài)的多邊形帶聚合為若干組伤为,重新組裝這些組合成新的頭發(fā)模型味滞。
模型分解 :為了方便聚類處理,將每個(gè)多邊形帶簡(jiǎn)化定義為一個(gè)描述中心線的等間距多邊形線
及平均半徑
钮呀。針對(duì)每個(gè)頭發(fā)模型剑鞍,通過如下聚類公式將多邊形帶聚類為內(nèi)間距最小的若干組多邊形帶束:
最終,每個(gè)頭發(fā)模型的多邊形帶被劃分為10組多邊形聚類爽醋。
模型組合 :模型組合在每對(duì)3D頭發(fā)模型樣本之間進(jìn)行蚁署,兩個(gè)模型分別定義為目標(biāo)模型和源模型
。重組過程窮舉測(cè)試
的頭發(fā)多邊形帶聚類蚂四。對(duì)于每個(gè)多邊形帶聚類
光戈,不改變位置將其融合到目標(biāo)模型
中(在預(yù)處理中已經(jīng)將所有的頭發(fā)模型對(duì)齊到同一個(gè)人頭模型),得到新組合
遂赠。從
中剔除由于引入
而導(dǎo)致頭發(fā)三維朝向沖突的多邊形帶聚類
久妆,得到最終的合成頭發(fā)
。此外跷睦,為了避免目標(biāo)和源模型差別太大而導(dǎo)致重組效果不自然筷弦,強(qiáng)制要求用于融合的多邊形帶聚類
的邊界形狀不能與目標(biāo)發(fā)型
相差太大(實(shí)現(xiàn)中定義為兩者邊界距離不超過頭部模型半徑的30%)。
逐一輪詢每對(duì)頭發(fā)模型抑诸,窮舉源模型的每條多邊形帶聚類進(jìn)行組合烂琴,頭發(fā)模型庫(kù)數(shù)量由300擴(kuò)充到4萬,極大豐富了頭發(fā)模型的類型蜕乡。
Organization
計(jì)算每個(gè)頭發(fā)模型在人頭模型遮擋正視圖(frontal view)下的投影圖奸绷,并按照投影圖面積的升序排列組織頭發(fā)模型。這種組織方式支持在較早期根據(jù)頭發(fā)分割面積進(jìn)行剔除层玲,從而提高檢索匹配效率号醉。
此外針對(duì)每個(gè)頭發(fā)模型渲染如下的縮略圖(thumbnail),用于進(jìn)一步匹配:
- 區(qū)域縮略圖
:發(fā)型在頭部遮擋后投影到圖像平面的二值區(qū)域圖辛块。為了避免邊界影響畔派,采用高斯濾波器光滑處理。
- 方向縮略圖
:類似區(qū)域縮略圖憨降,將多邊形的發(fā)型方向(方向向量XYZ映射為顏色通道RGB)作為顏色進(jìn)行投影渲染父虑。
為了支持非正向的輸入圖像该酗,在俯仰和左右旋轉(zhuǎn)兩個(gè)方向的區(qū)間內(nèi)授药,均勻的采樣6個(gè)角度士嚎,得到
組縮略圖(包含
和
)。所有縮略圖降采樣到
的分辨率便于高效存儲(chǔ)和檢索悔叽。
Data-Driven Hair Modeling
給定包含頭發(fā)的肖像圖像莱衩,通過圖像解析計(jì)算,得到頭發(fā)區(qū)域圖
和頭發(fā)生長(zhǎng)預(yù)測(cè)圖
娇澎。依據(jù)圖像解析結(jié)果笨蚁,在頭發(fā)3D合成數(shù)據(jù)集{
}中檢索匹配若干候選模型。候選模型根據(jù)頭發(fā)邊界對(duì)應(yīng)關(guān)系進(jìn)行變形和改進(jìn)趟庄,得到與輸入圖片中頭發(fā)最相似的3D模型括细。根據(jù)頭發(fā)生長(zhǎng)信息對(duì)最佳相似模型進(jìn)行細(xì)化,得到最終精細(xì)的3D發(fā)絲模型戚啥。
Image-Based Candidate Search
根據(jù)輸入圖像重建3D頭發(fā)的第一步即在3D頭發(fā)數(shù)據(jù)集中搜索相似的頭發(fā)模型奋单。由于數(shù)據(jù)集中頭發(fā)模型數(shù)量較多,逐一比較效率太低猫十。由于不同發(fā)型之間結(jié)構(gòu)和形狀差異較大览濒,可以通過兩步早期測(cè)試排除差異過大的頭發(fā)模型,提高搜索效率拖云。具體步驟如下:
-
面積測(cè)試:檢測(cè)輸入圖像中臉部的特征點(diǎn)贷笛,依據(jù)特征點(diǎn)將輸入圖像對(duì)齊到臉部參考坐標(biāo)系下。比較輸入圖中頭發(fā)區(qū)域面積
與數(shù)據(jù)集中模型的頭發(fā)區(qū)域
宙项,只有面積位于
區(qū)間的頭發(fā)模型保留參與下一步的匹配乏苦。
-
縮略圖匹配:對(duì)所有通過面積測(cè)試的頭發(fā)模型,比較其縮略圖(
,
)與輸入圖的解析縮結(jié)果(
,
)(原文前半部分并未出現(xiàn)此符號(hào)尤筐,推斷是由解析結(jié)果降采樣得到
分辨率)邑贴。只有同時(shí)匹配發(fā)型區(qū)域邊界和內(nèi)部結(jié)構(gòu)(例如頭發(fā)像素生長(zhǎng)方向)的模型,才會(huì)被保留叔磷。對(duì)于輸入圖為非正向視圖拢驾,(
,
)為預(yù)計(jì)算的頭發(fā)模型縮略圖矩陣中,與輸入圖中人臉角度最接近的縮略圖改基。匹配度計(jì)算公式為:
其中繁疤,表示
的邊界距離場(chǎng)[5]。
表示兩個(gè)區(qū)域圖之間的差異區(qū)域秕狰。方向圖
和
之間的差異定義為像素方向差
之和:
算法僅保留滿足和
的模型為最終的匹配模型
實(shí)驗(yàn)過程中稠腊,對(duì)于典型的肖像圖片,通常選擇5~40個(gè)候選匹配模型鸣哀。若匹配候選模型大于50架忌,為保證算法效率只保留最小的50個(gè)模型。
Hair Shape Deformation
候選匹配模型需要進(jìn)行變形使其能更好的與輸入圖片中頭發(fā)匹配我衬。具體的叹放,首先計(jì)算頭發(fā)模型的圖像投影輪廓與圖片中頭發(fā)輪廓的對(duì)應(yīng)關(guān)系饰恕,然后通過全局光滑插值計(jì)算兩個(gè)發(fā)型區(qū)域的對(duì)應(yīng)關(guān)系,最后基于全局對(duì)應(yīng)關(guān)系井仰,變形和優(yōu)化3D頭發(fā)模型埋嵌,使之與輸入圖片中發(fā)型更為接近。
邊界匹配:對(duì)每個(gè)候選區(qū)模型俱恶,通過人臉關(guān)鍵點(diǎn)將其對(duì)齊到輸入圖片中人臉角度雹嗦,并且渲染輸出與輸入圖片分辨率一致的區(qū)域圖和方向圖(
,
)。在頭發(fā)模型投影輪廓
和輸入圖片頭發(fā)區(qū)域輪廓
上分別均勻的采樣200和2000個(gè)點(diǎn)合是,得到2D點(diǎn)序列集合
和
了罪。兩個(gè)輪廓上的任意采樣點(diǎn)及其外法線分別表示為(
)和(
)。
計(jì)算兩組采樣點(diǎn)的對(duì)應(yīng)關(guān)系來匹配兩個(gè)輪廓聪全。通過最小化如下匹配代價(jià)函數(shù)捶惜,可以得到與
最匹配的點(diǎn)
:
其中能量項(xiàng)和
描述點(diǎn)和邊的匹配質(zhì)量,定義分別如下:
包含兩項(xiàng)荔烧,用于避免匹配點(diǎn)的距離和朝向誤差過大吱七;
用于盡量保證原始邊通過映射
后長(zhǎng)度保持不變。
該優(yōu)化函數(shù)通過隱式馬爾可夫模型(Hidden Markov Model, HMM)框架下的Viteri算法求解鹤竭。具體的踊餐,采樣點(diǎn)集合和
被視作HMM模型中的狀態(tài)(states)和觀察(observations)量集合。所求解的最小映射
對(duì)應(yīng)狀態(tài)與觀測(cè)集合張成的Trellis表中的最優(yōu)路徑臀稚。
區(qū)域映射:依據(jù)邊界對(duì)應(yīng)關(guān)系吝岭,通過使用薄板樣條曲線(Thin-Plate-Spline, TPS)將邊界對(duì)應(yīng)關(guān)系插值到區(qū)域內(nèi)的所有像素,得到區(qū)域之間的全局映射關(guān)系
:
其中吧寺,為點(diǎn)
經(jīng)變形函數(shù)窜管,對(duì)應(yīng)位于輸入圖像頭發(fā)區(qū)域中的點(diǎn)。
為
的二階偏導(dǎo)數(shù)的Frobenius范數(shù)稚机,用于表示該函數(shù)的光滑程度幕帆。實(shí)驗(yàn)中權(quán)重
設(shè)置為1000。
變形優(yōu)化:得到全局映射關(guān)系后赖条,通過優(yōu)化如下的能量函數(shù)失乾,計(jì)算每個(gè)模型頂點(diǎn)變形后的頂點(diǎn)
其中,為3D頭發(fā)模型的頂點(diǎn)集合纬乍。
為頂點(diǎn)
經(jīng)過函數(shù)
變形后的位置碱茁,其中只對(duì)XY坐標(biāo)變形,Z值保持不變(由上一步得到
是2D空間的變形函數(shù)仿贬,保證投影一致)纽竣。
為基于余弦公式的離散Laplacian算子,
為頂點(diǎn)
的Laplacian坐標(biāo)的模長(zhǎng),權(quán)重
實(shí)驗(yàn)中取值為1蜓氨。公式中第一項(xiàng)抑制三維頂點(diǎn)變形與變形函數(shù)計(jì)算的變形位置的偏差(完全一致能夠保證頭發(fā)區(qū)域投影與2D頭發(fā)區(qū)域一致)聋袋,第二項(xiàng)為L(zhǎng)aplacian正則項(xiàng),保證變形過程中保留局部幾何特征语盈。該目標(biāo)函數(shù)可以通過非精確的高斯-牛頓方法(inexact Gauss-Newton)進(jìn)行優(yōu)化舱馅。
對(duì)每個(gè)匹配候選模型進(jìn)行上述操作缰泡。經(jīng)過變形后刀荒,候選模型更接近輸入圖片中發(fā)型。下圖顯示了經(jīng)過頭發(fā)模型變形后的效果圖:
其中棘钞,圖b描述了輸入圖(圖a)頭發(fā)區(qū)域與候選頭發(fā)模型(圖c)投影后頭發(fā)區(qū)域及對(duì)應(yīng)關(guān)系缠借。圖d描述了經(jīng)過變形處理后的頭發(fā)模型,更加接近輸入圖中的發(fā)型宜猜。
Final Hair Generation
給定變形后的候選頭發(fā)模型集{}泼返,采用前面章節(jié)介紹的縮略圖匹配方法,從集合中選擇與輸入圖發(fā)型方向最一致的模型
作為最終的頭發(fā)模型姨拥。
將最終候選模型在模型包圍盒空間內(nèi)轉(zhuǎn)化為一個(gè)三維空間方向場(chǎng)绅喉,并以
指定的方向以及頭皮法線作為約束,將方向擴(kuò)散到整個(gè)發(fā)型內(nèi)部叫乌。自頭皮均勻采樣柴罐,并按照發(fā)型方向生成10,000條發(fā)絲。生成的發(fā)絲再依據(jù)方向場(chǎng)
變形[4]得到最終效果憨奸。
Reference
[1] Structure-aware hair capture
[2] AutoHair: fully automatic hair modeling from a single image
[3] AutoHair: fully automatic hair modeling from a single image (SIGGRAPH 2016 Presentation)
[4] Single-view hair modeling using a hairstyle database
[5] Detailed Human Shape and Pose from Images