本發(fā)明涉及人工智能技術(shù)領(lǐng)域,尤其涉及一種眼控人機(jī)交互系統(tǒng)及方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,操作命令也越來越多,功能也越來越強(qiáng)。隨著模式識別,如語音識別、漢字識別等輸入設(shè)備的發(fā)展,操作員和計(jì)算機(jī)在類似于自然語言或受限制的自然語言這一級上進(jìn)行交互成為可能。
視覺跟蹤技術(shù)利用視覺的變化代替人手在觸摸屏上的運(yùn)動(dòng),使人遠(yuǎn)離屏幕時(shí)仍可以定位屏幕上的任意區(qū)域,通過眼睛的運(yùn)動(dòng)使用觸摸屏,減少了許多步驟,加速以人為中心的智能化人機(jī)交互的發(fā)展與實(shí)現(xiàn),然而,傳統(tǒng)的視線跟蹤技術(shù)雖然跟蹤精度較高,但是價(jià)格昂貴,使用方法復(fù)雜,尤其是插入式的方法,不僅使人的活動(dòng)受到限制,而且給用戶帶來了很大的不舒適感,很難被大多數(shù)人接受,只適用于某些特殊場合。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供一種眼控人機(jī)交互系統(tǒng)。
本發(fā)明提供一種眼控人機(jī)交互系統(tǒng),包括圖像采集裝置及主機(jī),所述圖像采集裝置用于采集人臉部圖像信息并將采集到的人臉部圖像信息發(fā)送至所述主機(jī),所述主機(jī)包括眼特征提取模塊、瞳孔中心追蹤模塊、坐標(biāo)轉(zhuǎn)換模塊及鼠標(biāo)模擬模塊,其中,所述眼特征提取模塊用于接收圖像采集裝置采集的人臉部圖像信息并根據(jù)接收到的人臉部圖像信息提取出眼部特征信息,所述瞳孔中心追蹤模塊用于接收眼部特征信息并根據(jù)接收到眼部特征信息追蹤瞳孔中心并確定瞳孔中心坐標(biāo),所述坐標(biāo)轉(zhuǎn)換模塊用于接收瞳孔中心坐標(biāo)并將接收到的瞳孔中心坐標(biāo)映射成屏幕窗口中的坐標(biāo),所述鼠標(biāo)模擬模塊用于接收成屏幕窗口中的坐標(biāo),并將接收到的屏幕窗口中的坐標(biāo)轉(zhuǎn)成鼠標(biāo)指令。
進(jìn)一步地,所述圖像采集裝置運(yùn)用opencv對臉部圖像信息進(jìn)行采集,運(yùn)用opencv對臉部圖像信息進(jìn)行采集的過程包括:與想要捕獲的攝像頭的接口對應(yīng);以及接收視頻的每一幀圖像,并循環(huán)顯示。
進(jìn)一步地,所述眼特征提取模塊采用roi提取的方式提取接收到的人臉部圖像信息中的眼部特征信息,采用roi提取的方式提取接收到的人臉部圖像信息中的眼部特征信息的過程包括:接收需要圈出的roi區(qū)域;對攝像頭采集到的源圖像做roi處理;以及載入并顯示該roi區(qū)域。
進(jìn)一步地,所述瞳孔中心追蹤模塊利用霍夫變換追蹤瞳孔中心并定位瞳孔中心坐標(biāo),利用霍夫變換追蹤瞳孔中心并定位瞳孔中心坐標(biāo)的過程包括:將采集到的眼部roi區(qū)域進(jìn)行放大;將放大之后的roi區(qū)域轉(zhuǎn)換為灰度圖;對灰度圖進(jìn)行高斯濾波去噪,并進(jìn)行顯示;對作完濾波處理的區(qū)域進(jìn)行canny邊緣檢測;以及進(jìn)行霍夫圓變換,算出圓的中心坐標(biāo)。
進(jìn)一步地,所述坐標(biāo)轉(zhuǎn)換模塊將接收到的人眼瞳孔中心坐標(biāo)映射成屏幕窗口中的坐標(biāo)的方法包括:選取屏幕窗口的四個(gè)基本點(diǎn)并依次對這四個(gè)點(diǎn)的瞳孔中心坐標(biāo)進(jìn)行采集;確定屏幕窗口四個(gè)點(diǎn)在屏幕中的實(shí)際位置;以及完成瞳孔中心坐標(biāo)到屏幕窗口坐標(biāo)的映射轉(zhuǎn)換。
本發(fā)明還提供一種眼控人機(jī)交互的方法,包括以下步驟:
采集人臉部圖像信息;
提取出眼部特征信息;
追蹤瞳孔中心并確定瞳孔中心坐標(biāo);
將瞳孔中心坐標(biāo)映射成屏幕窗口中的坐標(biāo);以及
將屏幕窗口中的坐標(biāo)轉(zhuǎn)成鼠標(biāo)指令。
進(jìn)一步地,所述步驟“采集人臉部圖像信息”包括:與想要捕獲的攝像頭的接口對應(yīng);以及接收視頻的每一幀圖像,并循環(huán)顯示。
進(jìn)一步地,所述步驟“提取出眼部特征信息”包括:接收需要圈出的roi區(qū)域;對采集到的源圖像做roi處理;載入并顯示該roi區(qū)域。
進(jìn)一步地,所述步驟“追蹤瞳孔中心并確定瞳孔中心坐標(biāo)”包括:將采集到的眼部roi區(qū)域進(jìn)行放大;將放大之后的roi區(qū)域轉(zhuǎn)換為灰度圖;對灰度圖進(jìn)行高斯濾波去噪;對作完濾波處理的區(qū)域進(jìn)行canny邊緣檢測;以及進(jìn)行霍夫圓變換,算出圓的中心坐標(biāo)。
進(jìn)一步地,所述步驟“將瞳孔中心坐標(biāo)映射成屏幕窗口中的坐標(biāo)”包括:選取屏幕窗口的四個(gè)基本點(diǎn)并依次對這四個(gè)點(diǎn)的瞳孔中心坐標(biāo)進(jìn)行采集;定屏幕窗口四個(gè)點(diǎn)在屏幕中的實(shí)際位置;以及完成瞳孔中心坐標(biāo)到屏幕窗口坐標(biāo)的映射轉(zhuǎn)換。
相較于現(xiàn)有技術(shù),本發(fā)明的眼控人機(jī)交互系統(tǒng)及方法具有以下優(yōu)點(diǎn):
本發(fā)明的眼控人機(jī)交互系統(tǒng)及方法,圖像采集裝置對操作者的眼睛進(jìn)行拍攝并采集到圖像,然后對圖像進(jìn)行一系列處理,提取出眼部特征,接下來進(jìn)行瞳孔的檢測及其跟蹤,實(shí)現(xiàn)瞳孔中心的跟蹤定位,利用檢測到的瞳孔中心的坐標(biāo),來進(jìn)行坐標(biāo)轉(zhuǎn)換,實(shí)現(xiàn)瞳孔中心坐標(biāo)到電腦屏幕的映射,最后通過鼠標(biāo)模擬來完成對計(jì)算機(jī)的操作,安裝容易、操作簡單、價(jià)格低廉且能夠幫助殘疾人獲得更多的學(xué)習(xí)機(jī)會。
附圖說明
圖1為本發(fā)明的眼控人機(jī)交互系統(tǒng)的結(jié)構(gòu)示意圖。
圖2為本發(fā)明的眼控人機(jī)交互方法的流程圖。
圖3為圖2中的步驟s1的流程圖。
圖4為圖2中的步驟s2的流程圖。
圖5為圖2中的步驟s3的流程圖。
圖6為圖2中的步驟s4的流程圖。
具體實(shí)施方式
下面將對本發(fā)明實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施方式僅僅是本發(fā)明一部分實(shí)施方式,而不是全部的實(shí)施方式?;诒景l(fā)明中的實(shí)施方式,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施方式,都屬于本發(fā)明保護(hù)的范圍。
請參閱圖1,本發(fā)明實(shí)施例提供一種眼控人機(jī)交互系統(tǒng)包括圖像采集裝置1及主機(jī)2。其中,圖像采集裝置1用于采集人臉部圖像信息并將采集到的人臉部圖像信息發(fā)送至主機(jī)2,主機(jī)2包括眼特征提取模塊22、瞳孔中心追蹤模塊23、坐標(biāo)轉(zhuǎn)換模塊24及鼠標(biāo)模擬模塊25。其中,眼特征提取模塊22用于接收圖像采集裝置1采集的人臉部圖像信息并根據(jù)接收到的人臉部圖像信息提取出眼部特征信息,瞳孔中心追蹤模塊23用于接收眼部特征信息并根據(jù)接收到眼部特征信息追蹤瞳孔中心并確定瞳孔中心坐標(biāo),坐標(biāo)轉(zhuǎn)換模塊24用于接收瞳孔中心坐標(biāo)并將接收到的瞳孔中心坐標(biāo)映射成屏幕窗口中的坐標(biāo),鼠標(biāo)模擬模塊25用于接收成屏幕窗口中的坐標(biāo),并將接收到的屏幕窗口中的坐標(biāo)轉(zhuǎn)成鼠標(biāo)指令,進(jìn)而完成對主機(jī)2的操作,實(shí)現(xiàn)人機(jī)交互。
在本實(shí)施例中,圖像采集裝置1包括usb免驅(qū)攝像頭模組,該usb免驅(qū)攝像頭模組具體為21度鏡頭角度、30w像素并貼上850nm紅外光濾波片濾去可見光及6個(gè)紅外led燈的usb免驅(qū)攝像頭模組。該攝像頭幀率為30幀/秒,采集到的一幀圖片大小為640*480,位深為24位,調(diào)焦模式為手動(dòng)調(diào)焦。該圖像采集裝置1運(yùn)用opencv對臉部圖像信息進(jìn)行采集,具體應(yīng)用opencv中的一些基本類和函數(shù),包括:(1)定義一個(gè)videocapture類,并實(shí)例化,使之與想要捕獲的攝像頭的接口對應(yīng);(2)定義一個(gè)mat類對象,接收視頻的每一幀圖像,并循環(huán)顯示,同時(shí)用waitkey函數(shù)控制幀率。需要說明的是,videocapture類是opencv2.x版本中新增的一個(gè)類,提供了從攝像機(jī)或視頻文件捕獲視頻的c++接口,作用是從視頻文件或從攝像頭捕獲視頻幀,并顯示出來。imread及imshow函數(shù):都有兩個(gè)參數(shù),第一個(gè)參數(shù)為窗口名,第二個(gè)參數(shù)為顯示的圖片(可為路徑或一個(gè)mat類對象)。兩個(gè)函數(shù)的功能分別是載入、顯示一副圖像。waitkey函數(shù):為一個(gè)延時(shí)函數(shù),用于調(diào)整視頻幀率,使視頻能夠流暢顯示。
優(yōu)選地,圖像采集裝置1還包括眼鏡、膠帶及連接支架例如鐵絲,連接支架通過膠帶與眼鏡連接并位于眼鏡的正前方,usb免驅(qū)攝像頭模組通過膠帶與連接支架連接,以方便采集用戶的臉部圖形信息。
在本實(shí)施例中,眼特征提取模塊22采用roi提取的方式提取接收到的人臉部圖像信息中的眼部特征信息。roi(regionofinterest),感興趣區(qū)域。機(jī)器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,roi。在halcon、opencv、matlab等機(jī)器視覺軟件上常用到各種算子(operator)和函數(shù)來求得感興趣區(qū)域roi,并進(jìn)行圖像的下一步處理。在圖像處理領(lǐng)域,roi是從圖像中選擇的一個(gè)圖像區(qū)域,這個(gè)區(qū)域是圖像分析所關(guān)注的重點(diǎn),圈定該區(qū)域以便進(jìn)行進(jìn)一步處理。使用roi圈定可以減少圖像處理時(shí)間,增加精度。定義roi區(qū)域有兩種方法:一種是使用表示矩形區(qū)域的rect,它指定矩形的左上角坐標(biāo)和矩形的長和寬,從而定義一個(gè)矩形,另一種定義roi的方式是指定感興趣的行或列的范圍。本系統(tǒng)在硬件設(shè)計(jì)時(shí),固定了攝像頭與頭部的相對位置,所以即使頭部有輕微的擾動(dòng),眼睛與攝像頭的相對位置是不變的,也就是說,我們只需要從一副圖像幀中,比較準(zhǔn)確的圈出我們想要的眼睛部分區(qū)域即可。當(dāng)這一部分參數(shù)固定后,以后頭部再怎么擾動(dòng),我們都能夠準(zhǔn)確只定位到眼睛部位。這里我們首先需要知道攝像頭捕獲的圖像幀的大小,經(jīng)過拍照測試,攝像頭捕獲的圖像大小為640*480。下一步要做的就是眼部提取了。這里有四個(gè)參數(shù),分別是是左上角的原點(diǎn)坐標(biāo)x,y、矩形區(qū)域的寬和高width、height。實(shí)現(xiàn)此方法的基本流程是:(1)定義一個(gè)mat類的imgroi對象接收需要圈出的roi區(qū)域;(2)對攝像頭采集到的源圖像做roi處理;(3)載入并顯示該roi區(qū)域。
瞳孔中心追蹤模塊23利用霍夫變換追蹤瞳孔中心并定位瞳孔中心坐標(biāo)。具體地,霍夫變換(houghtransform),是圖像處理中的一種特征提取技術(shù),該過程在一個(gè)參數(shù)空間中通過計(jì)算累計(jì)結(jié)果的局部最大值得到一個(gè)符合該特定形狀的集合作為霍夫變換結(jié)果?;舴蜃儞Q在opencv中分為霍夫線變換和霍夫圓變換兩種,這里用到的是霍夫圓變換?;舴驁A變換調(diào)用的是houghcircles()函數(shù),該函數(shù)的定義如下:c++:voidhoughcircles(inputarrayimage,outputarraycircles,intmethod,doubledp,doublemindist,doubleparam1=100,doublepara2m=100,intminradius=0,intmaxradius=0);可以看到該函數(shù)一共有九個(gè)參數(shù),這里選擇比較重要的幾個(gè)參數(shù)作簡要解釋。第二個(gè)參數(shù),outputarray類型的circles,經(jīng)過調(diào)用houghcircles函數(shù)后,此參數(shù)存儲了檢測到的圓的輸出矢量,每個(gè)矢量由包含了3個(gè)元素的浮點(diǎn)矢量(x,y,radius)表示。分別表示圓的中心坐標(biāo)和半徑大小。第五個(gè)參數(shù),double類型的mindist,為霍夫變換檢測到的圓的圓心之間的最小距離,即讓算法能明顯區(qū)分的兩個(gè)不同圓之間的最小距離。這個(gè)參數(shù)如果設(shè)置的太小,那么多個(gè)相鄰的圓可能被錯(cuò)誤地檢測成一個(gè)重合的圓。反之,這個(gè)參數(shù)設(shè)置太大,某些圓就不能被檢測出來。第七個(gè)參數(shù),double類型的param2。對當(dāng)前唯一方法霍夫梯度法,它表示在檢測階段圓心的累加器閾值。它越小,就越可以檢測到更多根本不存在的圓,而它越大的話,能通過檢測的圓就越接近完美的圓形了。第八、九個(gè)參數(shù),分別表示檢測出的圓半徑的最小值和最大值。實(shí)現(xiàn)此方法的基本流程是:(1)將采集到的眼部roi區(qū)域進(jìn)行放大,放大倍數(shù)選擇兩倍,由于攝像頭只有30w像素,若放大倍數(shù)過大,則該區(qū)域會非常模糊,對后續(xù)處理也非常不利,所以選擇放大兩倍,經(jīng)測試,在視覺上與檢測效果上均能滿足要求;(2)運(yùn)用cvtcolor()函數(shù)對放大之后的roi區(qū)域進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換為灰度圖,并進(jìn)行顯示,查看效果;(3)運(yùn)用gaussianblur()函數(shù)對灰度圖進(jìn)行高斯濾波去噪,并進(jìn)行顯示,查看效果,根據(jù)效果來調(diào)整函數(shù)的參數(shù);(4)運(yùn)用canny()函數(shù)對作完濾波處理的區(qū)域進(jìn)行canny邊緣檢測,并進(jìn)行顯示,查看效果;(5)圖像預(yù)處理完畢后,接下來進(jìn)行霍夫圓變換,然后算出圓的中心坐標(biāo),即計(jì)算出瞳孔中心坐標(biāo)。
坐標(biāo)轉(zhuǎn)換模塊24將接收到的人眼瞳孔中心坐標(biāo)映射成屏幕窗口中的坐標(biāo)的方法為:(1)選取屏幕窗口的四個(gè)基本點(diǎn),然后依次對這四個(gè)點(diǎn)的瞳孔中心坐標(biāo)進(jìn)行采集,并記錄下來;(2)確定屏幕窗口四個(gè)點(diǎn)在屏幕中的實(shí)際位置,同時(shí)也記錄下來;(3)完成瞳孔中心坐標(biāo)到屏幕窗口坐標(biāo)的映射轉(zhuǎn)換。
請參閱圖2,本發(fā)明還提供一種人機(jī)交互的方法,包括以下步驟:
步驟s1:采集人臉部圖像信息;
步驟s2:提取出眼部特征信息;
步驟s3:追蹤瞳孔中心并確定瞳孔中心坐標(biāo);
步驟s4:將瞳孔中心坐標(biāo)映射成屏幕窗口中的坐標(biāo);以及
步驟s5:將屏幕窗口中的坐標(biāo)轉(zhuǎn)成鼠標(biāo)指令。
請參閱圖3,步驟s1利用opencv對臉部圖像信息進(jìn)行采集,具體應(yīng)用opencv中的一些基本類和函數(shù),該步驟包括以下內(nèi)容:
步驟s11:與想要捕獲的攝像頭的接口對應(yīng)。該過程首先定義一個(gè)videocapture類,并實(shí)例化,使之與想要捕獲的攝像頭的接口對應(yīng)、
步驟s12:接收視頻的每一幀圖像,并循環(huán)顯示。該過程首先需要定義一個(gè)mat類對象,以接收視頻的每一幀圖像,并循環(huán)顯示。
請參閱圖4,步驟s2采用roi提取的方式提取接收到的人臉部圖像信息中的眼部特征信息,步驟s2具體包括以下內(nèi)容:
步驟s21:對象接收需要圈出的roi區(qū)域。該過程需要定義一個(gè)mat類的imgroi對象接收需要圈出的roi區(qū)域。
步驟s22:對采集到的源圖像做roi處理。
步驟s23:載入并顯示該roi區(qū)域。
請參閱圖5,步驟s3利用霍夫變換追蹤瞳孔中心并定位瞳孔中心,步驟s3具體包括以下內(nèi)容:
步驟s31:將采集到的眼部roi區(qū)域進(jìn)行放大。
步驟s32:將放大之后的roi區(qū)域轉(zhuǎn)換為灰度圖。該過程運(yùn)用cvtcolor()函數(shù)。
步驟s33:對灰度圖進(jìn)行高斯濾波去噪。該過程運(yùn)用gaussianblur()函數(shù)。
步驟s34:對作完濾波處理的區(qū)域進(jìn)行canny邊緣檢測。該過程運(yùn)用canny()函數(shù)。
步驟s35:進(jìn)行霍夫圓變換,算出圓的中心坐標(biāo)。
請參閱圖6,步驟s4具體內(nèi)容包括以下步驟:
步驟s41:選取屏幕窗口的四個(gè)基本點(diǎn)并依次對這四個(gè)點(diǎn)的瞳孔中心坐標(biāo)進(jìn)行采集;
步驟s42:定屏幕窗口四個(gè)點(diǎn)在屏幕中的實(shí)際位置;以及
步驟s43:完成瞳孔中心坐標(biāo)到屏幕窗口坐標(biāo)的映射轉(zhuǎn)換。
本發(fā)明的眼控人機(jī)交互系統(tǒng)及方法,圖像采集裝置對操作者的眼睛進(jìn)行拍攝并采集到圖像,然后對圖像進(jìn)行一系列處理,提取出眼部特征,接下來進(jìn)行瞳孔的檢測及其跟蹤,實(shí)現(xiàn)瞳孔中心的跟蹤定位,利用檢測到的瞳孔中心的坐標(biāo),來進(jìn)行坐標(biāo)轉(zhuǎn)換,實(shí)現(xiàn)瞳孔中心坐標(biāo)到電腦屏幕的映射,最后通過鼠標(biāo)模擬來完成對計(jì)算機(jī)的操作,安裝容易、操作簡單、價(jià)格低廉且能夠幫助殘疾人獲得更多的學(xué)習(xí)機(jī)會。
以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。