国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于視線數(shù)據(jù)可視化的虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)

2023-06-07 09:43:02朱天樂姜忠鼎
關(guān)鍵詞:關(guān)注點(diǎn)六邊形虛擬現(xiàn)實(shí)

朱天樂 姜忠鼎

(復(fù)旦大學(xué)上海市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室 上海 201203) (復(fù)旦大學(xué)軟件學(xué)院 上海 201203)

0 引 言

20世紀(jì)90年代以來,隨著信息技術(shù)的不斷發(fā)展,E-Learning(網(wǎng)絡(luò)化學(xué)習(xí))這一新興教學(xué)模式在教育領(lǐng)域迅速發(fā)展。E-Learning模式通過互聯(lián)網(wǎng)儲(chǔ)存、利用、更新、分配和分享教學(xué)內(nèi)容或信息,并使用標(biāo)準(zhǔn)化的網(wǎng)絡(luò)技術(shù)傳送給位于網(wǎng)絡(luò)終端的學(xué)生。然而,E-Learning模式存在著知識(shí)碎片化、退課率高等問題。研究者們針對(duì)這一問題進(jìn)行反思,提出了混合式學(xué)習(xí)(Blended learning)這一教學(xué)理念,將傳統(tǒng)課堂教學(xué)方式和E-Learning的優(yōu)勢(shì)結(jié)合起來,在發(fā)揮教師引導(dǎo)與監(jiān)督作用的同時(shí),體現(xiàn)學(xué)生作為學(xué)習(xí)過程主體的主動(dòng)性、積極性和創(chuàng)造性。

憑借強(qiáng)烈的沉浸式體驗(yàn),虛擬現(xiàn)實(shí)技術(shù)在混合式學(xué)習(xí)領(lǐng)域有著廣泛應(yīng)用。目前,虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)根據(jù)場(chǎng)景來源的不同可以分為兩類。第一類是基于全景視頻的虛擬現(xiàn)實(shí)教學(xué)系統(tǒng),這類系統(tǒng)使用全景視頻或全景照片構(gòu)建虛擬現(xiàn)實(shí)教學(xué)場(chǎng)景。隨著全景相機(jī)的普及,一些研究者使用這種方式構(gòu)建虛擬現(xiàn)實(shí)教學(xué)場(chǎng)景,構(gòu)建臨床醫(yī)學(xué)教學(xué)應(yīng)用[1-2]。針對(duì)通用教學(xué)場(chǎng)景,Mckenzie等[3]通過探究360°視頻對(duì)學(xué)生臨場(chǎng)感和教學(xué)體驗(yàn)的影響,為教師提供了一套360°全景視頻教學(xué)資源制作方法。

第二類虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)通過三維數(shù)字建模構(gòu)建教學(xué)場(chǎng)景。這類系統(tǒng)可以幫助學(xué)生更直觀地看到真實(shí)世界中難以見到的場(chǎng)景與環(huán)境,身臨其境地感受到傳統(tǒng)教學(xué)手段難以表達(dá)的抽象信息,解決教學(xué)中學(xué)生想象力不足的問題。Giza 3D[4]是一個(gè)運(yùn)行在沉浸式顯示環(huán)境的虛擬現(xiàn)實(shí)教學(xué)系統(tǒng),通過對(duì)吉薩金字塔進(jìn)行三維重建,在課堂上帶領(lǐng)學(xué)生在金字塔內(nèi)部漫游。針對(duì)通用的教室教學(xué)場(chǎng)景,Sharma等[5]提出了一款多人在線虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)。系統(tǒng)基于教室的動(dòng)態(tài)3D模型,用戶以虛擬化身的形式進(jìn)入虛擬教室,進(jìn)行師生互動(dòng)。為評(píng)估虛擬現(xiàn)實(shí)教學(xué)的教學(xué)效果,Liou等[6]設(shè)計(jì)了一個(gè)集成了3D交互式虛擬現(xiàn)實(shí)數(shù)字信息內(nèi)容的虛擬現(xiàn)實(shí)學(xué)習(xí)環(huán)境,通過對(duì)照實(shí)驗(yàn)驗(yàn)證了虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)對(duì)用戶學(xué)習(xí)動(dòng)機(jī)的積極影響。

然而,現(xiàn)有的研究還存在一些問題?,F(xiàn)有的虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)[1-2,6]大多采用電子問卷的形式,調(diào)查學(xué)生對(duì)于知識(shí)的掌握狀況。這種評(píng)估方式存在一定的滯后性,無法實(shí)時(shí)反映課堂的教學(xué)情況。同時(shí),使用電子問卷只能間接評(píng)估學(xué)生上課認(rèn)真程度,無法直觀地反映學(xué)生在課堂上的注意力情況。因此,為了充分發(fā)揮教師在教學(xué)過程中的引導(dǎo)與監(jiān)督作用,虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)需要一種更直觀且實(shí)時(shí)性更強(qiáng)的評(píng)估手段。

