• 沒有找到結果。

具頭動補償之高速可見光眼動儀

N/A
N/A
Protected

Academic year: 2021

Share "具頭動補償之高速可見光眼動儀"

Copied!
108
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學電機工程學系 碩士論文 指導教授:高文忠博士. 具頭動補償之高速可見光眼動儀 High Speed Visible Light Gaze Tracking System with Head Motion Compensation. 研究生:林雋益 撰 中 華 民 國 一零五年八月.

(2) 具頭動補償之高速可見光眼動儀 中文摘要. 學生:林雋益. 指導教授:高文忠 教授. 國立臺灣師範大學電機工程學系碩士班. 摘. 要. 隨著科技的進步越來越重視使用者體驗,人們可透過眼動儀觀察眼睛 凝視位置,了解整個視覺歷程與行為脈絡,以更貼近使用者真實感受與體 驗。眼動儀的應用範圍包括 3C 產品、數位廣告及醫療生技。目前市面上 的眼動儀是以紅外線光源達到眼睛視線的追蹤,然而長時間的紅外線照射 會對眼睛帶來相當大的傷害。因此,近來有許多研究開始專研如何利用自 然光源以取代紅外線照射對眼球的不良影響。. 本研究目的是強調利用自然光源照射原理達到眼睛視線的追蹤。這款 眼動儀系統主要是架構在外觀法的基礎上並強化其模型匹配的精準度,同 時也使用形狀法加強模型建立的穩健性。此外,本研究成功導入頭部移動 補償,有效彌補外觀法的缺點。在系統速度上,則加入粒子群聚演算法提 升系統的運作速度。因此,本研究開發的眼動儀系統精準度高達 1.17 度, 系統的處理速度為每秒 250 個畫面。 關鍵字:可見光眼動儀、高速. i.

(3) High Speed Visible Light Gaze Tracking System with Head Motion Compensation Student:Chun-Yi Lin. Advisor:Dr. Wen-Chung Kao 英文摘要. Department of Electrical Engineering National Taiwan Normal University. ABSTRACT. Due to the advancement of technology, eye trackers are used to help us understand human behavior and improve overall user experience. The gaze tracking systems are used in wide range of applications such as electronic devices, digital advertising, and medical biotechnology. Most gaze tracking systems use an infrared light source to track gaze positions, however, long hours of infrared light exposure may cause eye hurt. As a result, recent researches are focusing on how to replace infrared light source with visible light.. The aim of this research is to develop gaze tracking systems which use visible light to track user’s gaze positions. This gaze tracking system adopts appearance-based method to improve the accuracy of iris recognition. In addition, we use shape-based method for head movement compensation which not only enhances the robustness but also increases the accuracy of gaze tracking systems. Besides, the particle swarm optimization is applied to gaze tracking systems to reduce the processing time. Therefore, our system can achieve 1.17 high degree of accuracy and quick processing speed of 250 frames per second. Keywords: visible light, gaze tracking, high speed. ii.

(4) 誌. 謝. 在這兩年多來的研究過程中,首先要感謝的為指導教授高文忠博士, 不論在學理或是實作上,均給予我不厭其煩的細心教導,使我在這兩年 的學習中受益匪淺。而老師在作學問上的嚴謹態度以及對研究之熱忱, 亦對我產生很大的影響,在此對老師獻上由衷的感謝。除此之外,感謝 口試委員陳彥霖教授和范志鵬教授,給予本論文之批評指教並提供寶貴 的意見,使得本論文得以更加完整。 在實驗室的研究生活中,實驗室成員彼此間的情誼是支持我的力量之 一,感謝我的同學在兩年的時間裡一起學習;另外感謝我的朋友在課業 上給予我的幫助。 最後,感謝所有家人的支持,不論任何時刻總是給予我鼓勵,並讓我 在這兩年多日子中可以無後顧之憂的完成學業,願您們與我共同分享這 份榮耀。. iii.

(5) 目. 錄. 中文摘要 .............................................................................................................. i 英文摘要 ............................................................................................................. ii 誌. 謝 ............................................................................................................ iii. 目. 錄 ............................................................................................................ iv. 表 目 錄 ........................................................................................................... vii 圖 目 錄 .......................................................................................................... viii 第一章 緒論 ....................................................................................................... 1 1.1. 研究背景 .......................................................................................... 1. 1.2. 研究目的 .......................................................................................... 2. 1.3. 研究問題 .......................................................................................... 3. 1.4. 論文架構 .......................................................................................... 4. 第二章 眼動儀方法分類和選擇....................................................................... 5 2.1. 虹膜中心追蹤方法 .......................................................................... 5. 2.1.1. Shape-Based .............................................................................. 6. 2.1.2. Appearance-Based..................................................................... 7. 2.1.3. Reflected-Based ........................................................................ 9. 2.2. 凝視點映射方法 ............................................................................ 10. 2.2.1. 多項式映射 ............................................................................. 11. 2.2.2. 計算凝視點空間位置 ............................................................. 11 iv.

(6) 2.3. 選擇的方法 .................................................................................... 12. 2.4. 改進的方式 .................................................................................... 14. 第三章 系統架構圖 ......................................................................................... 15 3.1. 系統架構圖 .................................................................................... 15. 3.2. 建立眼球模型 ................................................................................ 16. 3.2.1. 圖像去雜訊 ............................................................................. 17. 3.2.2. 直方圖等化 ............................................................................. 19. 3.2.3. 選擇虹膜 ROI ......................................................................... 19. 3.2.4. 虹膜外型提取 ......................................................................... 21. 3.2.5. 虹膜輪廓提取 ......................................................................... 27. 3.2.6. 類霍夫圓處理 ......................................................................... 31. 3.2.7. 眼角位置偵測 ......................................................................... 38. 3.3. 建立映射模型 ................................................................................ 45. 3.3.1. 計算眼角位移 ......................................................................... 46. 3.3.2. 眼球模型的選擇 ..................................................................... 48. 3.3.3. 計算映射模型參數 ................................................................. 50. 3.4. 計算眼睛凝視位置 ........................................................................ 51. 3.4.1 3.5. 映射模型映射 ......................................................................... 52. 粒子群聚演算法(PSO)加速 .......................................................... 52. 3.5.1. 眼球模型加速 ......................................................................... 52. 3.5.2. 眼角位移計算加速 ................................................................. 59. 3.6. 平行化運算 .................................................................................... 66 v.

(7) 第四章 研究成果 ............................................................................................. 67 4.1. 測試環境 ........................................................................................ 67. 4.2. 建立模型的強健性 ........................................................................ 70. 4.3. 自適應的匹配角度 ........................................................................ 72. 4.4. 頭部補償的比較 ............................................................................ 75. 4.5. 頭動補償加自適應匹配角度比較 ................................................ 78. 4.6. 各種方法精準度比較 .................................................................... 81. 4.7. 系統精準度 .................................................................................... 82. 4.8. 系統速度 ........................................................................................ 91. 4.9. 系統限制 ........................................................................................ 92. 第五章 結論及未來展望 ................................................................................. 93 5.1. 結論 ................................................................................................ 93. 5.2. 未來展望 ........................................................................................ 93. 參考文獻 ........................................................................................................... 94 自. 傳 ........................................................................................................... 96. 學術成就 ........................................................................................................... 97. vi.

(8) 表 目 錄. 表 3-1. 不同眼睛凝視位置的得分比較表 ............................................... 56. 表 3-2. 不同眼睛凝視位置的眼角得分圖 ............................................... 63. 表 4-1. 模型建立測試結果 ....................................................................... 70. 表 4-2. 不同眼睛位置的自適應角度比較 ............................................... 72. 表 4-3. 頭動補償比較 ............................................................................... 75. 表 4-4. 頭動補償搭配自適應匹配角度比較 ........................................... 78. 表 4-5. 各總方法精準度比較 ................................................................... 81. 表 4-6 900Lux 下 9 點驗證系統精準度 .................................................. 82 表 4-7 100Lux 下 9 點驗證系統精準度 .................................................. 83 表 4-8 900Lux 下 9 點驗證各點誤差度數 .............................................. 84 表 4-9 100Lux 下 9 點驗證各點誤差度數 .............................................. 85 表 4-10. 900Lux 下 17 點驗證系統精準度 .............................................. 86. 表 4-11. 100Lux 下 17 點驗證系統精準度 .............................................. 87. 表 4-12. 900Lux 下 17 點驗證各點誤差度數 .......................................... 88. 表 4-13. 100Lux 下 17 點驗證各點誤差度數 .......................................... 89. 表 4-14. 眼角的位置限制 ......................................................................... 92. vii.

(9) 圖 目 錄. 圖 2-1. Kim 和 Ramakrishna 等人提出的虹膜尋找方式 .......................... 6. 圖 2-2. Yang 等人使用橢圓匹配出來的結果 ............................................ 7. 圖 2-3. Moriyama 等人提出的精細眼睛模型............................................ 8. 圖 2-4. Beak 等人提出的眼睛模型 ............................................................ 8. 圖 2-5. Sigut 等人提出的反光法 ................................................................ 9. 圖 2-6. Lee 等人提出的陣列反光法 ........................................................ 10. 圖 2-7. 計算凝視點空間位置示意圖 ....................................................... 12. 圖 2-8. 眼動儀所拍攝的圖片 (a)不可見光 (b)可見光 .......................... 13. 圖 3-1. 系統架構圖 ................................................................................... 15. 圖 3-2. 建立眼球模型流程圖 ................................................................... 16. 圖 3-3. 雜訊去除的比較 (a)原始圖片 (b)中值濾波 (c)中值濾波+均值. 濾波 ............................................................................................................... 18 圖 3-4. 直方圖等化前後的比較 (a)中值濾波+均值濾波的原始圖. (b). 直方圖等化後............................................................................................... 19 圖 3-5. 圖片 ROI 的選取 (a)切成 M ×N 塊的圖片示意圖 (b)選取的. ROI ................................................................................................................ 20 圖 3-6. 常用的邊緣檢測比較 (a)Sobel 邊緣檢測法偵測到的邊界值. (b)Canny 邊緣檢測法偵測到的邊界 .......................................................... 21 圖 3-7. 虹膜邊界提取比較 (a) Suzuki 提出的邊界提取法 (b) Water-. shed 法 .......................................................................................................... 22 圖 3-8. 水流位能法流程圖 ....................................................................... 26. 圖 3-9. 水流位能法提取出的虹膜外型 ................................................... 26. 圖 3-10. Square Tracing Algorithm 無法成功提取輪廓的圖形 ............... 27 viii.

