季 錚, 席 可, 王 玥
(武漢大學 遙感信息工程學院,武漢 430070)
軟件實踐教學,是培養實用型軟件工程創新人才的關鍵一環,包含全面設計軟件教學的各個方面,構建可控的教學質量保障體系等內容。在當前信息化測繪學科的教學過程中,軟件實踐教學必不可少[1],為學生提供完善的軟件操作訓練,加深對理論學習的理解,也為將來的專業應用做準備。測繪遙感學科的軟件實踐教學,通過大量上機練習和課后思考,培養學生熟練使用行業軟件以及編程實現所需功能模塊的復合能力[2-3],如遙感信息工程學院的攝影測量原理綜合實習、數字圖像處理實習等課程,通過大量生動的實例講解和細致的算法剖析,在軟件實踐教學中充分提高了學生的創新實踐能力[4]。
然而,就目前測繪遙感學科的教學情況而言,仍存在一些不足之處。一方面,集中實習持續幾周時間,教師在實習過程中由于條件制約,除了前期指導,后期總結,中間環節主要是學生獨立操作, 教師與學生之間的互動不夠充分,無法及時掌握每個學生的實際實習情況,只能根據學生最后提交的實習成果來進行判斷,這種評估丟失了中間過程的必要監督,導致不能全面反映學生的實習效果。另一方面,教師無法掌握學生每天的實習情況,忽視了學生個體之間的差異,沒有辦法根據實習情況動態調整教學內容和安排。
目前,國內測繪教學實習的主流軟件如ERDAS公司開發的ERDAS IMAGINE 和ESRI公司開發的ENVI等專業軟件以及武漢大學開發的VirtuoZo、超圖公司開發的SuperMap系列軟件,實習過程中會有大量與軟件人機交互的操作。國內目前專門針對教學實習過程進行人機交互數據采集和分析的應用研究較少,本文通過編寫后臺軟件來記錄所有學生簽到情況,并跟蹤實習過程的人機交互全過程,在遙感信息工程學院實習信息管理平臺的基礎上,對跟蹤的數據進行可視化顯示及智能分析,并對實習成果進行輔助評估。
一個典型的測繪測圖實習,基本過程包括學生簽到、教師講解、任務分發、實習操作、作業提交以及成果評估等,其中實習過程的操作會產生大量的行為信息。
根據過往的實習經驗,存在如下問題:實習教師對于實習過程的監督和掌握是碎片化、不連續的,只有實習開始時布置講解任務和實習結束后評估上交成果這兩個時間點能夠監督,實習過程中產生的學生的大量行為信息被忽略。對于信息化時代下的測繪實習,對整個過程做到連續監督是很有必要的。具體通過利用軟件操作記錄和數據庫技術,對實習全過程進行數據化跟蹤,包括實習操作產生的特征行為、關鍵步驟的人機交互操作等,并對跟蹤數據進行記錄、回溯、分析。
在信息化環境中,通過軟件技術對實習上機操作進行監督,時間分辨率更高,跟蹤效果更細化更全面。在此基礎上通過建立一個信息化的平臺,對實習過程跟蹤的記錄以及行為數據進行自動化分析,進而對實習成果進行智能評估,如圖1所示。

圖1 信息化測繪實習流程圖
以常見的“4D生產實習”為例,在為期3周的實習過程中,教師只在實習開頭講解任務和實習結束評閱成果時和學生有少量互動,實習中間的大部分時間,則是學生自己操作軟件來完成任務,包括利用鼠標進行測圖、鍵盤輸入各種條件參數、鼠標點擊各項功能按鈕等。本信息化平臺在記錄實習課程基本管理信息外,增加對實習中間操作的過程的跟蹤和記錄,利用海量跟蹤數據進行智能分析,對最后的實習成果進行數據化的客觀評估。
軟件實踐教學的全過程,包括學生簽到、分發實習任務、學生上機完成實習任務、上傳實習成果以及評閱實習成果等。使用的全過程跟蹤與分析系統主要包含兩個模塊,即后臺全過程跟蹤模塊和前端智能分析模塊(見圖2)。分析的數據是實習時間段內,學生每天的簽到信息、上機操作人機交互的行為信息等。