眼球追蹤技術(shù)[7]是一種通過紅外設(shè)備或圖像采集設(shè)備,獲取、建模和模擬眼球運(yùn)動(dòng)信息的科學(xué)應(yīng)用技術(shù)。近年來,眼球追蹤技術(shù)被廣泛應(yīng)用于VR應(yīng)用中。Pettersson等[8]設(shè)計(jì)了運(yùn)行在VR環(huán)境下的瑞文漸進(jìn)實(shí)驗(yàn),利用眼球追蹤技術(shù)捕捉用戶的視線軌跡并生成可視化分析報(bào)告。Banire等[9]利用眼球追蹤技術(shù)捕捉自閉癥兒童在VR教室中的關(guān)注點(diǎn)分布,研究教室環(huán)境對(duì)自閉癥兒童注意力的影響。在虛擬現(xiàn)實(shí)教學(xué)領(lǐng)域,Soler等[10]針對(duì)基于VR的交互式學(xué)習(xí)環(huán)境設(shè)計(jì)了一套基于眼球追蹤數(shù)據(jù)的學(xué)習(xí)體驗(yàn)評(píng)估理論模型。Wang等[11]通過分析學(xué)生在VR環(huán)境中調(diào)試程序時(shí)的關(guān)注區(qū)域,從而改善程序設(shè)計(jì)課程的教學(xué)體驗(yàn)。然而,目前少有研究針對(duì)通用虛擬現(xiàn)實(shí)教室教學(xué)場(chǎng)景進(jìn)行實(shí)時(shí)注意力可視化評(píng)估。

基于上述討論,本文設(shè)計(jì)并實(shí)現(xiàn)一套基于視線數(shù)據(jù)可視化的虛擬現(xiàn)實(shí)教學(xué)系統(tǒng),使用眼球追蹤設(shè)備采集用戶視線數(shù)據(jù),實(shí)時(shí)處理并生成可視化結(jié)果??梢暬Y(jié)果直觀地反映學(xué)生觀看區(qū)域與視線軌跡,供教師實(shí)時(shí)評(píng)估課堂教學(xué)情況,從而發(fā)揮虛擬現(xiàn)實(shí)教學(xué)中教師對(duì)學(xué)生的引導(dǎo)與監(jiān)督作用。針對(duì)學(xué)生用戶對(duì)課件的整體關(guān)注情況,本文提出一種全體用戶實(shí)時(shí)關(guān)注區(qū)域可視化方法,設(shè)計(jì)空間聚類和數(shù)據(jù)統(tǒng)計(jì)兩種方法生成可視化結(jié)果。教師可以根據(jù)自己的需要,在兩種可視化方法之間進(jìn)行切換。針對(duì)學(xué)生用戶關(guān)注區(qū)域隨時(shí)間變化情況,本文提出一種用戶有效關(guān)注區(qū)域軌跡可視化方法,設(shè)計(jì)一種基于密度的在線聚類算法有效過濾用戶的無效關(guān)注點(diǎn)數(shù)據(jù)。

1 系統(tǒng)概述

基于視線數(shù)據(jù)可視化的虛擬現(xiàn)實(shí)教學(xué)系統(tǒng)主要分為多媒體內(nèi)容呈現(xiàn)和視線數(shù)據(jù)可視化兩個(gè)模塊。多媒體內(nèi)容呈現(xiàn)模塊使用了復(fù)旦大學(xué)交互式圖形學(xué)實(shí)驗(yàn)室的已有研究成果[12],使用一臺(tái)外部推流服務(wù)器和一臺(tái)流轉(zhuǎn)發(fā)服務(wù)器,將多媒體內(nèi)容以流媒體的形式發(fā)送給各個(gè)客戶端。

視線數(shù)據(jù)可視化模塊使用眼球追蹤設(shè)備采集用戶視線數(shù)據(jù),實(shí)時(shí)處理并生成可視化結(jié)果。針對(duì)學(xué)生用戶對(duì)課件的整體關(guān)注情況,本文提出一種全體用戶實(shí)時(shí)關(guān)注區(qū)域可視化方法,設(shè)計(jì)空間聚類和數(shù)據(jù)統(tǒng)計(jì)兩種方法生成可視化結(jié)果。教師可以根據(jù)自己的需要,在兩種可視化方法之間進(jìn)行切換。針對(duì)學(xué)生用戶關(guān)注區(qū)域隨時(shí)間變化情況,本文提出一種用戶有效關(guān)注區(qū)域軌跡可視化方法,設(shè)計(jì)一種基于密度的在線聚類算法有效過濾用戶的無效關(guān)注點(diǎn)數(shù)據(jù)。

視線數(shù)據(jù)可視化模塊結(jié)構(gòu)如圖1所示,學(xué)生客戶端從眼球追蹤設(shè)備獲取用戶視線信息,并通過轉(zhuǎn)發(fā)服務(wù)器發(fā)送給可視化服務(wù)器??梢暬?wù)器根據(jù)用戶關(guān)注點(diǎn)數(shù)據(jù)生成可視化結(jié)果,再經(jīng)由轉(zhuǎn)發(fā)服務(wù)器發(fā)送給教師客戶端,由教師客戶端呈現(xiàn)給教師用戶。

圖1 視線數(shù)據(jù)可視化系統(tǒng)連接示意圖

2 全體用戶實(shí)時(shí)關(guān)注區(qū)域可視化方法