(10) 圖 3-11. Moore-Neighbor Tracing 無法成功提取輪廓的圖形 ................ 28. 圖 3-12. Radial Sweep 無法成功提取輪廓的圖形 .................................. 29. 圖 3-13. 小蟲爬取法示意圖 ..................................................................... 30. 圖 3-14. 虹膜輪廓提取前後比較 (a)水流位能法提取出的虹膜外型 (b). 提取出的虹膜輪廓....................................................................................... 31 圖 3-15. 下方虹膜被下眼瞼遮蔽 ............................................................. 32. 圖 3-16. 眼睛過小虹膜被遮蔽大部分 .......................................................... 32. 圖 3-17. 反光使得虹膜邊界受光線影響而有部分殘缺 ......................... 32. 圖 3-18. 霍夫圓和類霍夫圓比較 (a)霍夫圓所抓取的虹膜外型. (b)類. 霍夫圓所抓取的虹膜外型 (c)霍夫圓利用輪廓抓取的虹膜外型 (d)類霍 夫圓利用輪廓抓取的虹膜外型................................................................... 33 圖 3-19 三點所構成的弧長對應的圓形 ................................................... 35 圖 3-20. 每一個弧長對映的圓心和半徑映射到的三維空間 ................. 35. 圖 3-21. 眼角位置偵測流程圖 ................................................................. 38. 圖 3-22. 二值化前後比較 (a)原始圖片. 圖 3-23. X 軸累積曲線圖 ......................................................................... 39. 圖 3-24. X 軸曲線累積圖(平滑後) ........................................................... 40. 圖 3-25. X 軸曲線累積圖(平滑+一階微分後) ........................................ 40. 圖 3-26. Y 軸曲線累積圖 ......................................................................... 42. 圖 3-27. Y 軸曲線累積圖(平滑後) ........................................................... 42. 圖 3-28. Y 軸曲線累積圖(平滑+一階微分後) ........................................ 43. 圖 3-29. 眼角位置 ..................................................................................... 44. 圖 3-30. 建立映射模型流程圖 ................................................................. 45. 圖 3-31. 取得頭部位移量 ......................................................................... 47. 圖 3-32. 自適應虹膜角度示意圖 ............................................................. 48 ix. (b)特定區域二值化圖 .......... 39.

(11) 圖 3-33. 計算眼睛凝視位置流程圖 ......................................................... 51. 圖 3-34. 眼球模型加速流程圖 ................................................................. 58. 圖 3-35. 眼角位置加速的流程圖 ............................................................. 62. 圖 4-1. MQ003MG-CM 工業用相機 ........................................................ 68. 圖 4-2. FR-50M-2 相機鏡頭 ..................................................................... 68. 圖 4-3. 頭部固定架 ................................................................................... 69. 圖 4-4. 測試位置示意圖 ........................................................................... 69. 圖 4-5. 不同亮度拍攝圖片比較 (a)100Lux 時觀看第 17 點 (b)900Lux. 時觀看第 17 點 ............................................................................................. 90 圖 4-6. 系統的處理速度 ........................................................................... 91. x.

(12) 1 第一章. 緒論. 在人體的感官資訊裡,由眼睛所獲得的資訊量占了整體資訊的大部分, 因此了解人眼所觀看的資訊,對於研究人類的行為活動是非常重要的,有 鑑於此,本研究設計了一個觀察並記錄眼睛觀看資訊的設備,以下小節分 別介紹研究背景、研究目的和本論文的論文架構。. 1.1 研究背景 人類的身體有各種不同的感官器官,提供不同的刺激供人體反應,如: 觸覺、聽覺、嗅覺和視覺,在這些刺激中,尤以視覺最為重要。而且人類 大部分的經驗來自視覺,近年來視覺方面的研究蓬勃發展,其中許多研究 都需要觀察並且記錄使用者的觀測點,因此眼動儀的相關商品也開始在市 場上販售。. 眼動儀的應用層面相當廣泛,例如:臨床研究,許多醫生會透過眼動 儀來偵測一些眼睛的病變、大腦和神經的障礙如:帕金森氏症和自閉症等 等;同時透過眼動儀取得重要的眼動指標並加以分析眼動歷程,方能及早 發現一些疾病的徵兆如:阿茲海默症和精神分裂症。. 此外,眼動儀還被應用於市場調查等商業研究,因為傳統的研究方法 所獲得受測者的反應不一定真實和準確,但利用眼動儀所記錄下來的行為 1.

(13) 是最真實的反應,因此相較於傳統的方法,眼動儀所紀錄的資訊更為客觀 並且能夠提供廣告設計者正確的資訊,使其設計廣告能夠發揮最大效用。. 1.2 研究目的 市面上已有許多眼動儀相關產品,大多數的眼動儀都是透過紅外線來 達成眼動追蹤,而紅外線對於人類眼睛而言屬於不可見光,因此眼睛內部 的瞳孔並不會因為紅外線的強弱產生縮放,如果受測者長時間照射強度較 高的紅外線,就容易造成眼睛的傷害,所以希望能夠開發出一套利用自然 光源的照射,就能夠追蹤眼睛視線的眼動儀。. 目前已有一些開發自然光源眼動儀的研究,其視線追蹤的速度對於研 究者的使用卻無法到達心理學研究的低標,因此,提升眼動儀追蹤速度, 使其符合心理學的研究標準,是一個值得追求的目標;透過高速的視線追 蹤,能夠在一些幼兒教育的繪本上達成即時的回饋,讓幼兒教育的圖書繪 本能夠提供家長幼兒的學習成果。. 然而,自然光源眼動儀存在一個較大的缺點,就是精準度遠比不上紅 外線眼動儀,可靠度也相對較低,而且容易因為不同環境光源的照射而失 去原有的精準度。改善自然光眼動儀的精準度和可靠度將是一個非常重要 的課題。因此,本論文所提出之眼動儀系統,著重在視線追蹤速度、精準 度和可靠度方面的提升,使自然光源眼動儀能夠有更廣泛的使用。. 2.

(14) 1.3 研究問題 為了提高自然光源眼動儀的精準度和可靠度,許多研究採用 Appearance-Based[7][13][19]的方法做眼睛視線追蹤。首先,AppearanceBased 模型建立的精準度對於自然光眼動儀的精準度影響非常敏感,而早 期研究多採用 Shape-Based[8][19]的方法取得模型參數,但 Shape-Based 卻 非常容易受到環境光源的影響,容易造成模型參數的錯誤,本論文則加強 模型參數抓取的可靠度。. 採用 Appearance-Based 追蹤眼睛視線時有三項缺點:. 1. 虹膜容易受到上下眼瞼遮蔽,導致精準度下降,因此需要改善虹膜被 眼瞼遮蔽時的影響,藉此提高 Appearance-Based 的精準度以增加可 靠度。. 2. Appearance-Based 無法容忍頭部移動時造成的誤差,所以加入頭部移 動的校正,才可防止頭部移動時造成精準度下降的問題。. 3. Appearance-Based 在追蹤視線時需要龐大的計算量,因此為了能夠達 成高速的追蹤,需要降低追蹤視線時的計算量。. 3.

(15) 1.4 論文架構 本論文在第一章介紹研究背景、研究目的和研究問題,藉此確立研究 架構。第二章的部分則會介紹目前可見光眼動儀的一些學術論文作為整體 研究的先期探討。而第三章則是會介紹本論文提出的自然光眼動儀的系統 架構,並依序分門別類從模型參數抓取可靠度的改善、上下眼瞼的排除、 頭部移動的校正和降低整體的計算量,對系統架構去做一個完整的介紹。 第四章則是會對本論文提出的眼動儀系統做一些可靠度的測試和系統精 準度的驗證。最後,在第五章的部分則是會提出本研究的結論和未來展望。. 4.

(16) 2. 第二章. 眼動儀方法分類和選擇. 眼動儀主要有分為可見光眼動儀和不可見光眼動儀,可見光眼動儀的 優點主要的是可用於戶外並且提供長期的視線追蹤,但其容易受到環境光 源影響,因此精準度仍然無法達到心理學研究的標準,所以多用於電子書、 互動式裝置等不須高精準度的用途。紅外線眼動儀主要用於研究用途,因 為擁有較高的精準度,但使用紅外線代替可見光源,因此較不適合長期的 使用。. 但不論是可見光眼動儀或不可見光眼動儀其方法都大同小異,主要都 是分析眼睛特徵上的邊界(如鞏膜和虹膜邊界或是虹膜和瞳孔邊界);或是 利用眼睛外觀去做匹配,再假設可能的瞳孔中心點位置或瞳孔中心到反光 點之間的距離。最後,再利用瞳孔中心點位置去做校正,算出映射方程式 來映射出視線位置或者是直接計算出眼睛視線位置來達到眼動追蹤。. 2.1 虹膜中心追蹤方法 可見光眼動儀的虹膜中心追蹤方法可 分成三大類,分別為 ShapeBased、Appearance-Based 和 Reflected-Based,每一個方法都有其優點但也 有缺陷,下面各小節將會針對每一個方法做詳細的介紹。. 5.

(17) 2.1.1 Shape-Based 首先 Kim 和 Ramakrishna 等人[1]提出利用 LLS(Longest Line Scanning) 找出虹膜的左右邊界之後再利用 OCEM(Occluded Circular Edge Matching) 找出合適的虹膜外型,並決定可能的虹膜中心點,如圖 2-1 所示。LLS 的 方法是先設定一個門檻值,對包含眼睛的圖像進行二值化,接著再對二值 化圖像用 Canny 邊緣檢測法[2]取出所有的邊界值,因為許多邊界值都會互 相連接,因此就會有許多的線段出現在使用 Canny 邊緣檢測法後的結果上 面,透過篩選即可取得兩條最長的線段。而 OCEM 則是將剛剛使用 LLS 的方法,取出的線段內設定一個可能圓心的搜尋範圍進行搜尋,每一個可 能的圓心都有數個不同的半徑變化,透過圓心半徑的變化將可發現有一組 圓心和半徑使 LLS 線段上的邊界值大部分都落在此組圓心和半徑的邊界 上,而此半徑和圓心就是可能的虹膜中心和虹膜半徑。. 圖 2-1. Kim 和 Ramakrishna 等人提出的虹膜尋找方式. 由於 LLS 配合 OCEM 的方法容易受到整體環境光源的影響,因此 Zhu 和 Yang 等人[3]提出了一個能夠降低環境光源影響的方法,就是利用 Subpixel 偵測法來去做眼睛凝視點的追蹤。Subpixel 偵測法主是先利用 Sobel 運算子[4]去得出 X 方向和 Y 方向的邊界點,並計算 X 方向和 Y 方 向的梯度大小,然後再將每一個像素裡的次像素利用 1-dimentional cubic 6.