圖2 全過程跟蹤與分析系統框圖
后臺信息跟蹤模塊以鉤子技術為基礎,鉤子技術是一種實現Windows平臺下類似于中斷的機制[5-6],允許應用程序攔截并處理指定的信息或事件。當實習過程中需要收集的信息發出后,就可以在信息到達目標窗口之前將其捕獲,并進行保存和記錄[7]。每次數據收集后,通過數據庫管理系統(MySQL++)將采集的數據進行整理,并上傳到指定的服務器中。
采集的交互數據包括:① 學生鼠標點擊的窗口信息,包含窗口名稱等;② 鼠標點擊的位置信息;③ 鍵盤輸入的字符信息;④ 當前正在使用的軟件信息;⑤ 學生上機簽到信息;⑥ 學生提交成果的時間信息。
前端可視化與智能分析模塊基于遙感信息工程學院實習管理系統來實現。實習管理系統是遙感院實驗教學中心自主研發的網頁型信息管理平臺,目前已實現管理員、教師和學生3大模塊,包括登錄登出、發布實習,上傳作業,下載課程附件、評閱作業、課程檢索、實習總覽等功能。系統前端網頁運用了HTML5、CSS3以及React框架等技術來實現簡潔高效的界面,后端則利用Node.js來對網頁的請求進行響應,并對數據進行索引和處理[8-9]。
(1) 交互行為可視化的動態圖表。ECharts是一個純JavaScript的圖表庫,可以流暢的運行在 PC 和移動設備上,底層依賴輕量級的 Canvas 類庫 ZRender,提供直觀、生動、可交互、可高度個性化定制的數據可視化圖表。特點包括豐富的圖標類型、多個坐標系的支持、深層的交互式數據探索、多維數據的支持以及豐富的視覺編碼手段,并支持動態數據等特性[10-12]。
利用ECharts豐富的接口和采集得到的海量數據可以做出各種圖表來對學生實習情況進行分析,包括柱狀圖、折線圖、熱力圖、日歷圖、流量圖等。
(2) 交互行為熱力圖。熱力圖是表示點聚集程度的圖表,點的分布越密集,形成的聚類區域顏色越深。在繪制熱力圖的過程中,考慮到圖表的視覺效果,需要對數據做均值濾波處理。均值濾波是典型的線性濾波算法,在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素(一般以目標像素為中心的周圍8個像素,構成一個濾波模板),再用模板中的全體像素的平均值來代替原來像素值[13]。計算式為:
(1)
式中,Smn代表中心點為(x,y)、尺寸為m×n的矩陣濾波窗口。
(3) 人機成果評估相關性。結合采集的數據以及教師評定的實習成績,對兩者進行相關性分析,可以得到采集數據的置信度。相關系數是研究變量之間線性相關程度的量,是按積差方法計算,同樣以兩變量與各自平均值的偏差為基礎,通過兩個離差相乘來反映兩變量之間相關程度。
線性相關系數一般用字母r表示,用來度量兩個變量之間的線性關系:
(2)
式中:cov(X,Y)為X與Y的協方差,var[X]為X的方差,var[Y]為Y的方差。
以2017年9月遙感信息工程學院“4D產品綜合實習”為例,4D產品(包括數字高程模型、數字正射影像圖、數字線劃地圖、數字柵格地圖)生產實習綜合性強,凝聚了4年本科所學攝影測量及相關專業的綜合應用[14-15]。該實習在數字攝影測量實習的基礎上進行,應用VirtuoZo NT系統來完成。本次實習共有83名同學參加,實習時間為期3周,每天分為兩個時間段,即早上8:00到12:00,下午2:00至6:00。實習結束后系統總共采集人機交互點數達到3 501 120個。對數據進行預處理,剔除信息不正確的點,有效點數達到3 496 611個,這些采集到的海量數據可以充分滿足后續進行智能分析的要求。
在整個實習過程的跟蹤中,每一位同學的人機交互流程都會完整記錄,包括每天的登錄簽到信息、操作軌跡記錄信息、是否操作實習軟件、正在使用實習軟件的模塊名稱等,因為“4D產品綜合實習”在實習過程中主要以鼠標操作為主,所以回溯個人的操作記錄,便能夠評估出這名學生的實習質量。
以某同學為例,整個實習83名同學的平均記錄數量為42 127條,而系統總共采集到該同學的95 600條記錄,另外該同學在需要出勤的18天中都有簽到記錄,初步判斷該同學的實習質量是合格的。
(1) 操作活躍度分析。活躍度代表該同學當天實習的操作活躍程度,即當天人機交互操作的總次數。
將該同學所有操作記錄按照時間進行預處理,分別統計每天的記錄數量,利用ECharts繪制成每日活躍度流量圖,如圖3所示。

