石曉霖,畢重科*,黃元琪,鄧亮,王岳青,王昉
1.天津大學智能與計算學部,天津 300350
2.中國空氣動力研究與發展中心,四川 綿陽 621000
近年來,隨著超級計算機的快速發展,數值模擬技術取得重大突破,而科學可視化是幫助專家分析理解數值模擬結果的有效方法[1]。傳統的科學可視化普遍采用后處理模式,即先將數值模擬結果保存到磁盤,然后從磁盤中讀取數據進行可視化處理[2]。但是隨著數值模擬問題的規模不斷增長,由于磁盤I/O 性能有限,大部分中間數據無法輸出至外存進行后處理可視化,只能被丟掉[3]。
原位可視化是指在同一超算系統上,數值模擬與可視化處理緊密結合,對模擬結果數據在內存原來的位置(原位)直接進行可視化[4],可以更多地利用數值模擬的中間數據。原位可視化滿足了專家對大規模數值模擬結果的可視分析需求,但是當前的原位可視化主要是為專家提供瀏覽模式,即將原位生成的圖像保存下來,然后提供給專家進行查看。但是這種模式無法滿足專家的交互需求。具體來說,專家只能進行圖像數據的檢索、查看等操作,無法進行三維交互等深層次的探索。
針對原位可視化的交互問題,本文提出了一種基于虛擬視點的可交互式原位可視化方法。我們設計使用了針對性的圖像處理技術,使專家可以對原位可視化生成的圖像做進一步的處理,從而滿足專家對數值模擬結果數據進行交互式探索和分析的需求。大規模數值模擬在原位可視化時通常只對有限視點進行采樣生成可視化圖像,我們通過虛擬視點合成的方法生成了虛擬視點圖像,有效地解決了這一問題。在進行原位可視化的時候一些圖像數據由于采樣距離太近,視角不足以覆蓋整個數據范圍,專家無法通過單一圖像獲得完整的數據信息,我們利用虛擬視點圖像進行圖像拼接生成完整圖像,彌補了這一不足。原位可視化將模擬結果以二維圖像的形式輸出,無法為專家提供三維特征的交互式探索,使用拼接后的完整圖像進行三維重建可以生成交互模型,從而滿足專家需求。最后,為了驗證方法的有效性,本文設計了一種混合模式的原位可視化框架,還提供了不同數值模擬語言的可視化接口。
本文的貢獻主要有以下幾個方面:
(1)提出了虛擬視點合成的方法,生成了可供交互的虛擬視點圖像,解決了利用原位可視化圖像進行三維重建時缺少視點圖像的問題。
(2)設計了圖像拼接的方法將多個視點的細節圖像進行還原,使專家既可以查看原始細節圖像,又能進行拼接并觀察完整圖像。
(3)提出了基于視點圖像進行三維重建的方法,生成了空間模型,使得專家可以交互式地對空間特征進行探索。
后文組織如下:第1 章節討論一些相關工作;第2、3、4 章節詳細討論我們結合圖像處理的相關技術對原位可視化生成的圖像進行交互式處理的方法;第5 章節在設計實現原位可視化框架的基礎上對本文提出的交互方法進行實驗驗證;第6 章節對本文進行總結。
原位可視化是指在同一高性能計算系統上對數值模擬計算的結果數據在原位直接進行可視化處理的過程。在這個過程中,模擬計算與可視化處理緊密結合在一起,只需要保存原位生成的圖像等數據,從而有效地減少了數據傳輸產生的系統資源開銷,提高了可視化的效率[4]。在原位可視化的交互研究中,Kageyama 等[5]提出了一種對批處理模擬作業產生的原位可視化圖像進行分析的方法,將原位可視化生成的圖像序列壓縮成視頻文件,然后使用特定的視頻播放器對其進行分析,用戶可以通過更換視角等方式從視頻數據集中選擇適當的圖像序列進行查看。Ahrens 等[6]給用戶提供圖形界面預先設定可視化操作、攝像機參數等,最后生成可視化圖像并存入數據庫,該方法將原位數據參數與圖像進行關聯,組建起了以時間、空間、可視化操作和數據參數為索引的,支持查詢、組合以及一些可視分析手段的圖像數據庫。上述方法只需保存少量數據,有效地降低了數據規模,同時生成圖像使用的并行繪制對數值模擬計算影響很小。但是它們僅僅提供了可視化內容的檢索與查看,沒有更多交互內容。陳呈等[7]實現的NNW-TopViz 流場可視分析系統基于頭戴式顯示設備和手勢傳感器構建了沉浸式虛擬顯示與交互平臺,實現了手勢交互和眼球凝視兩種交互方法,它利用了外部設備進行可視化交互。本文對可視化圖像本身進行研究,在原位可視化圖像數據集的基礎上使用圖像處理的相關技術,為用戶提供了深層次的交互。
數字圖像處理是指通過各種算法對圖像數據進行處理的過程,圖像處理將極大地改變未來的人機交互。近年來圖像處理已經在各個領域得到廣泛應用,并且產生了許多實用的相關技術。虛擬視點合成是指利用已有視點圖像合成虛擬視點圖像的過程,在基于圖像的虛擬視點合成算法中[8],基于深度圖的算法[9]由于可任意渲染視點和低帶寬消耗成為交互式3D 視頻系統的主要方法[10]。大規模數值模擬單一時間步產生的數據量可達PB 級,在原位生成可視化圖像時通常進行視點采樣然后保存有限視點的圖像,而虛擬視點合成的方法可以有效地解決這一問題。圖像拼接技術是指將兩個或兩個以上場景相同且部分重疊的圖像組成一個大的、完整的圖像,圖像拼接的關鍵是找出兩幅圖像重疊的位置,然后確定兩幅圖像之間的變換關系[11]。Lowe[12]提出了一個特征點匹配算法—SIFT,SIFT 以及它的改進算法成功應用于圖像拼接,基于特征點匹配的圖像拼接方法具有特征提取和特征匹配的雙重優勢,效果優良。將基于SIFT 的圖像拼接方法應用于原位可視化,解決了在某些數值模擬可視化時生成的圖像僅包含部分內容的問題,讓專家可以動態地選擇相應的不完整重疊圖像進行拼接,然后觀察整體特征?;趫D像的三維重建是從一幅或多幅二維圖像中推斷出物體和場景的三維幾何形狀和結構[13]。以立體為基礎的技術是基于圖像進行三維重建的有效方法,它要求在從略微不同的視角捕捉到的圖像之間匹配特征,然后使用三角測量原理來恢復圖像像素的3D 坐標,最后生成3D 模型。對于原位可視化的交互而言,該方法過程簡潔,易于操作,有效地還原了原位可視化圖像的空間特征,為專家提供了更進一步的交互式探索。
最后,為了驗證本文原位可視化圖像數據集交互方法的有效性,我們設計實現了混合模式的原位可視化框架。原位可視化框架分為緊耦合模式、松耦合模式以及混合模式[14]。緊耦合模式在很多可視化應用集成的插件中被實現,如VisIt 的LibSim[15],Paraview 的Catalyst[16]等,這些插件可以被數值模擬應用調用并生成可視化數據結構,如VTK 數據,然后使用可視化應用本身進行交互。緊耦合框架存在內存競爭、可視化時間阻塞模擬進程運行等問題。松耦合模式完成了模擬應用與可視化應用的解耦合,使它們可以異步運行。但是隨著模擬數據規模的擴大,I/O 開銷和時間延遲難以避免?;旌显豢梢暬椒ㄓ伤神詈夏J桨l展而來,它將部分計算量不大的工作在模擬節點上完成,數據處理后轉移到其他節點異步進行可視化處理[2]。它通常會使用降維和聚類等方式降低模擬數據量,比如分析專家知識和先驗數據進行機器學習聚類等[17-18]。本文提出的原位可視化方法屬于混合模式,使用圖像作為中間數據進行下一步交互操作,同時還提供了不同數值模擬語言的可視化接口。
圖像序列的一種生成模式是在自定義相機位置下,相機朝向數據中心,確定正方向后,以中心為球心沿經緯方向采樣,這是圖像數據庫普遍的生成方式。原位可視化可以采用該方式生成圖像數據集,專家可以直接查看圖像,而采用虛擬視點合成的方法可以填補兩個相鄰圖像間的空白。基于深度圖像的三維變換能得到其周圍的虛擬視點:把Z-Buffer的值映射到0-255 的灰度區間內可以得到深度圖,用深度值和對應視點相機外參矩陣,可以獲得原始視點到虛擬視點的變換矩陣,通過這個變換矩陣進行三維變換操作,能得到所需的虛擬視點圖像。本文實現了相關方法并針對與原位可視化的結合做了針對性處理。
本文方法涉及到世界坐標系、相機坐標系和圖像坐標系。世界坐標系是為了確定相機位置的基礎坐標系,描述的是真實空間中的點;相機坐標系是為了從相機的角度描述物體的位置而建立,通過平移和旋轉可從世界坐標系映射為相機坐標系;圖像坐標系則是通過相機成像之后建立的坐標系,從相機坐標系到圖像坐標系的轉換是3D 到2D 的轉換,屬于透視投影關系。方法首先需要根據相機參數得到一個相機矩陣,相機矩陣是世界坐標下點到成像平面點的對應關系。如圖1所示,一個確定的相機中心C和焦距f會依照相似關系把空間中某一點映射到圖像坐標系下的位置上,若世界坐標下點X用表示,圖像點x表示成3 維矢量;P表示3*4 相機投影矩陣,上式記為:;可視化相機默認設置窗口中心的坐標為(0,0),也就是將圖像中心始終定位在焦點位置,因此可以不必考慮投影時的偏移問題。
圖1 說明了一個位置在世界坐標系原點的相機如何進行三維空間點到二維成像平面點的變化映射。對于自定義的相機位置,需要確定另一個矩陣來完成世界坐標系到相機坐標系的位置轉化,然后將相機坐標系映射為圖像坐標系。世界坐標系中的點對應相機坐標系點t表示相機中心相對于世界坐標系中心的平移變換,R是一個3*3 的旋轉矩陣,用于計算相機坐標系的方位。