(18) interpolation[5]得出梯度大小,最後在選擇梯度最大的次像素去做橢圓匹 配,得出可能的虹膜中心點,尋找完的結果如下所示。. 圖 2-2. Yang 等人使用橢圓匹配出來的結果. 2.1.2 Appearance-Based 由於 Shape-Based 對於光源環境的影響非常敏感,所以 Moriyama 等 人[6]提出了一個精細的眼睛模型,用來改善對於光源的敏感度。模型主 要包含上眼瞼、下眼瞼、鞏膜和虹膜,透過一些複雜的數學模型建立出 精確的眼睛模型如圖 2-3 所示,最後再透過眼睛模型的匹配就可以找出 正確的虹膜中心點。. 7.

(19) 圖 2-3. Moriyama 等人提出的精細眼睛模型. 雖然精細的眼睛模型可以降低光源的影響,但眼睛模型的參數需要透 過 手 動 調 整 才 能 夠 有 準 確 的 模 型 , 所 以 Beak[7] 等 人 提 出 了 不 同 Appearance-Based 的方法如圖 2-4,其只有模擬虹膜的旋轉不考慮眼睛其 它的外觀,因此可以降低模型建立錯誤的問題。同時,模型在建立時也不 需要手動調整模型參數,透過自動建立模型參數將可大幅度降低人工的介 入提升其實用性。. 圖 2-4. Beak 等人提出的眼睛模型. 8.

(20) 2.1.3 Reflected-Based 雖然透過 Appearance-Based 的方法能夠得到穩健的虹膜中心,但是此 方法無法支援頭部的移動,因此 Sigut[8]等人提出了一個支援頭部移動的 方法,主要是結合了 Shape-based 和一個額外光源反射在虹膜上的亮點, 透過利用虹膜中心點到反光點之間的距離,就能夠分析出頭部移動的距離 和方向,藉此校正頭部移動的影響,如圖 2-5 所示,. 圖 2-5. Sigut 等人提出的反光法. 透過 Sigut 等人雖然可以支援頭部移動,但是需要一個大型的燈泡來產生 而外的反光點,因此無法應用在可攜式裝置上面,為了將眼動儀應用在可 攜式裝置上面 Lee[9]等人提出了一個可應用在可攜式裝置上的方法,主要 9.

(21) 是透過安裝多組 LED 燈在可攜式裝置上面如圖 2-6 上的𝑆1 ~𝑆12 ,而這些 LED 燈會在眼睛虹膜上產生反光點,透過計算這些反光點的相對位置,就 可得出頭部轉動的向量,用以補償因頭部移動所造成的視線偏差。. 圖 2-6. Lee 等人提出的陣列反光法. 2.2 凝視點映射方法 透過虹膜中心追蹤之後,將可獲得每一個畫面的虹膜中心點,接著只 要透過映射就可得到凝視點的位置。映射方法主要可分成兩大類,分別為 多項式映射和計算凝視點空間位置,以下各小節將會分別對各類方法去做 詳細介紹並分析其方法的優缺點。. 10.

(22) 2.2.1 多項式映射 多項式映射的方法[10]最先由 Morimoto 等人提出,且大多數眼動儀都 是利用多項式去做凝視點位置的估計,因為此種方法對於校正過程較為來 的簡單方便且也不受使用者與螢幕距離的影響,同時如果有使用頭部固定 架時其精準度也有一定的水平,但是此種方法對於頭部移動相當敏感,只 要有小幅度的移動映射出的凝視點位置將會有非常大的差異,因此為了解 決頭部移動的問題大多數會使用反光點到瞳孔中心點的距離去做校正,利 用此種方法可以有效的降低映射時產生的誤差值。基本的多項式如下式所 示 S x  cx ,0  cx ,1 x  cx ,2 y  cx ,3 xy  cx ,4 x 2  cx ,5 y 2. ( 2-1 ). S y  c y ,0  c y ,1 x  c y ,2 y  c y ,3 xy  c y ,4 x 2  c y ,5 y 2. ( 2-2 ). 使用者透過觀察螢幕上九個設定好的位置將可以獲得九組瞳孔中心的𝑥和 𝑦,再透過 linear regression 去計算出𝑐𝑥,0 ~𝑐𝑥,5 和𝑐𝑦,0 ~𝑐𝑦,5 ,之後再將觀察螢 幕任意位置的瞳孔中心帶入方程式就可獲得相對應的𝑆𝑥 和𝑆𝑦 。. 2.2.2 計算凝視點空間位置 計算凝視點空間位置[11]是由 Wang 所提出,主要是直接計算眼球旋轉 角度後再透過固定使用者觀看距離計算出使用者凝視在螢幕上的位置。此 種方法較適合應用在 Appearance-Based,因為 Appearance-Based 是用眼睛 模型去做眼睛位置的預估,因此再預估時會知道每個眼睛位置的旋轉角度 (包含向上旋轉和向右旋轉的角度),而 Shape-Based 則是利用特徵的方式去 抓取眼睛位置,所以無法得知眼睛旋轉角度,故無法算出眼睛凝視點的空 間位置。. 11.

(23) 此方法的準確度最主要受到使用者到螢幕之間的距離,如果距離量測 的準確度越高則準確度就會越高,反之距離量測的準確度越低則準確度就 會越低,下圖 2-7 是計算凝視點空間位置的示意圖。. y. Screen. z. θ ψ. x. d Eye Ball. 圖 2-7. 計算凝視點空間位置示意圖. 2.3 選擇的方法 透過前面小節可以得知目前眼動儀所有實作採用的方法,因為本論文 開發的是高速可見光眼動儀,同時又希望有良好的精準度,因此再預估瞳 孔中心點的方式選擇的是 Appearance-Based,因為在可見光源下不論是瞳 孔和虹模邊界或者是虹膜和鞏膜邊界相對於不可見光來說都是相當不明 顯如圖 2-8 所示. 12.

(24) (a) 圖 2-8. (b). 眼動儀所拍攝的圖片 (a)不可見光 (b)可見光. 透過上面兩張圖片可以發現,在不可見光的模式拍攝下各種邊界都相 當的明顯,而在可見光的情況下有稍微明顯邊界的部分只有虹膜和鞏膜的 邊界,而瞳孔和虹膜的邊界則是完全看不到。此外,如果是利用 Shape-Based 的方式去尋找虹膜和鞏膜的邊界時,會因為上下眼瞼的干擾而找出一些錯 誤的特徵點導致預估的虹膜外型失準。所以選擇利用 Appearance-Based 的 方式就能夠大幅度的降低因為上下眼瞼的干擾而產生的錯誤情況。. 而在選擇校正的方法採用的是多項式映射,因為要精準的量測使用者 到螢幕的距離會有相當的難度,而利用多項式映射則可以在任何距離下都 有不錯的效果。. 13.

(25) 2.4 改進的方式 因為 Appearance-Based 的方法需要較長的匹配時間,所以在高速眼動 儀時會遇到只能在有限的時間內匹配的問題,因此利用演化計算裡的 PSO(Particle Swarm Optimization)[12]加速整體模型的匹配,同時隨著眼睛 旋轉的θ 和 φ去更改圓型匹配的範圍,避免被眼瞼遮蔽到的部位列入模型 參考的選擇。另外由於多項式映射對於頭部移動造成的虹膜中心偏移相當 敏感,因此會使用眼角來做頭部平面移動的補償。同時,再建立模型時需 要取得虹膜半徑的長度才可建立眼睛模型,所以開發了一種新型態的演算 法,此演算法不再是只提取虹膜邊界,而是提取整個虹膜外型並用提取的 虹膜外型來達成預估真正的虹膜外型。. 14.

(26) 3 第三章. 系統架構圖. 本系統是用可見光高速相機搭配電腦所建構的,透過可見光高速相機 拍攝使用者眼睛圖片後輸入至電腦並及時計算出眼睛凝視螢幕的位置,藉 以達成眼睛凝視位置的追蹤。首先,我們會先介紹計算眼睛凝視點的系統 架構,接著再對每一個系統方塊分別去做詳細的介紹。. 3.1 節先介紹完整的系統架構。3.2 節則會介紹如何建立眼球模型的詳 細步驟。而 3.3 節將介紹如何建立映射模型。3.4 節則是會介紹如何利用映 射模型映射出眼睛凝視位置。3.5 節將會利用粒子群聚演算法加速系統的 計算速度。最後,3.6 節將會利用粒子群聚演算法的特性加入平行運算來達 到即時眼動追蹤效果. 3.1 系統架構圖. 眼睛直視 圖. 眼睛九點 凝視圖. 建立眼球模型. 眼球模型. 建立映射模型. 映射模型. 眼睛凝視 螢幕任意 位置圖. 圖 3-1. 系統架構圖. 15. 計算眼睛凝視 位置. 眼睛凝視 位置.

(27) 本論文的系統架構如圖 3-1。首先,會先從可見光高速攝影機透過 USB3.0 的介面將眼睛直視可見光高速攝影機的圖片讀入電腦,接著利用 讀入的圖片去做眼球模型的建立。當眼球模型建立完畢後,我們接著需要 建立凝視點位置映射到螢幕位置的模型,因此會讓使用者凝視九個我們設 計好的位置並將眼睛圖片輸入到我們的系統,藉此計算出映射模型。最後 就可以將每一個觀看螢幕上任意位置的眼睛圖片輸入,即可得出眼睛凝視 的螢幕位置。. 3.2 建立眼球模型. 建立眼球模型. 眼睛直 視圖. 均值濾波 + 中值濾波. 直方圖等化. 虹膜外型提取. 類霍夫圓處理. 圖 3-2. 選擇虹膜ROI. 眼球模型 眼角位置偵測. 建立眼球模型流程圖. 圖 3-2 是建立眼球的詳細流程圖。首先,會先從可見光高速相機取得 眼睛凝視相機的直視圖片,接著再將直視圖片輸入到電腦裡。輸入到電腦 後會先將圖片去除雜訊,再將圖片做直方圖等化以加強整體圖片的對比, 之後再定位虹膜位置以便將虹膜外型提取出來。定位出虹膜之後會再利用 "水流位能法"演算法將完整的虹膜外型提取出來,最後再利用類霍夫圓去 決定整體虹膜的外型及大小。虹膜大小及位置就是我們的眼球模型。. 16.