圖3 每日活躍度流量圖
每日活躍流量圖橫軸為日期,縱軸為記錄條數,鼠標在圖中移動時,會自動顯示當天的記錄數量,在實習天數比較多時,可以對流量圖進行放大操作,動態調整自己觀測的時間范圍。
可以看出,該同學每天的平均記錄條數為4 552條,在18天實習時間中,有7天的記錄條數超過平均水平,占比38.9%。其中最高記錄條數出現在實習的第4天,為18 839條,最低記錄出現在實習的第1天,為0條,原因是第1天安排為熟悉實習背景和基礎知識,并沒有上機實習。另外可以觀察到,該同學第1周和第3周有明顯的波峰,第1周判斷為學生對軟件操作不熟悉,需要大量訓練,另外剛開始實習精力充沛,實習放松休閑現象少,第3周則是臨近實習結束,需要增加工作量來保證自己完成實習任務。
(2) 軌跡熱力圖分析。“4D產品綜合實習”中很重要的一項任務是測圖工作,測圖過程中有大量人機交互的操作,具有跟蹤分析的巨大價值。VirtuoZo NT系統由許多軟件模塊組成,其中負責測圖工作的模塊叫做“igs1”,而系統跟蹤模塊能夠獲取程序狀態信息,例如當前程序的名稱、使用程序的功能等,通過跟蹤實習學生在“igs1”模塊上的操作,能夠記錄下測圖的完整操作記錄,便于后續分析。
在本實驗中,收集到的3位同學的測圖交互信息數據用熱力圖來進行展示,其中操作越集中的區域,對應的顏色也越深。將不同學生的熱力圖,與該同學最終實習測圖成果進行對比,如圖4所示。


可見,3份測圖成果圖代表的實習工作量有明顯區別,矢量對象統計個數從左往右依次為323、545、607,所以軌跡密集的熱力圖,對應的測圖成果的矢量對象也更多。
盡管3名同學實習工作量有所區別,但點的軌跡分布與軟件的界面圖基本一致,都是左上部分選取軟件的功能按鈕,在測圖區域的中央部分進行操作。不同同學在做相同的測圖實習任務時,鼠標軌跡分布類似,通過這個特點可以判斷上交的實習成果是否獨立認真完成。測圖模塊軟件界面如圖5所示。

圖5 測圖模塊軟件界面圖
(3) 分時段日歷圖分析。將該同學操作記錄按照時間進行細分處理,以實習過程中每小時為單位,分別統計每天實習時間段內每小時的記錄數量,利用ECharts繪制分時段日歷圖,如圖6所示。

圖6 分時段熱力圖
分時段日歷圖橫軸以每小時為單位,早上8:00~12:00分為4個時間段,下午2:00到6:00分為4個時間段,下午6:00之后為一個單獨的時間段,縱軸為實習日期軸,圖中每個方格代表一個時間段,方格內的數字代表該時間段內操作記錄數量,數量越多,方格顏色越深。
從日歷圖可以得到,該同學在3周實習過程中,每天的操作時間和操作效率處于穩定。3周實習總共有72個時間段(每周6天,每天4個時間段),人均記錄總數量為42 127條,每個時間段平均記錄數量為585條,考慮到有的實習時間是非上機操作時間(如教師統一教學),則總時間段數量為60,而該同學超過585條記錄的時間段有42個,占比70%,說明該同學在實習過程中狀態穩定,工作分布均勻,不存在最后突擊趕工的情況。
本次實習83名同學的有效記錄數據達到3 496 611條,對這些數據進行集中統計分析很有必要,整體行為統計分析能夠提供更加清晰、系統的比對數據,為實習成績的評估提供更有據的支撐。
(1) 實習作業提交時間分析。在實習過程中,需要每天上交一份實習日志,說明當天所完成的實習內容。在系統中上傳實習日志后,會自動記錄下上傳文件的時間。分析這些時間數據,可以得知實習日志的完成情況。
在本次實習中,共有65名同學是每天按時提交實習日志,13名同學存在隔天提交的情況,還有4名同學的日志是實習結束后一次性補交的,另有1名同學尚未提交實習日志。通過提交時間分析,對于提交過程不一致的實習成果將區別對待。
(2) 整體分時段日歷圖分析。前文已經對單個同學的分時段日歷圖進行分析,分時段日歷圖能夠很好地反映整個實習過程中每個時間段的操作情況,通過對整體進行集中分析,能夠找出大部分人實習過程中共有的操作特點。
在分時段日歷圖的設定中,最右邊一列為下午實習規定時間結束后所記錄的數據,即學生在規定時間內沒有完成任務而繼續留在實習機房進行操作所產生的數據,可以理解為當天的“加班”數據量,且深紅色在日歷圖顏色表中代表數據量最多的顏色(超過2 000)。
從圖7所示可以觀察到,在實習最后1周時間段內,在規定實習時間段內正常操作、不偷懶的前提下,大部分同學依然有嚴重“加班”的情況(表格右上角為深紅的區域數量大于等于2)。這種現象說明在實習教學過程中,教師對實習任務量的分配安排不是非常合理,導致在實習過程中盡管正常操作,依然需要在最后加班加點才能完成的現象。