圖1 相機坐標系到圖像坐標系映射Fig.1 Mapping from camera coordinate system to image coordinate system
可視化相機可以通過預設相機參數推導旋轉矩陣R和平移矩陣t,預設參數一般包括相機位置、相機朝向點以及相機正方向。這些可以確定一個視角變換矩陣Vt,用來將頂點由相機坐標系轉換到世界坐標系。使用可視化相機可以訪問到這個矩陣并直接輸出,或者通過計算相機原點位移以及相機正方向相對坐標軸正方向的旋轉,也可以得到。那么相機的外參矩陣就是該矩陣的逆矩陣。由此,可以得到任意視角的旋轉矩陣R和平移矩陣t。
從已有視點到所需虛擬視點的三維變換首先需要由已知視點的圖像結合深度圖像計算出每一個像素點對應的世界坐標。假設某點的圖像坐標系坐標為該點的深度值為,世界坐標系對應點坐標為那么可得:

其中K代表內參矩陣,計算求解可得到:

公式(2)可以計算每一個圖像點在世界坐標系的坐標,得到這些坐標集合后,使用同樣的三維成像方法即可得到它們在虛擬視點下的像素坐標。當多個點映射到同一個虛擬視點像素坐標下時,可以通過計算這些點與相機中心的距離盤點應當映射哪一個。
以上方案合成的虛擬視點存在兩個問題:(1)某些圖像像素位置可能會找不到對應的點而產生空洞;(2)某些位置的點在虛擬視點下應當被遮擋但是遮擋點在原視點內不存在造成錯誤顯示。一般來說,這些問題會導致將虛擬視點朝著固定方向移動會在成像的一側產生偽影或空洞,在只有單一視角的情況下,可以使用反向映射方法解決這個問題:由合成的虛擬視點深度圖得到所需空間坐標點,再求得所需的真實坐標點,具體操作細節及結果可以參考實驗結果5.2 部分。針對原位可視化生成的圖像數據集,整個處理流程簡潔有效地生成了新視點圖像。專家利用該方法進行交互,可以動態合成虛擬視點并觀察,更進一步理解數值模擬結果數據。
在原位可視化時一些圖像數據由于采樣距離太近,視角不足以覆蓋整個數據范圍。對于這種情況,可以使用基于特征點匹配的圖像處理方案進行圖像交互。在真實場景中,這種方法需要使用雙目視點圖像進行拼接。在模擬數據生成的可視化圖像中,可以使用同一視點附近的同軸等焦距的圖像進行替代。
使用特征點完成圖像拼接的原理是通過特征點計算兩幅圖像的變換關系,然后通過變換矩陣得到左右視點在同一視角下的結果。特征點檢測方法包括特征尋找以及特征點匹配。通過匹配點的像素坐標計算出變換矩陣后將圖像結果進行拼接并融合。這種方法能夠通過一系列圖像快速得到全景圖像,適用于在較小尺度對可視化結果進行觀察的圖像序列或切片圖等。
具體操作時,首先使用特征點匹配方法尋找圖像上的對應匹配點,因為進行圖像拼接所需的匹配特征點數較少,只需要精確匹配特征點對獲取左右視點的變換矩陣,所以可以使用SURF 算法獲取匹配點集[19],并使用RANSAC 算法進一步篩選可靠匹配并計算兩個成像平面之間的單應矩陣[20]。RANSAC 算法通過隨機選取至少4 對匹配點計算出對應的單應矩陣,然后使用這個矩陣計算其他匹配點正確匹配數,多次迭代選取正確匹配數最多的匹配點集作為下一步使用點集。將匹配點集劃分為隨機i個點的子集,已知對應匹配點在兩張圖像上的坐標為(xi,yi)和(x'i,y'i),兩張圖像的點的單應矩陣為保證誤差率最小的3*3 矩陣H:

單應矩陣H就是待配準圖到參考圖的變換矩陣,將待配準圖每一個像素點p位置變換到參考圖相機坐標系相應位置使用圖像融合方法處理拼接邊界。單應矩陣可以很好地完成一張圖像的圖像坐標系到另一張的圖像坐標系的轉化,在經過后續圖像融合之后可以完整地展示整個圖像。將原位可視化過程中生成的一些細節圖像整體性展示給專家,彌補了原位可視化在低焦距、大視角下生成的圖像在交互方面的不足。
原位可視化通過生成圖像數據集有效減少了數據傳輸和存儲的資源消耗,但是也失去了后續交互過程數值模擬結果數據三維特性的直接展示能力,不利于領域專家理解數據的空間特性。而使用基于特征區域的部分三維重建能夠快速篩選出圖像特征點并還原模擬數據各個部分之間的空間關系,便于專家進行交互。圖像顏色特征匹配可以用于檢測成像特征區域,空間特征可以用于計算三角面之間的空間關系,最終生成可供交互的三維模型。
使用雙目圖像尋找特征點重建三維模型是已經存在的研究方向:通常會通過匹配特征點進行相機定標,通過定標相機矩陣計算特征點的三維坐標,然后使用點云重建方法完成三維模型。但是這種方案不能應對輪廓不規則的模型,復雜模型很難通過有限數量的特征點完成重建。因此本文的方案還是使用圖像本身的特征區域進行模型重建,即較為顯著的特征點圍成的在原圖上連續的圖像面片,使用這些原始圖像本身的特征區域能夠避免引入點云重建導致誤差。
對于數據模型特征區域的交互查看,本文提出了一種根據特征點生成三角面,然后在空間中組合查看的方案,這種方法能夠將保留的模型特征區域聚集為圖像,避免進行點云重建產生的誤差,同時通過各組三角面之間的三維扭曲還原數據模型之間的空間關系。
使用特征點匹配方法獲取特征點集后,得到的特征點包括深度變化特征點以及彩色變化特征點,需要從這些點中再取出深度變化的特征點進行三角面片化。通過立體匹配獲取的視差圖可以表現深度變化特征,根據視差圖可以進一步篩選出深度變化特征點。三角化方法可以由圖像坐標系特征點得到一組三角片,保存這些三角片的頂點與紋理,將這些三角片貼圖到對應的世界坐標系中,三角片的頂點在世界坐標系中的位置可以由像素坐標系計算得出。
具體操作中,本文嘗試了基于圖像灰度變化值進行檢測的Harris 檢測法和基于局部特征進行檢測的SIFT 檢測法以及基于SIFT 發展的SURF 算法。通過匹配的特征點數量與分布情況結果來看,SIFT算法[21]可以檢測出更多的匹配特征點。篩選特征點采用RANSAC 算法,得到正確匹配的深度變化特征和顏色變化特征。采用SGBM 算法獲取視差圖,得到深度變化的特征進行三角化。SGBM 算法通過動態規劃來最小化全局能量函數尋找每一個像素點的最優視差[22]。使用均值濾波填補由于遮擋帶來的視差空洞,平滑后的視差圖可以轉換為深度圖篩選出深度變化特征點。轉換方式為:

其中depth代表深度圖中該像素位置深度值,f指焦距,baseline指雙目相機光心距離,disparity就是該像素位置視差值。使用sobel 算子計算深度圖梯度幅值。在梯度圖中降序搜索像素點,為了控制特征點密度,將得到的像素點周圍梯度幅值清零,重復直到梯度幅值小于預定閾值。使用Delaunay 三角化方法可以由像素坐標特征點得到三角面片,計算這些三角頂點世界坐標并貼圖到三維坐標系中。最終生成了用于交互的三維模型。通過將三維重建的部分流程針對性地同原位可視化圖像數據集進行結合,數值模擬結果數據的部分空間特性得以還原,專家可以進行后續的三維交互。
本文的實驗分為兩個部分,首先實現了可視化框架并觀察了運行效率,使用這個框架成功地對接了數值模擬應用,得到了可視化對象,并且通過這些對象進一步得到了模擬結果的圖像數據集。然后利用了不同數據的可視化方法得到的圖像數據,以這些圖像數據為基礎,驗證了本文提出的原位可視化圖像交互方法的有效性。
本文方法的創新性在于能夠對大規模數值模擬數據在原位進行交互式分析,滿足了專家的多種交互需求。在該領域,之前的相關工作都基于后處理可視化,所以目前并沒有在原位可視化的基礎上進行交互式三維模型重建的方法。而我們的工作在原位可視化的基礎上實現了交互式處理流程,提供了交互模型。因此我們結合具體的實踐說明了方法的有效性。
本文的方法使用混合模式原位框架,首先通過訪問模擬程序內存,創建模擬程序到可視化程序的數據地址接口,使用開源工具Sensei[23]和VTK 將模擬數據轉化為可視化數據,Sensei 是一個開源的原位可視化框架,VTK 數據模型被廣泛應用于科學可視化與可視分析中。模擬數據是記錄在內存的數組,使用相關函數進行處理形成可視化數據。然后再使用并行繪制方法將數據輸出為圖像,以上工作是在模擬進程上完成的??梢暬换ナ窃谄渌M程訪問圖像數據進行拼接、拓展等交互操作,這些任務是異步于模擬進行的,并且可以重復訪問,避免了緊耦合過程數據難以回溯的問題。本文基于Sensei 框架使用CFL3D 進行模擬,使用VTK 進行數據處理與可視化。為了支持CFL3D 的編譯,gcc 的版本采用7.1.0,Cmake 的版本采用3.1.0,cgns 的版本采用2.5.3,還需要OpenMPI-1.8.5 以支持并行模式。對于Sensei,使用5.5.2 版本的Paraview。
在模擬過程中添加原位分析需要考慮到接口設計的通用性和轉化數據格式的負擔。接口設計要適用于多種模擬程序,模擬進程的數據輸出模塊都是在指定時間步調用,輸出該時間步某塊模擬數據地址下的內容為指定文件格式。原位接口也要在相同的位置調用數據,把內存空間中待輸出數據轉化為可視化數據。本文使用開源的原位可視化框架Sensei解決了這兩個問題:首先,Sensei 提供了一個通用的數據接口DataAdaptor,負責將模擬數據轉化為可視化數據,我們使用VTK 作為可視化數據模型。Sensei 也能控制數據轉化負擔,DataAdaptor 避免了在不需要時將模擬數據映射到VTK。當不需要分析時,Sensei 開銷幾乎不存在。同時在需要數據轉化時,Sensei 能夠將模擬數據映射到VTK 數據而無需額外的內存復制[24]。本方法的緊耦合部分整體流程如圖2所示,Sensei 接口由三個組件組成:Data Adaptor,將模擬數據映射為可視化數據,提供了用于執行分析的數據接口;Analysis Adaptor,將可視化數據映射到分析人員編寫的分析方法,從而執行特定的分析例程;Sensei Bridge,主要作用是將Data Adaptor和Analysis Adaptor 連接在一起,并且為模擬提供了用來觸發分析例程的API。本文設計了一個在模擬源代碼輸出時同步調用的內存地址接口,根據不同的模擬源碼語言取出地址內數據,使用DataAdaptor 轉化為VTK 數據交付給可視化程序。