(28) 3.2.1 圖像去雜訊 由於可見光高速相機的圖片為是透過 CMOS 晶片去做拍攝,多少都會 有雜訊的干擾所以將圖片從可見光高速相機讀進來後會先將圖片去除雜 訊,使用的方法為中值濾波(median filter)和均值濾波(mean filter)。會先使 用中值濾波且觀察視窗為 3×3 去除較小的雜訊,以得到較乾淨的圖片,再 用均值濾波觀察視窗也為 3×3 去除剩下的雜訊並平滑,做完兩種濾波會使 整體圖片的雜訊量降到最低,如圖 3-3 所示。此外,降低雜訊可以使後續 影像處理的步驟屏除被雜訊干擾的問題。. 17.

(29) 60. 亮度. 50 40 30. 20 10 0 0. 100. 200. 300. 射線上的點數. (a) 60. 亮度. 50 40 30. 20 10. 0 0. 100. 200. 300. 射線上的點數. (b) 60. 亮度. 50 40 30. 20 10 0 0. 100. 200. 300. 射線上的點數. (c) 圖 3-3. 雜訊去除的比較 (a)原始圖片 (b)中值濾波 (c)中值濾波+均值濾 波. 18.

(30) 3.2.2 直方圖等化 使用直方圖等化的目的是要將圖片整體的對比提高藉此區分出虹膜和 鞏膜的界線如圖 3-4,以利於眼球模型的建立。首先,我們會先計算整體 圖片的機率密度函數(Probability Density Function, PDF),接著再將 PDF 除 以圖片全部的像素計算出累積分配函數(Cumulative Distribution Function, CDF)。最後,再將 CDF 乘以 255 得出 Look-Up Table,得到 Look-Up Table 後再將圖片依照 Look-Up Table 去做像素值的變更,此方法就是直方圖等 化。使用直方圖等化的目的是要將圖片整體的對比提高藉此區分出虹膜和 鞏膜的界線,以利於眼球模型的建立。. (a) 圖 3-4. (b). 直方圖等化前後的比較 (a)中值濾波+均值濾波的原始圖 方圖等化後. (b)直. 3.2.3 選擇虹膜 ROI 有了明顯的邊界後就可開始去選定 ROI 區域,透過 ROI 的建立可只對 感興趣的地方去做處理而不耗費額外的時間處理非感興趣區域,藉此提高 系統運作速度,而這裡所指的 ROI 為虹膜的部分。 由於虹膜主要包含兩個區域,即瞳孔中心和虹膜外圍,虹膜外圍由於 有血管的分布以及不同的色素沉澱因此具備較高的複雜度不易直接判斷, 19.

(31) 而瞳孔中心僅有單純的黑色圓形特徵,因此較好快速判讀。所以這裡是經 由先找到大致瞳孔中心,再利用虹膜是以瞳孔為中心,向外部延伸的概念 找到虹膜,即 ROI 的部分。 首先,我們將圖片切成 M × 𝑁個網格(Grid),如下圖 3-5,其中 M 和 𝑁需要依照圖片中瞳孔的大小和整張圖片的大小決定。假設瞳孔佔 XY 座 標軸大小分別為𝑋𝑝 及𝑌𝑝 個像素(Pixel),而整體圖片所佔 XY 座標軸則是𝑋𝑤 及𝑌𝑤 個像素,那麼 M 和 N 則可以透過下兩式決定 𝑋. 𝑀 = ⌈ 𝑤⌉. ( 3-1 ). 𝑋𝑝. 𝑌. 𝑁 = ⌈ 𝑤⌉. ( 3-2 ). 𝑌𝑝. 配合本論文所提出的系統架構,本論文所使用的 M 和 N 皆設定為 8。 如果此值設定過大,則可能一個瞳孔會被兩個以上的網格(Grid)佔據因此 瞳孔中心會有所偏移,且取樣過小可能會因為局部的黑色區塊造成判斷錯 誤。相反的,如果值設定過小,則黑色區塊的評分會容易受到周圍過多的 取樣而干擾造成判斷失誤。. (a) 圖 3-5. (b). 圖片 ROI 的選取 (a)切成 M ×N 塊的圖片示意圖 (b)選取的 ROI. 由於瞳孔是相當深色的黑色區域,因此最低亮度的網格包含瞳孔中心 的機率相當大。所以本論文會對每一個區塊進行亮度的計算,並且選擇最 低亮度區塊的中心為瞳孔正中心。 20.

(32) 接著我們會以此正中心點往外框出一個長寬分別為𝑋𝑟 和𝑌𝑟 的矩形包含 所有的虹膜區域,𝑋𝑟 和𝑌𝑟 分別透過以下兩式決定。 𝑋. 𝑋𝑟 = ⌈ 𝑤⌉. ( 3-3 ). 4. 𝑌. 𝑌𝑟 = ⌈ 𝑤⌉. ( 3-4 ). 4. 從上兩式中可以發現我們是框出一個以圖片四分之一大小的方形包含 所有的虹膜外型。主要是因為可見光高速相機所能拍攝到的範圍會是完整 的眼睛外型,而虹膜大小會剛好占整體圖片的四分之一,因此選擇四分之 一圖片大小的正方形就可完整包含完整虹膜外型。. 3.2.4 虹膜外型提取 接著為了提取出虹膜的邊界因此使用常用的邊界提取方法 Sobel 邊緣 檢測法[4]去做邊界的偵測,但是由於 Sobel 邊緣檢測法[4]是對於整張圖片 去做邊界的偵測,因此會無法分辨出哪些萃取出的邊界是虹膜邊界,如圖 3-6 (a)所示。另外,使用 Canny 邊緣檢測法[2]也是會有相同的問題,如圖 3-6 (b)所示。. (a) 圖 3-6. (b). 常用的邊緣檢測比較 (a)Sobel 邊緣檢測法偵測到的邊界值 (b)Canny 邊緣檢測法偵測到的邊界. 從上述兩個例子我們可以得知如果使用全域的邊界提取法會無法區分 該邊界是否是虹膜邊界的問題。因此,我們使用另外兩個方法其分別為 21.

(33) Suzuki 提出的方法[16]和 Water-shed[17]方法如圖 3-7,Suzuki 提出的方法 是建立在 Canny 邊緣檢測法偵測到的邊界,所以也無法偵測出正確的虹膜 邊界,而 Water-shed 法雖然能夠提取出邊界但是仍然會提取到眼瞼的區域 無法只提取虹膜的部分。. (a) 圖 3-7. (b). 虹膜邊界提取比較 (a) Suzuki 提出的邊界提取法 (b) Water-shed 法. 為了改善無法分辨的虹膜邊界的問題以及上述 Water-shed 演算法的缺 點,本論文開發了這個稱之為水流位能法的演算法來提取完整的虹膜外 型,而透過完整的虹膜外型才能夠精準的建立眼睛模型。本演算法是使用 廣度優先搜尋法(Breadth-First-Search, BFS)的方式去做虹膜邊界搜尋,因此 可以將所有的虹膜邊界特徵點都取樣到,這樣對於後來的眼球模型建立幫 助是相當的大,即有更多的取樣可以有效的避免誤判。此外,本演算法是 直接全方向的進行識別,因此可以減少預先運算的時間(Pre-calculation), 由於廣度優先搜尋法並不會重複計算因此沒有反覆疊代的問題,本演算法 的時間複雜度為線性 O(|V| + |E|),其中|V|是節點的數目,而|E|是節點連接 邊的數目。 此演算法的原理是如同倒水在陸地上,水會一直往低位能的方向流動, 直到流入海洋為止,也就是說水流在碰到海岸線的時候水會停止在海岸線 上而不會往位能更低的海溝前進。本篇論文假設海洋都是一望無際而任何 小島,而陸地和海洋的交界即海岸線則是本篇論文所希望偵測到的眼球邊 22.

(34) 界,亮度較黑的像素則代表較高位能的區域(陸地),高亮度的像素則代表 低位能(海洋),位能ρ和亮度 L 的轉換公式如下;其中,Lmax 代表整幅影像 中亮度最高的數值,一般設定為 255。. ρ = 𝐿𝑚𝑎𝑥 − 𝐿. ( 3-5 ). 首先會先透過上述章節所找到大略的眼球中心後,我們這裡稱之為高 位能中心 Ph,接著會透過在此高位能中心 Ph 注入"水流"去探索可能的眼球 邊緣,水流的流向依據起始點 Po 往水平和垂直共四個方向分別去流動探測 未搜索過的探測點 Pd,當探測到未探索的探測點 Pd 時,會先判斷此探測 點 Pd 是否該位能狀態比自身 Po 的位能還高,如果位能比自身 Po 還高則水 流就無法流過去。如果探測點 Pd 位能比自身 Po 還低時則水流會嘗試流入 該探測點 Pd,並且判斷此探測點 Pd 的狀態是否符合海岸線的條件。海岸 線的判斷演算法是根據高位能中心點 Ph 至該探測點 Pd 的方向去做一個單 位向量 v,接著會在探測點 Pd 沿著單位向量 v 去鳥瞰單位 dv 內在此向量 延伸上的每一點 Pg,如果這個距離內都沒有更高位能的位置,則水流會認 為其已經達到了最安定的狀態即海岸線而被海洋吸收,因此就不會在向外 溢出,此狀態則是欲偵測到的眼球邊緣,其中 dv 的大小是依照虹膜大小決 定如下式。 𝛼. 𝑑𝑣 = ∗ 𝑚𝑎𝑥(𝑋𝑟 , 𝑌𝑟 ) 2. ( 3-6 ). 其中,ɑ 為擴充係數如果調大此一係數則可以增加額外的搜尋半徑, 但可能會因為額外搜尋到錯誤的點造成誤判斷,而過小的點則可能會找不 到虹膜外型,本論文使用的 ɑ 為 1.3。 如果在延伸的向量中有發現另一高位能的狀態,此狀態可能是一個地 勢較高陸地,因此不符合當作一望無際的海洋之條件,所以代表此探測點 23.

(35) Pd 並不是海岸線,而只是一般地勢較低的陸地,所以水流會直接掩沒它。 最後所有的水流全部都會停留在海岸線而被海洋吸收,因此我們可以根據 這些海岸線順利的提取虹膜邊界如圖 3-9,具體的流程圖如圖 3-8 和虛擬 碼如下. 24.

