具頭動補償功能之頭戴式眼動儀系統
全文
(2) 具頭動補償功能之頭戴式眼動儀系統. 學生:唐唯傑. 指導教授:黃奇武 教授. 國立台灣師範大學電機工程學系. 摘. 要. 眼動儀是一種藉由追蹤使用者眼球運動並推估使用者凝視點的裝置,主要的 用途在於心理學上的研究和做為身障者的輔具。一般的眼動儀在進行完校正步驟 後,若是使用者頭部有移動,預估出的凝視點誤差將會增加,除了使用一些裝置 固定頭部外,為了追求使用時的自由度和方便性,如何在頭部能夠移動的情況下 進行正確的凝視點預估是眼動儀研究中相當重要的一部分,一般將這個問題稱為 頭動補償。 在眼動儀的相關研究中,主要可以分為以二維映射函數預估凝視點、以光點 相對位置預估凝視點及以三維眼球模型預估視軸三個大類,而根據不同的眼動儀 架構有不同的頭動補償方法,也具有不同的優點和缺點。 本論文針對頭動補償的問題提出一個頭動補償機制,並將此機制實作,建立 一套具有頭動補償模式的眼動儀系統,主要硬體為一個具有兩台攝影機的頭戴式 眼動儀,除了具有頭動補償的模式外,也具備基本的無頭動補償模式和實景模 式。 在頭動補償的機制部分,主要的方法是以實景攝影機偵測四張貼在螢幕上的 圓形圖卡,計算螢幕的深度和三維位置;在校正時計算二維映射函數和校正平面,. i.
(3) 使用時利用映射函數和校正平面建立視軸,利用視軸和螢幕平面的資訊計算凝視 點,結合三維座標和二維映射函數的概念進行頭動補償,減少因為頭部位移造成 的誤差,從實驗結果來看,和文獻[35]相比,本論文系統中的頭動補償模式在使 用者頭部移動下可以更減少 0.5 至 1 度的誤差。. 關鍵字:眼動儀,頭動補償. ii.
(4) A System of Head Mounted Eye Tracker with Head Movement Compensation. student:Wei-Chieh Tan. Advisor:Dr. Chi-Wu Huang. Department of Electrical Engineering National Taiwan Normal University. ABSTRACT. Eye tracker is a device for measuring eye movements and estimating POG (Point of gaze). It is currently used in psychology field and also can be the assistive devices for disabled people. After calibration, if user’s head moves when using eye tracker, the error of POG will enlarge. An easy way to solving this problem is using some device to hold user’s head, but for pursue the freedom and comfort, how to estimate correct POG when head moving is one of important topics in eye tracker field. The topic is called head movement compensation. There are three major methods of estimating POG in the related research. First, estimating POG by using 2D mapping function, second, estimating POG according to the relative position between light points reflect on eye ball and pupil center, third, building the 3D eye ball module to estimate visual axis and optical axis. There are many different ways of head movement compensation for each method of estimating POG, and they also have different advantages and disadvantages. In this work, this paper presents an approach of head movement compensation iii.
(5) and implement it. Build an eye tracker system has the ability of head movement compensation. In this system, the hardware this system using is a head mounted eye tracker has two cameras. Beside mode of head movement compensation, this system also has the basic modes like mode of no head movement and mode of real scene. In the section of the approach of head movement compensation, this system uses scene camera to detect circular patterns pasted on monitor and estimate monitor’s depth and 3D position. When calibrating, get the information of mapping function and calibration plane, when using eye tracker, estimate visual axis by them and calculate POG, reduces the error caused by head movement. Compare with [35], The experiment result shows this approach can reduce 0.5~1゜degree error when user has large head movement.. Keywords:eye tracker, head movement compensation.. iv.
(6) 誌. 謝. 經過兩年的研究和努力,終於完成了這篇論文,但這篇論文並非全靠我個人 的努力來完成的,在完成這篇論文的過程中,我遭遇了許多的困難和挫折,幸運 的是我也遇到了許多幫助我的人,讓我能夠順利完成論文。 首先要感謝的是我的指導教授黃奇武教授,在研究過程中給了我許多寶貴的 建議,不管是學術上還是做人處事上的建議都讓我受益良多,更要感謝在最後幫 我找到口試委員來進行口試,也感謝花時間來進行口試的兩位口試委員林政宏教 授和李宗演教授,兩位教授對我的論文給出了許多寶貴的意見,讓我看到了論文 中許多不足的地方,也讓這篇論文變得更加完整,另外也要感謝已退休的張吉正 教授,雖然有時會和您有意見上的不同,但還是很感謝您給我的諸多建議。 接著要感謝我的家人,雖然在學術上可能無法給我建議,但他們讓我能在生 活上沒有後顧之憂的進行研究,在研究遇到困難感到失意時也給了我很大的鼓勵, 對我做事的方法也給了我很多的建議,讓我能夠堅持到最後順利完成這篇論文。 另外要感謝實驗室的各位同學和學長,感謝你們每次 meeting 時都要聽我講 一些奇怪的研究方法,在研究上也給了我很多建議,也感謝你們口試時的幫忙和 在撰寫論文時願意給我很多意見。 最後要感謝在過程中願意聽我講話和給我意見的所有人,一路上真的遇到很 多願意幫我的朋友,不管是聽我吐苦水或是給我研究上和做人處事上的建議,都 很感謝你們的付出,才讓我有辦法完成這篇論文。. v.
(7) 目 錄. 中文摘要 ............................................................i 英文摘要 ..........................................................iii 誌 謝 ..............................................................v 目 錄 .............................................................vi 圖目錄 ..............................................................x 表目錄 ............................................................xiv 第一章 緒論 .........................................................1 1.1 眼動儀簡介 ..................................................... 1 1.2 眼動儀的演進 ................................................... 3 1.3 眼動儀的操作流程 ............................................... 6 1.4 研究動機和目的 ................................................. 7 第二章 文獻探討 ....................................................10 2.1 以二維映射函數進行凝視點預估 .................................. 10 2.1.1 以光點位置進行頭動補償 .................................. 11 2.1.2 使用 projective mapping 進行頭動補償 ..................... 15 2.2 以光點位置交比(cross-ratio)關係進行凝視點預估 ................ 16 2.3 以三維眼球模型進行凝視點預估 .................................. 20 2.3.1 以光點位置預估光軸和視軸(1) ............................. 21. vi.
(8) 2.3.2 以光點位置預估光軸和視軸(2) ............................. 23 2.4 眼動儀相關研究方法的比較 ...................................... 28 第三章 研究內容與方法 ..............................................29 3.1 使用硬體及軟體架構 ............................................ 29 3.1.1 使用硬體 ................................................ 29 3.1.2 軟體架構 ................................................ 31 3.2 瞳孔偵測 ...................................................... 31 3.2.1 影像二值化 .............................................. 32 3.2.2 輪廓追蹤 ................................................ 33 3.2.3 橢圓擬合 ................................................ 35 3.2.4 排除誤判區域 ............................................ 36 3.3 圖卡偵測及定位 ................................................ 38 3.3.1 轉換色彩空間進行二值化 .................................. 38 3.3.2 區塊標籤 ................................................ 40 3.3.3 動差不變量(moment invariants)計算和加強辨識 ............. 44 3.3.4 圖卡定位和推估螢幕位置 .................................. 49 3.4 校正模組 ...................................................... 50 3.4.1 映射函數校正 ............................................ 50. vii.
(9) 3.4.2 校正平面 ................................................ 51 3.5 頭動補償 ...................................................... 52 3.5.1 視軸預估 ................................................ 52 3.5.2 預估螢幕平面及求取凝視點 ................................ 54 3.5.3 顯示凝視點 .............................................. 56 3.6 以代數方式舉例說明頭動補償演算法.............................. 63 3.6.1 事前準備工作 ............................................ 64 3.6.2 校正 .................................................... 64 3.6.3 凝視點預估 .............................................. 65 3.7 眼動儀操作流程及操作介面說明 .................................. 69 第四章 實驗結果 ....................................................75 4.1 凝視點精準度實驗 .............................................. 75 4.1.1 前後左右頭動實驗 ........................................ 76 4.1.2 大幅向後頭動實驗 ........................................ 82 4.1.3 大幅向前頭動實驗 ........................................ 83 4.2 實驗結果分析 .................................................. 85 4.3 本研究和文獻[35]的各項比較.................................... 87 第五章 結論和未來展望 ..............................................88 參考文獻和資料 .....................................................90. viii.
(10) 自 傳 .............................................................94. ix.
(11) 圖目錄 圖 1-1 使用眼動儀推測使用者凝視螢幕畫面的情形[1] .....................1 圖 1-2 身障人士使用眼動儀做為輸出裝置的情形[4] .......................2 圖 1-3 Edmund Burke Huey 所研發的接觸式眼動儀[5] .....................3 圖 1-4 Hartridge 和 Thompson 研發的頭戴式眼動儀[7] ....................4 圖 1-5 光線進入眼球後產生四次折射[9] .................................4 圖 1-6 Crane 和 Steele 所研發的眼動儀[8] ..............................5 圖 1-7 利用電極原理的眼動儀[10] ......................................5 圖 1-8 tobii 公司生產的平價眼動儀[11] ................................6 圖 1-9 為行動裝置設計的眼動儀[11] ....................................6 圖 1-10 眼動儀操作流程圖 .............................................6 圖 1-11 使用頭架固定頭部[12] .........................................7 圖 1-12 頭動後螢幕位置示意圖 .........................................9 圖 2-1 校正示意圖 ...................................................11 圖 2-2 Zhiwei Zhu 和 Qiang Ji 研究的實作圖[13] .......................11 圖 2-3 眼睛在不同位置下瞳孔中心和光點成像的示意圖 ...................12 圖 2-4 圖 2-3 的俯視平面圖 ...........................................13 圖 2-5 頭部移動示意圖[14] ...........................................15 圖 2-6 以光點位置預估凝視點實作圖[15] ...............................16 圖 2-7 以光點位置交比關係預估凝視點示意圖[15] .......................16 圖 2-8 實際光點位置[15] .............................................17 圖 2-9 各光點在攝影機中成像的示意圖[15] .............................17 圖 2-10 虛擬平面和螢幕平面關係示意圖 ................................18 圖 2-11 將螢幕畫面切成數塊區域(圖中為 16 塊) .........................20. x.
(12) 圖 2-12 Zhu 和 Ji 提出的三維眼球模型[18] .............................21 圖 2-13 光源產生虛像示意圖[18] ......................................21 圖 2-14 雙光源產生虛像示意圖[18] ....................................22 圖 2-15 虛擬瞳孔中心和實際瞳孔中心示意圖[18] ........................22 圖 2-16 Guestrin 和 Eizenman 提出的數學模型示意圖[19] ................23 圖 3-1 本論文使用的眼動儀 ...........................................30 圖 3-2 本論文使用的四張圖卡樣式 .....................................30 圖 3-3 實際使用情況 .................................................30 圖 3-4 主要架構圖 ...................................................31 圖 3-5 瞳孔偵測流程圖 ...............................................32 圖 3-6 原始影像和經過二值化後的影像 .................................33 圖 3-7 輪廓追蹤使用的 8-connectivity 遮罩 ............................34 圖 3-8 輪廓追蹤後將輪廓畫出的影像 ...................................34 圖 3-9 橢圓擬合後產生的瞳孔影像 .....................................36 圖 3-10 可能出現誤判的瞳孔影像情形 ..................................36 圖 3-11 橢圓內部圖 ..................................................37 圖 3-12 HSV 的色彩空間示意圖[27] ....................................38 圖 3-13 實景攝影機拍攝到的原圖 ......................................40 圖 3-14 二值化後的結果 ..............................................40 圖 3-15 二值化影像及標籤後結果 ......................................40 圖 3-16 區塊標籤使用的 8-connected 遮罩 ..............................41 圖 3-17 標籤表 ......................................................41 圖 3-18 第一次標籤流程圖 ............................................42 圖 3-19 第一次掃描後的標籤結果 ......................................43 圖 3-20 第一次掃描建立的標籤表 ......................................43 圖 3-21 第二次掃描後修正的結果 ......................................43 xi.
(13) 圖 3-22 比對特徵描述值的流程 ........................................46 圖 3-23 圖 3-14 經過特徵描述值比對後保留下來的區塊 ...................46 圖 3-24 目標圖卡的圖形 ..............................................46 圖 3-25 經過圖卡辨識後的結果 ........................................47 圖 3-26 圖卡辨識詳細流程圖 ..........................................48 圖 3-27 針孔相機模型 ................................................49 圖 3-28 攝影機可視範圍示意圖 ........................................49 圖 3-29 九點校正示意圖 ..............................................51 圖 3-30 校正平面示意圖 ..............................................52 圖 3-31 透過映射函數推估二維凝視點 ..................................53 圖 3-32 求取視軸的示意圖 ............................................54 圖 3-33 空間中螢幕平面示意圖 ........................................55 圖 3-34 視軸和螢幕平面的交點示意圖 ..................................56 圖 3-35 圖卡和凝視點在實景攝影機影像中的位置示意圖 ..................57 圖 3-36 兩個不同形狀四邊形間的轉換 ..................................57 圖 3-37 在四邊形 A 和 B 間加入一單位正方形 ............................59 圖 3-38 四張圖卡映射至螢幕示意圖 ....................................61 圖 3-39 頭動補償詳細流程圖 ..........................................62 圖 3-40 實景攝影機座標 ..............................................63 圖 3-41 範例中的螢幕座標 ............................................63 圖 3-42 以實景攝影機為原點的三維座標軸側視圖 ........................64 圖 3-43 校正時螢幕位置(校正平面位置) ................................65 圖 3-44 校正時實景攝影機拍攝到螢幕的畫面 ............................65 圖 3-45 視軸示意圖 ..................................................66 圖 3-46 頭動後螢幕和視軸的關係示意圖 ................................66 圖 3-47 頭動後實景攝影機拍攝到螢幕的畫面 ............................67 xii.
(14) 圖 3-48 頭動後凝視點在實景攝影機畫面中的位置 ........................68 圖 3-49 以 projective mapping 在螢幕上顯示凝視點示意圖 ...............68 圖 3-50 操作流程 ....................................................69 圖 3-51 眼動儀使用介面 ..............................................69 圖 3-52 瞳孔攝影機畫面出現影像 ......................................70 圖 3-53 無頭動補償模式的校正畫面 ....................................71 圖 3-54 凝視測試畫面判斷校正結果 ....................................71 圖 3-55 兩部攝影機拍到影像的介面 ....................................72 圖 3-56 在實景畫面中點擊校正點 ......................................73 圖 3-57 實景模式測試畫面 ............................................73 圖 3-58 在螢幕上貼上四張圖卡 ........................................74 圖 3-59 調整內外分點使紅色方框對齊螢幕 ..............................74 圖 4-1 實驗示意圖 ...................................................75 圖 4-2 螢幕上的已知點位置 ...........................................76 圖 4-3 文獻[35]和本研究在螢幕前 60 公分(校正位置)誤差長條圖 ..........77 圖 4-4 文獻[35]和本研究在螢幕前 67.5 公分(往後移動 7.5 公分)誤差長條圖 78 圖 4-5 文獻[35]和本研究在螢幕前 75 公分(往後移動 15 公分)誤差長條圖 ...79 圖 4-6 文獻[35]和本研究在螢幕前 52.5 公分(往前移動 7.5 公分)誤差長條圖 80 圖 4-7 文獻[35]和本研究在螢幕前 45 公分(往前移動 15 公分)誤差長條圖 ...81 圖 4-8 文獻[35]和本研究大幅向後頭動誤差長條圖 .......................83 圖 4-9 文獻[35]和本研究大幅向前頭動誤差長條圖 .......................84 圖 4-10 校正後螢幕深度變化的示意圖 ..................................85. xiii.
(15) 表目錄 表 2-1 各文獻優缺點比較表 ...........................................28 表 3-1 映射對應位置座標 .............................................59 表 3-2 四張圖卡(螢幕四角)在校正時的三維位置 .........................65 表 3-3 四張圖卡(螢幕四角)頭動後的三維位置 ...........................67 表 4-1 文獻[35]和本研究在螢幕前 60 公分(校正位置)量測誤差結果 ........77 表 4-2 文獻[35]和本研究在螢幕前 67.5 公分(往後移動 7.5 公分)量測誤差結果 ...................................................................78 表 4-3 文獻[35]和本研究在螢幕前 75 公分(往後移動 15 公分)量測誤差結果 .79 表 4-4 文獻[35]和本研究在螢幕前 52.5 公分(往前移動 7.5 公分)量測誤差結果 ...................................................................80 表 4-5 文獻[35]和本研究在螢幕前 45 公分(往前移動 15 公分)量測誤差結果 .81 表 4-6 文獻[35]和本研究大幅向後頭動量測誤差結果 .....................82 表 4-7 文獻[35]和本研究大幅向前頭動量測誤差結果 .....................84 表 4-8 本研究和文獻[35]的各項比較 ...................................87. xiv.
(16) 第一章 緒論. 在此章節中,會對於本論文的主題眼動儀做一些介紹,包含眼動儀的功能、 演進和種類,還有介紹眼動儀的基本操作流程,最後介紹本論文的研究動機和目 的,在 1.1 節中,會對眼動儀做簡介;在 1.2 節中,會介紹眼動儀的演進;在 1.3 節中,會介紹眼動儀的基本操作流程;在 1.4 節中,會介紹本論文的研究動機和 目的。. 1.1 眼動儀簡介 眼動儀是一種能夠推測使用者凝視資訊的工具,藉由分析使用者眼球的變化 來推測凝視點和凝視軌跡等資料,並將這些資料應用於各項領域的研究,如圖 1-1 為使用眼動儀推測使用者凝視螢幕畫面的情形,透過眼動儀就可以分析出使用者 在觀看螢幕畫面時的凝視點和凝視軌跡。. 圖 1-1 使用眼動儀推測使用者凝視螢幕畫面的情形[1] 在心理學上,有些研究利用眼動儀獲得使用者的凝視資訊,以這些資訊去推 斷使用者的心理狀況和想法,舉例來說,使用眼動儀記錄學生觀看考試題目的凝 視情形,透過分析凝視情形就可以得知學生是否瞭解題目中的關鍵字,更可以進 一步改善學生的學習情況;又例如在廣告和產品設計上,藉由觀察使用者凝視廣 1.
(17) 告或產品的軌跡和凝視區域分布,分析出使用者對於產品或廣告較感興趣的區域, 就能以這些資訊設計產品或是廣告。 除了在心理學上的研究,眼動儀在醫學領域上也可以做為身障人士的輔助工 具,成為身障人士與外界溝通的橋樑[2][3],藉由分析身障人士的眼球運動得到 其凝視的位置,對於一些行動不便或無法說話的身障人士來說,就能讓身障人士 跟外界進行溝通。如圖 1-2 為一身障人士使用眼動儀作為輸出裝置的情形,利用 眼動儀推測身障人士的凝視點,將凝視點作為類似游標的功能,只需凝視螢幕畫 面就可以在螢幕上打字。. 圖 1-2 身障人士使用眼動儀做為輸出裝置的情形[4]. 眼動儀在功能上可以分為兩種模式,分別為螢幕演動儀和實景演動儀,螢幕 眼動儀為針對有螢幕的裝置所使用的眼動儀,可以預估使用者在螢幕上的凝視點, 例如電腦螢幕、手機螢幕等;實景眼動儀為針對環境影像所使用的眼動儀,可以 預估使用者在實際環境中的凝視點。在使用方式上,眼動儀可以分為頭戴式眼動 儀和桌上式眼動儀,頭戴式眼動儀顧名思義就是穿戴在使用者身上的眼動儀,通 常是以鏡架或頭盔的方式穿戴在使用者身上;而桌上式眼動儀則是以放置在使用 者前方拍攝使用者進行使用,不會和使用者有直接的接觸。. 2.
(18) 1.2 眼動儀的演進 在 19 世紀初,科學家開始進行人類視覺認知方面的研究,在還沒出現眼動儀 之前,大多是以使用者自己講述的方式來得到使用者的凝視資訊。在 1879 年, 法國眼科醫生 Louis Èmile Javal 發現人類在閱讀時的視線是由凝視和掃視所 組成,也就是視線會在某區域作一段時間的停留,之後會快速的移動到下一個區 域停留。 第一台眼動儀是在西元 1897 年時由 Edmund Burke Huey 所研發的,圖 1-3 為其研發的眼動儀示意圖,主要的架構是由一根鋁製的指針連結到一個戴在眼睛 上的鏡片,以這樣的方式來得到使用者的凝視資訊,因為鏡片需要直接接觸到使 用者的眼球,故這個架構被稱為接觸式眼動儀。在 Huey 的研究中對於眼睛的凝 視情形進行了許多實驗和研究,他發現人們在閱讀的時候,很多單字其實根本就 沒有被凝視過。. 圖 1-3 Edmund Burke Huey 所研發的接觸式眼動儀[5] 在 1922 年,Guy Thomas Buswell 研發了第一台非侵入式的眼動儀[6],主要 的概念是將一道光打向瞳孔,再使用底片紀錄從瞳孔反射回來的光,以反射光在 底片上的位置來分析使用者的凝視資訊,Buswell 針對使用者閱讀文章和觀看照 片的凝視情形做了系統化的分析和研究。在 1948 年時,Hartridge 和 Thompson 研發了第一台頭戴式眼動儀[7],其構造如圖 1-4 所示,頭戴式眼動儀讓使用者 可以在較自由的情況下使用眼動儀。. 3.
(19) 圖 1-4 Hartridge 和 Thompson 研發的頭戴式眼動儀[7] 在 1985 年,Crane 和 Steele 利用光線進入眼睛之後會產生四次折射的現象, 以攝影機拍攝眼睛得到這些光的折射點來進行凝視點的預估[8],如圖 1-5 所示, 光線進入眼球後會因為眼球內部各構造的折射率不同產生四次折射,而這四次折 射會產生四組不同的影像,稱為 Purkinje-Image。. 圖 1-5 光線進入眼球後產生四次折射[9] 在四組 Purkinje-Image 中,第二組和第三組影像因為反射量太小較不易被觀 測到,因此 Crane 和 Steele 使用第一組和第四組的影像來預估凝視點,這種方 式在之後的眼動儀研究中時常被採用,對於後續的相關研究也有很多啟發。Crane 和 Steele 研發的眼動儀使用情形如圖 1-6 所示,利用頭架固定使用者頭部後, 頭架前方的攝影機會照射使用者眼睛預估凝視點。. 4.
(20) 圖 1-6 Crane 和 Steele 所研發的眼動儀[8] 除了利用影像和貼合在眼睛上的鏡片之外,另一種常見的眼動儀為使用電極 原理偵測眼睛變化並預估凝視點[10],如圖 1-7 所示,在使用者的眼睛周圍貼上 電極感應器,由於視網膜和角膜間存在著電位差,當使用者的眼球轉動時,眼睛 周圍的皮膚會產生電位變化,就能藉由電極感應器觀察電位變化來推測眼球運動 的情形。. 圖 1-7 利用電極原理的眼動儀[10] 早期的眼動儀造價非常昂貴,一部專業的眼動儀包含分析軟體在內往往要價 數十萬甚至數百萬,若要使用眼動儀進行研究必須要先負擔這樣的費用,且由於 價格昂貴,通常購買的數量不會太多,在受試者必須輪流使用眼動儀的情況下, 若受試者眾多時就會導致研究進度緩慢,但隨著科技的進步和技術的普及,市面 上也出現許多較平價的機種,讓一般民眾也能體會到使用眼動儀的樂趣,如圖 1-8 為瑞典眼動儀公司 tobii 所生產的平價眼動儀,另外也有出現如圖 1-9 的專為行 動裝置設計的眼動儀產品。. 5.
(21) 圖 1-8 tobii 公司生產的平價眼動儀[11]. 圖 1-9 為行動裝置設計的眼動儀[11]. 1.3 眼動儀的操作流程 一般常見眼動儀的操作流程如圖 1-10 所示:首先必須先利用影像或是一些感 測器偵測眼睛的資訊,而在開始預測凝視點前,使用者必須進行一個稱為校正的 步驟,校正的目的主要是為了求得使用者的眼睛和凝視點之間的關係,而根據不 同的眼動儀種類和架構,校正可能是為了要求得方程式的係數或是一些物理參數 之類的資訊,經過校正得到這些資訊之後,眼動儀就可以使用這些資訊來預估凝 視點。. 瞳孔偵測. 校正. 圖 1-10 眼動儀操作流程圖. 6. 預估凝視點.
(22) 1.4 研究動機和目的 在校正結束後,使用者若沒有頭部移動的狀況,大多可以使用校正時得到的 參數推測出正確的凝視資訊,但頭部移動後,頭部和其他裝置的相對位置改變, 此時各方面的條件和校正時皆不相同,若持續以校正時得到的參數來推測凝視點 容易產生誤差,最簡易的解決方法為重新進行校正或是如圖 1-11 使用頭架或一 些裝置固定頭部,. 圖 1-11 使用頭架固定頭部[12] 但不論是重新校正或是用頭架固定頭部在使用上都不是方便的做法,故針對 頭部移動的因素進行誤差修正的方法在眼動儀的領域裡是一個重要的議題,一般 稱之為頭動補償。 本實驗室在先前的研究[35][36]中對於無頭動補償功能和具備頭動補償功能 的眼動儀已經有了一定的成果,但仍然有一些可改進的方向及想要達成的目標, 因此本論文針對先前研究的不足大略有以下幾個改進方向: (1) 將眼動儀移植到嵌入式系統 眼動儀在使用上可以被歸類為攜帶式裝置,考量到使用上的便利性,相較於 個人電腦,嵌入式系統具有體積小、具單一功能等優點,因此將眼動儀移植至嵌 入式系統是將來的趨勢之一,但本實驗室先前的眼動儀程式均是由 C#開發而成, 難以移植至嵌入式系統中,因此本論文的眼動儀程式改以 C 和 C++開發,對於未 來要移植至嵌入式系統中會有所幫助。. 7.
(23) (2) 提升瞳孔中心偵測的精準度 先前的瞳孔偵測方式是讓使用者以手動方式調整閥值、區塊的最大和最小面 積,再以區塊標籤找出符合條件區塊的重心來當作瞳孔中心,但因為有使用紅外 光照射眼球,若紅外光點在瞳孔內會使預估出的瞳孔中心位置產生偏差,且在使 用時若周圍的燈光改變則又需要重新調整閥值。因此如果使用自動化的找閥值方 法減少手動調節的步驟可以提升方便性,加上使用別的方式偵測瞳孔中心減少光 點的影響,對於凝視點預估的精準度會有所幫助,在 3.2 節中將會介紹本論文瞳 孔偵測的方法。 (3) 使用自行設計的圖卡偵測螢幕 在先前的研究中是使用 AR 卡[37]來偵測螢幕位置,本論文改使用偵測自行設 計的四張圖卡偵測螢幕位置,相較於 AR 卡,本論文所使用的圖卡可以推測螢幕 的深度,在 3.3 節中會介紹本論文偵測圖卡的方法。 (4) 考慮到深度問題進行頭動補償 本實驗室之前對於頭動補償皆只考慮到二維方向的補償,並無考慮到深度的 問題,實際上由於眼睛和實景攝影機的座標軸不一致,深度是必須被考慮的因素 之一,如圖 1-12 所示,橘色線段為使用者所凝視的方向,若是不考慮深度,只 以攝影機拍攝的二維影像做頭動補償判斷,則會預估出錯誤的凝視點位置(藍色 線段和頭動後螢幕位置的交點),這也是本論文中主要想探討和改進的地方,希 望能探討在考慮深度的情況下是否能有更好的頭動補償效果。在 3.5 節中,將會 介紹本論文考慮到深度問題提出的頭動補償方法,並和先前的版本做一些比較和 討論。. 8.
(24) 圖 1-12 頭動後螢幕位置示意圖 (5) 測試在較大幅度頭部移動下的補償效果 在先前文獻[35]的頭動補償實驗中,測試頭動的幅度最大只到 10 公分,然而 在使用時的移動很可能會超出此一範圍,因此本論文在第四章的實驗中,將會對 於較大幅度的頭部移動進行一些實驗,測試在較大幅度頭動下的補償效果。 本論文主要建立一套具三維頭動補償機制的眼動儀系統,系統內除了具備頭 動補償模式外也具有基本的無頭動補償模式和實景模式。頭動補償機制部分,主 要是在螢幕上貼上四張圖卡,利用頭戴式眼動儀上的實景攝影機拍攝螢幕上的四 張圖卡偵測螢幕資訊,在校正時決定校正平面和映射函數,使用時以映射函數和 校正平面決定視軸,再以螢幕資訊建立一個三維座標進行頭動補償,減少因為頭 部移動而造成的誤差,希望能夠在考慮深度的情況下進行頭動補償,達到更好的 頭動補償效果。. 9.
(25) 第二章 文獻探討. 在本章中會對眼動儀和頭動補償的相關研究做一些介紹及探討,大致可分為 以二維映射函數預估凝視點、以三維眼球模型預估凝視點和以光點位置交比關係 推估凝視點三個大類,在 2.1 節中,會介紹以二維的映射函數預估凝視點的相關 研究,在 2.2 節中,會介紹以光點的交比關係計算預估凝視點的相關研究,在 2.3 節中,會介紹以三維眼球模型進行凝視點預估的相關研究,最後在 2.4 節會將這 些方法做一些比較。. 2.1 以二維映射函數進行凝視點預估 相對於其他預估凝視點的方法,以二維的映射函數來建立凝視點和眼睛的關 係在實作上是較為容易的,主要的概念如式(2-1)所示,假設瞳孔中心和凝視位 置間的關係為一個映射函數𝑓,其中 e 為瞳孔中心位置,凝視點為 S。 𝑆 = 𝑓(𝑒). (2-1). 此方法校正時的示意圖如圖 2-1 所示,使用者必須凝視數個已知點進行校正, 在凝視已知點的的同時,眼動儀會記錄相對應的瞳孔中心位置,將瞳孔中心位置 和已知點代入映射函數得到數個方程式,以這些方程式去求得映射函數的解。本 論文也是基於此方法來進行凝視點預估。. 10.
(26) 圖 2-1 校正示意圖 採用二維映射函數預估凝視點的方法雖然在精準度上可能不如使用精密量測 的三維眼球模型,不過只需要透過照射眼睛的影像和幾個已知的校正點就可以進 行實作,且不需要量測眼睛內部的參數資訊,精準度也在可接受的範圍內,因此 是廣被採用的方法。 但是在校正完成後,若使用者的頭部有移動,則以校正時得到的映射函數預 估出的凝視點會產生誤差,必須要有頭動補償的機制來進行修正。. 2.1.1 以光點位置進行頭動補償 Zhu 和 Ji 提出了一個以光點在瞳孔上的位置來進行頭動補償的方法[13]。圖 2-2 為 Zhu 和 Ji 研究的實作圖,在螢幕前面放置攝影機和光源,利用攝影機照射 使用者瞳孔和光源在瞳孔中的反射點來進行頭動補償。. 圖 2-2 Zhiwei Zhu 和 Qiang Ji 研究的實作圖[13]. 11.
(27) 圖 2-3 為眼睛在不同位置(O1 和 O2)下凝視同一點 S 時的瞳孔中心和光點成像 的示意圖,在不同位置下凝視同一點時,光點和瞳孔中心形成的向量會不同,假 設 O1 為校正時的眼睛位置,O2 為移動後的眼睛位置,Zhu 和 Ji 在固定光源、攝影 機和螢幕位置的條件下,求得在兩個位置時光點和瞳孔中心間向量以及 O1 和 O2 位置的關係,利用此關係進行頭動補償。. 圖 2-3 眼睛在不同位置下瞳孔中心和光點成像的示意圖 在經過校正求出映射函數後,若使用者頭部沒有移動,則在位置 O1 預估凝視 點的映射函數𝑓𝑜1 可以如式(2-2)所示:其中 S 為凝視點位置,𝑣1 為光點和瞳孔中 心形成的向量。 𝑆 = 𝑓𝑜1 (𝑣1 ). (2-2). 使用者頭部移動後,若使用者仍然凝視同一點,則如式(2-3)所示,假設可以 經由眼睛的原先位置 O1、移動後的位置 O2 和移動後光點和瞳孔中心形成的向量𝑣2 三個數值代入一個轉換函數𝑔求得一個新向量𝑣2′ ,在理想情況下,𝑣2′ 會等於𝑣1 , 代入映射函數 S 後會得到相同的凝視點。 𝑣2′ = 𝑔(𝑣2 , 𝑂1 , 𝑂2 ). (2-3). 12.
(28) 故頭部移動情況下的凝視點預估可以改寫成式(2-4): 𝑆 = 𝑓𝑜1 (𝑔(𝑣2 , 𝑂1 , 𝑂2 )) = F(𝑣2 , 𝑂2 ). (2-4). 依照上述的關係,首先需要求得𝑔(𝑣2 , 𝑂1 , 𝑂2 ),圖 2-4 為圖 2-3 由上往下看的 俯視平面圖:. 圖 2-4 圖 2-3 的俯視平面圖 ⃗⃗⃗⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗⃗ 其中瞳孔中心和光點形成的向量𝐺 1 𝑃1 和𝐺2 𝐺2 則分別以(𝑉𝑥1 , 𝑉𝑦1 )和(𝑉𝑥2 , 𝑉𝑦2 )表 示,瞳孔中心和光點在攝影機中成像位置形成的向量𝑔 ⃗⃗⃗⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗⃗ 1 𝑝1 和𝑔 2 𝑝2 分別以(𝑣𝑥1 , 𝑣𝑦1 ) 和(𝑣𝑥2 , 𝑣𝑦2 )表示,(𝑣𝑥1 , 𝑣𝑦1 )和(𝑣𝑥2 , 𝑣𝑦2 )的關係可以表示成下列式(2-5)和(2-6)。 𝑣𝑥1 = 𝑣𝑦1 =. 𝑉𝑥1 𝑉𝑥2 𝑉𝑦1 𝑉𝑦2. ∗. 𝑧1. ∗. 𝑧1. 𝑧2. 𝑧2. ∗ 𝑣𝑥2. (2-5). ∗ 𝑣𝑦2. (2-6). 若角膜中心和瞳孔中心貼合在 X-Z 平面時,𝑉𝑥1 和𝑉𝑥2 可以表示成式(2-7)和 (2-8),式中的 r1 和 r2 為 O1 和 O2 的半徑。 𝑉𝑥1 = 𝑟1 ∗ 𝑉𝑥2 = 𝑟2 ∗. (𝑧𝑠 −𝑧1 )∗𝑥𝑔1 𝑃1 𝑆∗𝑓 (𝑧𝑠 −𝑧2 )∗𝑥𝑔2 𝑃2 𝑆∗𝑓. + 𝑟1 ∗. (𝑥𝑠 −𝑥1 ). + 𝑟2 ∗. (𝑥𝑠 −𝑥2 ). (2-7). 𝑃1 𝑆. (2-8). 𝑃2 𝑆. 13.
(29) 此時將𝑉𝑥1 和𝑉𝑥2 代入上式即可求出(𝑣𝑥1 , 𝑣𝑦1 )和(𝑣𝑥2 , 𝑣𝑦2 )之間的關係,可以依 此關係進行頭動補償。 但在一些情況下,角膜中心和瞳孔中心並不會貼合在 X-Z 平面上,必須加入 Y 方向的變量,此時 𝑉𝑥1 和𝑉𝑥2 的比值為式(2-9): 𝑉𝑥1 𝑉𝑥2. =d∗. [(𝑧𝑠 −𝑧1 )∗𝑥𝑔1 +(𝑥𝑠 −𝑥1 )∗𝑓]. (2-9). [(𝑧𝑠 −𝑧2 )∗𝑥𝑔2 +(𝑥𝑠 −𝑥2 )∗𝑓]. 式(2-9)中的 d 為式(2-10): d=. √(𝑧2 −𝑧𝑠 )2 +(𝑥2 −𝑥𝑠 )2 +(𝑦2 −𝑦𝑠 )2. (2-10). √(𝑧1 −𝑧𝑠 )2 +(𝑥1 −𝑥𝑠 )2 +(𝑦1 −𝑦𝑠 )2. 最後𝑣𝑥1 及𝑣𝑦1 和𝑣𝑥2 及𝑣𝑦2 間的關係可以表示成式(2-11)和(2-12): 𝑣𝑥1 = 𝑑 ∗ 𝑣𝑦1 = d ∗. [(𝑧𝑠 −𝑧1 )∗𝑥𝑔1 +(𝑥𝑠 −𝑥1 )∗𝑓] [(𝑧𝑠 −𝑧2 )∗𝑥𝑔2 +(𝑥𝑠 −𝑥2 )∗𝑓] [(𝑧𝑠 −𝑧1 )∗𝑦𝑔1 +(𝑦𝑠 −𝑦1 )∗𝑓] [(𝑧𝑠 −𝑧2 )∗𝑦𝑔2 +(𝑦𝑠 −𝑦2 )∗𝑓]. ∗. 𝑧2. ∗. 𝑧2. 𝑧1. 𝑧1. ∗ 𝑣𝑥2. (2-11). ∗ 𝑣𝑦2. (2-12). 推導至此可以發現轉換函數和原本假設的轉換函數𝑔不同,在這個轉換式中, 必須使用到凝視點 S 的位置資訊,故函數𝑔需改寫成式(2-13): 𝑣2′ = 𝑔(𝑣2 , 𝑃1 , 𝑃2 , 𝑆). (2-13). 因為轉換函數𝑔改寫,凝視點 S 的預估函數 F 就要改寫成式(2-14): 𝑆 = F(𝑣2 , 𝑃2 , 𝑆). (2-14). 可以看出預估函數 F 為一個遞迴關係,必須透過遞迴運算求得凝視點 S,在 Zhu 和 Ji 的研究中,首先將螢幕的中心點位置 S0 設定為初始的凝視點,將 S0 代 入 g 得到一個𝑣2′,再將𝑣2′ 代入 F 後得到一個新的凝視點 S1,之後再以新的凝視點. S1 求出另一個 S2,持續這個步驟直到凝視點 Si 和求得的凝視點 Si+1 相同為止。. 14.
(30) 2.1.2 使用 projective mapping 進行頭動補償 在 Zhu 和 Ji 的研究中,頭動補償的方式是由螢幕前方的攝影機拍攝使用者進 行頭動補償,這類方法在使用前對於攝影機、光源和螢幕的位置都需要進行量測, 較適用於桌上式的眼動儀,反過來說,對於頭戴式眼動儀而言,就必須採用拍攝 螢幕的方式來進行頭動補償,這也是本論文眼動儀所使用的架構。 在 Shih-Chen Tseng 等人的研究中,提出一個適用於頭戴式眼動儀的補償方 法[14],以頭戴式眼動儀上的實景攝影機拍攝前方螢幕,將照射到的螢幕影像使 用 projective mapping 求得頭動後螢幕與校正時螢幕的映射關係,以此映射關 係修正凝視點,達到頭動補償的效果。 如圖 2-5 所示,假設校正時實景攝影機照射到的螢幕平面為 PL1,頭部移動 後照射到的螢幕平面為 PL2,Shih-Chen Tseng 等人計算出 PL1 和 PL2 之間的 projective mapping 關係,將映射函數求得的凝視點代入此關係得到一個修正 後的凝視點,改善頭部移動的問題。. 圖 2-5 頭部移動示意圖[14]. 15.
(31) 2.2 以光點位置交比(cross-ratio)關係進行凝視點預估 使用光點位置交比關係進行凝視點預估的實作圖如圖 2-6 所示,在螢幕前方 架設一台攝影機拍攝眼睛,在螢幕四角上設置光源,另外在攝影機上也會設置一 個光源,利用五個光源在瞳孔中的成像位置以及瞳孔中心位置總共六個點的資訊, 計算這些點之間的交比關係預估凝視點位置。. 圖 2-6 以光點位置預估凝視點實作圖[15] 圖 2-7 為以光點位置交比關係預估凝視點時的示意圖,假設眼睛前方有一切 合眼睛的虛擬平面(Virtual Tangent Plane),當使用者凝視 g 點時,IR1~IR4 四 個光源照射到眼睛的光線和虛擬平面的交點為 V1~V4,UV1~UV4 為 V1~V4 四個光點在 攝影機平面(Virtual Image Plane of CCD)上成像的位置,Up 為角膜中心(Center of Cornea)和 g 點連線交於虛擬平面的點 p 在攝影機平面成像的位置。. 圖 2-7 以光點位置交比關係預估凝視點示意圖[15]. 16.
(32) 但實際光點位置如圖 2-8 所示,以第一個光源 IR1 為例,由於眼球為一個球 體,IR1 在眼睛上產生的光點並不是在虛擬平面上的 V1,而是在 Gt1 的位置,故 實際上會成像在攝影機中的點為 Gt1 而非 V1,其餘 V2~V4 也是相同情況。. 圖 2-8 實際光點位置[15] 圖 2-9 為各光點在攝影機中成像的示意圖,其中 UP 為 p 點在攝影機中成像的 位置,UR1~UR4 為 Gt1~Gt4 在攝影機中成像的位置,URP 為貼近攝影機的光源打在眼 睛上產生的光點在攝影機中成像的位置,UV1~UV4 為 V1~V4 在攝影機中成像的位置, 因為實際上 UV1~UV4 並不會在攝影機中成像,所以需要透過 UR1~UR4 和 URP 間位置的關 係來求得 UV1~UV4。. 圖 2-9 各光點在攝影機中成像的示意圖[15] 如式(2-15)所示,𝑖代表光點的編號,𝑈𝑉𝑖 可以透過𝑈𝑅𝑖 和𝑈𝑅𝑃 的位置和一個係 數α求得,α為一個接近 2.0 的數值,但根據不同的使用情形會有所變動。 𝑈𝑉𝑖 = 𝑈𝑅𝑃 + 𝛼(𝑈𝑅𝑖 − 𝑈𝑅𝑃 ) , 𝑖 = 1,2,3,4. (2-15). 17.
(33) 圖 2-10 為利用光點間交比關係預估凝視點時虛擬平面和螢幕平面關係的示 意圖,(a)為攝影機成像平面,(b)為螢幕平面。根據交比不變定理,V1 和 V2 間 的交比和 IR1 和 IR2 間的交比相同,UV1 和 UV2 間的交比和 V1 和 V2 間的交比相同, 故 UV1 和 UV2 間的交比和 IR1 和 IR2 間的交比相同,同理 UV2 和 UV3 間的交比和 IR2 和 IR3 間的交比也相同,. 圖 2-10 虛擬平面和螢幕平面關係示意圖 假 設 𝑈𝑉𝑖 的 座 標 為 (𝑥𝑖𝑉 , 𝑦𝑖𝑉 )(𝑖 = 1,2,3,4) , 中 間 點 𝑈𝑀𝑖 的 座 標 為 (𝑥𝑖𝑀 , 𝑦𝑖𝑀 )(𝑖 = 1,2,3,4),UV1 和 UV2 間交比關係的值可以表示為式(2-16),UV2 和 UV3 間交比關係的值 可以表示為式(2-17)。 𝑥 C𝑅𝑖𝑚𝑎𝑔𝑒 = 𝑦. C𝑅𝑖𝑚𝑎𝑔𝑒 =. (𝑥1𝑉 𝑦1𝑀 −𝑥1𝑀 𝑦1𝑉 )(𝑥2𝑀 𝑦2𝑉 −𝑥2𝑉 𝑦2𝑀 ). (2-16). (𝑥1𝑉 𝑦2𝑀 −𝑥2𝑀 𝑦1𝑉 )(𝑥1𝑀 𝑦2𝑉 −𝑥2𝑉 𝑦1𝑀 ) (𝑥2𝑉 𝑦3𝑀 −𝑥3𝑀 𝑦2𝑉 )(𝑥4𝑀 𝑦3𝑉 −𝑥3𝑉 𝑦4𝑀 ). (2-17). (𝑥2𝑉 𝑦4𝑀 −𝑥4𝑀 𝑦2𝑉 )(𝑥1𝑀 𝑦2𝑉 −𝑥2𝑉 𝑦1𝑀 ). 假設凝視點 g 座標為(𝑥𝑔 , 𝑦𝑔 ),可知 M1 座標為(𝑥𝑔 , 0),M3 座標為(0, 𝑦𝑔 ),IR1 和 IR2 間的交比關係可以表示為式(2-19),IR1 和 IR2 間的交比關係可以表示為 式(2-20),因此可以利用交比相同的關係求出凝視點 g 的座標。 𝑥 C𝑅𝑠𝑐𝑟𝑒𝑒𝑛 𝑦 C𝑅𝑠𝑐𝑟𝑒𝑒𝑛. = =. 𝑤 2. (𝑤− )𝑥𝑔 (𝑤−𝑥𝑔 ) ℎ 2. 𝑤 2. (ℎ− )𝑦𝑔 ℎ (ℎ−𝑦𝑔 ) 2. = =. 𝑥𝑔. (2-18). 𝑤−𝑥𝑔 𝑦𝑔. (2-19). ℎ−𝑥𝑔. 18.
(34) 這種方法在實作上最大的問題在於α值要採用多少,前面提到α為一個接近 2.0 的數值,但是會因為使用者不同或是一些外在因素造成α值變動,一般來說 α值大略會在 1.8 到 2.5 之間,當採用的α數值和實際有偏差時,將會大幅影響 凝視點預估的準確性,因此在使用前會進行校正,讓使用者凝視幾個已知點求出 適當的α值。 Yoo 和 Chang 提出一個採用 4 個α值的方法[16],在校正時讓使用者凝視 IR1~IR4 四個光點,經由式(2-15)可以推得式(2-20): 𝑈𝑉𝑖 = 𝑈𝑃 = 𝑈𝑅𝑃 + α (𝑈𝑅𝑖 − 𝑈𝑅𝑃 ), 𝑖 = 1,2,3,4 𝑖. (2-20). 因此可以求得α 、α 、α 、α 四個不同的α值,在使用時對不同的光點 1. 2. 3. 4. 採用相對應的α值,預估出的凝視點精準度會比完全採用 2.0 還要好。 Coutinho 和 Morimoto 同樣提出一個以校正求得適當α值的方法,主要的概 念是求出一個全域最佳的α值[17]。如式(2-21)所示,首先定義一組已知的校正 點 C,假設預估出的凝視點位置 E 為式(2-22),D 為預估出的凝視點 E 和校正點 C 之間的誤差向量,表示為式(2-23),而式(2-24)為凝視各校正點時的誤差向量和 平均誤差向量差的加總。在凝視完所有校正點後,就能夠計算出一個α值使得總 誤差有最小值,使用時就採用這個α值進行凝視點預估。 𝐶 = {𝐶𝑘 |𝑘 𝜖 [1 … 𝑛]}. (2-21). 𝐸𝛼 = {𝐸𝛼𝑘 |𝐸𝛼𝑘 = 𝑇(𝐶𝑘 , 𝛼), 𝑘 𝜖 [1 … 𝑛]}. (2-22). ⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗ 𝐷𝛼 = {𝑑 𝛼𝑘 |𝑑𝛼𝑘 = (𝐶𝑘 − 𝐸𝛼𝑘 ), 𝑘 𝜖 [1 … 𝑛]}. (2-23). ⃗⃗⃗⃗⃗⃗ 𝑆𝑢𝑚(α) = ∑𝑛𝑘=1|𝑑 𝑚𝛼 | 𝛼𝑘 − ⃗⃗⃗⃗⃗⃗. (2-24). 19.
(35) 相較於 Coutinho 和 Morimoto 使用全域最佳的α值,Han 和 Wang 等人提出另 一種以不同區域來採用不同α值的方法[15],將螢幕畫面切成數塊區域,如圖 2-11 為將畫面切成 16 個區域,在校正時分別凝視各區域內的校正點 Ci,凝視的 同時計算各區域內的α值,將各區域的α值存入一個α矩陣中,使用時根據不同 區域代入不同的α值,其凝視點的精準度比 Coutinho 和 Morimoto 的方法還要好, 但缺點是校正點的數量較多,校正時所花費的時間會較長。. 圖 2-11 將螢幕畫面切成數塊區域(圖中為 16 塊). 2.3 以三維眼球模型進行凝視點預估 除了上述的兩種方法,建立眼球的三維模型來預估凝視點也是預估凝視點的 做法之一,圖 2-12 為 Zhu 和 Ji 提出的眼球模型示意圖,當眼球在凝視一個物體 時,凝視點的成像有兩條光線,一條為角膜中心 Ocornea 和黃斑中心窩 Fovea 連結形 成的視軸(Visual Axis),另一條為角膜中心 Ocornea 和瞳孔中心 P 連接形成的光軸 (Optical Axis),在以三維眼球模型預估凝視點時,主要就是透過求得光軸和視 軸,進一步推測凝視點位置。. 20.
(36) 圖 2-12 Zhu 和 Ji 提出的三維眼球模型[18]. 2.3.1 以光點位置預估光軸和視軸(1) 為了求得視軸和光軸的資訊,藉由將光線打在眼睛上,以相機拍攝眼睛,觀 察光線的折射點在相機中的成像位置推估光軸和視軸。在 Zhu 和 Ji 的研究中[18], 提出一種眼球三維模型,以光點的成像位置來推估視軸和光軸。 如圖 2-13 所示,若有一個光源 IR LED 在眼睛前方,其光線打在眼睛上時, 在角膜內部會產生一個虛像 Image,而光線反射的延伸線(虛線)則會交於虛像 Image。. 圖 2-13 光源產生虛像示意圖[18]. 如圖 2-14 所示,Zhu 和 Ji 將兩個光源 IR LED1 和 IR LED2 放置在眼睛前方, 以攝影機拍攝兩個光源會拍攝到兩個虛像 Image1 和 Image2。. 21.
(37) 圖 2-14 雙光源產生虛像示意圖[18] 兩個光源和各自的虛像連線後,兩條線的交點即為角膜中心位置,可以表示 成式(2-25): {. 𝑂𝑐𝑜𝑟𝑛𝑒𝑎 = 𝐿1 + 𝑘1 (𝐿1 − 𝐿′1 ) 𝑂𝑐𝑜𝑟𝑛𝑒𝑎 = 𝐿2 + 𝑘2 (𝐿2 − 𝐿′2 ). (2-25). 求得角膜中心位置後,若能求出瞳孔中心位置即可求得光軸。其光軸的 Vp 表 示式如式(2-26)所示: 𝑉𝑃 = 𝑂𝑐𝑜𝑟𝑛𝑒𝑎 + 𝑘 (𝑃 − 𝑂𝑐𝑜𝑟𝑛𝑒𝑎 ). (2-26). 因為光線折射的關係,如圖 2-15 所示,攝影機所拍攝到的瞳孔中心影像為虛 擬瞳孔(Virtual pupil)的位置,不過由於光軸仍然會通過虛擬瞳孔的關係,故 還是可以利用虛擬瞳孔位置來預估光軸。. 圖 2-15 虛擬瞳孔中心和實際瞳孔中心示意圖[18]. 22.
(38) 求得光軸之後,經過計算光軸和視軸間的夾角就可以得到視軸,如式(2-27) ⃗⃗⃗𝑣 ,而同時 所示,當眼睛在凝視一目標 S 時,其角膜中心和目標的連線即為視軸𝑉 ⃗⃗⃗𝑝 即為虛擬瞳孔中心 P`和角膜中心連線。 光軸𝑉 (𝑆−𝑂 ) ⃗⃗⃗ 𝑉𝑣 = ‖𝑆−𝑂𝑐𝑜𝑟𝑛𝑒𝑎 ‖ 𝑐𝑜𝑟𝑛𝑒𝑎. { (𝑃′ −𝑂 ) ⃗⃗⃗ 𝑉𝑝 = ‖𝑃′ 𝑐𝑜𝑟𝑛𝑒𝑎‖. (2-27). −𝑂𝑐𝑜𝑟𝑛𝑒𝑎. 將光軸乘上一個旋轉矩陣 M 後可以轉為視軸,表示為式(2-28): ⃗⃗⃗ ⃗⃗⃗𝑝 𝑉𝑣 = M𝑉. (2-28). 旋轉矩陣 M 可以通過校正來求得,使用者在校正時凝視幾個已知點 Si,可以 得到多組的光軸和視軸,利用這些資訊求得旋轉矩陣 M。. 2.3.2 以光點位置預估光軸和視軸(2) 除了在 Zhu 和 Ji 研究中提出的眼球數學模型,Guestrin 和 Eizenman 也提出 了另一種模型[19],圖 2-16 為 Guestrin 和 Eizenman 提出的眼球模型示意圖, 此圖描述了一個光源產生的光線在眼球上反射至攝影機成像的情形。. 圖 2-16 Guestrin 和 Eizenman 提出的數學模型示意圖[19]. 23.
(39) 由圖中可以分析出許多數學關係建立一套預估凝視點的機制,主要可以整理 出下列 9 個關係:其中 i 表示光源編號,j 表示攝影機編號。 (1) 光線反射點𝑞𝑖𝑗 和其成像在攝影機內的位置𝑢𝑖𝑗 的關係 𝑞𝑖𝑗 = 𝑜𝑗 + 𝑘𝑖𝑗 (𝑜𝑗 − 𝑢𝑖𝑗 ) 𝑓𝑜𝑟 𝑠𝑜𝑚𝑒 𝑘𝑖𝑗. (2-29). (2) 光線反射點𝑞𝑖𝑗 和眼睛結點𝑐連線長度為 R ‖𝑞𝑖𝑗 − 𝑐‖ = 𝑅. (2-30). (3) 光源𝑙𝑖 、攝影機結點𝑜𝑗 、光線反射點𝑞𝑖𝑗 和眼睛結點𝑐四點共面 (𝑙𝑖 − 𝑜𝑗 ) × (𝑞𝑖𝑗 − 𝑜𝑗 ) ∙ (𝑐 − 𝑜𝑗 ) = 0. (2-31). (4) 眼睛結點𝑐和光線反射點𝑞𝑖𝑗 的連線為光源𝑙𝑖 產生的光線和此光線反射至攝影 機內光線的夾角的角平分線 (𝑙𝑖 − 𝑞𝑖𝑗 ) ∙ (𝑞𝑖𝑗 − 𝑐)‖𝑜𝑗 − 𝑞𝑖𝑗 ‖ = (𝑜𝑗 − 𝑞𝑖𝑗 ) ∙ (𝑞𝑖𝑗 − 𝑐)‖𝑙𝑖 − 𝑞𝑖𝑗 ‖. (2-32). (5) 瞳孔中心 p 在角膜平面上的折射點𝑟𝑗 成像在攝影機內 𝑟𝑗 = 𝑜𝑗 + 𝑘𝑟,𝑗 (𝑜𝑗 − 𝑣𝑗 ) 𝑓𝑜𝑟 𝑠𝑜𝑚𝑒 𝑘𝑟,𝑗. (2-33). (6) 折射點𝑟𝑗 和眼睛結點 c 連線長度為 R。 ‖𝑟𝑗 − 𝑐‖ = R. (2-34). (7) 折射點𝑟𝑗 、攝影機結點𝑜𝑗 、眼睛結點𝑐和瞳孔中心𝑝四點共面 (𝑟𝑗 − 𝑜𝑗 ) × (𝑐 − 𝑜𝑗 ) ∙ (𝑝 − 𝑜𝑗 ) = 0. (2-35). (8) 瞳孔中心 p 和折射點𝑟𝑗 成像在攝影機內的折射定理,𝑛1 為空氣中的折射係數, 𝑛2 為眼睛內的折射係數 𝑛1 ‖(𝑟𝑗 − 𝑐) × (𝑝 − 𝑟𝑗 )‖‖𝑜𝑗 − 𝑟𝑗 ‖ = 𝑛2 ‖(𝑟𝑗 − 𝑐) × (𝑜𝑗 − 𝑟𝑗 )‖‖𝑝 − 𝑟𝑗 ‖. (2-36). (9) 瞳孔中心𝑝到眼睛結點𝑐長度為 K ‖𝑝 − 𝑐 ‖ = 𝐾. (2-37) 24.
(40) 透過上述的九個關係求出光軸,再透過校正決定光軸和視軸之間的夾角或是代 入固定角度,使用時就能以求得光軸再加上一個夾角求得視軸。 在 Guestrin 和 Eizenman 的研究中,主要提出了三種情況,透過上述的九個關 係來求出視軸和光軸,進一步推測凝視點,主要可分為單攝影機單光源,單攝影 機多光源和多攝影機多光源三種,以下會逐一介紹。 (1) 單攝影機單光源 在上述九個關係式中,若以單攝影機單光源的架構預估視軸和光軸,假設 R、. K 和 n1 三個數值皆以量測得知的情況下,一共有 14 個未知數和 13 個方程式,無 法解出所有未知數,因此需要再多加一個條件如式(2-38): ‖𝑜1 − 𝑐 ‖ = 𝑘𝑛𝑜𝑤𝑛. (2-38). 如此便能剛好以 14 個方程式解出所有未知數,預估視軸及光軸。. (2) 單攝影機多光源 同樣假設 R、K 和 n1 三個數值皆以量測得知的情況下,將式(2-29)和式(2-31) 結合可得到式(2-39): (𝑙𝑖 − 𝑜𝑗 ) × (𝑢𝑖𝑗 − 𝑜𝑗 ) ∙ (𝑐 − 𝑜𝑗 ) = 0. (2-39). 在多個光源的情況下,表示 i = 2…N,j = 1,因此上式可以寫成式(2-40): [(𝑙1 − 𝑜1 ) × (𝑢11 − 𝑜1 )]𝑇 [( ) ( )]𝑇 [ 𝑙2 − 𝑜1 × 𝑢21 − 𝑜1 ] (𝑐 − 𝑜1 ) = 0 ⋮ [(𝑙𝑁 − 𝑜1 ) × (𝑢𝑁1 − 𝑜1 )]𝑇. (2-40). 由式(2-40)可以解出: 𝑐 − 𝑜 = 𝑘𝑐,𝑏 𝑏𝑛𝑜𝑟𝑚. (2-41). 25.
(41) 因此式(2-29)、式(2-30)、式(2-32)和(2-41)加起來總共會有(5N+3)個方程 式和(4N+4)個未知數(𝑞𝑖𝑗 、𝑘𝑖𝑗 和 c 以及𝑘𝑐,𝑏 ),足夠解出所有的解,解完後可以進 一步推估視軸和光軸。 文獻中提到特別是在 N 為 2 的情況下,𝑏𝑛𝑜𝑟𝑚 可以表示為式(2-42): 𝑏. 𝑏𝑛𝑜𝑟𝑚 = ‖𝑏‖. (2-42). 𝑏 = [(𝑙1 − 𝑜1 ) × (𝑢11 − 𝑜1 )] × [(𝑙2 − 𝑜1 ) × (𝑢21 − 𝑜1 )]. (3) 多攝影機多光源 在此文獻中,對於多攝影機多光源只討論了雙攝影機和多光源的情形,在雙 攝影機多光源的情況下,可以寫出式(2-43)的矩陣: [(𝑙1 − 𝑜1 ) × (𝑢11 − 𝑜1 )]𝑇 (𝑙1 − 𝑜1 ) × (𝑢11 − 𝑜1 ) ∙ 𝑜1 𝑇 (𝑙1 − 𝑜2 ) × (𝑢12 − 𝑜2 ) ∙ 𝑜2 [(𝑙1 − 𝑜2 ) × (𝑢12 − 𝑜2 )] ⋮ 𝑐= ⋮ (𝑙𝑁 − 𝑜1 ) × (𝑢𝑁1 − 𝑜1 ) ∙ 𝑜1 [(𝑙𝑁 − 𝑜1 ) × (𝑢𝑁1 − 𝑜1 )]𝑇 [(𝑙𝑁 − 𝑜2 ) × (𝑢𝑁2 − 𝑜2 ) ∙ 𝑜2 ] [[(𝑙𝑁 − 𝑜2 ) × (𝑢𝑁2 − 𝑜2 )]𝑇 ]. (2-43). 這裡將式(2-43)中前面乘上 c 的矩陣稱為𝑀2 ,後面的矩陣稱為ℎ,若 N 大於 2 的話,則 c 可以用近似解的方式表示為式(2-44): 𝑐 = (𝑀2𝑇 𝑀2 )−1 𝑀2𝑇 ℎ. (2-44). 將式(2-33)和式(2-35)結合,可以得到下列兩式: (𝑜1 − 𝑣1 ) × (𝑐 − 𝑜1 ) ∙ (𝑝 − 𝑐 ) = 0. (2-45). (𝑜2 − 𝑣2 ) × (𝑐 − 𝑜2 ) ∙ (𝑝 − 𝑐 ) = 0. (2-46). 因為光軸是由 p 和 c 決定,因此在雙攝影機的情況下,可以計算出一個光軸 的方向向量𝑠𝑛𝑜𝑟𝑚 ,表示為式(2-47): 𝑠. 𝑠𝑛𝑜𝑟𝑚 = ‖𝑠‖. (2-47). s = [(𝑜1 − 𝑣1 ) × (𝑐 − 𝑜1 )] × [(𝑜2 − 𝑣2 ) × (𝑐 − 𝑜2 )]. 26.
(42) 若s ≠ 0,則光軸(p-c)可以表示為式(2-48): 𝑝 − 𝑐 = 𝑘𝑝𝑐 𝑠𝑛𝑜𝑟𝑚. (2-48). 因為已經有光軸的方向向量又能夠求出 c,因此若使用雙攝影機多光源,就 可以不必知道 R、K、n1 等參數,直接就能夠求得光軸,並進一步求得視軸。. 27.
(43) 2.4 眼動儀相關研究方法的比較 在此章節中,會將先前介紹的相關研究做一些比較,以表 2-1 呈現,分析各 種方法的優點和缺點。 表 2-1 各文獻優缺點比較表 眼動儀使用方法. 優點. 缺點. 以映射函數預估凝視. 1.實作較容易,只需要 1.需要凝視數個已知點進. 點[13][14][34][35]. 攝影機即可實作。. 行校正決定映射函數。. 2.不 需要 事先 量測 參 2.一般狀況下無法容忍頭 數。. 部移動,需要特殊機制解 決頭部移動問題。. 以光點交比關係預估. 1.能夠容忍頭部移動。 1.若要求得較精確的α值. 凝視點[15][16][17]. 2.若對α值不太要求可 不必校正。. 也必須進行校正。 2.一般是使用桌上的攝影 機照射使用者瞳孔,因為 距離較遠,瞳孔影像的解 析度較低。. 建立三維眼球模型預 1.因 為是 實際 建立 眼 1.預估凝視點時的參數較 估凝視點[18][19]. 球三維模型,較接近真 多,對於參數的精確度要 實情形,若參數精確時 求也較高。 精準度會較高。. 2.為了求得精確的參數,. 2.能夠容忍頭部移動。 對於硬體、環境架設等的 要求也較高。. 28.
(44) 第三章 研究內容與方法. 在此章節中,會對於本論文的研究方法和架構做詳細的介紹,本論文主要建 立一套具有頭戴補償模式的眼動儀系統,主要使用硬體為一個頭戴式眼動儀,具 有三種不同的模式,包含基本的無頭動補償模式、實景模式和本論文主要探討的 頭動補償模式,其中頭動補償模式為前兩種模式的延伸,也是本論文主要想要探 討的地方,因此在本論文中會著重介紹頭動補償模式,其餘兩種模式只會在 3.7 節做簡短介紹。本論文提出一個頭動補償機制,使用貼在螢幕上的四張圖卡進行 凝視點預估,在系統中建立視軸和螢幕平面的三維模型,減少因頭部移動而造成 的誤差,此章節主要可分為七個部分,在 3.1 節中,會介紹本論文使用的硬體和 軟體架構;在 3.2 節中,介紹本論文偵測瞳孔中心的方法;在 3.3 節中,介紹偵 測貼在螢幕上圖卡的方法以及如何利用圖卡推測螢幕位置;在 3.4 節中,介紹如 何進行校正和凝視點預估;在 3.5 節中,介紹本論文進行頭動補償的演算法和流 程;在 3.6 節中,會以代數的方式實際演算頭動補償的演算法;在 3.7 節中,會 介紹本論文眼動儀的操作流程和操作介面,並介紹無頭動補償模式和實景模式兩 種模式。. 3.1 使用硬體及軟體架構 3.1.1 使用硬體 本論文使用之眼動儀為一個頭戴式眼動儀,如圖 3-1 所示,眼鏡架上面裝設 有兩台攝影機,其中一台攝影機為瞳孔攝影機,負責照射眼睛觀察瞳孔變化,在 瞳孔攝影機旁邊有裝設紅外光 LED 燈增加影像清晰度;另一台攝影機為實景攝影 機,負責照射使用者前方的影像辨識螢幕。. 29.
(45) 圖 3-1 本論文使用的眼動儀 此外為了辨識螢幕和推估螢幕位置,本論文使用自行設計的四張不同顏色圖 卡以方格狀貼在螢幕上,在使用眼動儀時以實景攝影機偵測圖卡影像,藉此推估 螢幕位置,本論文使用的四張圖卡樣式如圖 3-2 所示。. 圖 3-2 本論文使用的四張圖卡樣式 圖 3-3 為實際使用情況,使用者將眼動儀上的兩台攝影機連接到電腦後戴上 眼動儀,在螢幕上貼上四張圖卡即可開始校正程序,校正完成後即可開始預測凝 視點。. 圖 3-3 實際使用情況. 30.
(46) 3.1.2 軟體架構 本論文之開發軟體使用 C 和 C++程式語言搭配 Visual Studio 2012 編譯器進 行開發,在視窗介面程式部分則使用 Qt 實作[21],影像處理部分則會使用到 OpenCV 的函式庫[22],主要是在讀取影像和瞳孔偵測的部分會使用到。本論文眼 動儀的主要架構圖如圖 3-4 所示,主要使用到的演算法可分成四個部分,分別為 瞳孔偵測、圖卡偵測和定位、校正模組和頭動補償模組四個部分。之後的章節將 會逐一介紹。. 瞳孔攝影機. 實景攝影機. 瞳孔偵測. 圖卡偵測和 定位. 校正模組. 頭動補償. 輸出凝視點. 圖 3-4 主要架構圖. 3.2 瞳孔偵測 本論文使用的瞳孔偵測方法主要可分為四個步驟,圖 3-5 為瞳孔偵測流程圖, 在經由瞳孔攝影機取得原始影像後,會先對影像進行二值化,接著進行輪廓追蹤 找出各區塊的輪廓後,進行橢圓擬合找出相似於瞳孔的形狀,最後進行排除誤判. 31.
(47) 區域,以下會逐一介紹。. 影像二值 化. 輪廓追蹤. 橢圓擬合. 排除誤判 區域. 圖 3-5 瞳孔偵測流程圖. 3.2.1 影像二值化 在進行瞳孔偵測時,第一步便是對原始影像作二值化,二值化的定義為選定 一個閥值,將一張灰階影像中的像素依照閥值分為區塊像素和背景像素兩類。本 論文使用的二值化方式基於一種名為 Otsu 二值化法的自動二值化法[22]。Otsu 二值化法又稱為大津二值化法,是由 Nobuyuki Otsu(大津展之)先生於 1979 年提 出的一種自動二值化演算法。主要概念是將一張灰階圖的所有像素分為前景和背 景兩個類別,演算法的目的即是尋找能將這兩類分開的一個最佳閥值,以類間變 異數為判斷準則,找出一個閥值使得兩個類別間的類間變異數為最大。類間變異 數的定義如式(3-1): 𝜎𝑏2 (𝑡 ) = 𝑃1 (𝑡 )𝑃2 (𝑡 )[𝜇1 (𝑡)𝜇2 (𝑡 )]2. (3-1). 而式(3-1)中: 𝑡. 𝑃1 (𝑡 ) = ∑ ℎ(𝑖), 𝑖=0. 255. 𝑃2 (𝑡 ) = ∑ ℎ(𝑖) 𝑖=𝑡+1. 𝑡. 255. 𝜇1 (𝑡 ) = ∑ 𝑖 ∗ ℎ(𝑖),. 𝜇2 (𝑡 ) = ∑ 𝑖 ∗ ℎ(𝑖). 𝑖=0. 𝑖=𝑡+1. 其中ℎ(𝑖)代表灰階值為 i 的像素在影像中出現的機率,𝑃1 (𝑡 )代表影像灰階值 小於等於 t 值的機率,𝑃2 (𝑡 )代表影像灰階值大於 t 值的機率;𝜇1 (𝑡 )代表影 像灰階值小於等於 t 值的平均值,𝜇2 (𝑡 )代表影像灰階值大於 t 值的平均值。 32.
(48) 為了計算各個閥值的類間變異數,首先會根據影像內所有像素的灰階值建立 一個表格稱作直方圖,在灰階影像中,灰階值的範圍為 0 到 255,讀取影像中每 一個像素的灰階值,統計出所有灰階值的像素在影像中的數量,並將這些統計出 的數量建成一個表格即為直方圖。舉例來說,在一張灰階影像中,灰階值為 0 的 像素總共有 n0 個,灰階值為 1 的像素總共有 n1 個,以此類推統計到灰階值為 255 的像素共有 n255 個。統計完成之後對這些 n 值做正規化,將每個灰階值的 n 值除 上影像中像素的總數量,就能得到灰階值 i 在影像中出現的機率ℎ(𝑖),最後以窮 舉法去計算灰階值 1 到 254 的類間變異數𝜎𝑏2 ,將𝜎𝑏2 最大的灰階值當作閥值。 在本論文中,因為在瞳孔攝影機旁邊有加裝紅外光 LED 燈照射瞳孔增加影像 清晰度,單使用 Otsu 二值化法找出的閥值會有過大的情況,無法有效的區分出 影像中的瞳孔。經過多次測試後,本論文將求出的閥值乘上一常數 0.6,降低閥 值再進行二值化即可有效區分出影像中的瞳孔。圖 3-6 為原始影像和經過二值化 的影像,可以看到原始影像在經過二值化後,瞳孔的圖形可以很明顯的被區分出 來。. 圖 3-6 原始影像和經過二值化後的影像. 3.2.2 輪廓追蹤 輪廓追蹤是為了擷取二值化影像中輪廓的演算法,在本論文中,使用 OpenCV 提供的輪廓追蹤函數提取輪廓[23][24],將上一節產生的二值化影像中各區塊的 輪廓點擷取出來進行下一步的橢圓擬合,以下會簡單介紹輪廓追蹤的演算法。 33.
(49) 首先定義一個 8-connectivity 的遮罩如圖 3-7,其中 P 為中心像素,0~7 為 P 周圍 8 個像素,也代表 8 個方向:. 圖 3-7 輪廓追蹤使用的 8-connectivity 遮罩 輪廓追蹤演算法的步驟如下: (1) 將遮罩從上至下、從左至右掃描影像,將搜尋到第一個為區塊像素的像 素作為起始像素 P0。 (2) 定義一個初始值為 7 的方向變數 dir,以 P0 為中心點從 dir 方向開始以 逆時針方向搜尋,尋找下一個區塊像素。 (3) 找到下一點後將其標為 P1,若此時 dir 的方向為偶數,則將 dir 加 7; 若 dir 為奇數,則將 dir 加 6。 (4) 重複 2~4 的步驟,直到標記到 Pn 時搜尋到的像素為 P1,且 Pn-1 和 P0 為相 同像素。 (5) 此區塊的輪廓即為 P0、P1、…、Pn-2。 (6) 繼續掃描影像直到搜尋到下一個未被標記的區塊像素,重複上述步驟直 到掃描完整張影像。 圖 3-8 為經過輪廓追蹤後將輪廓畫出的影像:. 圖 3-8 輪廓追蹤後將輪廓畫出的影像. 34.
(50) 3.2.3 橢圓擬合 瞳孔的形狀為一個明顯的橢圓,故本論文使用 OpenCV 提供的橢圓擬合函數找 出影像中的橢圓[25][26],進一步找出瞳孔位置,橢圓擬合為一個最佳化問題, 目的為找出一群樣本點所形成的最佳橢圓,以下會介紹橢圓擬合的演算法。 首先假設一個橢圓方程式為式(3-2): 𝑎𝑥 2 + 𝑏𝑥𝑦 + 𝑐𝑦 2 + 𝑑𝑥 + 𝑒𝑦 + 𝑓 = 0 令a = [𝑎. 𝑏. 𝑐. 𝑑. 𝑒. (3-2). 𝑓]𝑇,x = [𝑥 2. 𝑥𝑦. 𝑦2. 𝑥. 𝑦. 1]𝑇,則橢圓方程式. 可以表示為ax = 0。 考慮到此方程式可能為非橢圓曲線,因此給定一個限制條件:4𝑎𝑐 − 𝑏2 = 1, 此限制條件可以改寫成矩陣形式a𝑇 𝐶𝑎 = 1,其中 C 矩陣如下所示: 0 0 2 0 0 0 0 −1 0 0 0 0 2 0 0 0 0 0 C= 0 0 0 0 0 0 0 0 0 0 0 0 [0 0 0 0 0 0] 於是橢圓擬合的最佳化問題可以寫成式(3-3): min ‖𝐷a‖2 , s. t. a𝑇 𝐶𝑎 = 1. (3-3). 其中 D 為樣本點資料的集合,是一個 n*6 的矩陣,n 代表樣本點的數量,6 為維度。 根據 Lagrange 乘數法,將 Lagrange 乘數因子 λ 代入可得到式(3-4), 然後令𝑆 = 𝐷 𝑇 𝐷,式(3-4)可改寫成式(3-5): 2𝐷𝑇 𝐷a − 2λ𝐶a = 0. (3-4). 𝑆a = λ𝐶a. (3-5). 透過求解𝑆a = λ𝐶a後可以得到特徵值和特徵向量(λ𝑖 , 𝑢𝑖 ),可以得知(λ𝑖 , 𝜇𝑢𝑖 ) 也是𝑆a = λ𝐶a的特徵解,其中 μ 為任意實數,而根據限制條件a𝑇 𝐶𝑎 = 1,可以 找到一個μ𝑖 使得μ𝑖 2 𝑢𝑖𝑇 C𝑢𝑖 = 1,如式(3-6)所示: 35.
(51) μ𝑖 = √. 1 𝑢𝑖𝑇 𝐶𝑢𝑖. =√. λ𝑖. (3-6). 𝑢𝑖𝑇 𝑆𝑢𝑖. 最後令𝑎̂𝑖 = μ𝑖 𝑢𝑖 ,取λ𝑖 > 0的解作為橢圓擬合的解。 圖 3-9 為橢圓擬合後的結果,可以看到影像中瞳孔的區塊被擬合成完整的橢 圓。. 圖 3-9 橢圓擬合後產生的瞳孔影像. 3.2.4 排除誤判區域 在大部分的情況下,經過橢圓擬合之後就能找出適當的瞳孔位置,但影像中 難免會有非瞳孔的橢圓形出現,最常見的情況就是瞳孔較接近眼角時會和眼角形 成橢圓,因此本論文採取一個簡單的篩選方法來避免誤判情形。 圖 3-10 為一個可能出現誤判的瞳孔影像情形,在瞳孔靠近眼角處時,擬合出 紅色的橢圓即為誤判區域,和誤判區域相比,在瞳孔內部的像素多為深色像素, 而瞳孔靠近眼角時形成的橢圓內部的淺色像素較多。. 圖 3-10 可能出現誤判的瞳孔影像情形 因此在判斷橢圓是否為瞳孔時,本論文檢查橢圓內部的五點是否為深色像素, 依照深色像素的多寡判斷是否為瞳孔。圖 3-11 為檢查內部點的示意圖,橢圓中. 36.
(52) 的綠點為需要檢查的點,透過檢查橢圓中心、最短軸上的兩點和最長軸上的兩點 共五點為淺色或深色像素來判斷是否為瞳孔,考慮到紅外光點可能會在瞳孔內, 因此若橢圓內五點中有超過兩點為淺色像素就將此橢圓排除。. 圖 3-11 橢圓內部圖 除了使用上述的方法求得瞳孔中心外,若是因為環境光線或是攝影機照射角 度問題無法順利取得瞳孔中心,使用者可以選擇使用手動的方式求得瞳孔中心, 藉由手動調整閥值、區塊的最大最小值和手動選取興趣區塊,系統會依照這些參 數和條件使用區塊標籤來找到符合條件區塊的重心作為瞳孔中心,其中區塊標籤 的演算法會於 3.3.2 節介紹。. 37.
(53) 3.3 圖卡偵測及定位 為了辨識螢幕和推估螢幕位置,本論文使用自行設計的四張圖卡貼在螢幕四 角,從實景攝影機照射的影像中辨識四張圖卡,並藉由推估圖卡位置去推估螢幕 位置。圖卡辨識的方法主要可分為三個部分,分別為轉換色彩空間進行二值化, 區塊標籤、moment invariant 計算和加強辨識。另外在辨識圖卡之後需要定位出 圖卡在空間中的位置,以下會逐一介紹圖卡辨識和利用圖卡定位推估螢幕位置的 方法。. 3.3.1 轉換色彩空間進行二值化 一般可見的色彩由 RGB 三種顏色混合而成,本論文使用的攝影機照射的影像 也是由 RGB 三個通道構成,然而相較於 RGB 這種描述彩度的色彩空間,人類的視 覺系統對於亮度較為敏感,為了方便辨識不同顏色的圖卡,本論文將影像的色彩 空間由 RGB 轉換到 HSV[27]或是 YCrCb[28]。 HSV 為一種色彩空間的表示方式,常用於影像處理和電腦視覺中,其中 H(Hue) 代表色相,為色彩的基本屬性,就是平常所說的色彩名稱;S(Saturation)代表 色彩的飽和度;V(Value)代表色彩的亮度。圖 3-12 為 HSV 的色彩空間示意圖。. 圖 3-12 HSV 的色彩空間示意圖[27]. 38.
(54) 假設(r, g, b)分別是一個像素的紅、藍、綠的值,他們皆為在 0 到 1 之間的 實數,max 表示這三個值中的最大值,min 表示這三個值中的最小值,由 RGB 色 彩空間轉換到 HSV 色彩空間的轉換關係如下:這裡的 H 為色相角度,範圍在 0 到 360 度之間。 0° 𝑔−𝑏 60° × 𝑚𝑎𝑥 − 𝑚𝑖𝑛 𝑔−𝑏 H = 60° × 𝑚𝑎𝑥 − 𝑚𝑖𝑛 + 360° 𝑏−𝑟 60° × + 120° 𝑚𝑎𝑥 − 𝑚𝑖𝑛 𝑟−𝑔 60° × + 240° { 𝑚𝑎𝑥 − 𝑚𝑖𝑛 0, 𝑖𝑓 𝑚𝑎𝑥 = 0 𝑚𝑖𝑛 S={ 1− , 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑚𝑎𝑥. 𝑖𝑓 𝑚𝑎𝑥 = 𝑚𝑖𝑛 𝑖𝑓 𝑚𝑎𝑥 = 𝑟 𝑎𝑛𝑑 𝑔 ≥ 𝑏 𝑖𝑓 𝑚𝑎𝑥 = 𝑟 𝑎𝑛𝑑 𝑔 < 𝑏 𝑖𝑓 𝑚𝑎𝑥 = 𝑔 𝑖𝑓 𝑚𝑎𝑥 = 𝑏. 𝑉 = 𝑚𝑎𝑥 YCrCb 同樣為色彩空間的一種,其中 Y 表示亮度,Cr 和 Cb 分別表示紅色色差 和藍色色差,由 RGB 轉換到 YCrCb 的公式如下: 𝑌 = 0.299𝑅 + 0.578𝐺 + 0.114𝐵 𝐶𝑏 = 0.564(𝐵 − 𝑌) + 128 𝐶𝑟 = 0.713(𝑅 − 𝑌) + 128 本論文將實景攝影機拍攝到的 RGB 影像轉換成 HSV 影像或是 YCrCb 影像後依 照 H 的值或是 Cr 和 Cb 的值對影像做二值化,將影像中的黃色區域標成背景像素 (圖 3-14 中的白色像素),其餘顏色的像素標成區塊像素(圖 3-14 中的黑色像素), 區隔出圖卡中的內圈圓形區塊。舉例來說,圖 3-13 為實景攝影機拍攝到的原圖, 圖 3-14 為二值化後的結果。. 39.
(55) 圖 3-13 實景攝影機拍攝到的原圖. 圖 3-14 二值化後的結果. 3.3.2 區塊標籤 區塊標籤的目的為對二值化影像中不同的區塊作標籤,在不同的區塊標上不 同的編號,圖 3-15 為一張二值化影像及標籤後的結果,經過區塊標籤將不同的 區塊標上不同的編號後,就能依照編號計算出不同區塊的面積、重心等特徵。. 圖 3-15 二值化影像及標籤後結果. 40.
(56) 本論文使用的標籤演算法為一種基於 Sequential algorithm(循序法)的標籤 演算法[29],使用 8-connected 的遮罩由左至右、由上至下掃描整個影像,圖 3-16 為本論文中使用的遮罩,遮罩中的 p 位置為待測像素,1、2、3、4 的位置為需要 判斷是否連通的像素。. 圖 3-16 區塊標籤使用的 8-connected 遮罩 在此標籤演算法中有一個特殊的表格稱為標籤表,為一個一維的陣列,用於 記錄各標籤區塊和哪些標籤區塊為連通的區塊,在標籤表內的值這裡稱之為連通 值,標籤值為位置值的區塊和標籤值為連通值的區塊是連通的,以圖 3-17 的標 籤表為例:標籤表在位置 3 的連通值為 2,2 為位置 3 的連通值,標籤值為 3 的 連通區塊是標籤值為 2 的區塊,表示標籤值為 2 和標籤值為 3 的區塊連通,在位 置 5 底下的連通值為 2,2 為位置 5 的連通值,標籤值為 5 的連通區塊是標籤值 為 2 的區塊,表示標籤值為 5 的區塊和標籤值為 2 的區塊連通,也代表標籤值為 2、3、5 的區塊皆為連通的。. 圖 3-17 標籤表 此標籤演算法總共會進行兩次掃描,第一次掃描使用遮罩掃描整個影像,標 籤出各區塊和建立標籤表,然而第一次掃描標籤出的結果可能會有錯誤,因此會 進行第二次掃描;第二次掃描依照標籤表上各位置的連通值對第一次的標籤結果 41.
(57) 作修正,得到正確的標籤結果。圖 3-18 為第一次掃描的流程圖: 開始標籤. 結束標籤. 是. 移動遮罩. 否. 是否標籤完全部像素. 否 否. 檢測P像素是否為 區塊. 4位置像素是否 為區塊. 是. 是. N=1. P位置像素是否 有被標遷. 重新整理標籤表. 否. 將P位置標上和4位置一樣的標籤 值. 是. N位置的像 素是否為區塊. 查標籤表看P位置像素和4位 置像素是否已連通. 是. 否. 是. 是 是 將P位置標上和N位置一樣的標籤. 否. P位置像素和4位置像素是 否為相同標籤. 否. 否. N+1. 標籤表內P位置像素的標籤 值的連通值和標籤值相同. 是. 將標籤表內P位置像素的標籤值的 連通值改成標籤表內4位置像素的 標籤值的連通值. 是. 將標籤表內4位置像素的標籤值的 連通值改成標籤表內P位置像素的 標籤值的連通值. 否. N是否為4. 標籤表內4位置像素的標籤 值的連通值和標籤值相同. 否. 標籤表[標籤表[P位置像素的標籤值]] = 標籤表[4位置像素的標籤值], 標籤表[P位置像素的標籤值] = 標籤 表[P位置像素的標籤值]. 圖 3-18 第一次標籤流程圖. 42.
(58) 以圖 3-19 和圖 3-20 為例,圖 3-19 為第一次掃描結束後的標籤的結果,圖 3-20 為建出的標籤表:. 圖 3-19 第一次掃描後的標籤結果. 圖 3-20 第一次掃描建立的標籤表 可以看到標籤結果並非如預期的將圖中三個區塊標籤成三個編號,而是標籤 了五個編號,明顯有標籤錯誤的部分,這時再進行第二次掃描,依照標籤表修正 標籤結果,即能得到正確的標籤結果,第二次掃描的如圖 3-21:. 圖 3-21 第二次掃描後修正的結果. 43.
相關文件
• It is a plus if you have background knowledge on computer vision, image processing and computer graphics.. • It is a plus if you have access to digital cameras
• It is a plus if you have background knowledge on computer vision, image processing and computer graphics.. • It is a plus if you have access to digital cameras
Pantic, “Facial action unit detection using probabilistic actively learned support vector machines on tracked facial point data,” IEEE Conference on Computer
Kyunghwi Kim and Wonjun Lee, “MBAL: A Mobile Beacon-Assisted Localization Scheme for Wireless Sensor Networks,” The 16th IEEE International Conference on Computer Communications
C., “Robust and Efficient Algorithm for Optical Flow Computation,” Proceeding of IEEE International Conference on Computer Vision, pp. “Determining Optical Flow.” Artificial
[16] Goto, M., Muraoka, Y., “A real-time beat tracking system for audio signals,” In Proceedings of the International Computer Music Conference, Computer Music.. and Muraoka, Y.,
Krishnamachari and V.K Prasanna, “Energy-latency tradeoffs for data gathering in wireless sensor networks,” Twenty-third Annual Joint Conference of the IEEE Computer
Jones, "Rapid Object Detection Using a Boosted Cascade of Simple Features," IEEE Computer Society Conference on Computer Vision and Pattern Recognition,