圖2 原位可視化框架的緊耦合部分Fig.2 Tight coupling part of in-situ visualization framework
本方案使用共享內存地址方法訪問模擬數據內存地址空間,實驗使用Sensei 結合Fortran 編寫的CFD 模擬應用與VTK 可視化代碼,通過傳遞Fortran 數組內存地址與規模參數,改變格式轉化為數值數組,然后使用SenseiDataAdaptor 生成VTK 對象,交付給VTK 可視化管線處理。通過對比CFD代碼運行時間與Sensei 初始化、轉化對象并通過管線可視化的時間占比,可以發現,整個原位過程占據模擬計算時間大約為20%左右。根據之前的研究[6],生成圖像數據的時間占比是可以控制的,因此本文提出的緊耦合原位部分算法流程的額外開銷是可以接受的。
通過DataAdaptor 可以將不同模擬數據轉化為可視化管線能夠處理的形式,并且前文中的方法轉化后的圖像數據與模擬流程解耦合,因此可以使用任意管線處理數據生成的圖像結果驗證本文方法的有效性。
5.2.1 基于深度圖的虛擬視點合成
本文使用CT 掃描獲得的點云數據重建后的模型圖像進行實驗??梢暬芫€加載點云數據對象,處理為Surface 形式。可以得到由三角面組建的模型,然后記錄點云相較于視點的深度信息并可視化,能夠得到參考深度圖,由于這個深度圖是原始數據生成的,所以無需進行降噪處理,圖3 中(a)和(b)分別代表原始模型圖像和對應的深度圖像。