在教學(xué)過程中,學(xué)生是否認(rèn)真觀看教學(xué)課件,在教學(xué)課件上感興趣的是哪一塊內(nèi)容,是教師希望實(shí)時(shí)了解的。為滿足這一需求,需要對(duì)全體用戶實(shí)時(shí)關(guān)注區(qū)域進(jìn)行可視化呈現(xiàn)。全體用戶實(shí)時(shí)關(guān)注區(qū)域可視化方法需要解決兩個(gè)問題:用戶的關(guān)注點(diǎn)集中在哪里;用戶的關(guān)注點(diǎn)在整張課件上是如何分布的。

本文提出一種全體實(shí)時(shí)關(guān)注區(qū)域可視化方法,利用層級(jí)化六邊形網(wǎng)絡(luò)劃分課件區(qū)域,并在網(wǎng)格基礎(chǔ)上生成可視化結(jié)果。針對(duì)用戶關(guān)注點(diǎn)集中區(qū)域,本文設(shè)計(jì)一種基于空間聚類的可視化方法,通過空間聚類對(duì)零散的關(guān)注點(diǎn)進(jìn)行集中呈現(xiàn)。針對(duì)用戶關(guān)注點(diǎn)分布問題,本文設(shè)計(jì)一種基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法,根據(jù)關(guān)注點(diǎn)分布的統(tǒng)計(jì)學(xué)規(guī)律進(jìn)行可視化呈現(xiàn)。教師可以根據(jù)自己的需要,在兩種可視化方法之間進(jìn)行切換。全體用戶實(shí)時(shí)關(guān)注區(qū)域可視化方法主要分為生成正六邊形網(wǎng)絡(luò)、更新正六邊形網(wǎng)絡(luò)、更新基于空間聚類的可視化結(jié)果、更新基于數(shù)據(jù)統(tǒng)計(jì)的可視化結(jié)果四個(gè)步驟,核心流程示意如下:

map←CreateMap(lowest_layer,aspect)

while b_running do

vision_list←GetVisionListFromNetwork()

for vision_data in vision_list do

UpdateMap(vision_data)

end for

UpdateClusterResult(elem_threshold,cluster_threshold)

UpdateStatisticsResult(cov_threshold)

end while

2.1 正六邊形單元網(wǎng)絡(luò)生成

綜合考慮實(shí)用度、美觀度等因素,本文采用層級(jí)化正六邊形網(wǎng)格對(duì)課件區(qū)域進(jìn)行空間劃分。正六邊形網(wǎng)絡(luò)采用六邊形坐標(biāo)系[13]描述,如圖2所示。

圖2 六邊形坐標(biāo)系示意圖

在層級(jí)化網(wǎng)絡(luò)中,一個(gè)高層級(jí)正六邊形單元被劃分為7個(gè)低層級(jí)的正六邊形單元和12個(gè)低層級(jí)的正三角形單元,如圖3所示。一個(gè)高層級(jí)正三角形單元被劃分為1個(gè)低層級(jí)的正六邊形單元和3個(gè)低層級(jí)的正三角形單元,如圖4所示。

圖3 高層級(jí)正六邊形劃分示例

圖4 高層級(jí)正三角形劃分示例

在更新整個(gè)多層級(jí)網(wǎng)絡(luò)時(shí),首先將原始視線數(shù)據(jù)轉(zhuǎn)換到六邊形坐標(biāo)系,并加入到對(duì)應(yīng)的底層單元中。然后,自底向上進(jìn)行迭代,直到最頂層網(wǎng)絡(luò)更新完成。更新正六邊形網(wǎng)絡(luò)的核心流程示意如下:

function UpdateMap(old_pos,new_pos)

old_elem←FindElemByPos(lowest_layer,old_pos)

old_elem.point_count←old_elem.point_count-1

//更新old_elem的統(tǒng)計(jì)信息

UpdateElemData(ole_elem)

//自底向上逐級(jí)更新統(tǒng)計(jì)信息

while ole_elem <> root_elem do

old_elem←old_elem.parent

UpdateElemData(old_elem)

end while

new_elem←FindElemByPos(lowest_layer,new_pos)

new_elem.point_count←new_elem.point_count+1

UpdateElemData(new_elem)

while new_elem <> root_elem do

new_elem←new_elem.parent

UpdateElemData(new_elem)

end while

end function

2.2 基于空間聚類的可視化方法

在實(shí)際教學(xué)場(chǎng)景中,教師需要實(shí)時(shí)了解學(xué)生關(guān)注點(diǎn)集中在課件的哪片區(qū)域。為滿足這一需求,需要對(duì)散亂的關(guān)注點(diǎn)進(jìn)行集中的呈現(xiàn),這首先需要對(duì)關(guān)注點(diǎn)進(jìn)行空間聚類。本文設(shè)計(jì)一種基于空間聚類的可視化方法,對(duì)用戶關(guān)注點(diǎn)數(shù)據(jù)進(jìn)行空間聚類并根據(jù)聚類結(jié)果生成可視化元素。

基于空間聚類的可視化方法主要分為空間聚類與可視化元素生成兩個(gè)步驟。由于課件區(qū)域已經(jīng)被劃分為層級(jí)化正六邊形網(wǎng)格,基于空間聚類的可視化方法使用了STING[14]聚類算法這一基于網(wǎng)格的聚類算法進(jìn)行空間聚類。在可視化元素的選擇上,綜合考慮美觀性、通用性等因素,以及教師用戶需要快速讀取關(guān)注人數(shù)的需求,基于空間聚類的可視化方法使用了鐘表這一圓形元素來呈現(xiàn)一片區(qū)域內(nèi)的關(guān)注點(diǎn)數(shù)量。