(36) 虹膜外型提取 Pd_c 為標記 Pd 是否為海岸 Pd_v 為標記 Pd 是否拜訪過 Pd_ρ為該點 Pd 的位能 Po_ρ為該點 Po 的位能 Pg_ρ為該點 Pg 的位能 Ph 為高位能點 Pd 為探測點 Pg 為依照單位 v 向量延伸在 dv 上的點 For(each Pd) { If(Pd_v == true ) break Else If(Pd_ρ >= Po_ρ) Pd_v = true Pd_c = false break Else v =( Ph - Pd)/||( Ph - Pd)|| For(each n) // 0 < n < dv { Pg =Pd + v*n If(Pg_ρ < Pd_ρ) Pd_v = true Pd_c = true Else Pd_v = true Pd_c = false break } }. 25.

(37) 開始. 將原探測點Pd設為 原點Po 探測下一點Pd. 該探測點Pd是 否拜訪過. 是. 設定該探測點Pd為 已拜訪過,且非海 岸線點. 計算Pg Pg =Pd + v*n. 否. 是 n是否小於dv. 否. Pd位能是否比 原點Po高. Pg位能是否比 探測點Pd低. 是. 是 n = n +1. 否. 否. 計算單位向量v v =( Ph - Pd)/||( Ph Pd)||. 設定該探測點Pd為 已拜訪過,且非海 岸線點. n設定為0. 是否還有未探 測完的探測點 Pd. 設定該探測點Pd為 已拜訪過,且為海 岸線點. 是. 否. 結束. 圖 3-8. 圖 3-9. 水流位能法流程圖. 水流位能法提取出的虹膜外型. 26.

(38) 3.2.5 虹膜輪廓提取 透過水流位能法提取虹膜的外型後接著就要提取虹膜的輪廓,我們使 用 了 Reddy[18] 所 探 討 的 三 種 方 法 Square Tracing Algorithm 、 MooreNeighbor Tracing 和 Radial Sweep 分別去提取虹膜的輪廓,但是這三種方法 都有停止條件,再某些特定的圖形下都會無法成功提取虹膜輪廓。 首先,Square Tracing Algorithm 的演算法如下: 1. 2. 3. 4.. 設置起始點並向上搜尋黑色的像素, 並將黑色像素設置為輪廓起始點 假設遇到黑色像素則向左轉,否則向 右轉 歷程中遇到的每一點黑色像素即為輪 廓外型 反覆步驟 2 和步驟 3 直到搜尋到的像 素為輪廓起始點時停止. 而上述的演算法會有一些無法成功提取輪廓的情圖形,其圖形如下圖 3-10 所示:. P6. P7. P4. P5. P8. P3. P2 P1. 圖 3-10. Square Tracing Algorithm 無法成功提取輪廓的圖形. 首先,P1 為搜尋的起始點,因此向上搜尋到 P2,接著因為 P2 是黑色像 素接著移動到 P3,又因 P3 為白色像素所以向右轉移動到 P4,而 P4 又是白 27.

(39) 色像素所以右轉移動到 P5,依造演算法的規則會依序經過 P6、P7、P8 和 P5,最後會回到 P2 結束輪廓的提取。因此,透過圖 3-10 可以發現到 Square Tracing Algorithm 只能夠提取出左下角的輪廓,並沒有成功完整提取圖形 的輪廓。 接著討論的是 Moore-Neighbor Tracing,其演算法如下: 1.. 選定一點黑色像素為起始點並設定其 為輪廓起始點. 2.. 依起始點為 3×3 方格的正中心並依進 入的方向反向搜尋 3×3 方格 直到遇到下一點黑色像素時設定此黑 色像素為新的起始點並記錄此點為輪 廓點 反覆步驟 2 和步驟 3 直到搜尋到的像 素為輪廓起始點時停止. 3.. 4.. 其停止情況如下. 圖 3-11. P7. P8. P9. P5. P6. P10. P4. P1. P11. P3. P2. Moore-Neighbor Tracing 無法成功提取輪廓的圖形. 首先如圖 3-11,P1 為搜尋的起始點和輪廓起始點,依序搜尋 P2、P3、 P4、P4 和 P6,因 P6 為黑色像素則設定 P6 為下一個起始點,接著在反向搜 尋,因此會依序搜尋到 P5、P7、P8、P9、P10、P11 和 P1,由於 P1 為黑色像 素所以設定 P1 為新的起始點但由於其為輪廓起始點因此停止輪廓的提取。 28.

(40) 所以 Moore-Neighbor Tracing 也會有無法成功提取輪廓的問題。 最後要討論的是 Radial Sweep,其演算法如下. 1. 2.. 3. 4.. 選定一點黑色像素為起始點並設定其 為輪廓起始點 依起始點為 3×3 方格的正中心並由左 邊為第一點順時鐘搜尋 3×3 方格是否 有黑色像素 當搜尋到黑色像素時設定此黑色像素 為新的起始點並記錄此點為輪廓點 反覆步驟 2 和步驟 3 直到搜尋到的像 素為輪廓起始點時停止. 其停止情況如下. 圖 3-12. P9. P10 P11. P6. P2. P7. P5. P1. P8. P4. P3. Radial Sweep 無法成功提取輪廓的圖形. 首先如圖 3-12,P1 為搜尋的起始點和輪廓起始點,依序搜尋 P5、P6 和 P2,因 P2 為黑色像素所以設定 P2 為下一個起始點,接著在搜尋 P6、P9、 P10、P11、P7、P8 和 P1,由於 P1 為黑色像素所以設定 P1 為新的起始點但由 於其為輪廓起始點因此停止輪廓的提取,因此仍然無法成功提取完整的圖 形輪廓。. 29.

(41) 為了解決無法成功提取輪廓的問題,本論文提出小蟲爬取演算法,其 演算法如下: 1. 2. 3. 4. 5.. 選定一點黑色像素為起始點並設定其 為輪廓起始點 依進入起始點的方向反向搜尋 2×2 方 格內是否有黑色像素 當搜尋到黑色像素時設定此黑色像素 為新的起始點 如果搜尋到的為同一點時則此點不予 紀錄,否則記錄黑色像素為輪廓點 反覆步驟 2、步驟 3 和步驟 4 直到搜尋 到的像素為輪廓起始點且連續搜尋到 的兩點都和搜尋過的輪廓相同時則停 止搜尋輪廓. 搜尋過程如下. P1. P2. P3. P4. P5. P6. P7. P8. P9. P10 P11 P12. P13 P14 P15. P16 P17 P18. P19 P20 P21. P22 P23 P24. P25 P26 P27. P28. 圖 3-13. 小蟲爬取法示意圖. 首先如圖 3-13,以 P22 為起始點並開始依序搜尋 P28、P27 和 P21,由於 P21 為黑色像素則設定 P21 為下一個起始點,接著再依進入方向的反方向搜 尋 P27、P26、P20 和 P21,由於 P21 已經搜尋過了因此不紀錄 P21 為輪廓點但 設定 P21 為下一個起始點,再次搜尋 P20 和 P14,因 P14 為黑色像素則設定 P14 為下一個起始點,依造演算法最後會再一次搜尋到 P22,但是演算法的 停止條件為連續搜尋到的兩點和以記錄的兩點輪廓點相同時才停止,因此 30.

(42) 要再一次搜尋到 P21 時才停止搜尋輪廓。 透過小蟲爬取法我們將可獲得完整的虹膜輪廓如圖 3-14. (a) 圖 3-14. (b). 虹膜輪廓提取前後比較 (a)水流位能法提取出的虹膜外型 (b) 提取出的虹膜輪廓. 3.2.6 類霍夫圓處理 提取完虹膜外型後接著將會對虹膜外型去取得眼睛模型的參數,眼睛 模型的參數就是虹膜的半徑和中心位置,計算的方法將是利用類霍夫圓去 做提取。一般來說由於人的眼球其實並不容易呈現完整的圓形,例如人在 往下看時,會使下方的虹膜部分被下眼瞼遮蔽如圖 3-15,或者是有些人的 眼睛天生比較小無法呈現完整的虹膜如圖 3-16,甚至是由於反光問題使得 虹膜邊界受光線影響而有部分殘缺如圖 3-17,因此實際上能使用到的虹膜 邊界資訊其實是破碎,並非是完整的圓形,然而使用經典的霍夫圓是透過 對整幅影像做全局統計去計算最符合的圓形,因此缺乏對於細節的辨識能 力,即如果大部分的影像邊緣都是受到干擾的,而僅有少部分保有原始的 資訊,此時霍夫圓就無法有效的利用這個少部分失真的資訊去做判斷,而 可能採用了受干擾的資訊去抓取圓形,如圖 3-18 (a)和(c)無法有效的抓取 正確的虹膜。 31.

(43) 圖 3-15. 圖 3-16. 下方虹膜被下眼瞼遮蔽. 圖 3-17. 眼睛過小虹膜被遮蔽大部分. 反光使得虹膜邊界受光線影響而有部分殘缺. 32.

(44) 圖 3-18. (a). (b). (c). (d). 霍夫圓和類霍夫圓比較 (a)霍夫圓所抓取的虹膜外型. (b)類霍. 夫圓所抓取的虹膜外型 (c)霍夫圓利用輪廓抓取的虹膜外型 (d)類霍夫圓 利用輪廓抓取的虹膜外型 因此,本論文提出了一個演算法去推估可能的眼球中心和半徑,我們 稱之為"類霍夫圓法"。其物理意義是透過取樣三點可以得到一個完美而無 雜訊的弧長,並透過式子計算符合這個弧長的圓,並且沿著邊界做連續不 同的弧長掃描,最後可以得到一組弧長(Arc Set),且每一個弧長會對應到 一組眼球中心和半徑,詳細的做法如下解釋。. 33.

(45) 接續上一節提取完虹膜外型後,可以得到一維虹膜外型的連續序列 S。 設定一半弧長𝑑,其中取此序列 S 中任意一點𝑃1,並且再根據半弧長𝑑分別 在序列中再取兩點𝑃2 和𝑃3 ,其中𝑃2 和𝑃3 分別透過下式去做計算. 𝑃2 = 𝑃1 + 𝑑. ( 3-7 ). 𝑃3 = 𝑃1 + 2𝑑. ( 3-8 ). 則𝑃1、𝑃2 和𝑃3 分可構成一個完整弧長為 2d 且無雜訊的弧長 A1,透過下 式的三點求圓方程式可以計算出符合該弧長 A1 的圓.  ( x p1  x) 2  ( y p1  y ) 2  r 2  2 2 2 ( x p 2  x)  ( y p 2  y )  r ( x  x) 2  ( y  y ) 2  r 2 p3  p3. ( 3-9 ). 透過上述式子可以求出圓心和其半徑如下式所示. 𝑃𝐶 = (𝑥, 𝑦) = (. 𝛽×𝜇−𝜀×𝛾 𝛽×𝛿−𝛼×𝜀. ,. 𝛾×𝛿−𝛼×𝜇 𝛽×𝛿−𝛼×𝜀. 𝑟 = √(𝑥 − 𝑥𝑝1 )2 + (𝑦 − 𝑦𝑝1 )2. ). ( 3-10 ) ( 3-11 ). 其中α、β、γ、δ、ε 和 μ如下所示. α = 2 × (𝑥𝑝2 − 𝑥𝑝1 ). ( 3-12 ). β = 2 × (𝑦𝑝2 − 𝑦𝑝1 ). ( 3-13 ). 2 2 2 2 γ = 𝑥𝑝2 + 𝑦𝑝2 − 𝑥𝑝1 − 𝑦𝑝1. ( 3-14 ). δ = 2 × (𝑥𝑝3 − 𝑥𝑝2 ). ( 3-15 ). ε = 2 × (𝑦𝑝3 − 𝑦𝑝2 ) 2 2 2 2 μ = 𝑥𝑝3 + 𝑦𝑝3 − 𝑥𝑝2 − 𝑦𝑝2. 34. ( 3-16 ) ( 3-17 ).

(46) r P1 P2 P3. Pc A1. 圖 3-19 三點所構成的弧長對應的圓形. y 濾波器. r 每一組弧長對應的圓心和半徑. x 圖 3-20. 每一個弧長對映的圓心和半徑映射到的三維空間. 根據上述的方程式可以算出可能的圓,如,該圓的圓心和半徑亦是弧 長 A1 的圓心和半徑,也就是可能的眼球中心𝑃𝐶 和眼球半徑𝑟。再計算完後 會將眼球中心𝑃𝐶 和眼球半徑𝑟映射到三維空間如圖 3-20,並輸入到一個濾 波器去篩選,即眼球中心𝑃𝐶 不可能大於 ROI 的範圍而其半徑亦不可能大於 ROI 的短邊或小於設定之半徑閥值 rth,濾波器的虛擬碼如下. 35.

(47) 眼球中心和半徑之濾波器設計. A1_r 為弧長對應的半徑 A1_P 為弧長對應的眼球中心 ROIwidth 為所設定 ROI 的寬度. A1_ok 為弧長是否通過濾波器 If(A1_r > ROIwidth || A1_r < rth) A1_ok= false Else If(A1_P does not belong to ROI) A1_ok= false Else. A1_ok= true. 如果濾波器篩選出來合理的弧長 A1 則會將其眼球中心 Pc 和眼球半徑. r 分別累積到眼球中心累加器 APc 和眼球半徑累加器 Ar。接著會將 P1 旋轉 一個固定的整數位移量 b 得到 P1',其中 1 < b < 2d,並且依照下式重新計 算新的 P2'和 P3'. P1' = P1 + b. ( 3-18 ). P2' = P1' + d. ( 3-19 ). P3' = P1' + 2d. ( 3-20 ). 再根據上述的新的三點 P1'、P2'和 P3'重新算一次新的眼球中心 Pc'和半 徑 r',並依照上述的演算法做計算直到把所有的邊界點都做完。跟著會在 減小間距 d 再重新計算和旋轉,直到間距 d 大於設定的數值為止。最後再 將兩個累加器分別除以累加的次數 C 即可以取得最後所求的眼球中心 Pcf 和半徑 rf,詳細的虛擬碼如下. 36.

(48) 類霍夫圓法 Pc_x 眼球中心的 x 值 Pc_y 眼球中心的 y 值 C 為累加器 For (each d ) { For(each b) { Pc_x = Pc_y =. 𝛽×𝜇−𝜀×𝛾 𝛽×𝛿−𝛼×𝜀 𝛾×𝛿−𝛼×𝜇 𝛽×𝛿−𝛼×ε. r = sqrt((Pc_x - P1_x)^2 + (Pc_y - P1_y)^2) If (A1 == true) APc = APc + Pc Ar = Ar + r C=C+1 P1 = P1 + b P2 = P1 + d P3 = P1 + 2d } }. Pcf = APc / C rf = rf / C. 值得一提的是透過圓型弧長偵測法僅需要把算出來的眼球中心 Pc 和半 徑 r 都分別加入到個別的累加器中,最後再除以累加的次數即可以取得所 求的眼球中心和 Pcf 半徑 rf,因此不需要如霍夫圓一樣去給定一個相當大的 記憶體空間,透過此演算法可以有效的大幅度將求取最適圓的空間複雜度 降至常數(1),其抓取的圓如圖 3-18(b)和(d),從圖中可以很明顯地了解到 我們開發的演算法可以有效地抓取正確的虹膜。 37.

(49) 3.2.7 眼角位置偵測. 眼角位置偵測 眼睛直視 圖. 計算直方圖. 計算二值化門 檻值. 將圖片二值化. 計算X方向的像 素累積值. 將X軸的累積像 素做平滑. 計算X累積值的 一階微分. 篩選出X軸的定 位點. 計算Y方向的像 素累積值. 將Y軸的累積像 素做平滑. 計算Y累積值的 一階微分. 篩選出Y軸的定 位點. 圖 3-21. 眼角位置. 眼角位置偵測流程圖. 偵測模型建立時的眼角主要是要建立基礎的位置,假設頭部移動後將 可以依造眼角位置去做頭部移動的偵測如圖 3-21。首先,會先計算整張 圖片的直方圖,作法就是將所有像素的值累積到 0 到 255 的陣列裡這樣 就完成了直方圖的計算。接著要計算二值化的門檻值,利用直方圖的陣 列開始從 0 累積陣列裡面的像素個數,當累積到𝐶ℎ 的時候就選定該陣列 編號為二值化的門檻值,本論文使用的𝐶ℎ 為 1/16。最後再利用選定的門 檻值去對圖片二值化,但為了加速整體的速度,會選定一個𝑀 × 𝑁大小的 區塊,同時整體圖片所佔 XY 座標軸分別是𝑋𝑤 及𝑌𝑤 個像素,而眼角會落 於圖片寬度的C𝛼 和圖片長度的𝐶𝛽 所形成的區域,因此我們𝑀 × 𝑁的大小就 可以由下式所決定. 𝑋. 𝑀 = ⌈ 𝑤⌉ C𝛼. 𝑌. 𝑁 = ⌈ 𝑤⌉ 𝐶𝛽. 其中C𝛼 為 1/4,𝐶𝛽 為 2/3 38. ( 3-21) ( 3-22 ).

(50) 最後二值化完成的結果如圖 3-22 所示. (a) 圖 3-22. (b). 二值化前後比較 (a)原始圖片. (b)特定區域二值化圖. 接著會對完成二值化的區域內去做 X 方向的像素值累積,遇到黑色像素 時 X 軸的計數器加一,因為眼角位置會是大量黑色的地方,所以就可以 再曲線爬升的地方當作是眼角的 X 位置,累積曲線如圖 3-23 所示. 圖 3-23. X 軸累積曲線圖. 但曲線上有小幅的波動,因此會再做一次濾波去將曲線變為更加的平滑 39.

(51) 降低判斷的失誤率。濾波使用濾波視窗(Filter Window)大小為五的均值濾 波,濾波後的累積曲線如圖 3-24 所示. 圖 3-24. X 軸曲線累積圖(平滑後). 將曲線平滑後就可利用一階微分去尋找曲線爬升點,曲線的一階微分如 圖 3-25. 圖 3-25. X 軸曲線累積圖(平滑+一階微分後) 40.

(52) 找尋 X 軸位置的虛擬碼如下. 尋找眼角 X 軸位置 Sdiff_x 為 X 軸曲線累積微分後的陣列 Sdiff_x,i 為 X 軸曲線累積微分後第 i 個陣列值 Smax_diff 為 X 軸曲線累積微分後陣列的最大值 Pca_x 為眼角的 X 位置 Smax_diff = 0 Pca_x = 0 For(each i in Sdiff_x) { If(Sdiff_x,i > Smax_diff && Sdiff_x,i-1 > 0 && Sdiff_x,i+1 >0) { Smax_diff = Sdiff_x,i Pca_x = i; } }. 尋找的是一階微分的極值,且其前後的微分值都要大於 0,因為假定眼角 是 ROI 內最黑的部分,因此曲線在經過眼角的位置時其一階微分會先快速 爬升,當到達眼角時會有最大的極值,之後會曲線下降,因此採用上述的 演算法來找尋眼角。 在取得眼角的 X 位置後,接著要取出眼角的 Y 位置。首先,會先將眼 角二值化圖的 X 像素全部累 Y 軸,但是並不是將 ROI 所有的 X 像素都累 積到 Y 軸,假定 ROI 區域的大小為𝑀 × 𝑁,長邊為 M 短邊為 N,只將 X 到 N 區間內的像素累積到 Y 軸,累積的曲線如下圖 3-26. 41.

(53) 圖 3-26. Y 軸曲線累積圖. 由此可看出如果直接去抓 Y 的位置會被曲線上的鋸齒干擾,因此也將曲線 去做濾波,降低干擾程度,濾波後的曲線如下圖 3-27. 圖 3-27. Y 軸曲線累積圖(平滑後) 42.

(54) 將曲線濾波後一樣利用一階微分的方式去尋找眼角 Y 軸的位置,因為眼 角是一個類三角形的區塊,因此黑色像素的累積值也會在眼角的部分快 速的爬升,一階微分後的曲線如下圖 3-28. 圖 3-28. Y 軸曲線累積圖(平滑+一階微分後). 尋找眼角 Y 軸位置的虛擬碼如下. 43.

(55) 尋找眼角 Y 軸位置 Sdiff_y 為 Y 軸曲線累積微分後的陣列 Sdiff_y,i 為 Y 軸曲線累積微分後第 i 個陣列值 Smin_diff 為 Y 軸曲線累積微分後陣列的最小值 Pca_y 為眼角的 Y 位置 Smin_diff = 0 Pca_y = 0 For(each i in Sdiff_y) { If(Sdiff_y,i < Smin_diff && Sdiff_y,i-1 < 0 && Sdiff_y,i+1 < 0 && Sdiff_y,i-2 < 0 && Sdiff_y,i+2 < 0) { Smin_diff = Sdiff_y,i Pca_y = i } }. 最後眼角找出的位置如下圖 3-29 紅色十字所示. 圖 3-29. 眼角位置 44.

(56) 3.3 建立映射模型. 建立映射模型. 眼球模型 計算眼角位移. 眼球模型選擇. 計算映射模型 參數. 映射曲線模 型. 眼睛九 點凝視 圖. 圖 3-30. 建立映射模型流程圖. 在取得眼球模型後接著需要建立映射模型如圖 3-30,建立映射模型除 了需要眼球模型還需要眼睛觀看設計好九個校正點時的影像,而 Chang[15] 指出平均凝視點時間為 150 毫秒到 250 毫秒,所以本系統設計每一個校正 點採集 180 毫秒,且由於相機拍攝速度每一張為 4 毫秒,因此每一個校正 點採集 45 張眼睛圖片,因此總共會有 405 張的眼睛圖片輸入到建立映射 模型的程序裡。3.3.1 節將會介紹如何計算每張輸入影像的眼角位移,用於 補償頭部的移動,3.3.2 節則是介紹如何選擇眼球模型,以便得出虹膜中心 點。而最後的 3.3.3 節將會介紹如何計算映射模型的參數,以便建立映射模 型。. 45.

(57) 3.3.1 計算眼角位移 在 3.2.6 節取得眼睛直視圖的眼角後,將會針對每一張數入的眼睛影像 去偵測眼角的位置以補償頭部的位移。首先,會在輸入影像以眼睛直視圖 的眼角位置設定一個𝑛 × 𝑛大小的方形區塊,在這個方塊裡每一點都有可能 是新的眼角位置,因此將每一點在做出一個𝑚 × 𝑚的方框,將這個方框去 和眼睛直視圖眼角所框出的𝑚 × 𝑚的方框去做比對,比對方式如下. 𝑀𝐶,𝑛 − 𝑀𝐵 = 𝑆𝐴𝐷𝑛. ( 3-23 ). 𝑀𝐶,𝑛 為在輸入影像所設定的𝑛 × 𝑛大小裡取得的方形區塊內的每一點所框 出𝑚 × 𝑚的方框,𝑀𝐵 為在眼睛直視圖的眼角所框出的方框,而𝑆𝐴𝐷𝑛 為這兩 個方框裡面所有像素對減的和。因此將會得到 n 個𝑆𝐴𝐷值,接著在透過快 速排序法(Quick Sort)去取得𝑆𝐴𝐷最小的方框,最後將眼睛直視圖的眼角位 置減去最小𝑆𝐴𝐷方框位於𝑛 × 𝑛方形區塊裡的位置時即可得出眼角位移量, 其中本論文𝑛為 21, 𝑚為 17。流程如下圖 3-31 所示. 46.

(58) 輸入的眼睛 圖. 眼睛直視圖. 依眼睛直視圖位置 畫出方形區塊. 依方形區塊內的每 一點取得 的方框. 依眼角位置取得 方框. 計算每一個方框的 SAD值. 對每一個方框的 SAD值去做快速排 序. 將SAD值最小的方 框位於方形區塊的 位置減去眼睛直視 圖眼角位置. 眼角位移量. 圖 3-31. 取得頭部位移量. 47.

(59) 3.3.2 眼球模型的選擇 在計算映射模型時需要觀看校正點時的虹膜中心,因此會利用先前建 立的眼球模型來對圖像去做匹配,採用的方法是利用 W. C. Kao 等人[14]提 出的匹配方法,但是其眼瞼遮蔽的部分為一個定值並沒有隨著眼睛旋轉的 角度去做更改,因此提出了一個可隨眼睛更改遮蔽區域的方式,如圖 3-32 𝑧. 𝑥 𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝. 𝑦. 𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤. 圖 3-32. 自適應虹膜角度示意圖. 首先,先設定上下眼瞼遮蔽的角度如下. 𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑢𝑝 ~𝜃𝑒𝑛𝑑_𝑢𝑝. ( 3-24 ). 𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑙𝑜𝑤 ~𝜃𝑒𝑛𝑑_𝑙𝑜𝑤. ( 3-25 ). 當眼球向右旋轉時其虹膜右邊的邊界會被內眼角遮蔽而左邊則會因為遠 離外眼角而露出更多的邊界,反之亦然。假定左右兩邊的變化量為𝛿且左右 兩邊的變化量都是一致的,就可將𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝 和𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤 的範圍改形成如 下所示:. 48.

(60) 𝛿. 𝛿. 2. 2. 𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑢𝑝 + ~𝜃𝑒𝑛𝑑_𝑢𝑝 +. ( 3-26 ). 𝛿. 𝛿. 2. 2. 𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑙𝑜𝑤 − ~𝜃𝑒𝑛𝑑_𝑙𝑜𝑤 −. ( 3-27 ). 𝛿 = sin−1 (sin 𝜃 cos 𝜑). ( 3-28 ). 其中𝜃和𝜑為眼球的球形旋轉角度。 考慮完左右旋轉後接著考慮眼球上下的旋轉,當眼球向上抬的時候虹 膜上半部會被眼瞼遮蔽的更多,而下半部被遮蔽的區域會減少,也就是說 𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝 的範圍會變大𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤 的範圍會變小。假設上下眼瞼的變化量 為τ並且眼瞼遮蔽的部分上下都是一致的,就可將𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝 和𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤 的範圍改寫成:. 𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑢𝑝 + 𝜏 ~ 𝜃𝑒𝑛𝑑_𝑢𝑝 − 𝜏. ( 3-29 ). 𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑙𝑜𝑤 + 𝜏 ~ 𝜃𝑒𝑛𝑑_𝑙𝑜𝑤 − 𝜏. ( 3-30 ). 𝜏 = (𝜃𝑒𝑛𝑑𝑙𝑜𝑤 − 𝜃𝑠𝑡𝑎𝑟𝑡𝑙𝑜𝑤 ) × sin−1 (sin 𝜃 sin 𝜑) /(2 × 𝜃𝑚𝑎𝑥 )( 3-31 ). 𝜃和𝜑為眼球的旋轉角度,而𝜃𝑚𝑎𝑥 為眼球旋轉角度𝜃的最大值,所以𝜏會依照 𝜃𝑚𝑎𝑥 去做等差變化。綜合左右和上下的變化量就可將眼球匹配時的角度去 做自適應,如下式所示: 𝛿. 𝛿. 2. 2. 𝐸𝑌𝐸𝐿𝐼𝐷𝑢𝑝 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑢𝑝 + + 𝜏 ~ 𝜃𝑒𝑛𝑑_𝑢𝑝 + − 𝜏 𝛿. 𝛿. 2. 2. ( 3-32 ). 𝐸𝑌𝐸𝐿𝐼𝐷𝑙𝑜𝑤 = 𝜃𝑠𝑡𝑎𝑟𝑡_𝑙𝑜𝑤 − + 𝜏 ~ 𝜃𝑒𝑛𝑑_𝑙𝑜𝑤 − − 𝜏 ( 3-33 ) 𝜏 = (𝜃𝑒𝑛𝑑𝑙𝑜𝑤 − 𝜃𝑠𝑡𝑎𝑟𝑡𝑙𝑜𝑤 ) × sin−1 (sin 𝜃 sin 𝜑) /(2 × 𝜃𝑚𝑎𝑥 )( 3-34 ) 𝛿 = sin−1 (sin 𝜃 cos 𝜑). 49. ( 3-35 ).

(61) 3.3.3 計算映射模型參數 所有眼睛九點凝視圖的虹膜中心點都找到後,將每一個校正點內 45 個 虹膜中心點都去取中值求平均,讓每一個校正點都會對應到一個虹膜中 心。接著就可開始計算映射模型的參數,本系統所假設的映射模型如下:. 𝑆𝑥 = 𝑐𝑥,1 𝑥 2 𝑦 2 + 𝑐𝑥,2 𝑥 2 𝑦 + 𝑐𝑥,3 𝑥𝑦 + 𝑐𝑥,4 𝑦 + 𝑐𝑥,5 𝑥𝑦 2 + 𝑐𝑥,6 𝑥 + 𝑐𝑥,7 𝑥 2 + 𝑐𝑥,8 𝑦 2 + 𝑐𝑥,9. ( 3-36 ). 𝑆𝑦 = 𝑐𝑦,1 𝑥 2 𝑦 2 + 𝑐𝑦,2 𝑥 2 𝑦 + 𝑐𝑦,3 𝑥𝑦 + 𝑐𝑦,4 𝑦 + 𝑐𝑦,5 𝑥𝑦 2 + 𝑐𝑦,6 𝑥 + 𝑐𝑦,7 𝑥 2 + 𝑐𝑦,8 𝑦 2 + 𝑐𝑦,9. ( 3-37 ). 𝑐𝑥,1 ~𝑐𝑥,9代表的是螢幕 x 軸映射模型的參數,𝑐𝑦,1 ~𝑐𝑦,9 則是螢幕 y 軸映射模型 的參數,在眼睛九點凝視圖裡每一點都會對應到一個虹膜中心因此可構成. 九條方程式,而九條方程式就可以解九個未知數,如下所示.  a12b12    a92b92   a12b12    a92b92 . a12b1. a1b1. b1. a1b12. a1. a92b9. a9b9 b9. a9b92. a9. a12b1. a1b1. b1. a1b12. a1. a92b9. a9b9 b9. a9b92. a9. a12 b12 1  cx ,1   S x ,1              ( 3-38 ) 2 2 a9 b9 1 cx ,9   S x ,9  a12 b12 1  cy,1   S y,1              ( 3-39 ) 2 2 a9 b9 1 cy,9   S y,9 . 其中𝑆𝑥,𝑛 為螢幕上的座標,每一個𝑆𝑥,𝑛 都有一個對應的虹膜中心點𝑎𝑛 ,n的 範圍為 1~9 也就是n = 1~9。因此每一個𝑆𝑦,𝑛 也都會有一個𝑏𝑛,然而我們可 以將上述的兩式寫成下式:. 50.

(62) 𝑀𝑋 𝐶𝑋 = 𝑆𝑋. ( 3-40 ). 𝑀𝑌 𝐶𝑌 = 𝑆𝑌. ( 3-41 ). 為了解出𝐶𝑋 和𝐶𝑌 則將等式左右兩邊同乘𝑀𝑋 和𝑀𝑌 的反矩陣,最後可得出下 式;取得映射模型參數後,就完成了映射模型的建立了。. 𝐶𝑋 = 𝑆𝑋 𝑀𝑋−1. ( 3-42 ). 𝐶𝑌 = 𝑆𝑌 𝑀𝑌−1. ( 3-43 ). 3.4 計算眼睛凝視位置. 眼球模型 計算眼睛凝視位置. 眼睛凝視 螢幕任意 位置圖. 計算眼角位移. 眼球模型選擇. 映射模型映射. 眼睛凝視 位置. 映射模型. 圖 3-33. 計算眼睛凝視位置流程圖. 在取得眼球模型和映射模型後就可以對任意眼睛圖片計算出映射到螢 幕上的位置。首先,先計算眼睛眼角偏移位置就可針對眼球模型去做校正, 再透過眼球模型的選擇就可以得出虹膜中心點,最後再透過映射模型的映 射就可以得出眼睛凝視位置。這裡所使用的計算眼角位移和眼球模型選擇 的方法跟 3.3.1 節及 3.3.2 節相同,因此本小節就不再贅述,3.4.1 節則是介 紹如何透過映射模型去映射出螢幕上的凝視位置。. 51.

(63) 3.4.1 映射模型映射 在取得眼睛凝視螢幕任意位置圖的虹膜中心後,將會透過 3.3.3 節所建 立的映射模型將虹膜中心帶入後就可得到映射到螢幕上的相對位置,如式 (3-36)和式(3-37)所示,𝑐𝑥,1 ~𝑐𝑥,9 和𝑐𝑦,1 ~𝑐𝑦,9 已經在 3.3.3 節求得,而𝑆𝑥 和𝑆𝑦 就是所需要的螢幕映射位置,將取得的虹膜中心將會帶入,最後將可得到 螢幕映射位置。. 3.5 粒子群聚演算法(PSO)加速. 整體系統最花費成本的地方在於眼球模型的選擇和計算眼角位移,因 此我們將使用粒子群聚演算法來加速整體系統的速度用以達成高速眼動 即時追蹤的效果。首先,3.5.1 節會先介紹粒子群聚演算法應用於眼球模型 的加速,接著再介紹如何利用粒子群聚演算法加速計算眼角位移的速度。. 3.5.1 眼球模型加速 如 3.3.2 節所說在尋找眼球模型主要是透過旋轉眼球模型的𝜃和𝜑,而 在眼球模型分數最高的模型,即為要尋找的眼球模型,而最高分的眼球模 型會對應到一組𝜃和𝜑。因此,將會利用粒子群聚演算法去找到這一組𝜃和 𝜑。 首先,每一顆粒子都帶有一組𝜃和𝜑這也就是粒子的位置,且𝜃和𝜑會對 應到一組速度𝑣𝜃 和𝑣𝜑,粒子在最一開始會先初始化𝜃、𝜑、𝑣𝜃 和𝑣𝜑,初始化 方式如下:. 52.

(64) 𝜃 = 𝑟𝑎𝑛𝑑(0, 𝜃𝑚𝑎𝑥 )/𝜃𝑚𝑎𝑥. ( 3-44 ). 𝜑 = 𝑟𝑎𝑛𝑑(0, 𝜑𝑚𝑎𝑥 )/𝜑𝑚𝑎𝑥. ( 3-45 ). 𝑣𝜃 = 𝑟𝑎𝑛𝑑(0, 𝜃𝑚𝑎𝑥 )/𝜃𝑚𝑎𝑥. ( 3-46 ). 𝑣𝜑 = 𝑟𝑎𝑛𝑑(0, 𝜑𝑚𝑎𝑥 )/𝜑𝑚𝑎𝑥. ( 3-47 ). 上式中𝜃𝑚𝑎𝑥 代表 𝜃中最大的值,同理可得𝜑𝑚𝑎𝑥 代表𝜑中最大的值,透過上 述式子將可初始化所有的粒子的位置和速度。而每一顆粒子所帶的𝜃和𝜑都 是一個可能的解,同時也代表在眼球模型裡的每一組模型,因此這每一顆 粒子都會對應到一個分數也可以說是每一顆粒子的適應值(Fitness value)。 適應值主要是用來評估粒子的是否為最佳粒子的依據,而在這裡代表的是 每一個模型的分數,因此,適應值的公式如下,由此公式將可得到每一組 粒子的適應值。. 𝑓 = 𝑀𝑜𝑑𝑒𝑙(𝜃, 𝜑). ( 3-48 ). 每一次的粒子評估後,會將全部的粒子更新一次,同時更新自己的歷 史最佳解,更新的虛擬碼如下:. 更新粒子歷史最佳解 𝑝𝑓 為該點的適應值 𝑝𝑏𝑒𝑠𝑡𝑓 為該點歷史最佳解的適應值 𝑝𝑏𝑒𝑠𝑡為該點的歷史最佳點 For(each 𝑝) { If(𝑝𝑓 > 𝑝𝑏𝑒𝑠𝑡𝑓 ). 𝑝𝑏𝑒𝑠𝑡 = 𝑝. }. 53.

(65) 更新完自己的歷史最佳解後,會選取一個最佳的粒子和歷史全域最佳 解比對,如果這顆粒子比歷史全域最佳解更優的話,將會取代全域歷史最 佳解更新的虛擬碼如下:. 更新全域粒子歷史最佳解 𝑝𝑓 為該點的適應值 𝑔𝑏𝑒𝑠𝑡𝑓 為全域歷史最佳解的適應值 𝑔𝑏𝑒𝑠𝑡為全域的歷史最佳點 For(each 𝑝) { If(𝑝𝑓 > 𝑔𝑏𝑒𝑠𝑡𝑓 ). 𝑔𝑏𝑒𝑠𝑡= 𝑝;. }. 接著要討論的是粒子的更新方式,每一次粒子結束評估過後將要進行 粒子位置和速度的更新,透過粒子速度和位置的更新將會使每一顆粒子逐 漸的朝全域最佳解方向收斂,粒子更新速度的公式如下:. 𝑣𝜃 = 𝑤 × 𝑣𝜃 + 𝑐1 × 𝑟𝑎𝑛𝑑(0,1) × (𝜃𝑝𝑏𝑒𝑠𝑡 − 𝜃) + 𝑐2 × 𝑟𝑎𝑛𝑑 × (𝜃𝑔𝑏𝑒𝑠𝑡 − 𝜃). ( 3-49 ) 𝑣𝜑 = 𝑤 × 𝑣𝜑 + 𝑐1 × 𝑟𝑎𝑛𝑑(0,1) × (𝜑𝑝𝑏𝑒𝑠𝑡 − 𝜑) + 𝑐2 × 𝑟𝑎𝑛𝑑 × (𝜑𝑔𝑏𝑒𝑠𝑡 − 𝜑). ( 3-50 ) 上式𝑟𝑎𝑛𝑑是隨機產生 0~1 間的數,𝜃𝑝𝑏𝑒𝑠𝑡 和𝜑𝑝𝑏𝑒𝑠𝑡 分別代表粒子自己歷 史紀錄中最佳解時的𝜃和𝜑,𝜃𝑔𝑏𝑒𝑠𝑡 和𝜑𝑔𝑏𝑒𝑠𝑡 則是代表到目前為止所有粒子曾 經找到最好的解時的𝜃和𝜑,𝑤、𝑐1 和𝑐2 則為權重常數,一般𝑤為 0.8,𝑐1 和 𝑐2 為 2.1。. 54.

(66) 將粒子速度更新完成後就可以更新粒子的位置,更新公式如下:. 𝜃̂ = 𝜃 + 𝑣𝜃. ( 3-51 ). 𝜑̂ = 𝜑 + 𝑣𝜑. ( 3-52 ). 𝑣𝜃 和𝑣𝜑 為更新過的速度,𝜃和𝜑為目前的位置,透過位置和速度的相加就是 新的位置𝜃̂和𝜑̂。 此外,速度和位置都極有可能超出搜尋範圍,因此會需要一個懲罰函 數(Penalty Function)來對超出搜尋範圍的粒子做懲罰,速度和位置的懲罰函 數如下. 𝑣𝜃 = 𝑟𝑎𝑛𝑑 (0, 𝜃𝑚𝑎𝑥 ) + 1. ( 3-53 ). 𝑣𝜑 = 𝑟𝑎𝑛𝑑 (0, 𝜑𝑚𝑎𝑥 ) + 1. ( 3-54 ). 𝜃̂ = 𝜃𝑔𝑏𝑒𝑠𝑡 × 𝛼 + 𝑟𝑎𝑛𝑑 (0, 𝜃𝑚𝑎𝑥 ) × 𝛽. ( 3-55 ). 𝜑̂ = 𝜑𝑔𝑏𝑒𝑠𝑡 × 𝛼 + 𝑟𝑎𝑛𝑑 (0, 𝜑𝑚𝑎𝑥 ) × 𝛽. ( 3-56 ). 𝛼和𝛽為一般常數,在這裡𝛼設定為 0.1 而𝛽設定為 0.3。 九個不同角度的眼睛各總角度的適應值在𝜃 − φ平面的分布圖如下表 3-1. 55.

(67) 表 3-1. 不同眼睛凝視位置的得分比較表 相機拍攝的眼睛圖. 眼睛𝜃 − φ的得分圖. 56.

(68) 57.

(69) 將可利用 PSO 加速找到𝜃 − φ平面裡最大適應值所對應到的𝜃̂和φ ̂。 最後完整眼球模型加速流程如下. 計算粒子的適 應值(Fitness). 開始. 初始化所有粒 子的速度和位 置. 更新粒子歷史 最佳解. 取得最佳 模型. 更新全域粒子 歷史最佳解. 結束. 利用懲罰函數 去懲罰超界粒 子. 疊代是否 結束. 否. 是. 圖 3-34. 眼球模型加速流程圖. 58.

參考文獻

相關文件

(a) In your group, discuss what impact the social issues in Learning Activity 1 (and any other socials issues you can think of) have on the world, Hong Kong and you.. Choose the

This kind of algorithm has also been a powerful tool for solving many other optimization problems, including symmetric cone complementarity problems [15, 16, 20–22], symmetric

If necessary, you might like to guide students to read over the notes and discuss the roles and language required of a chairperson or secretary to prepare them for the activity9.

This objective of this research is to develop water based sol-gel process to apply a protective coating on both optical molds and glass performs, which can effectively prevent glass

In order to improve the aforementioned problems, this research proposes a conceptual cost estimation method that integrates a neuro-fuzzy system with the Principal Items

The aim of this research is to design the bus- related lesson plans based on the need of the students of the 3 rd to 6 th grade of an elementary school in remote

Therefore, a new method, which is based on data mining technique, is proposed to classify driving behavior in multiclass user traffic flow.. In this study, driving behaviors

The purpose of this research is to develop an approach that uses the triangular distribution with the Fractile Method to estimate the optimistic and pessimistic duration of