第三章 眼動儀系統架構
3.3 實景眼動儀
3.3.3 實景眼動儀分析系統
將實景眼動儀的資料紀錄下來後,必須透過眼動儀分析系統【圖 3-28】做 進一步的眼動分析,我們的分析系統包括 Glyph Code 的定義、LookZone、
ScanPath、HotZone 以及 ROI 的定義,其中 ScanPath 和 HotZone 是眼動分析中 最常見的參數,可以最直接的可以了解眼睛所看區域,有了分析系統可以更清 楚地了解人們所看的區域,並且對眼動研究也有相當大的幫助。
眼動分析系 統
LookZone
ScanPath
HotZone
ROI 定義 Glyph Code
定義
圖 3-28. 分析系統模組
A. Glyph Code 定義
在錄製完影片後,我們在分析 ScanPath、HotZone 時,需要知道影片裡面每 個地方的位置,我們利用每個凝視點與 Glyph Code 在影片的相對座標,計算出 每個凝視點的位置,所以必須在每個影片畫格裡面至少出現一個 Glyph Code。
在 Glyph Code 辨識之前,由於我們不需要知道影像的顏色資訊,為了增加 影像辨識的速度,進行了以下步驟【圖 3-29】:
1. 將原始影像作灰階化 2. 邊緣偵測
3. 調整邊緣的門檻值 4. 找出所以獨立的斑點 5. 檢查每個斑點
6. 做正方形的轉換
(a) (b) (c)
圖 3-29. Glyph Code 影像處理過程(a)原使影像 (b)邊緣檢測 (c) 描繪邊緣輪廓
在定義 Glyph Code 時,我們在一個方形矩陣中,行跟列都為 5,每個格子 中可以設定為白色或黑色,但是最外圍的邊框一律設定為黑色,且每一個行或 列中至少需要一個白色格子,在 Glyph Code 判別時,如果圖形相同,旋轉角度 不同【圖 3-30】,只能在影片中出現一次,【圖 3-31】為實際錄影的畫面。
圖 3-30. 相同圖形、不同旋轉角度
圖 3-31. 實景眼動儀實際錄影畫面
B. LookZone
LookZone 的功能【圖 3-32】是將 AVI 影片編碼之尺寸 640*480 影片名稱傳 入視頻指標,並且將 TXT 文字檔內容(Gaze Tracker 所紀錄的凝視持續時間、凝 視點座標),資料傳入給檔案指標做存取控制,依序將檔案內的資訊讀取,並且 依照對應座標標記在影片上,完成處理後進行檔案輸出動作【圖 3-35】。
TXT檔(包含凝視 時間、凝視座標)
原始影片
LookZone影片
圖 3-32. LookZone 功能
假設讀入點座標後,欲標註點在圓心的位置,我們設計將以一個半徑為 10,線段粗細為五個單位的紅色圓圈作為標記【圖 3-33】。
圖 3-33. 眼睛凝視點表示法
開始
While inputPtr !=EOR
讀取特定數據存入結構中
圖 3-35. LookZone 結果
C. ScanPath
ScanPath 的功能是將 AVI 影片編碼之尺寸 640*480 影片名稱傳入視頻指 標,並且將 TXT 文字檔內容(Gaze Tracker 所紀錄的凝視持續時間、凝視點座 標),資料傳入給檔案指標做存取控制,依序將檔案內的資訊讀取,並且依照對 應座標以及每一筆數據畫在影片上,完成處理後進行檔案輸出動作。
在 ScanPath 模組【圖 3-36】中還包含了前置資料處理模組,主要是處理資 料的寫入和資料的個數計算;影像處理模組,功能是做影像處理及文字的標 註,最後是偵錯模組。
主模組 前置資料處理 輸出影片檔名字串 處理
數據點讀入
數據字串寫入
資料個數計算
影像處理 影像處理
文字標註
除錯
圖 3-36. ScanPath 主模組與子模組
當一筆數據要存入時,記憶體會被重新配置出新的 DATAListNode 結構大 小,並將前一個指標指向新的結構,反覆儲存、配置直到最後一筆資料讀取結 束為止【圖 3-37】。
….
最後一筆資料
圖 3-37. ScanPath 資料結構示意圖
假設讀入點座標後,欲標註點在圓心的位置,將讀入的點依序以一個紅色 的線段進行繪製,直到最後一筆資料為止【圖 3-38】。
(ms1,x1,y1)
(ms2,x2,y2)
(ms3,x3,y3)
(ms4,x4,y4)
(ms5,x5,y5)
圖 3-38. ScanPath 繪製示意圖
由於在錄影的過程中,可能會出現在第 n 點與第 n-1 點凝視在同一個位置,
但是因為頭轉動的關係,所記錄到的座標在第 n 點與第 n-1 點出現不同的情形,
在這邊我們需要用到數據平移的概念,利用 Glyph Code 與凝視點座標的相對位 置判斷兩點的位置是否相同,如圖所示,因為螢幕右移的關係,使得 x2 大於 x1,但是兩個點與 Glyph Code 中心點的相對位置是不變的,所以我們判斷這兩 個點是同一個點,在畫 ScanPath 時會將兩個點畫在同一個座標上【圖 3-39】。
(x1,y1) (x2,y2)
圖 3-39. 數據平移示意圖
以下為 ScanPath 流程圖: 入來源影片轉換成輸出 Result.avi 型式,接著在 Read_to_Database 開啟輸入來源 的檔案,並將檔案內容存入設計好的鏈結串列中,供後續程式使用,Textcontext 是進行後續位置座標的文字標註,將內容以字串的方式存入對應的列結串列 中,VisitLinkList 提供除錯的功能,DataNumberCounter 可以計算總資料的個 數,並寫入陣列中,PathMarker 開始進行數據折線的標註的工作,將欲標註處 理影片逐格畫格進行影像處理,再將畫格寫入輸出影片中【圖 3-41】,最後是 關閉指標以及結束程式的工作。
圖 3-41. ScanPath 結果
D. HotZone
HotZone 主要是先將數據點進行分析,最後進行統計各個凝視點重複凝視的 次數和總凝視的時間,依據凝視的時間長短以不同的顏色進行標註,例如凝視 時間較長的地方以紅色標註,凝視時間較短的以藍色標註,這樣可以讓人很快 的了解在某個區域所凝視的時間長短。在 HotZone 顏色的規劃部分,以凝視的 時間由長到短依序為【圖 3-42】。
圖 3-42. HotZone 顏色定義
以下為 HotZone 整體流程圖【圖 3-43】:
E. ROI 定義
ROI 的主要功能【圖 3-45】是定義在影片中感興趣的區域,可以讓使用者 播放特定影片,針對實驗的片段畫格區進行多邊形區域的選取,並且可以在各 個區域中進行各個眼動參數的分析。
ROI 多邊形區域繪製
影片播放畫格截取
凝視區域分析 凝視時間
三角形
圓形 矩形
圖 3-45. ROI 功能