專利名稱:基于soc的視線跟蹤人機交互方法及裝置的制作方法
技術領域:
本發明涉及SOC (片上系統)設計技術,視覺跟蹤算法屬于圖像處理和模式識別技 術領域,具體是一種基于SOC的視線跟蹤人機交互裝置。
背景技術:
人眼視線在人機交互中扮演重要角色,它具有直接、自然和雙向等優點。目前視 線跟蹤技術剛起步,未達到實用階段,成功的實用性項目很少并且價格昂貴,對硬件的要求 高。視覺跟蹤技術一般可以分為兩類,接觸式和非接觸式。接觸式的精度高,但用戶須穿戴 特殊器具,這會給用戶帶來很大的不舒適。非接觸式一般采用基于視頻圖像處理的辦法,通 過分析人眼部分圖像判定視線方向,不對用戶產生干擾,使用更加方便。基于視線跟蹤的人機交互裝置,目前研究的主要方向是基于計算機平臺或性能較 高的嵌入式處理器,純軟件運行的,但由于其算法計算復雜度高,占用系統資源多,不利于 用戶利用此系統在計算機上做其他復雜的操作。鑒于純軟件實現視線跟蹤算法在人機交互 裝置上的局限性,可利用硬件邏輯的并行性及流水線操作,將視線跟蹤算法中計算量較大 部分用硬件實現,大大提高算法的執行效率。經對現有技術文獻的檢索發現,尚未有報道過 有基于SOC的視線跟蹤人機交互方法及裝置。
發明內容
本發明克服現有視線跟蹤技術中的不足,提供基于SOC的視線跟蹤人機交互方法 及裝置。本發明通過合理的軟硬件劃分,在SOC平臺上實現,把復雜度較高部分即人眼區域 檢測部分用硬件實現,大大提高算法的執行效率。本發明通過如下技術方案實現一種基于SOC的視線跟蹤人機交互方法,該方法包括如下步驟(1)攝像頭將采集到的數字圖像輸入到SOC平臺,采用硬件邏輯模塊實現基于 haar特征的Adaboost檢測算法,對所述數字圖像進行人眼區域的檢測;(2)根據檢測到的人眼區域,利用視線方向判別算法,判別出用戶視線,再將用戶 視線方向轉化為鼠標控制信號通過USB傳輸給計算機,實現人機交互。上述的人機交互方法中,所述硬件邏輯模塊包括如下模塊積分模塊,完成數字圖像的積分與平方積分的計算,并將計算結果存放在存儲器 上;子窗口掃描模塊,對整幀數字圖像子窗口的橫坐標和縱坐標按設定步長進行遍歷,得出 待測子窗口的坐標及長寬;子窗口處理模塊,判定待測子窗口是否為人眼子窗口 ;子窗口融合模塊,對判定出的所有人眼子窗口進行融合處理,即整合位置相近的 窗口,然后重新調整人眼窗口位置,確定人眼區域。上述的人機交互方法中,所述子窗口處理模塊是根據采用Modesto CastriΙ η訓 練的右眼分類器,運用Cascade級聯方法實現子窗口處理,具體步驟包括首先提取右眼分 類器的haar特征參數;將haar特征參數具體化,即將haar特征參數與掃描后的子窗口大小進行匹配,再根據具體化后haar特征參數中矩形區域的位置讀取積分模塊計算出的積分數據,最后運用Cascade級聯方法確定人眼子窗口。上述的人機交互方法中,所述運用Cascade級聯方法確定人眼子窗口是將多個右 眼弱分類器加權組成右眼強分類器,再將20級右眼強分類器串聯完成人眼子窗口的確定, 具體步驟包括首先根據每個右眼弱分類器中的haar特征參數及從積分模塊中讀取的積 分數據,計算出實際子窗口的haar特征值,再與當前右眼弱分類器的閾值進行比較,確定 此右眼弱分類器的權值,最后將這些右眼弱分類器的權值進行累加,再與右眼強分類器的 閾值做比較,如果大于此閾值,則通過此級右眼強分類器的驗證,進入下一級右眼強分類器 的判別,如果小于此閾值,則認為此子窗口為非人眼區域;當子窗口通過20級右眼強分類 器的驗證,則可確定為人眼子窗口。上述的人機交互方法中,所述視線方向判別算法是根據位于計算機屏幕四個角上 的四個LED紅外光源在人眼角膜上形成的四個反射亮點,即普爾欽斑點,與瞳孔中心之間 的幾何位置關系計算視線方向。上述的人機交互方法中,所述視線方向判別算法具體步驟包括首先采用灰度投 影方法定位瞳孔中心,在以瞳孔中心為中心,在其上下左右30個像素的區域內搜索普爾欽 斑點,計算瞳孔中心與所述四個反射亮點的關系,確定其視線方向。實現上述的人機交互方法的基于SOC的人機交互裝置,該裝置包括SOC平臺、用于 采集人眼圖像的攝像頭、計算機、安裝在計算機顯示屏上四個角且排列成矩形的四個LED, SOC平臺包括人眼區域檢測硬件邏輯模塊、處理器和存儲器;所述攝像頭將采集到的數字 圖像輸入到SOC平臺上的存儲器;計算機通過USB與SOC平臺連接;人眼區域檢測硬件邏輯 模塊完成人眼區域的檢測,處理器根據檢測出的人眼區域,結合視線方向判別算法識別出 用戶視線方向,將與用戶視線方向對應的控制信號轉化為鼠標控制信號通過USB傳輸給計 算機。上述裝置中,所述計算機的顯示屏由兩條對角線分為四個區域,SOC平臺的處理器 根據用戶眼睛所注視的區域,將用戶視線分為上、下、左、右四個方向,模擬鼠標移動功能, 作為用戶輸入的控制信息,并通過眨眼動作用來確認視線控制信息、模擬鼠標單擊并輸入 用戶確認信息。上述裝置中,所述眨眼動作是將1 3秒的眨眼動作用來發出確認命令信息。本發明將基于SOC的視線跟蹤技術應用于人機交互裝置,填補了我國這方面的空 白。通過連接于SOC平臺的攝像頭跟蹤人眼注視視線,由于屏幕兩條對角線可以把屏幕分 成四個區域,則將人眼注視這四個區域的四種不同視線方向作為用戶發出的四種控制信 息,同時將1 3秒的閉眼這個眨眼動作用來發出確認命令信息,再將此平臺連接到計算 機,實現鼠標的基本操作功能。與現有技術相比,本發明的優點與積極效果在于1、對于計算復雜度高的視線跟蹤算法,通過合理的軟硬件劃分,在SOC平臺上,充 分運用硬件邏輯的并行性以及流水線等操作,把整個系統算法運算量大的模塊運用硬件邏 輯模塊(即人眼區域檢測IP核)實現,大大提高算法的執行效率,解決了純軟件實現算法 占用系統資源多,效率較低的缺陷。2、采用本發明的視線跟蹤技術,實現了一個占用資源小,實時性高的人機交互裝置,具體功能有可以用視線實現計算機的基本操作,如打開網頁,電子書的上下翻頁等;可以作為虛擬現實的人機交互裝置,在虛擬現實環境中,根據用戶當前的注視狀 態,提供給用戶相應注視方位的場景信息,這樣用戶在不同的方位就會看到不同的場景,達 到身臨其境的效果。使人與計算機間的交互與現實世界中的交互方式趨于一致,更為簡單、 自然、高效。
圖1是本發明實施方式中的基于SOC的視線跟蹤人機交互裝置構成框圖。圖2是本發明實施方式中顯示屏、紅外光源與攝像頭的布置示意圖。圖3是本發明實施方式中視線跟蹤方法的流程示意圖。圖4是本發明實施方式中人眼區域檢測IP核的流程示意圖。圖5是本發明實施方式中子窗口處理流水線示意圖。圖6a 圖6c分別是本發明實施方式中haar特征的三種示意圖。圖7是本發明實施方式中haar特征求法示意圖。圖8是本發明實施方式中普爾欽斑點構成矩形的對角線交點示意圖。
具體實施例方式下面結合附圖對本發明的具體實施方式
做進一步說明。如圖1、圖2所示,基于SOC的視線跟蹤人機交互裝置,包括SOC平臺、用于采集人 眼圖像的攝像頭、計算機、安裝在計算機顯示屏上四個角且排列成矩形的四個LED(紅外光 源),S0C平臺包括人眼區域檢測硬件邏輯模塊(即人眼區域檢測IP核)、處理器和存儲器; 所述攝像頭將采集到的數字圖像輸入到SOC平臺上的存儲器;計算機通過USB與SOC平臺 連接;人眼區域檢測硬件邏輯模塊完成人眼區域的檢測,處理器根據檢測出的人眼區域,結 合視線方向判別算法識別出用戶視線方向,再根據用戶視線方向將相應的控制信號轉化為 鼠標控制信號通過USB傳輸給計算機。本實施方式中,紅外光源是安裝在顯示屏四角的四個LED燈,攝像頭位于屏幕中 心正下方,攝像頭采集的數字圖像輸入視線跟蹤模塊。紅外光源在人眼角膜表面形成反射 亮點,即普爾欽斑點,并以普爾欽斑點為基準點計算人眼視線方向。紅外光源以及攝像頭擺 放位置如圖1所示,四個紅外LED燈安裝在屏幕四個角上,攝像頭放置在屏幕中心正下方。 攝像頭采用640X480像素普通攝像頭,為增加攝像頭對紅外光源的敏感度,把其鏡頭更換 為對紅外更敏感的鏡頭,同時為了避免外界自然光源的影響,在鏡頭前加上濾光片。屏幕上 LED燈與圖像中反射亮點的對應,視線與瞳孔中心位置相對應。四個反射亮點構成一個矩 形,兩條對角線把矩形分成四個區域,瞳孔中心位于哪個區域便代表了人眼視線的方向。本發明的一個實施例,如圖3所示,首先通過攝像頭采集用戶圖像,然后根據人眼 區域檢測IP核檢測圖像中是否存在人眼來判斷當前是否有用戶使用該系統,只有檢測到 人眼后,才進行后續的處理。在檢測到人眼的基礎上,通過眨眼狀態判別算法進行判別,如 果判別為閉眼,則通過USB線發送鼠標單擊信號至計算機,如果判別為睜眼,則進行視線方 向的判別。再將視線方向信息通過USB線發送至計算機。
本實施方式中,人眼區域檢測IP核的內部框架如圖4所示。通過基于haar特征 的Adaboost人眼檢測算法判斷圖像中是否有人眼存在,具體實施步驟如下步驟圖像積分。圖像積分模塊完成數字圖像的積分與平方積分的計算,并也將計 算結果存放在SRAM上;步驟二 子窗口掃描。子窗口掃描模塊完成對整幀圖像子窗口的遍歷。步驟三子窗口處理。子窗口處理模塊完成對子窗口是否為人眼窗口的判定。步驟四子窗口融合。子窗口融合模塊,對檢測到的所有子窗口進行整合,除去相 鄰的人眼子窗口,得出人眼位置。其中步驟一的具體實施步驟為將圖像像素數據存放在SOC平臺上的存儲器(片 夕卜SRAM)中,用一個寄存器保存行像素灰度累加值。為了加快運算速度,在SOC片內生成一 個RAM,用于保存上一行的積分數據,以減少對片外SRAM的訪問。每計算完一個坐標點的積 分數據,就把這個數據寫入到外部SRAM中,同時覆蓋掉片內RAM相應的積分數據以便下一 次計算需要。其中步驟二的具體實施步驟為用一個狀態機實現對子窗口的遍歷。首先,對整幀 數字圖像子窗口的橫坐標和縱坐標按設定步長進行遍歷,之后乘上放大系數,再次進行橫 縱遍歷,得出待測子窗口的坐標及長寬。其中步驟三的具體實施步驟為采用Modesto Castrillon訓練的右眼分類器 特征,運用Cascade級聯的方法實現子窗口處理,具體步驟包括首先提取右眼分類器的 haar特征參數;將haar特征參數具體化,即將haar特征參數與掃描后的子窗口大小進行 匹配,再根據haar特征參數中矩形區域的位置讀取積分模塊計算出的積分數據,最后運用 Cascade級聯的方法確定人眼子窗口。為了加快處理速度,將右眼分類器數據保存在SOC片 內開辟的ROM上。從已發布的OpenCV 1. O中的.xml文件中讀取出右眼分類器數據,保存 為.mif文件格式用于初始化ROM。如圖5所示,應用硬件邏輯的并行計算能力對于每個分 類器的判別通過流水線處理設計。上述步驟三中所述運用Cascade級聯方法確定人眼子窗口是指將多個右眼弱分 類器加權組成右眼強分類器,再將20級右眼強分類器串聯完成人眼區域的檢測。本發明中 各級級右眼強分類器各由右眼弱分類器10,10,16,20,16,20,24,30,34,38,38,42,44,48, 48,56,52,58,68,64個組成。具體步驟包括首先根據每個弱分類器中的haar特征參數及 從積分模塊中讀取的積分數據,計算出實際子窗口的haar特征值,再與當前右眼弱分類器 的閾值進行比較,確定此右眼弱分類器的權值,最后將這些右眼弱分類器的權值進行累加, 再與右眼強分類器的閾值做比較,如果大于此閾值,則通過此級右眼強分類器,可進入下一 級右眼強分類器的判別。否則,則認為此子窗口為非人眼區域。當子窗口通過20級右眼強 分類器的驗證,則可確定為人眼子窗口。其中haar特征,也叫矩形特征,它對一些簡單的圖形結構,比如邊緣、線段,比較 敏感,能描述特定走向(水平、垂直、中心)的結構,如圖6所示,這些特征表征了圖像的局 部haar特征,其中圖(a)中兩個的矩形特征分別表征了上下和左右邊界特征,圖(b)的矩 形特征表征了細線特征,圖(c)的矩形特征表征了對角線特征。眼睛一些特征能夠由矩形 特征簡單的描繪,例如,眉毛比眼皮的顏色更深,并呈現上下邊界特征,眼睛邊緣比眼皮的 顏色更深,并呈現左右邊界特征。
如圖6所示,haar特征值的求法為白色矩形區域內的所有像素點的和減去灰色矩形區域中的所有像素點的和。具體計算步驟為首先根據haar特征參數中的矩形區域的具 體位置,提取矩形區域四個點的積分數據,則可計算出所要求矩形區域的所有像素點的和。 如圖7舉例說明,圖中的矩形為待求圖像,A、B、C、D分別為圖像中的幾個矩形區域,積分圖 元素值計算點“1”的積分值是矩形框A中所有像素的像素值之和。點“2”的積分值所對 應的值為A+C,點“3”的積分值是A+B,點“4”的積分值是A+B+C+D,所以D中所有的像素值 之和可以用4+1-(2+3)計算。因此圖像中任何矩形中所有像素的值之和都可以通過類似如 上的四個矩形計算出,即通過四個點的積分數據算出。最后對右眼分類器中haar特征所指 矩形區域,進行像素和的相減,得出haar特征值。其中步驟四的具體實施步驟為對判定出的所有人眼子窗口進行融合處理,定位 出人眼位置。由于步驟三確定的人眼子窗口不止一個,而且人眼子窗口之間互相交叉、包含 等情況,我們可以通過他們的位置、大小的條件把將他們合并,減少重復窗口出現的情況, 即整合位置相近的窗口,然后重新調整人眼窗口位置。本實施方式中,眨眼狀態判別是通過統計每幀圖像中二值眼部區域黑色像素的個 數,并與前一幀進行比較,利用幀間黑色像素個數之間的關系,來判別是否存在人眼由開轉 為閉的眨眼動作。具體過程如下設第i幀圖像為Fi,人眼區域為Di1.統計Fi中,區域Di灰度值小于150的像素點數目Ci ;2.統計Fi+Ι中,區域Di灰度值小于150的像素點數目Ci';3.若Ci/Ci ‘ > 0.9,則認為可能出現閉眼事件;4.若出現可能的閉眼事件后連續若干幀檢測不到眼睛,則確定為閉眼。本實施方式中,視線方向的判定是通過檢測瞳孔中心與普爾欽斑點的位置,再通 過幾何計算求瞳孔中心與普爾欽斑點的位置關系,從而判別視線方向。具體步驟如下步驟一定位瞳孔中心,并利用瞳孔中心位置與普爾欽斑點的關系,與普爾欽斑點 的幾何特征,搜索出普爾欽斑點。步驟二通過幾何計算求取瞳孔中心與普爾欽斑點的位置關系,從而判別視線方 向;其中步驟一的具體實施步驟為眼睛區域中,普爾欽斑點具有以下幾何特征1.位于瞳孔周圍,與瞳孔中心距離小于30像素;2.大小為5 20個像素不等,灰度值在100以上;3.在眼睛區域,亮點處的灰度值各有一個極大值,且在理想條件下,四個普爾欽斑 點處灰度的突變最大;4.四個普爾欽斑點之間距離在8 18像素范圍內,且近似成矩形關系;因此通過以下步驟來尋找普爾欽斑點(即亮點)1.用水平灰度投影和垂直灰度投影法定位瞳孔的中心,以該中心的上下左右各 30個像素的范圍作為搜索區域;2.在搜索區域內尋求灰度極值點,即尋找灰度值滿足以下條件的點集G g (x0, y0)≥ max {g (χ, y)}, g (χ0, y0) > 100
其中g(x0,y0)為(x0,y0)點的灰度值。3.用如下所示的Laplace算子對點集G中每一個點與其周圍點進行卷積,求出每 個點g處的微分f。<formula>formula see original document page 9</formula>由于Laplace算子是一種各向同性的微分算子,它的作用是強調圖像中灰度突變 的區域,Laplace卷積中值越大,說明該處灰度的突變越大。采用5X5的Laplace算子,可 以進一步避免噪聲干擾;4.對點集G按其微分值f進行排序,選擇f最大的四個點PO P3,作為候選點;5.檢驗PO P3,若能形成矩形,則確定PO P3為四個普爾欽斑點,否則丟棄當 前幀圖像。其中步驟二的具體實施步驟為根據物理和幾何方法,可確定屏幕與采集圖像的一一對應關系,即屏幕四個角的 LED與人眼圖像中四個亮點相對應,視線方向與瞳孔中心相對應。因此根據這個對應關系, 就可通過采集的人眼圖像判定視線方向,如圖8所示,設P0、PU P2、P3為檢測到的四個普 爾欽斑點,Q為瞳孔中心,利用定比分點公式求出PO P3的對角線交點0的坐標,連結0Q, 0P0,0P1,0P2,0P3,0P0 0P3把由點PO P3連接成的矩形分割為四個區域,計算OQ處于 哪個區域,便可計算出視線方向。具體方法如下1.根據附圖3,用計算幾何的方法求PO P3的對角線交點0 :由三角形的面積公式和叉積的定義有<formula>formula see original document page 9</formula>其中^A/;,恥為三角形PtlP1P2的面積,^v3P2為三角形PqP3P2的面積。由定比分點的公式,可以求出0點的χ坐標為<formula>formula see original document page 9</formula>同理也可以求出0點的y坐標。2.連結00,0 0,0 1,0 2,0 3,則瞳孔中心0所在的區域可以根據下列關系求出區域0 :0Q落在OPO與OPl之間,對應視線方向為“上”區域1 :0Q落在OPl與0P2之間,對應視線方向為“右”區域2 =OQ落在0P2與0P3之間,對應視線方向為“下”區域3 =OQ落在0P3與OPO之間,對應視線方向為“左”本實施方式中,用戶視線方向確定后,再將用戶視線方向轉化為USB鼠標控制信 號通過USB線傳輸給計算機,實現人機交互。
權利要求
一種基于SOC的視線跟蹤人機交互方法,其特征在于該方法包括如下步驟(1)攝像頭將采集到的數字圖像輸入到SOC平臺,采用硬件邏輯模塊實現基于haar特征的Adaboost檢測算法,對所述數字圖像進行人眼區域的檢測;(2)根據檢測到的人眼區域,利用視線方向判別算法,判別出用戶視線,再將用戶視線方向轉化為鼠標控制信號通過USB傳輸給計算機,實現人機交互。
2.根據權利要求1所述的人機交互方法,其特征在于所述硬件邏輯模塊包括如下模 塊積分模塊,完成數字圖像的積分與平方積分的計算,并將計算結果存放在存儲器上;子 窗口掃描模塊,對整幀數字圖像子窗口的橫坐標和縱坐標按設定步長進行遍歷,得出待測 子窗口的坐標及長寬;子窗口處理模塊,判定待測子窗口是否為人眼子窗口 ;子窗口融合模塊,對判定出的所有人眼子窗口進行融合處理,即整合位置相近的窗口, 然后重新調整人眼窗口位置,確定人眼區域。
3.根據權利要求2所述的方法,其特征在于所述子窗口處理模塊是根據采用 ModestoCastrillon訓練的右眼分類器,運用Cascade級聯方法實現子窗口處理,具體步驟 包括首先提取右眼分類器的haar特征參數;將haar特征參數具體化,即將haar特征參數 與掃描后的子窗口大小進行匹配,再根據具體化后haar特征參數中矩形區域的位置讀取 積分模塊計算出的積分數據,最后運用Cascade級聯方法確定人眼子窗口。
4.根據權利要求3所述的方法,其特征在于所述運用Cascade級聯方法確定人眼子窗 口是將多個右眼弱分類器加權組成右眼強分類器,再將20級右眼強分類器串聯完成人眼 子窗口的確定,具體步驟包括首先根據每個右眼弱分類器中的haar特征參數及從積分模 塊中讀取的積分數據,計算出實際子窗口的haar特征值,再與當前右眼弱分類器的閾值進 行比較,確定此右眼弱分類器的權值,最后將這些右眼弱分類器的權值進行累加,再與右眼 強分類器的閾值做比較,如果大于此閾值,則通過此級右眼強分類器的驗證,進入下一級右 眼強分類器的判別,如果小于此閾值,則認為此子窗口為非人眼區域;當子窗口通過20級 右眼強分類器的驗證,則可確定為人眼子窗口。
5.根據權利要求1所述的人機交互方法,其特征在于所述視線方向判別算法是根據位 于計算機屏幕四個角上的四個LED紅外光源在人眼角膜上形成的四個反射亮點,即普爾欽 斑點,與瞳孔中心之間的幾何位置關系計算視線方向。
6.根據權利要求4所述的人機交互方法,其特征在于所述視線方向判別算法具體步驟 包括首先采用灰度投影方法定位瞳孔中心,在以瞳孔中心為中心,在其上下左右30個像 素的區域內搜索普爾欽斑點,計算瞳孔中心與所述四個反射亮點的關系,確定其視線方向。
7.一種實現權利要求1 6任一項所述人機交互方法的基于SOC的人機交互裝置,其 特征在于包括SOC平臺、用于采集人眼圖像的攝像頭、計算機、安裝在計算機顯示屏上四個 角且排列成矩形的四個LED,SOC平臺包括人眼區域檢測硬件邏輯模塊、處理器和存儲器; 所述攝像頭將采集到的數字圖像輸入到SOC平臺上的存儲器;計算機通過USB與SOC平臺 連接;人眼區域檢測硬件邏輯模塊完成人眼區域的檢測,處理器根據檢測出的人眼區域,結 合視線方向判別算法識別出用戶視線方向,將與用戶視線方向對應的控制信號轉化為鼠標 控制信號通過USB傳輸給計算機。
8.根據權利要求7所述的裝置,其特征在于所述計算機的顯示屏由兩條對角線分為四個區域,SOC平臺的處理器根據用戶眼睛所注視的區域,將用戶視線分為上、下、左、右四個 方向,模擬鼠標移動功能,作為用戶輸入的控制信息,并通過眨眼動作用來確認視線控制信 息、模擬鼠標單擊并輸入用戶確認信息。
9.根據權利要求8所述的裝置,其特征在于所述眨眼動作是將1 3秒的眨眼動作用 來發出確認命令信息。
全文摘要
本發明中公開了基于SOC的視線跟蹤人機交互方法及裝置。該方法包括攝像頭將采集到的數字圖像輸入到SOC平臺,采用硬件邏輯模塊實現基于haar特征的Adaboost檢測算法,對所述數字圖像進行人眼區域的檢測;根據檢測到的人眼區域,利用視線方向判別算法,判別出用戶視線,再將用戶視線方向轉化為鼠標控制信號通過USB傳輸給計算機,實現人機交互。所述裝置包括SOC平臺、用于采集人眼圖像的攝像頭、計算機、安裝在計算機顯示屏上四個角且排列成矩形的四個LED,SOC平臺包括人眼區域檢測硬件邏輯模塊、處理器和存儲器。本發明通過硬件實現人眼區域檢測、視線方向判別,最終實現人機交互,具有使用方便,準確度高的優點。
文檔編號G06K9/62GK101813976SQ201010123009
公開日2010年8月25日 申請日期2010年3月9日 優先權日2010年3月9日
發明者秦華標, 陳榮華 申請人:華南理工大學