文獻標識碼: A
文章編號: 0258-7998(2013)11-0089-03
眼動識別是一種通過在視頻幀中不斷檢測眼睛及眼球位置來判斷眼球注視以及移動方向的過程。眼動識別有非常重要的研究意義,在心理學、醫學、設計學[1]、工效安全、人機交互[2-3]和軍事領域[4]上都有廣泛的應用和深遠的前景。
當下最尖端的眼動識別系統主要是通過PC組合Web camera來進行視覺處理[5-6]。然而PC用作主要計算處理單元體積過于龐大,不足以滿足實際應用的環境要求,僅能作為實驗環境測試之用。由此頭盔式的眼動識別設備應運而生,這類產品雖能夠部分解決無法攜帶的問題,但是使用者的舒適感較差,更重要的是運算的速度和準確度卻大大降低。
而智能相機以其嵌入式、低功耗的處理器,使快速算法成為可能,尤其在自動化檢測應用中其優越和穩定的性能,配合小巧緊湊的結構,非常適合于實時眼動識別應用程序的執行。
1 眼動識別算法提出
Fleck等提出在智能相機中使用FPGA模塊,通過粒子濾波器模型來實時識別跟蹤[7],這個方法需要用大量的樣本,環境越復雜,描述后驗概率分布所需要的樣本數量就越多,算法的復雜度就越高。另外,重采樣造成的樣本有效性和多樣性的損失,會導致樣本貧化現象。本文在虹膜識別應用的基礎上[8],設計開發了應用在智能相機中的軟件來完成眼動識別的功能,包括模板匹配、邊緣檢測、識別和標識黑眼球中心位置等。在一般的眼動識別算法中,進行眼動識別前,首先要對人臉進行檢測,以提高眼動識別追蹤算法的精確度[9]。本文提出直接選定左眼為感興趣區域的方法,快而準確,然后在感興趣區域內匹配黑眼球相對眼睛的位置,不同位置標明不同眼動方向,以此識別當前眼動狀態,若隨時間變化實時檢測就能起到眼球運動識別的效果。
2 基于智能相機的眼動識別設計
2.1 眼動識別方法流程分析
將攝像頭設定為連續檢測眼動信息的狀態,進行圖像采集和檢測。圖1所示為實時眼動識別算法的流程圖。
(1)圖像獲取:用圖像傳感器獲取測試對象的圖片,設置光圈、曝光時間和增益。
(2)圖像預處理:將原始圖像轉換成灰度圖像。設計目標是每秒數十幀的實時檢測,灰度圖足以表現面部為主圖像的邊緣和特征,能夠快速進行大量的模板匹配算法。
(3)眼部檢測:預先設計制作眼部區域的模板。因為人類眼睛在生理上具有雙眼旋轉運動協調特性,故單眼模板兼具速度和可信度。運用模板匹配的方法在當前幀圖像中檢測與模板相似的部分,設置相似度的度量值,由于制作模板民實際檢測時光照條件不完全相同,還存在圖像的形變,根據測試通常將最小閾值設定在600左右最佳(最大為1 000)。
(4)前視模板、左視模板和右視模板:對感興趣區域依次匹配黑眼球位置的模板,默認常態下眼睛處于前視狀態,若不匹配則再嘗試匹配左視和右視模板。在三個模板的匹配范圍內都不符合時,記錄為無匹配方向。無匹配方向的意義,例如用于行車安全系統中,可認為視線脫離安全駕駛狀態。
(5)確定眼球方向:將第(4)步中識別到的匹配模板對應返回一個眼動方向,并記錄、顯示于屏幕上。
(6)記錄眼睛坐標:計算黑眼球的中心坐標。正視時取正圓的圓心,左、右視時取橢圓兩焦點的中點,作為當前眼睛的坐標點。
(7)標識當前位置:將第(6)步的坐標作為坐標系原點,創建坐標系,并疊加于圖像的圖層上,完成當前幀圖像的檢測,開始下一幀采集。
這種方法可以應用于各種類型的智能相機上,并可運用各種編程語言來實現。本文采用“G”語言(圖形化的程序語言),它提供了儀器編程和數據采集的便捷途徑,在進行原理研究、設計、測試并實現儀器系統時,可以大大提高工作效率。
2.2 硬件平臺設計
通過NI 1772 SMART CAMERA和觸控屏(或顯示屏),即可獨立完成實時眼動識別的圖像采集、圖像處理、圖像分析和信息反饋等步驟。系統非常精簡,大大降低了可以應用場合的限制。
NI 1772智能相機使用Intel Atom Z530(1.6 GHz處理器),內有512 MB的RAM;圖像傳感器為Kodak KAI-0340S 單色CCD(分辨率640×480(VGA),最大可用幀速率114 f/s)。通過RS232串行連接動態地控制照明,通過千兆以太網I/P和TCP/IP協議,實現與觸摸屏(HMIS)相連接進行人機交互,完成配置調整和檢測圖像和參數實時反饋。
2.3 軟件設計與實現
如圖2所示,根據圖1所示流程算法,設計了軟件程序。
VBAI編譯的算法程序分兩個步驟,首先要規劃子模塊的次序,合理布局分支的結構,降低幀率的損失,提高程序可讀性便于修改。然后對應每個子模塊的作用,完善各個模塊的功能。
由箭頭相連接的為子模塊,方框內是具體每個模塊的子函數。子模塊acq實現采集圖像,子模塊Inspect center、Inspect left、Inspect right完成尋找眼部感興趣區域(本文中使用左眼為ROI),并對該區域進行多次匹配,確定當前眼球所處狀態,顯示對應狀態的反饋提示;子模塊Inspect 2提示處理檢測過程中的錯誤信息,與用戶顯示界面進行信息傳遞等。
(1)acq(圖像獲取)中子函數:
Acquire Image: 通過智能相機的圖像傳感器獲取單幀圖像,圖像為灰度圖。
(2)Inspect center、Inspect left、Inspect right(正視檢測、左視檢測、右視檢測)中分別有以下4個子函數:
①Eye Match Pattern: 眼動匹配。在調試階段預先設置好匹配模板,分左視模板(橢圓形模板)、正視(圓形模板)、右視(橢圓形模板)3個。測試檢測時,先匹配感興趣區域,減少需要處理的圖像范圍,然后在感興趣區域內依次匹配3個模板,找到與某個模板的灰度特性相似的區域(設置在±45°范圍內旋轉的區域都符合識別范圍),個數指定為最多一個。若沒有匹配對象也進行第②步。
②Set Coordinate System:構建坐標系統。計算第①步中匹配區域的大小,并記錄該區域中心點位置(正圓的圓心或橢圓兩焦點的中點)和匹配區域與模板對比傾斜的角度。對沒有匹配對象的幀跳過當前步驟。
③Create Region of Interest:建立感興趣區域。以第②步的中心點位置為坐標原點,將感興趣區域設置為匹配到的眼動區域,用圓標記出眼球的位置。沒有匹配對象的幀則跳過當前步驟。
④Draw Eye & Track: 標識眼動檢測結果。在采集到的實時圖像上覆蓋一個圖層,將眼球區域的中心點標記在該圖層上。程序只記錄所有成功匹配的幀,此時匹配狀態值為真,在程序前面板上將匹配到的模板用對應的“LEFT”、“CENTER”、“RIGHT”指示進行標識。
(3)Inspect 2(檢測統計)中有以下3個子函數:
①Calibrate Image at Eye Match Pattern:校正圖像坐標。
②Set Inspection Status: 檢測狀態反饋。反饋此幀圖像是否順利進行了眼動信息識別,檢測過程中有無報錯,若值為“FAULT”則此幀檢測結果無效。
③Update Eye-tracking Result: 自定義一個前面板,即用戶界面。顯示實時采集到的圖像、檢測狀態、注視方向、標識眼球位置等。
3 眼動識別實驗分析
3.1 實驗方法
考慮到眼動識別應具有應用的廣泛性,需要能夠在不同光照環境下工作,因此需要在不同光照條件下可以通過調整曝光時間來獲取較高質量的檢測圖像,測試環境越暗,曝光時間越長,幀率越低。反之,光線越好的環境下幀率越高。實驗中,模擬駕駛時眼部及頭部的自然狀態,對實時眼動識別算法進行應用實驗。
以1 min內獲得的實時數據作為分析樣本,分別測試了系統在無干擾測試狀態、頭部左右轉動干擾(左右各45°以內)、面部角度傾斜干擾和特殊情況(佩戴眼鏡等局部遮擋)條件下的準確性。每個測試條件分別在光線環境不同處,分40 f/s、50 f/s、60 f/s、80 f/s、100 f/s、112 f/s(max)6種不同圖像采集的速度進行對比,并在幀率最高的情況下統計檢測100幀圖像的效率。
3.2 實驗數據與分析
在“Set Inspection Status”的值為真的條件下,若識別到的眼動狀態(左視、正視、右視、其他區域)與實際眼動的狀態相符,則認為是一次成功的檢測,反之亦然。1 min內測試正確率的數據整理后如表1所示。
由表2可知, 平均對100幀圖片進行識別需要約40 ms,每幀僅需要0.4 ms,模板匹配部分作為識別檢測的重點占80%,實時性好,接近使用高性能的PC進行圖像運算,完全能夠應用于實時在線眼動識別檢測。
本文設計搭建了一個基于智能相機的實時眼動識別系統,拓寬了眼動識別能夠應用的場合,并自主設計了在該硬件系統平臺上可以運行的眼動識別軟件,進行了大量不同環境和條件下的實驗。反復大量的數據分析結果顯示,該方法和系統有較高的準確性和非常出色的實時性。在無外界干擾、臉部角度傾斜和部分遮擋的條件下都達到了過九成的準確率,尤其在臉部角度傾斜條件下,仍有平均95%以上的良好表現。
由于頭部轉動對識別準確率的影響較大,今后可以進一步對該因素帶來的問題進行研究。另外可以在頭部無較大移動條件下,將本文中的眼球坐標歸一到同一坐標中,繪制眼動軌跡進行分析,應用于其他眼動識別的場合。
參考文獻
[1] FRANGESKIDES A L. A hands-free non-invasive human compuer interation system[J]. Advances in Systems, Computing Sciences and Software Engineering, 2006:235-242.
[2] Lu Wanxuan, Li Mi, Lu Shengfu, et al. Impact of information Overload for Visual Search on Web Pages: An Eyetracking Study[C]. Proc. 2010 IEEE/ICME International Conference on Complex Medical Engineering. Gold Coast, Australia, July 2010:13-15.
[3] JAVIER Orozco, F.XAVIER Roca, JORDI Gonzàlez. Realtime gaze tracking with appearance-based Models[J].Machine Vision and Applications,October,2009,20(6):353-364.
[4] KIRCHER J C, COOK A E, HACKER D J. Deception detection using oculomotor movements[J]. United States Patent Application Publication, Dec. 23, 2010: US 2010/0324454 A1.
[5] GARG R, GUPTA V, AGRAWAL V. Efficient iris recognition method for identification[C]. in Proc. ICUMT,2009:1-6.
[6] PEREZ C A, LAZCANO V A, PABLO A. Estévez, et al. Held. Real-time iris detection on faces with coronal axis rotation [C]. in Proc. SMC (7) 2004: 6389-6394.
[7] FLECK S, LANWER S, STRABER W. A smart camera approach to realtime tracking[C]. 13th European Signal Processing Conference,EUSIPCO, 2005.
[8] MEHRUBEOGLU M, BUI H T, MCLAUCHLAN L. Realtime iris tracking with a smart camera[C]. Proceedings of SPIE, vol. 7871, Real-Time Image and Video Processing. N. Kehtarnavaz and M. F. Carlsohn, Eds. 787104, EI,Feb. 2011.
[9] Chen Youngsheng, Su Chanhung, Chen Chusong, et al. Video-based eye tracking for autostereoscopic displays[J]. Optical Engineering, 2001,40(12):2726-2734.