實習結束后,需要結合整個實習過程以及提交成果,對實習學生成績進行評估和打分。在過往的實習中,教師按照以下幾點進行評估,包括實習簽到情況以及提交的實習成果圖。由于有了過程記錄數據,系統能給出真實可靠的數據,從而對實習成績進行自動化評估,作為教師評估可靠的智能輔助工具。
智能評估的方面包括:①日志提交時間,包括提交時間是否準時、是否一次性補交、有無缺漏等;②人機交互次數以及測圖交互次數,以上兩點作為平時分評估依據;③測圖成果圖的矢量對象個數;④分時段日歷圖為深紅色的個數;⑤熱力圖中深紅色和淺紅色像素的數量,以上幾點作為成果分評估依據。
以本次實習為樣本,由專職實習教師和系統分別對全部學生進行實習成績評估,并將兩方給出的成績進行對比分析,如圖8所示。


由圖8可見,教師和系統給出的成績具有顯著相關性,將兩者分別獨立判定的平時成績(共20分)進行統計分析,分別計算兩類成績的均值和方差,系統平時成績的均值和方差是16.67和2.08,教師平時成績的均值和方差是17.06和2.28。另外利用前文給出的公式計算相關系數,得到相關系數值為0.879。
再將總成績(共100分)進行統計分析,計算均值,系統總成績的均值是84.42,教師總成績的均值是84.71。兩者的相關系數值為0.857。綜合上述數據,說明系統分析得到的平時成績較為可靠。
利用遙感信息工程學院實習管理系統,將系統給出的平時成績以及判定的依據打包分別發送到實習教師以及各個同學的郵箱。根據實習系統回收的反饋意見,教師認為系統作用明顯,是實習課程和成績評分的重要參考和有力工具,94%的同學認可自己的平時成績,平時成績較低的同學也表示自己本次實習不夠認真,會認真對待下一次實習。
(1) 對于實習教師而言,過程跟蹤可以為教師提供更科學、量化的評估工具。教師根據此系統,可以得知所有學生整個實習過程的實習情況和實習細節,通過統計圖表一目了然,例如學生簽到情況、每個時間段的操作情況、實習日志的提交情況等。基于獲得的這些信息,能夠對學生實習進行更客觀、更科學的評估。
(2) 對于學生而言,系統能夠為學生提供必要的反饋和輔助。例如實習任務大部分學生在規定實習時間內沒做完,還需要“加班”來做,反應到系統日歷圖上,教師根據這種情況來動態調整實習安排,使任務分配更加合理。
(3) 對于實習課程而言,使用系統對實習成果做出全方位有據的科學評估,能成為教學監督、教學改進的依據,促進實習課程管理的精細化、迭代式發展。
系統在使用過程中,還存在一些瑕疵,如獲取的信息源不夠豐富、智能分析結果還不夠簡潔明了等問題。針對上述問題,在未來的研究和實驗中,將進行以下改進:
(1) 擴大過程信息獲取的范圍。除了獲取鼠標的信息,進一步增加獲取鍵盤操作的信息,如有可能,在自主研發的系統中,盡可能開放軟件接口,提供更細化的操作類型和步驟,豐富操作信息源,細化跟蹤實習操作過程。
(2) 優化智能分析模塊。通過存檔的歷史數據與新添加的記錄數據進行對比分析,并對可視化統計分析的數據模型做進一步簡化和整合,使智能分析得到的結論更加簡潔、實用。
本文提出的軟件實踐教學全過程跟蹤與分析系統的實現為老師對實習教學的掌控提供了一種可行的解決方案,借助HTML5、Node.js和數據庫技術,實現了對軟件操作中人機交互的全方位跟蹤。對實習過程的跟蹤,突破了以往評估實習質量僅僅依靠實習提交成果的不足,擴展了獲取實習效應信息的維度和廣度,使教師能更加全面、客觀的分析學生的實習情況,另外也可根據實習狀況,動態調整實習安排,更大化的監督和提升學生的實踐學習效果。此外模塊化的開發設計思路,為全過程跟蹤與分析系統的擴展提供了可能。人機交互實習操作的普遍性,也使本系統能夠適用于其他專業課程的實踐教學,以及配套的虛擬仿真實驗系統中[16]。