STING算法的聚類過程主要分為標(biāo)記相關(guān)單元和連接相關(guān)單元兩個(gè)步驟。首先,逐層級(jí)搜索包含關(guān)注點(diǎn)數(shù)量point_count不少于閾值elem_threshold的單元,將這些單元標(biāo)記為相關(guān)單元。然后,根據(jù)選定的層級(jí)layer,利用深度優(yōu)先搜索算法,將result_list[layer]中相鄰的相關(guān)單元連接成一個(gè)簇。設(shè)簇中單元包含的關(guān)注點(diǎn)數(shù)量總和為point_sum,若滿足point_sum>cluster_threshold,則將該簇視為一個(gè)合法的簇。

空間聚類結(jié)果由參數(shù)elem_threshold和cluster_threshold控制。elem_threshold的值越大,參與聚類的相關(guān)單元越少,越難生成簇。cluster_threshold的值越大,合法的簇需要包含的關(guān)注點(diǎn)越多,越難生成簇。

最后,根據(jù)空間聚類結(jié)果生成鐘表可視化元素。鐘表的半徑R由簇包含的正六邊形網(wǎng)格面積S以及預(yù)設(shè)的參數(shù)Rbase和Rscale計(jì)算得到:

(1)

可視化元素之間可能出現(xiàn)重疊,也可能有可視化元素不完全在屏幕邊界內(nèi),此時(shí)使用碰撞避讓算法對(duì)可視化元素的位置進(jìn)行調(diào)整。

(2)

圖5 調(diào)整重疊的可視化元素

此外,如果出現(xiàn)鐘表元素不完全在屏幕邊界內(nèi)的情況,則沿X軸和Y軸移動(dòng)鐘表元素,直到鐘表元素完全在屏幕邊界內(nèi)。持續(xù)迭代調(diào)整可視化元素的位置,直到不存在重疊或是超出屏幕邊界的情況,或是達(dá)到迭代次數(shù)上限。此時(shí)生成的即為最終的可視化結(jié)果。

2.3 基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法

在實(shí)際教學(xué)場(chǎng)景中,學(xué)生用戶的關(guān)注點(diǎn)在課件上是如何分布的,也是教師希望實(shí)時(shí)了解的內(nèi)容。為滿足這一需求,需要根據(jù)關(guān)注點(diǎn)分布的統(tǒng)計(jì)學(xué)規(guī)律進(jìn)行可視化呈現(xiàn)。本文設(shè)計(jì)一種基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法,利用一片區(qū)域內(nèi)關(guān)注點(diǎn)密度的離散系數(shù)[15]描述該區(qū)域用戶關(guān)注點(diǎn)分布情況。離散系數(shù)越小,說明該單元內(nèi)關(guān)注點(diǎn)分布越均勻。

根據(jù)預(yù)設(shè)的離散系數(shù)閾值,基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法從層級(jí)化網(wǎng)絡(luò)中篩選出若干個(gè)不重疊的網(wǎng)格單元,并根據(jù)這些網(wǎng)格單元生成可視化結(jié)果。在保證密度離散系數(shù)不超過閾值的前提下,基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法選取更高層級(jí)的網(wǎng)格單元進(jìn)行可視化呈現(xiàn),以保證可視化結(jié)果的簡(jiǎn)潔。在可視化元素的選擇上,基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法也使用圓形鐘表元素進(jìn)行可視化呈現(xiàn)。

評(píng)估指標(biāo)數(shù)據(jù)的建立則需要根據(jù)花溪紅巖水庫的實(shí)際變量和評(píng)估計(jì)算關(guān)系式,通過數(shù)據(jù)管理體系中的數(shù)據(jù)結(jié)構(gòu)劃分,分解評(píng)估數(shù)據(jù)結(jié)構(gòu)。

(3)

(4)

(5)

基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法分為搜索目標(biāo)單元和更新可視化結(jié)果兩個(gè)步驟。首先,利用深度優(yōu)先搜索算法對(duì)層級(jí)化單元網(wǎng)絡(luò)進(jìn)行遍歷,查詢單元的離散密度系數(shù)。如果一個(gè)單元的離散密度系數(shù)小于閾值cov_threshold,則使用該單元的數(shù)據(jù)生成可視化結(jié)果。算法的核心流程示意如下:

function SearchElems(elem,new_list,cov_threshold)

if elem.count>0

if elem.cov

new_list.Add(elem)

else

for subelem in elem.full_cover_list do

SearchElems(subelem,new_list,

cov_threshold)

end if

end if

end function

接著,通過對(duì)比本次更新獲得的待處理六邊形單元列表new_list和上次更新時(shí)獲得的鐘表可視化元素列表old_clock_list對(duì)應(yīng)的六邊形單元列表old_list,對(duì)可視化結(jié)果進(jìn)行更新。對(duì)于new_list中元素elem,如果old_list中存在單元bigger_elem覆蓋elem,則elem對(duì)應(yīng)的時(shí)鐘元素是由bigger_elem對(duì)應(yīng)時(shí)鐘元素分裂而來的。如果old_list中存在元素smaller_elem被elem覆蓋,則elem對(duì)應(yīng)時(shí)鐘元素由smaller_elem對(duì)應(yīng)時(shí)鐘元素融合而來。算法的核心流程示意如下:

function UpdateClockElems(new_list,old_clock_list)

new_clock_list←CreateNewList()

for new_elem in new_list do

new_clock←CreateNewClock()

for old_clock in old_clock_list do

old_elem←old_clock.elem

//如果當(dāng)前六邊形單元對(duì)應(yīng)的clock已存在,則更新該clock

if old_elem=new_elem then

new_clock←old_clock

//如果已有clock對(duì)應(yīng)的六邊形單元覆蓋當(dāng)前六邊形單元,則

//當(dāng)前六邊形單元對(duì)應(yīng)的clock由該已有clock分裂而來

else if old_elem.Cover(new_elem) then

Split(old_clock,new_clock)

//如果當(dāng)前六邊形單元覆蓋已有clock對(duì)應(yīng)的六邊形單元,則

//當(dāng)前六邊形單元對(duì)應(yīng)clock由這些被覆蓋的clock融合而來

else if new_elem.Cover(old_elem) then

Compose(old_clock,new_clock)

end if

end for

new_clock_list.Add(new_clock)

end for

old_clock_list←new_clock_list

end function

3 用戶有效關(guān)注區(qū)域軌跡可視化方法

在實(shí)際教學(xué)場(chǎng)景中,教師除了需要了解全班同學(xué)的整體注意力情況,還需要了解單個(gè)用戶關(guān)注的區(qū)域是如何隨時(shí)間變化的。為滿足這一需求,需要關(guān)注點(diǎn)數(shù)據(jù)流中對(duì)時(shí)間上連續(xù)且空間上接近的關(guān)注點(diǎn)進(jìn)行集中呈現(xiàn)。

本文提出一種用戶有效關(guān)注區(qū)域軌跡可視化方法,將一定時(shí)間窗口內(nèi)包含一定數(shù)量關(guān)注點(diǎn)的空間區(qū)域視為一個(gè)有效關(guān)注區(qū)域,并針對(duì)該區(qū)域進(jìn)行可視化呈現(xiàn)。本文設(shè)計(jì)一種基于密度的在線聚類算法生成有效關(guān)注區(qū)域序列,并使用實(shí)心圓作為最終呈現(xiàn)的可視化元素,通過顏色反映區(qū)域包含的關(guān)注點(diǎn)數(shù)量多少,通過透明度反映該關(guān)注區(qū)域距離當(dāng)前時(shí)刻的時(shí)間長短。

3.1 基于密度的在線聚類算法

DBSCAN(基于密度的聚類算法)[16]是一種基于高密度連接區(qū)域的經(jīng)典離線聚類算法。針對(duì)在線數(shù)據(jù)流,Aliperti等[17]在DBSCAN的基礎(chǔ)上提出了SF-DBSCAN算法,通過模糊的聚類邊界快速演化聚類。Reddy等[18]提出了一種StreamSW算法,在在線階段利用滑動(dòng)窗口模型保存流數(shù)據(jù)的概要,并在離線階段使用DBSCAN算法進(jìn)行聚類。

不同于SF-DBSCAN等在線聚類算法,本文系統(tǒng)所需的簇需要在時(shí)間序列上具有連續(xù)性。另外,不同于以StreamSW為代表的另一類算法,本文系統(tǒng)的聚類過程需要在線進(jìn)行。針對(duì)上述需求,本文基于DBSCAN設(shè)計(jì)一種在線聚類算法,利用當(dāng)前時(shí)間窗口的數(shù)據(jù)集質(zhì)心作為聚類的核心對(duì)象。針對(duì)序列D=(x1,x2,…,xn)和給定的參數(shù)(,min_pts),參照DBSCAN算法定義的術(shù)語,本文使用了如下術(shù)語:

質(zhì)心:對(duì)于序列F=(x1,x2,…,xn),F中數(shù)據(jù)點(diǎn)空間位置的平均值稱為F的質(zhì)心,即xc=Σxi/N(F)。

密度直達(dá):對(duì)于序列F=(x1,x2,…,xn-1,xn),假設(shè)F的子序列G=(x1,x2,…,xn-1)的質(zhì)心為xc,若xn處于xc的-鄰域中,則稱xn對(duì)xn-1密度直達(dá)。

密度可達(dá):對(duì)于序列G=(x1,x2,…,xn,xn+1,…,xm),若對(duì)于任意xi(i∈[n,m-1]),滿足xi+1到xi密度直達(dá),則稱xm到xn密度可達(dá)。

密度連通:對(duì)于序列G=(x1,x2,…,xn),若xn到x1密度可達(dá),則稱G是一個(gè)密度連通序列。

簇:如果一個(gè)密度連通序列G包含的空間點(diǎn)數(shù)量不少于閾值min_pts,則G中的空間點(diǎn)構(gòu)成一個(gè)簇。

根據(jù)上述術(shù)語,基于密度的在線聚類算法核心步驟示意如下:

function UpdateTrailResult(trail,epsilon,min_pts)

while trail.pending <> EMPTY do

point←trail.pending.PopHead()

