滕 琴,陳一民
(1.上海市第二輕工業學校,上海 200135;2.上海第二工業大學;3.上海建橋學院信息技術學院)
虛擬現實(Virtual Reality,VR)技術的廣泛應用,給教育、教學帶來了新的生機和挑戰。我們可以通過三維圖形、文字、聲音、及視頻等多種形式表達教學內容。
大數據可視化是數據科學與大數據技術專業一門核心課程,教學內容的專業性和實操性都很強。大數據可視化、大數據可視分析是理解和洞察大數據本質(see the unseen)的重要途徑,是體現大數據價值的關鍵。目前尚無功能成熟的虛擬大數據可視化教學系統,在已知系統中所實現的功能大多相對單一,且三維視覺效果較差,可進行的實驗數量也不多,缺少完善的權限控制策略。
本文基于VR 技術構建了大數據可視化教學系統。在大數據可視化分析課程中設計了智能實驗模塊,學生可以根據場景中的智能提示內容,自主學習正確的實驗視頻及3D 演示解決了傳統課堂教學模式中教師在有限的課堂時間內無法顧全所有學生的難題,而且擴展了可教育內容,豐富了教學的趣味性,能夠幫助學生深刻理解大數據可視化的理論和實踐。
基于VR 的大數據可視化教學系統的設計原則:①構建虛實結合的三維教學空間,利用VR 技術構建仿真課堂并開發仿真實驗,構造符合真實世界比例的虛擬場景,將書本上的內容以虛擬場景中3D形式呈現給學生,提高教學趣味性;②因材施教,實現不同學生的針對性教學,充分考慮學生學習基礎、學習成績與學習進度的差異性,利用權限算法賦予其不同的操作權限,如:當前理論學習與實驗操作不合格的學生將無法進行下一個實驗,直到其達到合格為止,從而保證教學質量及教學效率;③考慮目標用戶是長教學周期中本貫通學生的群體特點,強基礎、重應用,為增強其對虛擬學習與實驗的興趣,設計更符合學生認知特點的UI交互界面,讓學生在使用虛擬教學系統的過程中獲得更強的沉浸感以及更真實的交互感;④利用虛擬教學的優勢保證教學質量:傳統課堂教學中教師受時間限制不可能充分指導每一名學生進行相關的學習與實驗,在虛擬教學系統中此類問題可得到充分解決,借助智能實驗模塊在學生進行學習與實驗時根據內容、進度對其進行文字、視頻、及3D動畫等智能提示。
該大數據可視化教學系統(如圖1)包括專門用于大數據分析的機器學習子系統、用于存儲大數據的海量存儲子系統、用于展示的多屏拼接并行可視化子系統等。軟件上包括各子系統的管理軟件、子系統協同處理的服務系統,及整個系統的管理軟件、應用開發工具軟件等。各子系統相對獨立,可獨立運行。

圖1 基于VR的大數據可視化教學系統
另外,該系統集成了一批大數據可視分析工具與軟件,可以在商業、輕工業設計、輕工業制造、物流、普惠金融、以及新媒體等領域開展典型示范應用實驗。幫助學生學習和探索大數據可視化的價值及意義,并完成對大數據的理解與評估。
大數據可視化的本質是視覺對話。它將技術與藝術完美結合,借助計算機圖形、圖像和計算機動畫等手段,清晰有效地傳達及呈現大數據中蘊含的重要信息,便于從大數據中提煉出最為重要及關鍵的信息、獲取最為有用的知識與價值。
該系統由12 臺配備了高性能GPU 卡的專用服務器組成,系統中每一臺服務器連接并控制兩塊屏幕,內部安裝了雙操作系統;基于MultiPanelManager、LxMaster 等軟件和藍芯同傳卡技術,通過控制端對系統進行管理;另外,通過率對基于云的Web 瀏覽器技術的跨平臺多屏顯示開源軟件SAGE2進行二次開發,實現了多人同時控制顯示大屏;最后,使用跨平臺數據分析可視化開源軟件ParaView,實現了大數據模型分析的可視化。
我們還選用了HTC Vive 頭盔顯示設備,用于虛擬場景的再現,可將書本上難以理解的內容(如動態數據、三維數據、各種復雜數據模型等)以虛擬場景中3D立體形式呈現給學生。HTC Vive頭盔顯示器采用了二塊OLED 屏幕,2K 分辨率大大降低了全景畫面的顆粒感,學生幾乎感覺不到紗窗效應,并且能在佩戴眼鏡的同時戴上頭盔顯示器,增加了使用的靈活度;畫面刷新率為90Hz,實際體驗幾乎零延遲,具有很好的防眩暈功能。另外,設備中搭配兩個無線控制器,可以對全景中所顯示的內容進行良好的交互操作。
本系統的開發軟件主要有Unity3D,VS2017,OpenCV,C#,JavaScript 等。系統的全景拼接模塊中運用了OpenCV 內多種類庫,使用Visual Studio 2017進行開發。瀏覽器全景展示使用了HTML5,CSS,JavaScript等關鍵技術。VR 全景展示使用了SteamVR內的InteractionSystem,以完成場景內容的交互操作。全景拼接顯示及VR顯示框架如圖2所示。

