3.ContextCapture介紹
3.1原理綜述(Principle)
ContextCapture需要以一組對靜態建模主體從不同的角度拍攝的數碼照片作為輸入數據源, 加入各種可選的額外輔助數據:攝像頭的屬性(焦距,傳感器尺寸,主點,鏡頭失真),照片的位置(如GPS),旋轉照片(例如,INS),控制點,等等... 無需人工干預,ContextCapture在幾分鐘/或數小時的計算時間內,根據輸入的數據的大小,能輸出高分辨率的帶有真實紋理的三角網格模型。 生成輸出的三維網格模型能夠準確精細地表現出建模主體的真實色澤、幾何形態及細節構成。
ContextCapture的高兼容性,能對各種對象各種數據源進行精確無縫建模,從厘米級到公里級,從地面或從空中拍攝。只要輸入照片的分辨率和精度足夠,生成的三維模型是可以實現無限精細的細節。
ContextCapture最適合于的復雜幾何形態及啞光圖案表面的物體,包括但不限于藝術品,服裝,人臉,家具,建筑物,地形和植被等。
沒有顏色變化的(如純色墻壁/地板/天花板),或反射、高光澤,透明或折射材料(如玻璃,金屬,塑料,水,以及某些皮膚皮革等)的表面可能會造成生成的3D模型表面存在錯誤的孔、凹凸或噪音。
ContextCapture主要應用對象為相對靜態的物體。移動物體(人,車輛,動物等),不作為主要建模對象時,偶爾會處理出現在生成的3D模型中。如果要針對這些對象單體進行數據制作,在拍攝過程中,人或動物等對象應保持靜止或采用多個同步像機來拍攝。
譯者注:當前流行的人像拍照就是采用矩陣相機,多相機同時曝光。如下圖效果。
3.1.1近至中距離景物建模(Capturing close range - mid range subjects)
應用領域覆蓋:建筑設計,工程與施工,制造業,娛樂及傳媒,電商,科學分析,文物保護,文化遺產等領域。
3.1.2城市大場景及自然景觀Mapping large-scale urban or natural environments
ContextCapture超越了由一些流行的在線地圖服務提供的低空鳥瞰圖。它可以以完全自動化的方式,將各種圖像源(飛機、直升機、無人機、街道級)轉換為一致、準確的真實3D模型,涵蓋所有尺度,從大規模的浮雕到更精細的人造建筑、物體和自然地標等。大場景主要應用領域:數字城市,城市規劃,交通管理,數字公安,消防救護,應急安防,防震減災,國土資 源,地質勘探,礦產冶金等。
3.2ContextCapture系統架構(Architecture)
ContextCapture的兩大模塊是Master與Engine引擎端。它們都遵循主從模式(Master-Worker):
Master是ContextCapture的主要模塊。您可以通過圖形用戶界面,向軟件定義輸入數據,設置處理過程、提交過程任務、監控這些任務的處理過程與處理結果可視化等。ContextCapture Master不會執行處理過程,而是將任務分解為基礎作業并其提交給作業隊列(Job Queue)
Engine是ContextCapture的工作模塊。它在計算機后臺運行,無需與用戶交互。當ContextCapture引擎端空閑時,一個等待隊列中的作業的執行,主要取決于它的優先級與提交的數據。一個作業通常由空中三角測量過程或三維重建組成??罩腥菧y量過程或三維重建采用不同的且計算量大的密集型算法,如關鍵點的提取,自動連接點匹配,集束調整、密度圖像匹配、魯棒三維重建、無接縫紋理映射、紋理貼圖集包裝、細節層次生成等。
譯者注:空三(AT)的任務優先級高于Production的生成
由于采用了主從模式(Master-Worker),ContextCapture支持集群(Grid Computing)。 只需在多臺計算機上運行多個ContextCaptureEngine引擎端,并將它們關聯到同一個作業隊列上, 就會大幅降低處理時間。 ContextCapture的集群主要基于操作系統的本地文件共享機制。它允許ContextCapture透明地操作SAN(存儲區域網絡)、NAS(網絡連接式存儲)或者共享的標準HDD(硬盤驅動器),無需配備任何特殊的網格運算集群或架構。
ContextCapture包括以下工具模塊:
Acute3D Viewer:是Acute3D的免費的輕量可視化模塊,它對Acute3D原生格式進行了優化,這種格式可以處理多重精細度模型(LOD)、分頁(Paging)和網絡流(Streaming),因此TB級的三維數據能夠在本地或在線環境下進行順暢地瀏覽。您可以使用Viewer對觀察控制ContextCapture主控臺工作流的生產質量,您也可以利用它對最終生產的模型成果進行瀏覽。
ContextCapture Settings: 管理軟件授權許可證及相關其他軟件配置。
ContextCaptureSceneComposer:為Viewer修改設定各種三維可視化工程文件。
譯者注:Acute3D Viewer幾乎支持ContextCapture所有的三維模型數據格式。局限性表現為當數據量大的時候,tile數過多,初始加載過程會很慢。SceneCompose可以對osgb格式的模型編寫Acute3D Viewer支持的s3c索引文件。過程較為復雜,新版本當中被隱藏了,可以去安裝目錄下查找。動代碼的建議使用開源的osgviewer,或者免費的locaspaceviewer對于瀏覽osgb格式的傾斜模型,操作簡單,體驗效果較好。
3.3工作流(Workflow)
用戶可以通過ContextCapture Master主控臺用戶界面,定義原始數據和處理過程設置,并向作業隊列提交相應的三維重建任務。工作組中空閑的ContextCapture引擎會自動從作業隊列中獲取三維重建任務并并將結果輸出至預先設定的存儲路徑。通過ContextCapture Master主控臺用戶面,用戶也可以直接監控這些任務的當前狀態與處理進度(想要獲取更多的信息請參照作業監控)。當所有這些任務處理完成之后,該項目的三維模型就已經生產完成了。
模型修飾(Retouching)
在絕大多數情景下, 自動生成的三維模型可以直接使用。但是對于一些特定應用,用戶可能需要使用某些第三方軟件對自動生成的三維模型的局部幾何模型誤差進行修飾,并通過ContextCaptureMaster主控臺=將這些修飾后的三維模型重新導入,并提交新的三維重建任務使修改后的模型重新通過自動=紋理映射獲得正確的貼圖以完成三維模型更新。
3.4系統要求(System Requirements)
ContextCapture支持運行在微軟Windows XP/Vista/7/8/10 64位操作系統上。它至少需要8G的內存和擁有1GB顯存與512個CUDA核心的NVIDIAGeForce 或 AMD顯卡,或者Intel支持opengl3.2以上并且大于1G顯存的顯卡。該軟件對桌面計算機與機架式計算機均支持。該軟件甚至可以在多媒體或游戲筆記本上運行,雖然這時的性能會顯著降低。
截至2017年7月,我們建議的運行配置為:主流塔式計算機運行微軟Windows 7/8/10 64位專業版并帶有至少16GB的內存、至少8線程的CPU與NVIDIA GeForce GTX 1080Ti及以上的顯卡。請聯系Acute3D當地代理商提供更專業的硬件配置建議(GeForce GTX TITAN, Quadro, bi-Xeon等)
輸入數據、處理數據與輸出數據最好被存儲在快速存儲裝置上(如高速HDD、SSD、SAN等等),而對于基于文件共享的集群運行環境,我們建議使用千兆或以上的以太網。
譯者注:根據網友的實測,對于實際數據生產的公司建議64G以上內存,有條件的可以128Gb以上。CPU頻率越高越好。顯卡還是建議NVIDIA GTX2080及以上系列。對于原始照片、生成結果建議使用磁盤陣列或者固態硬盤。是在不具備條件的可以考慮照片、生成結果分磁盤存放。
3.4.1關于遠程桌面(About Remote desktop connection)
ContextCaptureEngine引擎不能通過Windows自帶的遠程桌面連接來操作,因為它不支持硬件加速。然而,用戶可以利用基于VNC(虛擬網絡計算機)的各種遠程遙控軟件來操作ContextCapture Engine引擎端。
譯者注:很多網友遇到了這個問題,這里建議teamviewer、QQ、或者KVM物理切換器
3.4.2關于Windows會話(About Windows session)
當ContextCapture引擎運行時軟件不支持切換Windows用戶,這將會引起運行計算失敗。因為硬件加速在當用戶未連接時不可用。
譯者注:個別網友遇到了電腦查看顯卡正常,ContextCapture無法識別顯卡的問題,有驅動問題的,更多的是顯示器插在了主板上。顯示器一定要插在獨立顯卡上。
3.4.3 中文路徑問題(About paths with non-ASCII characters)
ContextCapture目前版本還不支持非ASCII字符的路徑。因此,所有指定的輸入與輸出文件的路徑必須使用ASCII字符(即暫不支持中文文件名和目錄名)。
3.4.4多GPU模式(Multi GPU mode)
ContextCapture可以利用多個GPU架構。
檢查ContextCapture設置中的“啟用Vulkan API和MultiGPU處理”選項。默認情況下,此選項未選中。
此功能可以使用多個GPU,即使來GPU自不同的供應商(Nvidia、AMD,但不支持Intel)。雖然它有利于幾個GPU,但也可以只有一個GPU。我們建議使用最新的顯卡卡來啟用此功能,特別是Nvidia Pascal一代(GTX 10xx)、AMD、Polaris(RX 4xx)和最新的驅動程序。驅動程序會定期更新,因此我們不會發布兼容的GPU/Driver/OS組合列表。
截至2017年9月,ContextCapture要求GPU驅動程序至少支持Vulkan API 1.0.37版本。此外,不要啟用SLI(用于Nvidia GPU)或CrossFire(用于AMD GPU)。最后,此模式使用密集的GPU資源,在引擎運行時不要打開任何其他3D應用程序或Internet瀏覽器。多GPU模式是最新推出的,可能不如單GPU模式穩定。如果您在3D制作中遇到問題(此選項勾選了未起作用),請嘗試以下步驟:
1.為您的GPU安裝最新的驅動程序。
2.重新啟動計算機。
3.重新提交失敗的作業。
如果它不能解決您的問題,請通知我們的技術支持,并在解決您的問題前使用單GPU模式。
多GPU模式下的性能說明:
•2 gpu:比1 gpu快15%
•3 gpu:比1 gpu快20%
•4 gpu:比1 gpu快24%
譯者注:未使用過多GPU模式,從該指標看來,2GPU性價比可能更高一些。但上文提到的硬盤問題可能比這個能提速更多,從顯卡價錢來看可以優先考慮硬盤問題。
高級選項(Advanced Option)
當您啟用“vulkanapi和multippu處理”時,默認情況下,上下文捕獲引擎將使用您的所有gpu進行處理。使用該選項,您可以通過命令行中ccengine的選項“-gpu”為vulkan選擇GPU的一個子集。
請注意,ContextCapture始終使用OpenGL,因此它始終需要一個專門用于OpenGL的GPU。使用選項“-gpu”選擇vulkan gpu不會更改將選擇哪個gpu contextcapture進行OpenGL處理。
語法:ccengine--gpu k
如果我們以2的k次方來描述,那么這個基中的每個數字1對應于vulkan激活的GPU。例如,您有3個GPU,您希望使用第一個和第三個GPU進行vulkan處理,然后k=20+22=5。命令是:ccengine--gpu 5
其他例子:
ccengine--gpu 1:使用第一個gpu
ccengine--gpu 2:使用第二個gpu
ccengine--gpu 3:使用第一個和第二個gpu(因為:3=20+21)
如果沒有指定“-gpu”選項,那么程序將使用vulkan處理的所有gpu作為默認值。
3.4.5性能(Performance)
ContextCapture開發了基于圖像處理單元的通用計算(GPGPU)能力,使得在這些操作(圖像插值、光柵化與Z緩存)上處理速度快50倍。它也利用多核超線程計算來對算法的CPU密集部分進行加速。
一個ContextCapture Engine引擎端平均一天可以處理10-20千兆(gigapixels)像素的輸入數據以產生具有額外精度的紋理3D網格,這取決于硬件配置。對于輸入的點云數據,一個ContextCapture Engine引擎端每天可以處理大約2.5億個點。
使用集群可以顯著減少網格計算的處理時間。
舉個例子:空中5角度拍攝的地面10~15厘米分辨率的傾斜原片, 4個ContextCapture Engine組成的引擎集群平均生產速度30—50平方公里每天。
3.4.6軟件版本(Software Editions )
ContextCapture軟件系列的兩個版本分別是ContextCapture Basic和ContextCapture Center。ContextCapture自動重建對象、建筑物、人造或自然地標,可以處理高達300千兆像素的圖像數據集,或高達5億點的點云,具備通過作業隊列的批處理能力。最適合但不限于無人機/無人機/無人機操作員,該版本允許制作高分辨率3D模型,以及生成數字表面模型(DSM)和真實正射影像。
ContextCapture Center致力于大比例尺的三維測繪。它可以處理無限數量的照片而不受尺寸限制,并且允許在一組三維重建引擎上并行計算。它可以導入復雜的定位數據(例如,慣性導航系統數據)、第三方航空三角測量結果和表面約束。因此,它可以適應大規模的3D內容制作,就像整個3D城市級別的數據處理。
版本對比表
3.4.8互操作性(Interoperability)
ContextCapture通過專用格式或通用格式與二維/三維GIS軟件以及CAD解決方案完全互操作。ContextCapture還可以以各種交換格式導出準確的相機屬性、位置和方向。
另請參見導出塊和輸出格式。
CAD/3D軟件交換(CAD/3D Software)
支持標準Wavefront OBJ、collada dae和FBX格式的導出,ContextCapture生成的3D模型可以導出到絕大多數CAD和3DGIS軟件,包括Bentleymrostation、Autodesk 3DS Max、Autodesk AutoCAD、Rhinoceros 3d、Autodesk瑪雅、Autodesk Mudbox、Autodesk MeshMixer、Meshlab。
ContextCapture可以生成具有多個詳細級別(LOD)的3D網格,以便于將數據集成到支持lod顯示優化的3維GIS軟件中。
對于非常大的三維模型(如城市),即使使用LOD技術,Tb級的大數據流暢展示也有難度。在這種情況下,可以使用3mx格式將模型導出到Bentley MicroStation。
譯者注:開源的osg框架對于osgb格式的lod數據展示效果很不錯,另外LSV在加載TB級的傾斜模型數據上獨有優勢,同時綠色,免費。對于web展示可以考慮Wish3D平臺,該平臺支持根節點合并。
二維、三維GIS軟件(2D/3D GIS software)
地理參考三維模型支持任何坐標系統(ContextCapture包括4000多個空間參考系統,可以使用用戶定義的系統進行擴展)和自定義GIS應用程序的瓦片分割方式。
ContextCapture可以生成帶LOD的3D網格模型,可與幾種領先的3D GIS軟件相兼容:TerraExplorer(Skyline)、SpaceYes3D Builder、CityPlanner(Agency9)、VirtualGeo(Diginest)、Blaze Terra(Etherix)、Supermap GIS、Google Earth、Cesium等。
譯者注:這里還是要補上LSV、wish3D平臺,該平臺專門針對Smart3D生成的帶lod的osgb數據格式進行了顯示優化。
ContextCapture可以生成真正的正射影像和DSM,兼容的所有標準地理信息系統工具。ContextCapture可以將密集點云導出為ASPRS Laser(LAS)和Pointoolspod格式,每個點上都有顏色信息,可用于大多數點云分析和分類軟件。
3.4.9三維可視化(3D Visualization)
ContextCapture內置Acute3DViewer,這是一個在Windows下本地或聯機工作的免費可下載的輕量級3dVisualization應用程序。
三維可視化
Acute3D Viewer針對ContextCapture的3mx格式進行了優化,它可以處理細節級別、分頁和流式傳輸,從而以平滑的幀速率顯示萬億字節的3D數據。
Acute3D查看器集成了3D測量工具(可配置空間參考系統中的3dPosition、3D距離和高度差、表面和體積計算)和瓦片選擇工具。
您可以將Acute3D查看器與ContextCapture Master結合使用,以控制整個工作流中的生產質量。您還可以使用它生成飛行動畫。
Acute3d Viewer可在http://www.bentley.com上免費下載,為ContextCapture 3MX和S3C格式發布3D模型提供了即時解決方案。
3.4.10網絡發布(Web publishing)
ContextCapture用戶有多種形式可以在Internet上發布其原始3D內容。
使用Acute3D Web Viewer發布3mx產品
使用我們的免費Acute3dWebViewer,3mx產品可以在任何網站上在線可視化。我們的Web Viewer是一個跨平臺的WebGL3dViewer,適用于臺式機、平板電腦和智能手機,可輕松嵌入任何網頁。它可以在任何支持WebGL的瀏覽器中工作,而不需要使用插件。只需將您的3mx產品上傳到您的Web服務器(或在線文件存儲Web服務/內容交付網絡,如azureblob/cdn或amazons3/cloudfront),即可在您的網站上發布或嵌入您的3D模型。
發布到Cesiumor ContextCapture Web Viewer 2.0
ContextCapture可以生成Cesium 3Dtile格式的3D模型,適用于在Cesium或ContextCapture Web Viewer 2.0中的顯示。Cesium是一個開放源代碼的JavaScript庫,用于3D地圖顯示。關于Cesium的更多信息。
了解如何將三維模型發布到CesiumWeb應用程序。
ContextCapture Web Viewer 2.0是一款基于Cesium的定制Web應用程序,具有定制的用戶界面和適合真實數據顯示的功能。
了解如何將3DModels發布到ContextCapture Web Viewer 2.0應用程序。
在線分享您的S3C產品
ContextCapture用戶可以在標準Web服務器上托管S3C格式的3D模型,以便使用我們的免費Acute3D查看器(Windows和Mac OSX的桌面應用程序)進行遠程可視化。
只需將您的S3C產品上傳到您的Web服務器(或上傳到在線文件存儲Web服務/內容交付網絡,如azureblob/cdn或AmazonS3/CloudFront),并在ContextCapture S3C Composer中設置訪問參數,使您的模型可以在Acute3dViewer中在線查看。
了解如何在Web上發布您的S3C內容。
發布到SketchFab
SketchFab是一個集發布、共享和嵌入3DModels的平臺,您可以在SketchFab.com上免費注冊。ContextCapture允許直接將生成的三維模型發布到SketchFab。
了解如何將內容發布到SketchFab
譯者注:如果生成的模型是osgb格式的,可以到wish3d平臺發布,一個國產,并自帶合并根節點功能的,集全景、圖片、文字標注于一體的傾斜模型web發布平臺,支持影像、地形、矢量的數據總和展示。www.wish3d.com
相關閱讀:
ContextCapture中文版教程:幫助文檔第一章(開始)
ContextCapture中文版教程:幫助文檔第二章(影像數據)
ContextCapture中文版教程:幫助文檔第二章2.2-2.3(影像文件格式和位置)