王仁泉 鄭曉博 桂義勇 李舒琪 吳禮尉
摘要:人們的頭發(fā)是人的外表特征的一個重要因素,但是同時頭發(fā)的建模和重建是在計算機視覺領(lǐng)域是一個難點,在本篇論文中,我們主要參考相關(guān)計算機視覺的工作,主要關(guān)注相關(guān)的理論研究在實際用戶生活的應用,并且關(guān)注在移動端和PC端上的性能表現(xiàn)。由于在實際使用場景的限制,我們采用了一種發(fā)絲的追蹤算法,并且通過優(yōu)化方法得到深度,在僅僅使用一張人像照片的條件下,實現(xiàn)對人物發(fā)絲進行3D建模,并且達到了可被接受的效果。對發(fā)絲進行追蹤和建模,并進行優(yōu)化,這為我們對人像的發(fā)型作出個性化的修飾包括改變顏色,改變發(fā)型等等提供了可能。
關(guān)鍵詞:發(fā)絲追蹤;人像處理;發(fā)型替換;3D重建
中圖分類號:TP393? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2019)01-0222-03
人的外表特征作為人的一個基本特征自然而然是各個研究人員關(guān)注研究的熱點,同時人們對讓自己變得更美的追求也驅(qū)使著視覺處理與計算機圖形學領(lǐng)域的公司和研究機構(gòu)的研究人員解決這些問題,近年來也不乏一些顯著的研究成果,例如,通過積分圖得到特征,用于人臉識別(Viola, Way and Jones, 2004),又或者實現(xiàn)圖片乃至視頻的人臉替換(Korshunova et al., 2017)。但是人們的頭發(fā)的研究和應用仍然處于相對落后的階段。通過發(fā)型作為每個人擁有并且引人注目的一種外表特征自然而然受到許多人的關(guān)注。但是對發(fā)型進行修飾是需要先對每一縷發(fā)絲進行建模。傳統(tǒng)方法采用的是通過拍攝多張照片,將多張照片的信息來構(gòu)建發(fā)絲的模型(Silver et al., 2017)。由于在實際的應用地中,用戶輸入信息僅僅只有一張照片,我們無法通過傳統(tǒng)的建模方法實現(xiàn)三維重建,因此我們需要通過一種不同于傳統(tǒng)三維建模的方法來實現(xiàn)可靠和健壯的發(fā)絲三維建模。
不同于人的身體和骨骼可以通過對平面就能估計出人體的大致模型,人類的發(fā)絲是由數(shù)以千計的線狀構(gòu)成的,這些發(fā)絲的各自的姿態(tài)各有不同。并且發(fā)絲與發(fā)絲之間還會產(chǎn)生交錯的連接。并且,除了外表面的發(fā)絲之外,還有存在于外表面之下的發(fā)絲,這些發(fā)絲很難通過對圖形進行掃描計算進行建模和重建,因此我們必須對這些存在于發(fā)絲之下的發(fā)絲進行建模和重建。
本篇論文中,我們從實際運用的視角出發(fā),即在只有用戶的面頰照片的情況下,運用一些常規(guī)建模,并且輔以用戶熟悉的一些基本操作來幫助我們提高對發(fā)型的建模和重建的效果。
1單照片發(fā)絲建模
由于并沒有足夠完全多的信息用于模型的構(gòu)建,而且我們的模型只用于對照片的后續(xù)的修飾和改變,因此我們并不需要完美的發(fā)型的模型來幫助我們實現(xiàn)對發(fā)型的修飾和改造。我們需要一個能夠能夠一定程度上滿足我們的要求的建模方法以達到性能和質(zhì)量的平衡。
1.1肖像的獲得
在進行建模之前,我們需要對輸入的照片作出一定的假設(shè),以達到簡化我們工作。首先我們假設(shè)這個照片是被建模者的面部前方照片,也就是說這個照片需要擁有從面對視角能看到的完整面部和所有可以被見到的發(fā)絲,同時還要覆蓋用戶的肩部和拍攝背景。
為了從背景中提取用戶的肖像,我們需要用戶在肖像中進行操作來選擇出肖像所在的區(qū)域,我們可以在用戶選擇的基礎(chǔ)上運用神經(jīng)網(wǎng)絡使用邊緣檢測(Xie and Tu, 2017)來從背景中獲取到人體的畫像,或者我們也可以使用傳統(tǒng)的Lazysnapping(Li et al., 2004)來選定用戶的畫像。
由于人類的頭發(fā)特別是女性的發(fā)型的邊界并不是非常明晰的,盡管在上一步的邊緣檢測中,我們已經(jīng)獲得了足夠好的用戶肖像,但是我們?yōu)榱诉M一步對肖像質(zhì)量進行優(yōu)化,需要對在原有的基礎(chǔ)上對肖像進行進一步的優(yōu)化處理,通過對原有圖像圈定范圍的縮放(Levin, Lischinski and Weiss, 2008)得到最后的肖像部分。
1.2發(fā)絲2D模型的構(gòu)造
目前很多模型都是通過尋找發(fā)根,在一塊區(qū)域的基礎(chǔ)上按照發(fā)絲的走向得到發(fā)絲的2D模型的(例如(Paris et al., 2008))經(jīng)過這種建模方法的效果很好,但是在發(fā)絲表面之下發(fā)絲是沒有辦法去有效的建模的,這是因為他根據(jù)一塊區(qū)域去確定的一根發(fā)絲的走向,但是實際情況是存在很多例外情況,因此這樣生成的模型存在很大的錯誤情況。同時根據(jù)區(qū)域來確定單個發(fā)絲不能很好的去估計發(fā)絲之下的情況,我們不能夠很好的獲得發(fā)絲表面之下的發(fā)絲情況,因此這種模型存在很大的偏差,同時這個問題也是所以三維發(fā)絲模型重建中遇到的不可避免的最主要的問題。
因此我們采用了Gabor濾波器(Jain and Farrokhnia, 1990)對每一個像素的每一個方向進行一次濾波,以響應最大的方向來作為該像素發(fā)絲的方向,我們采用方向核矩陣[{Kθ}]圖形[I]進行過濾,其中[K]是表示方向為[θ]的濾波核,我們讓[Fx,y,θ=(Kθ*I)(x,y)]成為在[θ]方向下的響應,其中[*]表示的是卷積操作,[x]和[y]分別表示像素所在的位置,我們通過對[(x,y)]周圍的像素經(jīng)過進行多次濾波之后,取響應最大的值的方向作為像素[(x,y)]的方向,即[θx,y=argmaxxθ(Fx,y,θ)]。
我們用于估計發(fā)絲方向的的濾波核則為:
[Kθu,v=exp-12u2σ2u+v2σ2vcos2πuλ]
其中[u=u cosθ+v sinθ]以及[v=-u sinθ+v cosθ],[u]與[v]與濾波核的大小成正比例,[λ]則控制濾波提取特征的粗細粒度。因為人類的眼睛難以察覺到[5°]的細小角度變化,并且為了提高計算的效率,我們將[180°]分成32份,然后對這32份去響應最大值的[θ]作為這個像素的發(fā)絲的方向的估計。
除了計算得到方向[θ]之外,我們還需要計算每個像素的置信度,通過置信度來估計每個像素數(shù)屬于某一縷發(fā)絲的可能性:
[wx,y=θdθ,θ?Fθ-Fθ20.5]
其中[d(θ1,θ2)]表示兩個方向的小于等于[180°]的角度(Paris, Brice?o and Sillion, 2004)。通過計算置信度,我們能夠消除不可靠的一些方向估計,獲得更高質(zhì)量的2D模型構(gòu)建。
1.3 發(fā)絲的跟蹤連接
我們在獲得了發(fā)絲的方向之后,需要把每一個屬于一縷發(fā)絲的像素連接在一起,也就是需要將發(fā)絲的像素點連接成一串發(fā)絲,為了達到這個目的,我們首先對發(fā)絲的方向圖形進行非最大抑值的操作(Jakob, Moon and Marschner, 2009)來計算,這樣我們能夠解決當兩根發(fā)絲交叉的時候,能夠解決得到正確的發(fā)絲方向。只有當同時滿足:
[wp>whighwp-maxwpL,wpRwp>?]
的時候,像素[p]才會被認為是一個種子像素。其中[w(pL)]和[w(pR)]是通過[p]點并且與[θ(p)]角度垂直的線上的兩個采樣點,并且采樣點位于[p]點的兩側(cè)且到[p]點的距離相等。
當我們得到了一個種子像素[p]之后,我們在種子像素的兩側(cè)根據(jù)[θ(p)]去延展這個像素(Paris, Brice?o and Sillion, 2004)。當如果有兩個可能的方向的時候,從所有的可能的方向[θ(p)]中選取彎折程度最小的方向[v(p)],并且沿著這個方向移動一定的位置作為下一個步來連接發(fā)絲。(Chai et al., 2012)也就是:
[pi+1=pi+δv(pi)]
其中[p]指的是中[pi]指的是第[i]次跟蹤連接過程。
與此同時,使用了確定度和健康點來去掉噪點:從一縷發(fā)絲中的一個健康點中出發(fā),從預測角度的兩個方向中的任意一個開始,直到健康的降低為0,當追蹤連接狀態(tài)(即確定度)為確定的時候,追蹤連接的方向就用當前的方向圖確定,然后將健康點的值恢復成為默認初始值。而當追蹤連接狀態(tài)為不確定時,追蹤的方向則由上一次追蹤連接的方向確定,通過這樣的方式來追蹤彎曲的頭發(fā)。每完成一步,健康點都會減去1。(Chai et al., 2012)
每經(jīng)過一步[i],我們都會根據(jù)以下的規(guī)則更新跟蹤狀態(tài):
1) 如果[i=0],則設(shè)置跟蹤狀態(tài)到“不確定”;
2) 如果[wpi<wlow],則改變狀態(tài)到“不確定”;
3) 如果[wpi≥wlow]并且[arccosvpi?vpi-1>θmax],則改變狀態(tài)到“不確定”;
4) 如果[wpi≥wlow]并且[arccosvpi?vpi-1≤θmax],則改變狀態(tài)到“確定”;
5)其他情況則保持跟蹤狀態(tài)不變。
由于前述的連接和2D的建模中會有誤差的傳導,因此我們需要在連接完之后對2D模型進行錯誤的修正。因此我們使用了中央糾正來傳導的累積錯誤。對于每一個2D模型的頂點[p],我們對[p]和[p]方向成直角且通過[p]的線上的兩個點[pL]和[PR]采樣得到每個點的置信度。然后我們使用一個三角函數(shù)[?t]并且有[?0=wp],[?-1=wpL]以及[?1=wpR],然后我們應用函數(shù)[argmax?(t)]得到[p]。(Chai et al., 2012)除此之外,我們還可以采樣顏色通道和alpha通道來獲取頂點位置。
1.4發(fā)絲的三維重建
在獲得了可接受質(zhì)量的2D的發(fā)絲模型后,我們就可以用于生成3D模型,我們主要通過以下的步驟來生成3D模型:首先,我們需要通過優(yōu)化方法來估計深度信息,然后我們使用估計出來的深度模型得到頭部邊界,然后通過頭部模型來生成更多的發(fā)絲來彌補表面發(fā)絲之下的發(fā)絲。
為了估計照片的深度信息,我們做了如下的假定,我們認定輪廓周圍的深度為0,同時頭部中央的面頰的深度也為0。額頭部分發(fā)絲的深度小于面部,其他頭發(fā)的深度應該位于這兩者之間,并且應該注意到之前估計到的發(fā)絲的遮擋關(guān)系。
在深度的估計過程中,我們有如下的限制(Chai et al., 2012):
1) 深度限制使深度位于輪廓和面頰中央之間。
2) 發(fā)絲限制保證了發(fā)絲的建模的柔順自然,不發(fā)生不自然的曲折。
3)近鄰限制保證了深度的連貫性,也就是說周圍的具有相同方向的發(fā)絲具有連貫的深度。
讓[pi]作為一縷發(fā)絲的第[i]個最高點。[zp是p點]的深度。因此根據(jù)以上的限制,我們有如下的定義式(Chai et al., 2012):
[EZpi=zpi-zpi2]
[ESpi=zpi-zpi-1+zpi+122]
[ENpi=zpi-q∈NpizqNpi2]
其中[zp]對[p]的深度限制,而[Np]則表示近臨的與[p]不屬于同一縷發(fā)絲,但卻屬于同一個方向的鄰居最高點[p]。
最后們通過梯度下降或者高斯下降法使下列方程使E最小化,即:
[E=wZEZ+wSES+wNEN]
此時[argzminE(zpi)]也就是最后估計的深度。通過三維重建,最后得到我們的3D模型。
2局限性和展望
經(jīng)過能夠得到能夠接受質(zhì)量的3D模型,但是獲得3D模型的計算代價十分高昂,難以在用戶移動端設(shè)備上流暢的運行。并且3D模型的建立依賴于用戶的輸入,需要通過用戶的輸入來識別用戶的肖像,并將肖像與背景分離。同時由于信息的局限性,三維模型不能很好的反映看不見的(例如背后和表層發(fā)絲之下)的三維模型,并且三維模型的構(gòu)建仍然有提升的空間。
隨著最近深度網(wǎng)絡的崛起和異構(gòu)處理器算力的提高,我們能夠在用戶的移動設(shè)備上使用深度學習來幫助構(gòu)建3D模型。例如將肖像從人物的背景中提取出來,同時我們可以使用深度神經(jīng)網(wǎng)絡來幫助構(gòu)建我們的從圖像中構(gòu)建圖像的深度模型(Id, 2015)。并且在發(fā)絲的方向的判斷上面,我們可以使用多層卷集神經(jīng)網(wǎng)絡來減少終端的計算量并且提高識別的精確度。
參考文獻:
[1] Chai, M. et al.Single-view hair modeling for portrait manipulation, ACM Transactions on Graphics,2012,31(4):1-8.
[2] Id, O. S.AutoHair: Fully Automatic Hair Modeling from A Single Image, 2015,116:1-1.
[3] Jain, A. K. and Farrokhnia, F. Unsupervised texture segmentation using Gabor filters, Pattern recognition,1900,24(12):14-19.
[4] Jakob, W., Moon, J. T. and Marschner, S.Capturing hair assemblies fiber by fiber,ACM Transactions on Graphics,2009,28(5):1.
[5] Korshunova,I.et al. Fast Face-Swap Using Convolutional Neural Networks,in Proceedings of the IEEE International Conference on Computer Vision,2017:3697-3705.
[6] Levin, A., Lischinski, D. and Weiss, Y.A closed-form solution to natural image matting, IEEE Transactions on Pattern Analysis and Machine Intelligence,2008,30(2):228-242.
[7] Li, Y. et al. Lazy snapping, ACM SIGGRAPH 2004 Papers on-SIGGRAPH 2004(04):303.
[8] Paris, S. et al. Hair photobooth: geometric and photometric acquisition of real hairstyles, in ACM Transactions on Graphics (TOG),2008:30.
[9] Paris, S., Brice?o, H. M. and Sillion, F. X. Capture of hair geometry from multiple images, ACM SIGGRAPH 2004 Papers on? ?- SIGGRAPH 2004,04,1(212):712.
[10] Silver, D. et al. Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm,2017:1-19.
[11]? Viola, P., Way, O. M. and Jones, M. J.2004-Robust_Real-Time_Face_Detection.pdf,2004,57(2):137-154.
[12] Xie, S. and Tu, Z.Holistically-Nested Edge Detection,International Journal of Computer Vision, 2017,125(1-3):3-18.