王澤云,陳耀忠,柳仁地,盛黨紅,張閏楚
(1.南京工程學院自動化學院,江蘇 南京 211167) (2.北方信息控制研究院集團有限公司,江蘇 南京 211153)
近年來,在硬件、軟件和人工智能等多領域的共同助力下,眼動追蹤技術發展神速,成為眾科技巨頭眼中下一個競逐目標。該技術是通過軟件算法以及機械、電子、光學等各種檢測手段獲取受試者當前視線方向的技術,廣泛應用于人機交互、輔助駕駛、心理研究、虛擬現實和軍事等多個領域[1]。為了提高殘疾人士的生活質量,提高部分高風險作業的工作安全性,本文提出了一種眼控機械臂的構想。
眼控機械臂將眼動追蹤技術與機械臂有機結合起來,只要通過人的眼球運動就能控制其運動,并完成一些相應的動作。對于這種機械臂,最重要的就是眼動追蹤算法。
進行眼動追蹤,首先需要通過攝像頭這一設備捕捉連續的圖像。本文選用60 Hz攝像頭,并將捕捉到的圖像轉換成RGB通道格式。考慮到設備的成本問題,所以采用每n幀一次比較方式替代逐幀比較方式。
由于一般的圖像中很難保證沒有影響識別的噪聲,同時眼動追蹤算法最終需要識別的是顏色較淺的眼白上的黑色瞳孔部分,所以首先利用灰度化來消除多余的顏色帶來的干擾。圖像灰度化的方法有多種,例如分量法、最大值法、平均值法和加權平均法。實驗發現,分量法中G分量下的灰度化圖像效果對于眼動追蹤的后續處理最有效。
分量法是將RGB彩色圖像分解成R通道、G通道和B通道的3張圖像,可根據應用需要選取一種灰度化圖像,其公式表述如下:
(1)
式中:R(i,j),G(i,j),B(i,j)分別為R通道、G通道和B通道灰度值,Gray1(i,j),Gray2(i,j),Gray3(i,j)為灰度圖像中不同通道的灰度值;(i,j)為圖像坐標。
最大值法是將RGB彩色圖像中R通道、G通道和B通道灰度圖像中亮度的最大值作為灰度圖像的灰度值Gray(i,j),其公式表述如下:
Gray(i,j)=max{R(i,j),G(i,j),B(i,j)}
(2)
平均值法是將RGB彩色圖像中R通道、G通道和B通道灰度值的平均值作為灰度圖像的灰度值,其公式表述如下:

(3)
加權平均法根據重要性及其他指標,將R通道、G通道和B通道的灰度值以不同的權值進行加權平均[2]。按式(3)對RGB彩色圖像的R通道、G通道、B通道的分量進行加權平均就能夠得到合理的灰度圖像:
Gray(i,j)=0.299R(i,j)+0.578G(i,j)+0.144B(i,j)
(4)
分量法中G分量下的灰度化圖具體效果如圖1所示。

圖1 灰度化圖像
人臉檢測需要用到Haar特征和Adaboost分類器。首先進行Haar特征的運算,由于不知道人臉位于圖像中的哪個位置[3],所以需要使用Haar特征進行遍歷,這就導致運算量非常大,因此采用積分圖的辦法提高運算效率。Haar特征積分圖如圖2所示。

圖2 Haar特征積分圖
假設特征值為λ:
λ=(p1-p2-p3+p4)·q
(5)
式中:pn(n=1,2,3,4)是原圖像i點左上角方向所有像素的和;q為圖像內矩形特征數量。
有了特征之后就使用Adaboost分類器進行分類。
1)對訓練數據的權值分布進行初始化操作。為每一個訓練樣本都先賦予相同的權值:wm=1/N,其中wm為單個訓練樣本初始權值(m=1,2,…,N),N為樣本總數。那么訓練樣本集的初始權值分布D1(m)為:
(6)
2)將當前誤差率最低的一個弱分類器h作為第l個基本分類器Hl,并計算弱分類器hl,該弱分類器在第t輪訓練樣本集權值分布Dt上的誤差率et為:
(7)
式中:(xm,ym)為人臉檢測過程中所使用到的圖像像素點的坐標,m=1,2,…,N;t為迭代輪數;P為二項分布函數;I為指示函數;wtm為第t輪單個訓練樣本權值。
3)計算弱分類器在最終分類器中所占的權重αt:
(8)
4)刷新訓練樣本的權值分布Dt+1:
(9)