if |point-trail.cur.center|

trail.cur.Add(point)

else

trail.backup.Add(point)

end if

if trail.backup.count>=min_pts then

if trail.cur.count>=min_pts then

CreateCluster(trail.cur)

end if

Clear(trail.cur)

trail.pending.PushHead(trail.backup)

end if

end while

end function

通過持續(xù)運(yùn)行該算法,可以獲取時(shí)間上有序的簇序列,序列中每個(gè)簇代表一個(gè)用戶有效關(guān)注區(qū)域。算法通過參數(shù)epsilon和min_pts控制生成簇的結(jié)果。參數(shù)epsilon代表用戶有效關(guān)注區(qū)域的半徑,該參數(shù)數(shù)值越大,越容易生成合法的簇,且簇中包含關(guān)注點(diǎn)坐標(biāo)分布范圍更廣。min_pts代表構(gòu)成一個(gè)用戶有效區(qū)域的最小關(guān)注點(diǎn)數(shù)量,該參數(shù)數(shù)值越小,越容易生成合法的簇。

3.2 有效關(guān)注區(qū)域軌跡可視化結(jié)果生成

在使用基于密度的在線聚類算法生成的簇序列中,每個(gè)簇包含以下信息:

數(shù)據(jù)點(diǎn)數(shù)量N:該簇包含的數(shù)據(jù)點(diǎn)的數(shù)量。

質(zhì)心xc:該簇的質(zhì)心位置。

時(shí)間戳Tlatest:該簇中最新數(shù)據(jù)點(diǎn)對(duì)應(yīng)的時(shí)間戳。

半徑R:在數(shù)值上等于該簇中距離質(zhì)心最遠(yuǎn)的數(shù)據(jù)點(diǎn)到質(zhì)心的距離。

根據(jù)簇包含的信息生成圓形的可視化元素,圓心位置為xc,圓的半徑為R。然后,利用簇的時(shí)間戳Tlatest、程序當(dāng)前時(shí)間戳Tcur和一個(gè)預(yù)設(shè)的最大留存時(shí)間Tmax,設(shè)置該可視化元素的透明度α:

(6)

最后,根據(jù)數(shù)據(jù)點(diǎn)數(shù)量N,使用熱力圖法設(shè)置可視化元素的顏色。繪制直線連接時(shí)序上相鄰的可視化元素,即可生成最終的可視化結(jié)果。

4 實(shí) 驗(yàn)

4.1 實(shí)驗(yàn)環(huán)境

本文實(shí)驗(yàn)運(yùn)行環(huán)境由1名教師、2名真實(shí)學(xué)生和30名模擬學(xué)生組成。教師和真實(shí)學(xué)生用戶佩戴HTC Vive Pro Eye虛擬現(xiàn)實(shí)頭盔,頭盔內(nèi)置有眼球追蹤模塊。模擬學(xué)生節(jié)點(diǎn)向服務(wù)器發(fā)送30組錄制好的學(xué)生視線數(shù)據(jù),用來模擬多用戶使用情況。此外,系統(tǒng)運(yùn)行需要的多媒體服務(wù)器、可視化服務(wù)器和轉(zhuǎn)發(fā)服務(wù)器分別運(yùn)行在兩臺(tái)計(jì)算機(jī)上。表1列出了本文實(shí)驗(yàn)系統(tǒng)使用的所有計(jì)算機(jī)節(jié)點(diǎn)硬件配置與具體用途。這些計(jì)算機(jī)節(jié)點(diǎn)運(yùn)行在千兆有線局域網(wǎng)中。

表1 實(shí)驗(yàn)計(jì)算機(jī)硬件配置表

4.2 實(shí)驗(yàn)結(jié)果

首先我們分別對(duì)教師端和真實(shí)學(xué)生客戶端的運(yùn)行幀率進(jìn)行測(cè)試。測(cè)試結(jié)果如圖6所示,教師端的平均幀率為87.1幀/s,學(xué)生客端的平均幀率為88.5幀/s。兩者的畫面幀率基本可以滿足虛擬現(xiàn)實(shí)應(yīng)用的需求。

圖6 實(shí)驗(yàn)場(chǎng)景運(yùn)行幀率統(tǒng)計(jì)

接著,我們測(cè)試教師端呈現(xiàn)可視化結(jié)果的整體效果。在虛擬現(xiàn)實(shí)教室場(chǎng)景教師講臺(tái)斜上方懸浮著一塊虛擬屏幕,供教師查看與操作課件,如圖7所示。面板底部有一條進(jìn)度條,顯示有多少學(xué)生正在觀看課件。

圖7 教師端可視化結(jié)果呈現(xiàn)

接下來,我們對(duì)全體用戶實(shí)時(shí)關(guān)注區(qū)域可視化方法進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)使用的正六邊形層級(jí)網(wǎng)格一共分為4層,其中:第1層是頂層;第4層是底層。實(shí)驗(yàn)使用錄制好的30組模擬數(shù)據(jù)作為學(xué)生視線數(shù)據(jù)源。

首先,我們對(duì)基于空間聚類的可視化方法進(jìn)行實(shí)驗(yàn)。在實(shí)驗(yàn)中,使用不同顏色對(duì)屬于不同簇的網(wǎng)格進(jìn)行著色。實(shí)驗(yàn)分為三種情形,三種情形中使用的關(guān)注點(diǎn)數(shù)據(jù)相同,使用的控制參數(shù)如表2所示。