圖3 (a)原始視點圖;(b)原始視點對應深度圖Fig.3 (a)Original view;(b)Depth map corresponding to original viewpoint
實驗使用反向映射方法進行3D 扭曲獲取參考視點左側的一個新視點,平移量為1/4 的數據范圍,如圖4 中所示。實現過程如下:首先根據內參矩陣得到一個像素在對應相機坐標系下的空間坐標:

圖4 虛擬視點相機變化圖Fig.4 Change diagram of virtual viewpoint camera

計算新視點下相機坐標系中空間點的變化情況,對于向左的虛擬視點,只需要對X方向進行操作:

同理,如果新虛擬視點存在其他變換方法,只需按照相機外參矩陣計算出變換矩陣然后對原始相機坐標系中的點依次進行變換。接下來將虛擬相機坐標系點映射到虛擬視點的圖像坐標系中:

通過這種方法可以得到虛擬視點的深度圖,由于一些像素位置下點的深度值沒有對應,所以需要對虛擬深度圖進行插值平滑填補空洞。最后通過虛擬深度圖求得虛擬視點下的某點對應原始圖像下的坐標,然后在原始圖像上取近鄰點進行插值作為虛擬視點該像素的信息。圖5(a)為反向映射虛擬視點、5(b)為該視點下的真實圖像。可以看到,大部分中間區域的深度關系都被還原了,并且空洞得到了消除,其中的偽影是反向映射過程中空洞填充時附近深度插值產生的,可以通過背景檢測手段消除。消除后效果如圖5(c)所示。

