2021-4-9 | 影視動畫論文
作者:徐正則 單位:華東師范大學傳播學院實驗中心
激光掃描儀是一種常見的三維掃描儀,“利用三維激光掃描技術,可以深入到復雜的現場環境及空間進行掃描操作,并可以直接實現各種大型的、復雜的、不規則、標準或非標準的實體或實景三維數據完整的采集,進而快速重構出實體目標的三維模型及線、面、體、空間等各種制圖數據。”[1]三維掃描所獲取的數據不同于手工建模所構造出的線、面和實體數據,掃描得到的數據稱為“點云”,“點云數據是由大量的離散點構成的。這些離散點并不是無規則的排列在一起,而是按照一定的行列間隔有序排列。”[2]可以利用三維重構技術通過這些點云數據來恢復被測表面的網格模型或曲面實體模型。三維掃描技術能快速完整地獲取物體的三維信息,并能夠方便有效地生成其三維模型,具有精度高、省時省力的優點。其主要缺點,首先是三維掃描儀特別是高精度的激光掃描儀硬件價格昂貴,其次模型的精度和測量點的間距有關,間距越小,精度越高,但需要處理的點云數據量也呈幾何級增加。
基于真實照片的三維立體建模基于照片的三維建模是指使用一張或幾張不同角度的數碼照片來創建三維的立體模型。它克服了傳統建模技術的許多不足,有一定的優越性。比如,它克服了三維掃描儀的應用限制,由于受空間、地點等因素的限制(如摩天高樓等一些被測物體體積龐大),一般大型的三維掃描設備無法進行測量。這種建模方式無需昂貴的三維掃描儀就可以快速高效地創建復雜物體的三維模型,并且“基于圖像的建模與繪制技術為我們提供了達到照片般真實的一個自然的方法。它使我們可以用較短的建模時間、較快的繪制速度來獲得以前從未有過的照片真實效果。”[3]
基于真實照片三維建模方法的發展歷程與趨勢
1、手動建模早期,基于真實照片的三維建模方法是作為手工建模的一種輔助手段,可以在一定程度上提高建模效率。此時照片只能用來定位規則幾何體的頂點位置,然后根據這些頂點來手工創建模型。這種方式的局限在于只能創建規則幾何體的三維模型,比如大樓、書本等立方體,對于不規則的網格多邊形(mesh)和曲面卻束手無策。
2、半自動化建模EosSystems公司開發的PhotoModeler和Re-alVIZ公司開發的ImageModeler(現被Autodesk收購)就是兩種功能相似的工具軟件,它們可以根據幾張不同角度的照片來創建物體的三維立體模型,但在分析和計算三維場景之前,需要首先手動放置標記點,也稱參考點(ReferencePoints),一個一個地對齊物體的頂點位置,或手動指定位于物體邊緣的參考線(ReferenceLines),因此也被稱為半自動化建模。它在創建模型之后,還能根據照片中的像素手動提取貼圖材質,從而創建出照片級的具有真實感的三維模型。
3、全自動化建模建立在半自動建模工具的基礎上,近來隨著模式識別和人工智能等技術的發展,基于真實照片的三維建模工具的功能進一步增強,使無需人工參與的全自動化建模方式逐漸成為可能,目前業內領先的相關公司爭相研發,力求取得關鍵技術上的突破。代號為ProjectPhotofly的實驗工程項目(現改名123DCatch)是Autodesk實驗室(Autodesklabs)里的一款實驗性工具軟件,目前處于研究、開發和測試階段,現可以試用其全自動化的建模功能。只需把同一靜止物體的多角度照片輸入,該工具會通過網絡,把這些照片傳送到后臺的Autodesk云計算系統,經過大量的自動識別和計算之后,輸出經過了三維重建后的3Dmesh模型。由于該技術極為復雜,且容易受到物體的復雜度以及實際輸入的照片序列與理想值之間差別等各方面的干擾和影響,實際部分制作仍需要一些手工調校,以輔助計算機進行識別。基于真實照片的全自動建模技術集中了各類優點,代表了一種先進且高效的建模方式,值得進一步關注和研究。本文以實驗項目ProjectPhotofly為例,探索其基本建模方法和制作流程。
全自動化建模方法、流程與技術原理
1、基本方法本文以實驗項目Autodesk123DCatch/ProjectPhotofly為例,介紹該軟件創建三維模型的基本方法。Autodesk123DCatch/ProjectPhotofly是一種基于多張真實照片分析計算后,自動生成具有照片級真實感(photo-realistic)的三維立體模型和場景的客戶端-服務器架構的軟件。它通過客戶端與用戶交互,利用后臺的服務器組來計算和處理照片中的信息,最后自動生成三維場景模型。它把待建模的物體歸為四種基本類型:小型靜止物體、室內環境和裝飾物、靜止的人像以及建筑物等室外大型物體,這四種類型物體的基本建模方法如圖1所示。
2、主要流程(1)使用數碼相機拍攝原始的照片圖像集。(2)在Autodesk123DCatch客戶端中選取CreateaNewCapture,登錄Autodesk賬戶后,可以選取步驟(1)中準備的照片集,通過因特網把它們提交到后臺進行計算。(3)照片集被提交到后臺后,Autodesk123DCatch利用高性能的云計算服務器組對其進行一系列的計算,生成具有照片級真實感(photo-realis-tic)的三維場景模型(默認為Mobile最低質量的模型)。(4)3dp格式的三維場景模型(PhotoScene)通過網絡被傳回客戶端后,可以在客戶端里進行增加修改照片,調校相機的位置,手動縫合照片,加注參考點,以自由視角觀察三維模型,對模型進行修改和裁剪,重新提交后臺計算,以獲取高精度的三維模型等各項操作。(5)流程(2)~(4)是可重復的過程,可以不斷地對照片、模型和其它各個參數進行調校,以得到更加精準、真實且高質量的三維場景模型。(6)可以在本地保存已完成計算后生成了三維場景的文件和項目(3dp),無需重新向云計算服務提交,便可在本地重建。(7)可以導出三維場景文件為dwg或obj格式,以便其它三維軟件如AutoCAD、3dMax、Maya等導入該三維場景后繼續使用。
3、方法要點和注意事項建模方法:鑒于實現該建模方法的主要技術原理是對于照片集的分析和計算,可以說拍攝和捕捉照片圖像這個流程是最重要的環節,因為算法是相對固定的(雖然算法也在不斷地改進和發展),它作為少數幾個能由用戶所決定和控制的環節,直接決定了創建模型的成敗以及模型的質量。原始的照片集是否合格,除了照片本身是否清晰、是否過暗、是否過度曝光以外,還需要滿足以下幾點要求:(1)應每隔5度~10度就圍繞建模對象拍攝一張照片,這樣40張~50張照片就可以對該物體進行360度的全覆蓋,還可以從不同的高度(比如底部和頂部)或角度來拍攝,以盡量捕捉該物體各個部位的圖像信息。值得注意的是,由于經過三維重構后生成的是網格(Mesh)模型,而不是實體模型,因此模型實際上是空心的。如果物體某一面沒有被拍攝到,這個模型就沒有閉合,從這個角度觀察模型時三維引擎的渲染就會出現異常。(2)照片應盡量只捕捉建模對象,而最大化地減少其它背景圖像的干擾,可以使用二維圖像制作工具如photoshop來裁剪圖像。(3)如建模對象是人像,就如同畫人像素描一樣,拍照時人應處于靜止狀態。目前還無法對活動的物體進行建模,因為該識別是基于照片中的像素的,且假設物體是靜止的,只是因照相時的角度不同才使同一個像素的位置發生了偏移。(4)如建模對象為建筑物等宏大物體,不要讓鏡頭前有移動的物體或靜止物體如樹木遮擋建筑物的外觀。這類建筑物般的宏大物體應以中遠距離拍攝為主,鏡頭不要推得太近,使照片中只剩下過度細節的部分,從而不利于計算時分析照片中部位在整體所處的位置,以及相機的方位。如果需要建筑物呈現出細節部分,也可以近距離地拍攝幾張照片作為補充。(5)目前由于后臺計算算法的不完善,應盡量避免出現透明狀的被攝物體或照片中出現由光線反射所形成的高光亮點。最好在明亮的環境中拍攝,不要使用閃光燈。也應該避免出現陰影,這些都很有可能造成軟件引擎無法有效識別照片中的像素,影響模型的質量或使照片無效,而不能產生建模用的網格模型數據。圖3進行了相應的展示,可見由于物體表面光滑易反光形成亮點,造成自動生成模型的部分表面坑坑洼洼。(6)軟件引擎需要識別各個照片中的像素,來判斷被攝物體和相機的相對位置,以便能把照片集都縫合(Stitching)在一起,照片與照片之間的像素至少要有50%的重疊部分。建模注意事項:為了得到更接近真實的三維模型,可以不斷地調校,實際上流程(2)~(4)是可重復的過程。可調校的參數對于最終生成的三維模型具有很大的影響,具體包括:(1)可能是由于原來照片中細小的缺陷,也可能是建模算法還不夠完善,模型建立后應從各個角度仔細觀察與原有物體之間的差異。對于模型中不精準的部位,可以通過增補或替換照片來重新計算結果,也可以通過加入物體局部的照片來提高模型細節部分的表現。(2)相機的標定和方位識別。如果相機標定出現錯誤,會造成不相鄰的照片被錯誤地縫合在一起,而所有照片準確無誤地縫合在一起,是建立精確三維模型的前提和關鍵因素。照片縫合錯誤主要由兩種原因造成,首先是在相鄰的照片間缺少足夠重疊的像素;其次是某些照片間的相似點太多,計算機無法有效識別,比如從建筑物各個角度拍攝的照片大同小異,有時連人眼也無法分辨其中的差異。對于無法識別而錯誤縫合在一起照片,此時首先需要手動對其進行解耦合(unstitched),然后通過添加參考點或參考線條的方法來幫助計算機更好地識別。比如對多張照片中出現的同一位置,可以加入參考點,讓計算機知道A圖中的這里,其實就是B圖中的那里。此外,也可以進行手動縫合(Stitching),來避免因計算機無法有效識別而不能準確縫合照片的問題。(3)可以調整模型的質量精細等級來得到效果更好的網格模型。網格模型的精細度與網格的分辨率也有很大的關聯,Autodesk123DCatch中所生成的網格質量精細等級分為:Mobile(計算速度最快,最低分辨率的網格),Standard(計算速度和網格的分辨率都適中),Maximum(計算量最大,分辨率極高的網格)。由于分辨率越高,所需的計算量就越大,為了在保證模型質量的前提下盡量提高建模的效率,可以在調校階段先使用低分辨率的網格構建草圖級的模型,然后進一步地精細化。