基於多視角照片的3D人臉重建

查志強發表於2015-03-10

【原文:http://www.sigvc.org/why/book/3dp/chap5.3.2.htm

5.3.2 基於多視角照片的3D人臉重建

多視角三維重建的技術原理請詳見第66.3節“立體視覺重建:將照片轉成3D數字模型”,本節主要介紹如何具體地操作和應用。Autodesk(歐特克)公司釋出了一個建模軟體 Autodesk 123D Catch,有了它,你只需要簡單地為物體拍攝多張照片,不需複雜的專業知識。利用雲端計算的強大能力,123D Catch可以將使用者拍攝的照片迅速轉換為逼真的3D模型。官方下載地址:http://www.123dapp.com/catch,下載安裝註冊都很容易。

在實際使用時,使用者一般需要拍攝至少20張左右不同角度的照片。比如你可以讓朋友對著你的頭部拍攝一組照片,然後用123D Catch生成你頭部的3D模型。如果可能,最好圍繞著物體拍攝兩圈,每圈照片錯開角度、高度和間隔,如圖5.3.2-1所示。

5.3.2-1  拍攝至少20張左右不同角度的照片 (圖片來源:Autodesk

再舉一個例子,如圖5.3.2-2所示的這組照片是先以約60環拍一圈,再以約15度的角度環拍一圈。在拍攝之前,先計劃好如何移動,如何從不同角度拍攝。記住一點,先圍繞著物體轉一圈拍攝,然後再拍些細節。圍繞物體拍攝時,多少度角照一張,取決於你想拍的物體。有些物體25度角就可以。有些樣子複雜的物體,需要更密集,比如轉10度就需要照一張,轉一圈下來共需要排36張。

圖5.3.2-2  拍攝的路徑規劃以及所拍攝的多角度照片 (圖片來源:3dprintime)

根據Autodesk的官方說明,要想用這個軟體做出理想的3D模型,你還必須掌握如何去拍照,需要注意的地方如下。

²  整個拍攝過程,要保持在同樣的光照下,有專業的環境最好。光線不能太亮和太暗。拍攝時也不能用閃光燈。拍攝時還要注意相機不能抖動以免照片模糊。

²  要連續拍完,不能今天拍了幾張,明天再拍幾張。

²  避免拍攝透明、反光、或平坦光滑的物體。

²  拍攝時,也要避免有對稱特徵的物體。

²  相鄰照片之間最好有50%的場景重合。這樣軟體才能根據相同部分,把其他不同部分加進來。

²  如果拍攝活的動物或人,要確保他們在拍攝過程中不動。此外,不停的亂動也會使快門速度不夠高的普通相機拍出模糊的運動影象來。

²  拍物品時,也不能把物品翻過來拍。把想拍的物體放好後,圍著它轉著拍。拍攝中只能你動,不能移動物體。

123D Catch採用的是多視角立體匹配重建(Multi-View StereoMVS)技術,原理建立在以特徵匹配為基礎的三角測距。因此,拍照時儘量使物體放置在有特徵的背景裡,否則軟體很難在多張照片之間找到匹配,導致無法生成3D模型。比如,要避免拍攝沒有特徵的背景牆,軟體非常難識別這樣的背景照片。你可以新增一些特徵到牆上,例如貼一些畫是個好辦法。又比如,你想拍一隻恐龍,不要把它放在光滑的地板上。可以找塊有特徵的地毯或鋪一張報紙(如圖5.3.2-3左邊所示),把恐龍放在地毯/報紙上面再拍攝。當然,你也可以在背景裡貼上一些特徵紙條,如圖5.3.2-3右邊所示。同理,也不能拍攝那些平行、相似度太高(特徵模糊的)物體,例如有很多一模一樣窗戶的樓房。

圖5.3.2-3  將物體放置在有特徵的背景裡。左:報紙;右:畫有特徵的紙條

拍完照片之後,你就可以上傳了。注意在上傳前,你最好不要修改原始照片。因為原始照片帶有照相機的引數,軟體需要這些引數進行標定。上傳照片後,軟體會自動找到和匹配照片中物體的共同特徵。以這些共同特徵為基點,把不同照片中物體的特徵整合在一起,以便生成3D模型。如圖5.3.2-4所示,這是所生成的3D模型和它的三角網格。你可匯出為3D檔案,以便輸出到3D印表機進行列印。

    

5.3.2-4  生成的3D模型和它的三角網格

通過閱讀前面的拍攝注意事項,可能有的讀者心裡會犯嘀咕:拍照難道要這麼講究啊?非也!你當然也可以有不那麼講究的套路,但前提是需要加錢購置裝置。如圖5.3.2-5所示,我們可以繞顧客一圈上下架設多臺照相機(比如20臺),以毫秒級的精度控制它們同步拍攝。這樣,你就不用費時費力地端著相機繞顧客拍了。

 

圖5.3.2-5  架設多臺照相機同步拍攝人像 (圖片來源:NUS)

然後,使用3D智慧數字化演算法,比如利用多視角立體視覺、Visual Hull技術(見第66.3.2節“基於立體視覺、SFMVisual Hull的三維重建”)以及幾何細節形變技術(見第66.2.3節“個性化形狀的編輯與合成”),我們就可以獲得瞬間的3D形狀。如圖5.3.2-6所示,因為拍攝在毫秒級的時間內完成,這時顧客就不再需要保持一個姿勢幾分鐘不動了。

圖5.3.2-6  使用3D智慧數字化演算法重建出瞬間的3D形狀 (圖片來源:MIT)

除了同步拍攝人體,我們當然也可以同步拍攝人臉。如圖5.3.2-7所示,我們可利用多臺同步拍照的高清單反相機,基於多視角重建技術來獲取“毛孔級精度”的精細3D重建。

5.3.2-7  利用多臺同步拍照的高清單反相機來獲取“毛孔級精度”的精細3D人臉(圖片來源:ETH Zurich

有的讀者會說,上面的技術確實很酷,連毛孔都能拍出來。但這麼多三腳架擺在顧客面前確實嚇人(有種“大刑伺候”的感覺?),而且多臺單反相機成本也不低,此外還有很多顧客臉上痘痘什麼的也不少啊,毛孔級精度似乎太精細了(正所謂:架起大炮找蚊子)。沒關係!創客們最大的優點就是樂於成為普通大眾的“貼心小棉襖”,比如牛津大學就研製出一款手持式3D掃描器Fuel3D,任何人都能通過它快速獲得現實物體的3D模型。像普通相機一樣,只需對準目標,按下快門,Fuel3D就能在數秒內幫你抓取3D人臉模型。如圖5.3.2-8所示,左右安裝有兩個攝像頭,也是基於計算機視覺立體成像的原理。

圖5.3.2-8  Fuel3D的外形圖 (圖片來源:牛津大學)

與5.4節的Kinect相比,Fuel3D精度更高,如圖5.3.2-9所示,這得益於它更高的拍攝解析度。

Scan data comparison: Fuel3D on the left and Kinect (aligned but un-merged meshes) on the right

5.3.2-9  Fuel3DKinect的掃描結果對比。每個小圖的左邊為Fuel3D的結果,右邊為Kinect的結果。


相關文章