王 俊 (安徽省第一測繪院,安徽 合肥 230031)
實(shí)景三維建模主要分為三個階段:①早期采用計(jì)算機(jī)輔助設(shè)計(jì)軟件結(jié)合紋理貼圖的方式,該方式建模成本高,速度慢,隨著技術(shù)的發(fā)展和數(shù)據(jù)源獲取方式的飛速發(fā)展而不再是主流實(shí)景三維建模方式,工作流程后移,逐漸過渡到自動化實(shí)景模型生成后的模型精細(xì)化修飾;②計(jì)算機(jī)圖形學(xué)里多視角匹配技術(shù)成為了自動化建模的主要手段,目前,絕大多數(shù)的實(shí)景三維建模以此技術(shù)為基礎(chǔ)而發(fā)展起來的,較為典型的有Context Capture、PhotoScan、PhotoMesh、街景工廠,該類技術(shù)自動化程度高,人工干預(yù)較少,模型效果較好;③近年來,隨著人工智能技術(shù)的發(fā)展,對實(shí)景單位建模的對象化識別成為了一個新的熱點(diǎn)方向,較為普遍的是采用神經(jīng)網(wǎng)絡(luò)技術(shù),通過樣本訓(xùn)練,進(jìn)行對象的識別,該類技術(shù)前期工作較為依賴人工定義樣本,自動化程度較低,正處于快速發(fā)展期。本文將結(jié)合Context Capture實(shí)景三維建模軟件,分析可能影響建模性能的一些關(guān)鍵指標(biāo),并嘗試提出部分應(yīng)對措施。
Context Capture建模主要包含連接點(diǎn)提取,影像對提取,空間方位定向,連接點(diǎn)匹配,光束法平差,構(gòu)建不規(guī)則三角網(wǎng)、三角網(wǎng)的優(yōu)化與光滑,紋理映射等關(guān)鍵步驟。從連接點(diǎn)提取到光束法平差簡稱為“空三”過程,構(gòu)建不規(guī)則三角網(wǎng)到紋理映射為模型創(chuàng)建過程?!翱杖敝械倪B接點(diǎn)提取與匹配目前是多核多線程的典型應(yīng)用代表,同時也是較好利用分布式集群的模塊,而在三角網(wǎng)的瓦片重建部分分布式集群和GPU計(jì)算則更為關(guān)鍵??v觀整個工程,從CPU角度,提升性能主要依靠增加CPU核心和CPU主頻來實(shí)現(xiàn)。在測試中,利用Intel VTune Amplifier專用軟件對Context Capture程序運(yùn)行進(jìn)行熱點(diǎn)分析,通過分析得出如下結(jié)論:建議計(jì)算節(jié)點(diǎn)配置CPU的邏輯核心在20個左右較為合適,CPU主頻基準(zhǔn)不低于3.5Ghz為宜。
GPU為圖形計(jì)算單元,作為CPU的輔助計(jì)算單元,GPU是一種大規(guī)模并行計(jì)算架構(gòu),能夠?qū)?yīng)用程序部分計(jì)算密集型工作負(fù)載轉(zhuǎn)移到GPU,同時仍然由CPU運(yùn)行其余程序代碼。影像處理中的大量的矩陣運(yùn)算正是GPU能發(fā)揮特長的時候。Context Captue的模型重建過程中,有大量的浮點(diǎn)運(yùn)算利用要GPU,經(jīng)過測試,Nvdia GTX1080及以上性能GPU能較好滿足計(jì)算要求。
Vulkan是新一代的圖形和計(jì)算應(yīng)用程序接口(API),最核心的優(yōu)勢是高性能和跨平臺。其優(yōu)秀的跨平臺能力得到眾多圖形程序開發(fā)者的青睞。Vulkan目前支持AMD、ARM、博通、英特爾、英偉達(dá)、Silicon等公司的圖形顯示設(shè)備,并提供了完善的驅(qū)動程序包供各類程序員使用。Context Capture實(shí)景建模支持多顯卡并行使用,為保持對各類顯卡的兼容性,最大化減少圖形計(jì)算硬件的廠商依賴性,采用了Vulkan多顯卡技術(shù)。經(jīng)過實(shí)踐得出,雙顯卡的使用,使得實(shí)景三維建模的性能整體提升15%~20%。以下是GPU的使用和雙顯卡的利用率截圖。
在實(shí)景建模中,需要處理海量圖片,磁盤的IO響應(yīng)時間與CPU處理速度有著不可逾越的橫溝,內(nèi)存作為中間層,充當(dāng)著數(shù)據(jù)計(jì)算的存儲中轉(zhuǎn)站。在Context Capture后期的三維格網(wǎng)生成及紋理貼圖中,依據(jù)區(qū)域大小劃分瓦片,瓦片塊數(shù)目越少,單個瓦片的范圍越大,需要處理的數(shù)據(jù)越多,對內(nèi)存的需求越大。內(nèi)存組建多通道有助于提升整個內(nèi)存的數(shù)據(jù)讀取帶寬;采用高頻的內(nèi)存也可一定范圍內(nèi)提升數(shù)據(jù)處理速度。
硬盤性能主要有連續(xù)讀寫速度、隨機(jī)讀寫速度、輸入輸出次數(shù)(IO),均以單位時間來衡量。硬盤主要分為機(jī)械硬盤(HDD)和固態(tài)電路硬盤(SSD),前者主要依靠磁盤轉(zhuǎn)速提升性能,高速HDD散熱量大,單盤容量小,后者主要由閃存類型和接口(協(xié)議)種類決定硬盤性能且整體性能大幅高于前者,但單位容量成本高,僅在數(shù)據(jù)中心等少數(shù)關(guān)鍵業(yè)務(wù)領(lǐng)域使用。網(wǎng)絡(luò)主要依據(jù)數(shù)據(jù)吞吐量和包轉(zhuǎn)發(fā)率及各種網(wǎng)絡(luò)協(xié)議的支持程度來衡量網(wǎng)絡(luò)設(shè)備的好壞。分布式集群突出的特點(diǎn)是將地理位置散落各地、計(jì)算能力各不相同的終端組合利用,如何合理調(diào)度資源并行計(jì)算最為關(guān)鍵。對城市級的實(shí)景三維建模,高達(dá)上百T的海量原始數(shù)據(jù),只有采用分布式集群建設(shè)模式,充分利用計(jì)算資源才可按時完成任務(wù)。合理的分布式架構(gòu)的設(shè)計(jì)則成為了關(guān)鍵。Context Capture分布式計(jì)算涉及到海量影像圖片的讀取,連接點(diǎn)文件,金字塔文件的生成,海量的紋理切片,該類文件特點(diǎn)數(shù)量多,單個數(shù)據(jù)量小,整個過程較為依賴網(wǎng)絡(luò),且數(shù)據(jù)讀取頻繁。為簡化分布式體系搭建,Context Capture采用了文件級網(wǎng)絡(luò)傳輸,網(wǎng)絡(luò)協(xié)議基于CIFS,同時采用UNC或者網(wǎng)絡(luò)映射磁盤位置進(jìn)行存儲定位,配置較為簡單。沒有特殊的協(xié)議優(yōu)化,文件傳輸?shù)男视幸欢ǖ挠绊?,尤其是并行寫入方向。?0臺規(guī)模的分布式集群來考慮,建議計(jì)算節(jié)點(diǎn)為千兆傳輸接入,存儲節(jié)點(diǎn)萬兆傳輸介入,計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)硬盤采用SSD。如預(yù)算有限,建議將5~6臺計(jì)算節(jié)點(diǎn)獨(dú)立為一組,每組設(shè)置獨(dú)立的大容量HDD存儲節(jié)點(diǎn)。
綜上所述,實(shí)景三維建模項(xiàng)目的生產(chǎn)效率受多方面因素制約,是各類硬件資源綜合利用的過程。在合理的預(yù)算基礎(chǔ)上,選擇適合的硬件解決方案尤為重要。此外,本文討論內(nèi)容較多,篇幅有限,未能對所有的實(shí)驗(yàn)過程進(jìn)行完全展示。但就硬件重要性而言,高主頻多核心的CPU應(yīng)著重考慮。如需進(jìn)一步分析Context Capture運(yùn)行過程中內(nèi)部執(zhí)行效率,可利用英特爾專用工具VTune Amplifier來量化分析。