5)按照弱分類器的權重αt組合各個弱分類器,有:
(10)
式中:f(x)為弱分類器組合函數;T為迭代總輪數。最終得到強分類器Hfinal:
(11)
由此通過Haar特征和Adaboost分類器完成對人臉區域的檢測,并用方框框出人臉區域,實際應用的效果如圖3所示。

圖3 人臉檢測
眼球區域的粗略提取是根據三庭五眼的原則完成的[4]。如圖4所示,假設臉部圖像的寬為wI,高為hI,左右眼球區域的寬、高分別為wE,hE。

圖4 眼球區域粗略萃取示意圖
1)估算眼球區域的寬wE和高wE:
(12)
(13)
2)估算左右眼左上角像素點的位置(如圖4中較小方框所示):
(14)
(15)
(16)
式中:yL和yR分別為左右眼左上角像素點的縱坐標;xL和xR分別為左右眼左上角像素點的橫坐標。
1.4節已經確定了人眼可能所在的區域,接下來只需要在兩個較小區域內進行處理就能尋找到眼球中心。圓形對象的中心可以通過對圖像梯度矢量場的分析來確定[5]。
圖5所示為眼球中心梯度矢量場,通過計算圖中任意一點Xi與一個可能的圓心c的位移矢量di和Xi點上的梯度矢量gi之間的點積來得到圖像的特征量。

圖5 眼球中心梯度矢量場
(17)
為了獲取所有像素點的等權值,式(17)中位移向量di被縮放到單位長度。
對于一個圖像的較佳中心c*可以用下式表示:
(18)
接下來通過式(19)計算偏導數以獲取梯度向量gi:
gi=(?I(xi,yi)/?xi,?I(xi,yi)/?yi)T
(19)
式中:I(xi,yi)為梯度函數。
對每個可能的眼球中心進行質量限制,提高精確度,得到最佳中心c**:
(20)
式中:wc為輸入圖像經過平滑處理后在(cx,cy)位置上灰度值的取反,其中(cx,cy)為最佳中心的坐標。
根據最大值對目標函數設定閾值進行二值化處理,搜索像素值為1的連通區域,并記錄每塊區域像素點的個數,記為n,判斷n是否大于某一閾值。當連通區域中像素個數n小于該閾值時,則認為該連通區域不足以描述人眼的特征[6],將該區域刪除;只有當n大于該閾值時才認為該連通區域為可能的人眼區域,并對其進行處理。在該連通區域內選擇3行3列像素值相加,規定最小的像素塊中心即為瞳孔所在。
這種眼球中心定位的方法具體實驗效果如圖6所示。

圖6 眼球中心定位實驗效果
最后得到從眼球中心位置移動距離到目光移動距離的放大倍數。
在繪制眼球移動軌跡之前,必須先確定眼球中心位置和屏幕上目光聚焦位置的對應關系。首先采用參數整定的方法,即使用標準大小的圖像,每次目光移動到目標點的時候進行一次記錄,記錄的數據見表1。