圖5 (a)反向映射虛擬視點;(b)同位置下真實視點結果;(c)消除偽影后的虛擬視點結果Fig.5 (a)Reverse mapping of virtual viewpoint;(b)Result of real viewpoint in the same position;(c)Result of virtual viewpoint after eliminating artifacts
5.2.2 基于特征點的圖像拼接
使用特征點進行圖像拼接主要是為了能夠在近距離觀察圖像時生成更完整的視點圖像,對于流場,可視化有時需要在低焦距,大視角下觀察細節,這樣生成的圖像無法包含全部特征區域,同時深度圖無法顯示屬性(顏色)特征。這種情況下,可以使用基于特征點的圖像拼接方法還原全部的特征區域。
本文分別采用空間中二維和三維兩種數值模擬形成的圖像進行實驗,實驗對二維數據和三維數據的處理結果分別如圖6 與圖7所示。其中(a)是雙目視點下近距離觀測圖像;(b)是SURF 檢測匹配點以及 RANSAC 篩選的匹配點集;(c)是拼接后圖像結果??梢钥吹?,在匹配點基本正確的情況下,單應矩陣可以很好的完成一張圖像的圖像坐標系到另一張的圖像坐標系的轉化。

圖6 (a)雙目視點左圖(參考圖)和右圖(待配準圖);(b)特征點以及匹配特征點;(c)拼接結果Fig.6 (a)Reference image and registration image of binocular view;(b)Feature points and matching feature points;(c)Splicing result

圖7 (a)雙目視點左圖(參考圖)和右圖(待配準圖);(b)特征點以及匹配特征點;(c)拼接結果Fig.7 (a)Reference image and registration image of binocular view;(b)Feature points and matching feature points;(c)Splicing result
5.2.3 基于特征區域的部分三維重建
本文對原位可視化圖像數據集進行的三維重建主要是通過兩個圖像的匹配特征點獲取像素的空間坐標,從而還原出三維模型。此處的三維模型由于視點的原因,只能表示原始模擬結果數據的部分三維特征,但是也能滿足專家的空間交互需求。
實驗結果如圖8所示。(a)圖中為左右視點圖像的正確匹配點集;(b)圖為基于特征點的三角面劃分;(c)圖是初始視點下部分特征區域三維重建的結果;(d)圖為該模型旋轉后視點結果??梢钥吹?,檢測到的深度變化特征點密集區域得到了較好的重建。在進行三角劃分的時候,沒有圖像特征的區域被舍棄,被舍棄的特征區域不影響觀察和分析,并且旋轉視點后也基本保留了空間關系。

圖8 (a)左右視點圖像正確匹配點;(b)三角劃分;(c)三維特征重建;(d)模型旋轉Fig.8 (a)Correct matching points of left and right view images;(b)Triangulation;(c)3D feature reconstruction;(d)Model rotation
本文提出了一種基于虛擬視點的大規模數值模擬的可交互式原位可視化方法。在進行交互式處理時,本文使用了一些真實場景處理圖像的技術并結合模擬結果圖像進行改進。最后在超級計算機中實驗了原位可視化緊耦合部分并測試了效率,在個人電腦上實現了圖像交互方法并且評估了結果。
實驗結果表明,本文設計的原位可視化方案在性能上可以滿足超級計算機與大規模數值模擬原位可視化的時間與空間開銷要求。本文提出的幾種原位可視化圖像交互方法可以幫助領域專家完成初步特征瀏覽,第一時間判斷特征點時間步、空間分布情況,滿足了大規模數值模擬中間結果數據的原位可視化交互需求。
在氣象領域和數值風洞領域,我們已經在千核級的數值模擬中進行了成功應用,滿足了專家的原位可視化交互需求,同時正在嘗試應用于更大規模數值模擬的原位可視化。希望后續工作中能夠與更多的領域結合。
本文的方法基于原位可視化圖像數據。由于I/O的限制,數值模擬結果數據無法全部輸出到外部存儲,只能利用原位可視化輸出為圖像。但是圖像無法交互,所以我們在圖像的基礎上提出了基于虛擬視點的原位可視化交互方法。只是圖像的精度是有限制的,最終能夠提供的交互角度有限。希望在后續工作中通過探索用戶需求在原位可視化時輸出特定的圖像數據,以滿足不同專家的交互需求,增強可擴展性。
利益沖突聲明
所有作者聲明不存在利益沖突關系。