表2 基于空間聚類的可視化方法實(shí)驗(yàn)參數(shù)表

實(shí)驗(yàn)情形1的運(yùn)行結(jié)果如圖8所示??梢园l(fā)現(xiàn),屏幕中央含有關(guān)注點(diǎn)的單元被識(shí)別成了一個(gè)簇,生成一個(gè)圓形鐘表元素。

與實(shí)驗(yàn)情形1相比,實(shí)驗(yàn)情形2中elem_threshold的值從1增加到了2,表示只有至少包含2個(gè)關(guān)注點(diǎn)的網(wǎng)格能參與聚類。實(shí)驗(yàn)情形2的運(yùn)行結(jié)果如圖9所示,可以發(fā)現(xiàn),屏幕中央的鐘表元素一分為二,且兩側(cè)網(wǎng)格著色不同。此外,圖8中只包含1個(gè)關(guān)注點(diǎn)的著色網(wǎng)格在圖9中未著色,這說明這些網(wǎng)格未參與聚類。

圖9 基于空間聚類的可視化方法實(shí)驗(yàn)情形2運(yùn)行結(jié)果

與實(shí)驗(yàn)情形2相比,實(shí)驗(yàn)情形3中cluster_threshold的值從4增加到5,這表示只有包含至少5個(gè)關(guān)注點(diǎn)的簇才是合法的簇。實(shí)驗(yàn)情形3的運(yùn)行結(jié)果如圖10所示,可以發(fā)現(xiàn),圖9左側(cè)網(wǎng)格著色和鐘表元素消失了,右側(cè)網(wǎng)格著色和鐘表元素?zé)o變化。

圖10 基于空間聚類的可視化方法實(shí)驗(yàn)情形3運(yùn)行結(jié)果

分析對(duì)比基于空間聚類的可視化方法三種實(shí)驗(yàn)情形的運(yùn)行結(jié)果,可以發(fā)現(xiàn)基于空間聚類的可視化方法能夠根據(jù)參數(shù)elem_threshold和cluster_threshold正確地生成可視化結(jié)果。

接著,我們對(duì)基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)分為三種情形,三種情形中用戶關(guān)注點(diǎn)在第4層級(jí)正六邊形網(wǎng)格的分布情況如表3所示。除此之外,三種實(shí)驗(yàn)情形的控制參數(shù)cov_threshold分別為1.0、1.0和1.5。

表3 基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法實(shí)驗(yàn)情形第4層級(jí)

通過對(duì)比可以發(fā)現(xiàn),在三種情形中,用戶關(guān)注點(diǎn)均在第3層級(jí)坐標(biāo)(0,0,0)的大正六邊形網(wǎng)格覆蓋范圍內(nèi)。與此同時(shí),情形2和情形3使用的關(guān)注點(diǎn)數(shù)據(jù)相同,情形1和情形2使用的關(guān)注點(diǎn)數(shù)據(jù)不同。經(jīng)過計(jì)算可得,實(shí)驗(yàn)情形1中大正六邊形的密度標(biāo)準(zhǔn)差σ=2.49,密度離散系數(shù)cv=0.75,小于預(yù)設(shè)的離散系數(shù)閾值cov_threshold,因此生成的可視化結(jié)果為一個(gè)合并的大時(shí)鐘如圖11所示。

圖11 基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法實(shí)驗(yàn)情形1運(yùn)行結(jié)果

與此同時(shí),實(shí)驗(yàn)情形2中大正六邊形的密度標(biāo)準(zhǔn)差σ=4.35,密度離散系數(shù)cv=1.30,大于預(yù)設(shè)的離散系數(shù)閾值cov_threshold,因此生成的可視化結(jié)果為分裂的六個(gè)小時(shí)鐘如圖12所示。

圖12 基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法實(shí)驗(yàn)情形2運(yùn)行結(jié)果

實(shí)驗(yàn)情形3中關(guān)注點(diǎn)分布與實(shí)驗(yàn)情形2相同,大正六邊形的密度標(biāo)準(zhǔn)差σ=4.35,密度離散系數(shù)cv=1.30。但是,由于實(shí)驗(yàn)情形3中離散系數(shù)閾值cov_threshold從1.0增大到1.5,這導(dǎo)致大正六邊形的密度離散系數(shù)cv小于離散系數(shù)閾值,生成的結(jié)果又變回一個(gè)合并的大時(shí)鐘如圖13所示。

圖13 基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法實(shí)驗(yàn)情形3運(yùn)行結(jié)果

分析對(duì)比基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法三種實(shí)驗(yàn)情形的運(yùn)行結(jié)果,可以發(fā)現(xiàn)基于數(shù)據(jù)統(tǒng)計(jì)的可視化方法能夠根據(jù)參數(shù)cov_threshold正確地生成可視化結(jié)果。

接著,我們對(duì)用戶有效關(guān)注區(qū)域軌跡可視化方法進(jìn)行測(cè)試,實(shí)驗(yàn)使用真實(shí)用戶實(shí)時(shí)視線作為數(shù)據(jù)源。單用戶有效關(guān)注區(qū)域可視化結(jié)果如圖14所示??梢园l(fā)現(xiàn),出現(xiàn)越早的可視化元素透明度越高,出現(xiàn)超過一定時(shí)間后消失。