表1 眼動追蹤目標點坐標
最后使用Pillow繪制出眼球移動的軌跡。
所有眼動追蹤過程中眼球運動軌跡的坐標都是在二維平面上,而眼控機械臂的運動是在三維空間中進行的,所以需要先將二維坐標變換為三維坐標。
1)將屏幕上的某個坐標(x,y),使用glReadPixels讀取該位置的深度z。
2)將屏幕二維坐標變換到NDC(歸一化的設備坐標),將坐標(x,y)變換到(-1,1),將z值從(0,1)變換到(-1,1)。
3)添加齊次坐標p:
p=(x,y,z,w)
(21)
式中:x,y,z為笛卡爾空間坐標系中的維度向量;w為投影空間中一個新增的分量,其會影響投影圖片大小。
4)執行逆變換,公式表述如下:
p=m-1v-1
(22)
式中:v,m分別為對應視圖、模型的變換矩陣。
5)采用透視除法,除去齊次坐標:
(23)
式中:u為獲得符合透視投影規則的三維坐標。
第1節介紹的眼動追蹤算法是在中心控制單元中完成的,最終機械臂的運動是通過對關節上舵機的控制完成的。5個舵機控制機械臂在空間中的位置,1個舵機控制機械夾爪的張開和閉合[7]。
中心控制單元在完成眼動追蹤之后,會確定出人眼球在空間中所看向的坐標點,此時中心控制單元會傳遞一組舵機參數給機械臂,控制其位置的改變。用1×5的矩陣表示這組參數,記為A:
A=(a1,a2,a3,a4,a5)
(24)
其中
舵機兩邊的轉動角度一共是180°,這里將其細分為1 500份,一份相當于0.12°,用B表示5個舵機分別轉動的角度:
B=(0.12a1,0.12,a2,0.12a3,0.12a4,0.12a5)
(25)
機械臂接收到轉動角度參數之后,5個舵機會轉動相應的角度以到達空間中眼球看向的位置。
眼球的運動只能夠控制機械臂在空間中位置的改變,而無法控制機械夾爪的張開和閉合。本文提出了一種腦電波的控制方式,通過腦電波傳感器上的干電極感應大腦皮層上微弱的電壓變化,進行差分放大、濾波、數模轉換后將生物電信號變成腦電波的原始數據。中心控制單元通過分析數據控制機械夾爪的舵機以實現爪子的張開、閉合。
眼控機械臂實際工作效果如圖7所示。

圖7 工作中的眼控機械臂
眼控機械臂通過眼球和腦電波實現控制,眼球的運動負責機械臂在空間中的位置變換,腦電波的變化控制機械夾爪的張閉動作[8]。眼控機械臂的機械夾爪前端有一個攝像頭,用來跟蹤機械夾爪的視覺,同時能夠輔助實現較為精準的物品夾取。
眼控機械臂具體的工作流程如下:
1)通過人眼球尋找需要夾取的物體,電腦上的攝像頭(眼控機械臂的底座上也有一個同樣捕捉人眼球運動軌跡的攝像頭)捕捉人眼球的運動軌跡并最終確定待夾取物品。
2)將人眼球運動軌跡的二維坐標通過投影轉換成空間中的三維坐標。
3)眼控機械臂接收到中心控制單元傳遞過來的一組參數后,5個舵機分別轉動指定的角度,移動到待抓取物品的上方。
4)腦電波傳感器通過干電極感應微弱電壓變化,并將經過放大濾波轉換后的原始數據傳給中心控制單元,最后中心控制單元控制機械夾爪的舵機實現夾爪的張開和閉合以完成對物體的夾取。
根據本文描述的方法,可以構建一種在自然光的照射下,分辨率較低時也能正常工作并且成本較低的眼動追蹤系統。實驗證明,該眼動追蹤算法的準確性、快速性以及魯棒性都較好。但是該系統有個缺陷,就是默認了瞳孔在圖像中所表現出來的圖形都是圓形,而當其表現出橢圓形或其他非圓形時,精度可能會有較大的下降。
在實際應用中,可以將這種眼動追蹤算法與機械臂結合起來,通過眼球的運動控制機械臂的運動并完成一些相應的動作,能夠在一定程度上提高殘疾人士的生活質量,具有較高的社會意義和研究價值。