圖2 全景拼接顯示及VR顯示框架
主要涉及三個模塊,分別是:①全景拼接模塊;②HTML5 瀏覽器全景顯示模塊;③VR 全景顯示模塊。全景拼接模塊主要是對拍攝的多張圖片進行預處理,特征提取,全景拼接以及融合等一系列操作。HTML5瀏覽器全景顯示模塊是針對瀏覽器全景顯示的一種展示形式,不僅可以展示在拼接屏上,而且可以在Android,iOS 等移動端進行3D 顯示。VR 全景顯示模塊增加了用戶的沉浸感,能展現在HTC Vive 頭盔上,并且可以通過手柄進行交互操作。
本模通過使用Unity3D 可視化工具和腳本代碼(C#語言)完成VR 中360°全景開發。另外,采用SteamVR 插件完成HTC Vive 頭盔設備的管控,在SteamVR 插件中對手柄與頭盔進行了處理,通過添加SteamVR_TrackedObj 組件標記跟蹤對象,這樣就可以檢測手柄以及頭盔在現實環境下的位置信息;然后通過SteamVR_Controller 類下的Input 接口獲取并實現手柄按鍵控制。最終實現VR 場景的顯示及操作,如圖3所示。

圖3 VR場景的顯示及操作
大數據分析分為三類:分析現狀、分析原因、預測未來。分析現狀是數據分析的基本目的,一般使用統計、歸并方法,可用于商業運營與科學研究中,需要在數據統計的基礎上建立相關模型,典型的應用實例有社交網絡話題傳播分析等;預測未來是運用數據分析的方法預測未來的變化趨勢,比如根據歷史數據,基于回歸分析得出未來的趨勢,典型的應用實例有產品價格預測、網絡流量預測、數據中心負載預測等。
一個完整的數據分析過程可以分五步:確定目標、搜集數據、整理數據、分析數據、可視化呈現。首先,需要結合生產生活的需要,確定數據分析的目標、可衡量的指標、可收集數據的最小單元,這樣才能有針對性地進行數據分析,提高數據運用的效率,避免數據的過量采集及浪費;其次,確定好目標后,需要有針對性地搜集數據,如業務產生的用戶數據、網絡搜集的開放數據等;第三,數據搜集完成后,需要整理數據,尤其是對于多源數據,需要進行清洗、歸一化等操作;第四,選擇合適的模型進行數據分析;最后,把數據分析結果進行可視化呈現。
例如:熱圖分析模型可用于分析及可視化數據的焦點。以網頁訪問數據為例,按計算維度劃分,熱圖可分為瀏覽熱圖及點擊熱圖。瀏覽熱圖也稱作注意力熱圖,記錄的是用戶在不同頁面或同一頁面不同位置停留時長的百分比。點擊熱圖分析及顯示的是鼠標的點擊情況,將訪問人數及次數數據進行統計并基于百分比進行熱力分布顯示。圖4是網頁熱圖的示意圖。

圖4 網頁熱圖的示意圖
可以按照不同的目標進行熱圖分析及顯示,比如進行面向特定人群的分析與人群對比,還可進行面向目標子集(如網頁上的部分重要鏈接)的分析與對比,從而得到不同的可視化結果,讓人一目了然。
數據分析方法對數據中的特征進行分析和挖掘,找出數據間的規律和特征,從而進行降維或直接顯示。數據分析方法的復雜度決定了計算的工作量,并會影響最終數據準確性及顯示效果。
降維方法在盡量保留高維空間中宏觀結構和主要特征的前提下,將高維數據通過數學方法降維后在低維屏幕空間中顯示。通過建立研究問題的相應數學模型、數據集結構模型,對該模型提出相應的度量準則或選擇規則,并建立基于數據集結構的降維準則或損失規則,可構建新的降維方法。研究能保存數據主要和重要信息的低復雜度數學降維方法,以及基于輸入樣本的改變而進行增量計算的降維方法。
高維數據降維即將高維數據投影到低維空間,并且盡量保留高維空間中原有的特性和聚類關系。高維數據可通過數學的方法降維,進而在低維空間(比如三維及以下)空間展示。高維數據降維大致可以分為線性降維方法和非線性降維兩大類。經典的線性降維方法,包括主成分分析(PCA)、線性判別分析(LDA),非線性降維的方法包括局部線性嵌入(Locally linear embedding,LLE)、拉普拉斯特征映射(Laplacian Eigenmap)、T-SNE(t-distributed stochastic neighbor embedding)。
我們對MINST 數據集降維后可視化的效果如圖5所示。

圖5 MNIST數據集可視化效果,左邊為T-SNE,右邊為PCA
顯而易見,T-SNE 可以更好的在二維空間中將10個數字分得更開,而PCA 則不少數字有重疊,這樣通過觀察T-SNE 中的結果,可以清楚地了解數據的內在意義和本質屬性。
在大數據可視分析及數據挖掘過程中,分析模型、數據挖掘模型方法及可視化呈現中都各對應一組參數,這些參數集合中的參數值的確定通常決定分析、挖掘和展現的效果。
在跟蹤和駕馭方式的可視化分析處理中,系統通過機器學習算法,在系統的運行時對人機交互操作不斷學習,逐步掌握分析模型、挖掘方法和展示方式等的參數取值的關鍵區域,并主動推薦給操作者。通過對系統各分析模型、數據挖掘方法、可視化模型參數分析,記錄參數的變化,采用動態的方式實現大數據可視化分析,實現這一過程只要研究逆過程分析計算模型、動態呈現。
4.4.1 基于可視化技術的數據理解
基于可視化技術的數據理解,是通過各種合適的可視化技術,展示數據,解讀數據之間關系的,有效傳達溝通數據信息,找到數據分析的需求、方法與思路。
基于可視化的數據屬性重要性判別:對于有些高維數據,可以通過非降維方法,如平行坐標技術來可視化數據,進而分析識別各數據屬性的類別與重要性,比如屬性是否為主鍵、屬性是否可分解、屬性是否可計算等。然后在數據分析過程中,利用重要的數據屬性、可計算與度量的屬性做進一步的分析挖掘。
基于可視化的數據稀疏性分析:隨著數據種類與維度的增加,數據的稀疏性問題越來越嚴重,例如在推薦系統、社交網絡分析等應用中數據集的特點就表現為數據稀疏性。數據的稀疏性,直接影響到數據分析的算法選擇與設計。通過數據的可視化技術,可以定性結合定量來分析數據的稀疏性,從而為后續的數據分析提供有力支撐。
基于可視化的多源多屬性數據關系發現:在大數據分析應用中,經常會遇到多源多屬性數據集的融合。利用可視化技術可以快速發現多源數據之間的關系,比如:是否有相同或相似的屬性,數據源之間是否可作鏈接與融合等等。
4.4.2 基于可視化技術的數據可用性分析評估
大數據的可用性一般可包括數據一致性、數據精確性、數據完整性、數據時效性與數據同一性等性質。到目前為止,大數據的可用性的理論還不夠完整,且難以用形式化的方式來描述。然而,可視化技術可在數據理解的基礎上,實現數據的可用性的分析評估。
基于可視化的數據一致性分析評估:數據一致性要求數據集合中每個信息都不包含語義錯誤或相互矛盾的數據。在數據可視化的基礎上,可采用基于語義規則的數據一致性分析方法與基于統計理論的數據一致性分析方法,設計數據一致性評估模型。
基于可視化的數據完整性分析評估:數據完整性,指的是數據集合中包含足夠的數據來支持計算與查詢。大數據領域數據的完整性問題主要表現為數據重要屬性的缺失,而影響數據的計算。通過可視化技術,統計數據集屬性中未知值的分布規律,進而研究設計數據完整性評估模型。
基于可視化的數據實體同一性分析評估:數據實體同一性是各種數據源中實體的一致性。實體一致性是數據管理、數據集成(數據融合)、數據清洗與數據挖掘等領域的基礎性問題,是異構數據源數據挖掘的核心步驟。在研究多源數據實體識別方法基礎上,利用可視化技術評估分析各種實體識別方法的性能。
針對現有大數據可視化虛擬課堂系統中,可供學生和教師可選的教學與實驗數量少,并且沒有涉及現實中所受到的各種條件限制、以及其他因素(如數據安全)的制約,難以開展大數據可視化實驗。我們在虛擬課堂系統中開發了一定數量的商業、輕工業設計、輕工業制造、物流、普惠金融、新媒體等領域大數據可視化教學與實驗,具有強烈的視覺效果和豐富的趣味性、增加了虛擬課堂對學生的吸引力,提高了學生使用虛擬課堂時的沉浸感。
針對現有虛擬課堂系統并未涉及學生可操作實驗的權限,沒有充分考慮學生的不同學習情況,無法對不同的學生做到針對性教學。我們提出了權限動態調整算法,為不同的學習者賦予不同的學習權限。當前理論學習與實驗操作不合格的學生將無法進行其他實驗直到達到合格為止,然后才能進入下一學習與實驗。
針對現有虛擬課堂系統并未考慮系統效率問題,隨著系統使用次數增多,數據庫冗余會越來越嚴重,并且在高并發情況下,系統和數據庫的交互開銷可能導致系統的運行效率受到很大影響,影響用戶體驗。我們提出了增強系統魯棒性且可保證系統運行效率的有效方法,并注重用戶界面友好性和體驗的真切性。
據此,我們定出了虛擬課堂的開發過程,具體如下。
⑴在3dMax 三維模型制作軟件中制作虛擬課堂場景所需要的各種三維模型。當模型構建完成之后,在模型的材質貼圖屬性中添加對應的三維貼圖,使模型呈現的視覺效果更真實,增強學生在使用系統時的沉浸感與真實感。
⑵再開發智能幫助模塊,主要通過C#腳本組件以及NGUI用戶界面插件來實現。NGUI遵循KISS 原則并用C#編寫的Unity3D 插件,提供UI系統和事件通知框架,可利用NGUI 為實驗設置提示文字與視頻或3D 動畫,并利用C# 腳本來指定提示觸發的具體時機。視頻提示通過指定按鍵實現,用戶可以自定義觸發視頻提示的案件;當系統檢測到用戶指定案件輸入事件發生時,將通過調用視頻組件的方法,首先獲取其Video 組件,然后調用play 方法觸發視頻或3D 動畫播放。
⑶為了實現教學的針對性和有效性,我們提出了一種權限動態調整算法,為不同的學習者賦予不同的學習與實驗權限。在虛擬場景內綜合學生成績與學生課堂進度等因素計算出的權限優先值T最小的對應虛擬角色將優先分配權限。學生角色a的權限優先值計算公式如下:


⑷通過基本的GUI 實現UI 交互界面。GUI 包含了面板、按鈕、畫布、輸入框等屬性,首先利用GUI 完成UI 交互的純界面,然后為GUI 添加C#腳本組件,使UI可以獲得用戶的輸入,例如登陸時的密碼框輸入信息等等,最終實現UI交互界面。
大數據可視化、大數據可視分析是理解和洞察大數據本質意義的重要途徑,是體現大數據價值的關鍵。我們給出了大數據分析過程的認知模型、高維數據的數據分析及呈現方法,說明了大規模數據人機協同的數據可視分析以及基于可視化的數據理解與可用性分析評估方法。基于并行實時渲染的大規模無縫拼接顯示技術、數據可視化的多體感交互技術、大屏的視頻點播技術以及面向大數據可視化的全景拼接與顯示等技術給出了大數據可視化教學系統架構;利用Unity3D 的GUI 開發用戶UI 界面及智能幫助模塊,通過C#腳本組件開發了針對現有大數據可視化的虛擬課堂。從而解決了傳統課堂教學當中的諸多缺陷,為學生提供了高沉浸式學習體驗,提升了學生的學習興趣和效率,并且可進一步增強他們對于大數據本質的洞察和理解。未來,我們將開發更多適合中本貫通學生的大數據可視化教學與實驗內容。