圖14 單用戶有效關(guān)注區(qū)域軌跡可視化結(jié)果

最后,我們對(duì)系統(tǒng)的實(shí)時(shí)性進(jìn)行了測(cè)試。首先,學(xué)生端向服務(wù)器發(fā)送關(guān)注點(diǎn)數(shù)據(jù),此時(shí)記錄時(shí)間戳t1。服務(wù)器收到后,更新數(shù)據(jù)并生成可視化結(jié)果,將可視化結(jié)果以1 920×1 080分辨率的圖片形式發(fā)送給客戶端。客戶端接收?qǐng)D片并渲染到虛擬教室場(chǎng)景中,此時(shí)記錄時(shí)間戳t2。取時(shí)間間隔dt=t2-t1作為關(guān)注點(diǎn)顯示延遲的參考值。將上述過程循環(huán)運(yùn)行1 000次,并對(duì)1 000個(gè)關(guān)注點(diǎn)顯示延遲數(shù)據(jù)進(jìn)行分析,統(tǒng)計(jì)結(jié)果如圖15所示,延遲最大為124.0 ms,平均延遲為76.3 ms。這一延遲可以滿足系統(tǒng)的實(shí)時(shí)性需求。

圖15 關(guān)注點(diǎn)變化顯示延遲折線圖

實(shí)驗(yàn)結(jié)果表明,本文視線數(shù)據(jù)可視化模塊可以直觀地反映學(xué)生用戶的觀看情況,且關(guān)注點(diǎn)變化顯示延遲可以滿足系統(tǒng)實(shí)時(shí)性的需求。

5 結(jié) 語

本文設(shè)計(jì)并實(shí)現(xiàn)一套基于視線數(shù)據(jù)可視化的虛擬現(xiàn)實(shí)教學(xué)系統(tǒng),使用眼球追蹤設(shè)備采集用戶視線數(shù)據(jù),實(shí)時(shí)處理并生成可視化結(jié)果。可視化結(jié)果直觀地反映學(xué)生觀看區(qū)域與視線軌跡,供教師實(shí)時(shí)評(píng)估課堂教學(xué)情況,從而發(fā)揮虛擬現(xiàn)實(shí)教學(xué)中教師對(duì)學(xué)生的引導(dǎo)與監(jiān)督作用。針對(duì)學(xué)生用戶對(duì)課件的整體關(guān)注情況,本文提出一種全體用戶實(shí)時(shí)關(guān)注區(qū)域可視化方法,設(shè)計(jì)空間聚類和數(shù)據(jù)統(tǒng)計(jì)兩種方法生成可視化結(jié)果。教師可以根據(jù)自己的需要,在兩種可視化方法之間進(jìn)行切換。針對(duì)學(xué)生用戶關(guān)注區(qū)域隨時(shí)間變化情況,本文提出一種用戶有效關(guān)注區(qū)域軌跡可視化方法,設(shè)計(jì)一種基于密度的在線聚類算法有效過濾用戶的無效關(guān)注點(diǎn)數(shù)據(jù)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)具有良好的可用性,能夠直觀實(shí)時(shí)地反映用戶的觀看情況。未來我們將把更多類型數(shù)據(jù)接入到后臺(tái)分析系統(tǒng)中,并設(shè)計(jì)更多種類的可視化算法,從而更加全面地反映課堂教學(xué)情況。

猜你喜歡
關(guān)注點(diǎn)六邊形虛擬現(xiàn)實(shí)
冬奧關(guān)注點(diǎn)
新體育(2022年2期)2022-02-09 07:04:32
知識(shí)快餐店 到處都是六邊形
尋找關(guān)注點(diǎn) 提高復(fù)習(xí)效率——以初中教學(xué)中“0”為關(guān)注點(diǎn)為例
甘肅教育(2020年14期)2020-09-11 07:58:44
下半年尿素市場(chǎng)四大關(guān)注點(diǎn)
如何分析一組數(shù)據(jù)的集中和分散——數(shù)據(jù)分析的兩個(gè)關(guān)注點(diǎn)
創(chuàng)意六邊形無限翻
童話世界(2018年32期)2018-12-03 05:14:56
怎樣剪拼
怎樣剪拼
風(fēng)口上的虛擬現(xiàn)實(shí)
商周刊(2017年24期)2017-02-02 01:42:55
虛擬現(xiàn)實(shí)技術(shù)向科幻小說借靈感
海外星云(2016年7期)2016-12-01 04:18:00
综艺| 桦川县| 来宾市| 黎平县| 三明市| 廉江市| 上虞市| 昌平区| 民乐县| 五台县| 武威市| 杭锦后旗| 武隆县| 陕西省| 克什克腾旗| 丹巴县| 罗定市| 晴隆县| 洱源县| SHOW| 彰化县| 新竹市| 吴堡县| 青川县| 公安县| 彩票| 延安市| 武穴市| 侯马市| 西林县| 长海县| 万山特区| 宣恩县| 安顺市| 金湖县| 扎囊县| 体育| 曲周县| 托克托县| 新乡市| 香河县|