本發(fā)明涉及一種眼球識(shí)別多媒體播放器及其實(shí)現(xiàn)方法,屬于電子技術(shù)領(lǐng)域。
背景技術(shù):
眼球追蹤技術(shù)最熱門的載體是手機(jī),三星品牌和lg品牌都推出了搭載有眼球追蹤技術(shù)的產(chǎn)品。比如,三星上一代旗艦機(jī)三星galaxysiii就可以通過檢測(cè)用戶眼睛狀態(tài)來(lái)控制鎖屏?xí)r間,只要檢測(cè)到用戶正盯著手機(jī)屏幕,即使用戶沒有進(jìn)行任何操作,屏幕也不會(huì)關(guān)閉,而三星galaxysiii的發(fā)布,則將這一功能進(jìn)一步延伸為可通過眼球來(lái)控制頁(yè)面上下滾動(dòng)。
另一方面,2013年一家瑞典公司tobii計(jì)劃推出一款電腦外設(shè)設(shè)備,rex,它可以讓舊電腦也能接入眼球追蹤,只要把它放置在屏幕頂部,再通過usb接口接入,用戶就能利用視線來(lái)控制電腦完成像操控ie頁(yè)面滾動(dòng)、使用windows8地圖應(yīng)用等部分操作。
除了電腦和手機(jī),汽車也是人們最早接觸到眼球追蹤技術(shù)的地方,通用和豐田都已經(jīng)在這方面有了不小的投入。它能實(shí)時(shí)模擬駕駛員的視野,提醒駕駛員視線盲區(qū)可能存在的危險(xiǎn);當(dāng)駕駛員眼皮下垂(犯困)或眨眼次數(shù)減少(走神)等,它還會(huì)發(fā)出聲音提醒。
雖然眼睛動(dòng)作識(shí)別已經(jīng)開始商用,但是可以發(fā)現(xiàn)眼睛動(dòng)作應(yīng)用都停留在基礎(chǔ),沒有更深入的挖掘眼部信息。
視覺跟蹤技術(shù)自1986年開始立項(xiàng)研究,目前國(guó)內(nèi)的相關(guān)理論和技術(shù)也有了長(zhǎng)足的發(fā)展,中國(guó)科學(xué)院、浙江大學(xué)、武漢大學(xué)等高校和研究所在目標(biāo)跟蹤、運(yùn)動(dòng)行人的檢測(cè)識(shí)別方面取得了一定的成果。但是在眼球追蹤這方面也僅僅局限于眼睛檢測(cè),未對(duì)眼球動(dòng)作識(shí)別方面做出具有價(jià)值的討論。
雖然利用虹膜識(shí)別的方法實(shí)現(xiàn)眼球追蹤技術(shù)已經(jīng)較為成熟,但準(zhǔn)確率不高,速度較慢。利用已有的lbp算法進(jìn)行pca特征降維、svm分類識(shí)別,雖然速度較快但準(zhǔn)確度欠缺,然而利用haar算法實(shí)現(xiàn)haar-like特征、adaboost算法精確度高但速度較慢。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種提高準(zhǔn)確度的計(jì)量方法,實(shí)現(xiàn)基于人臉檢測(cè)、眼球識(shí)別以及唇形識(shí)別,通過攝像頭獲取人體圖像,利用分類器先后獲得人臉、人眼位置,經(jīng)過濾波處理,二值化圖像,邊緣檢測(cè)等處理方法獲得眼眶、虹膜位置信息,根據(jù)特征匹配達(dá)到動(dòng)作檢測(cè)的目的,進(jìn)而產(chǎn)生動(dòng)作信號(hào)由ui反饋給使用者的發(fā)明目的。
為解決以上問題,本發(fā)明采用以下技術(shù)方案:一種眼球識(shí)別多媒體播放器,包括顯示器、半透鏡、攝像頭,所述顯示器與半透鏡相結(jié)合,采用木質(zhì)結(jié)構(gòu)固定半透鏡緊貼在顯示器前方,半透鏡貼有單向透視反光薄膜,顯示器通過usb接口連接攝像頭。
一種眼球識(shí)別多媒體播放器的實(shí)現(xiàn)方法,所述實(shí)現(xiàn)方法是利用開源的人臉、人眼庫(kù),運(yùn)用lbp算法、haar算法進(jìn)行機(jī)器學(xué)習(xí),生成能夠使用的lbp正臉識(shí)別分類器和haar左右眼識(shí)別分類器,利用lbp正臉識(shí)別分類器和haar左右眼識(shí)別分類器來(lái)實(shí)現(xiàn)多媒體播放器的眼球識(shí)別功能。
進(jìn)一步,所述實(shí)現(xiàn)方法包括以下步驟:
步驟s2,輸入由攝像頭獲得的分辨率600*800的rgb人臉圖像;
步驟s3,計(jì)算輸入圖像的灰度圖,將輸入的rgb圖像轉(zhuǎn)換為灰度圖像,提取輸入圖像矩陣中的綠色通道像素信息作為灰度圖像grayimg的初始值;
步驟s4,檢測(cè)灰度圖像寬度為320,灰度圖像的放縮比例為800/灰度圖像寬度,灰度圖像高度為600/灰度圖像的放縮比例,將灰度圖像grayimg按比例進(jìn)行縮放,縮放后的灰度圖像的分辨率為240*320;
步驟s5,將灰度圖像grayimg進(jìn)行直方圖均勻化處理,獲得預(yù)處理的人臉圖像preprocessedimage,需要對(duì)圖像進(jìn)行雙邊濾波。
進(jìn)一步,所述實(shí)現(xiàn)方法還包括以下步驟:
步驟s6,設(shè)置檢測(cè)參數(shù):最小特征尺度minfeaturesize=size(30,30)、檢測(cè)范圍因子searchscalefactor=1.1f、最小臨近因子minneighbors=4、檢測(cè)方式標(biāo)識(shí)位fiag=cascade_find_biggest_object︱cascade_do_rough_search,使得檢測(cè)檢測(cè)結(jié)果為所檢測(cè)到目標(biāo)中最大的;加載提前訓(xùn)練好的lbp人臉檢測(cè)器,在預(yù)處理過后的圖像中獲取到目標(biāo)人臉targetface的位置信息(x,y,width,height);
步驟s8,對(duì)目標(biāo)人臉targetface按照計(jì)算比例進(jìn)行坐標(biāo)逆向變換,計(jì)算變化過后的x、y坐標(biāo)及width、height,在原始圖中將人臉圖像儲(chǔ)存在新的內(nèi)存區(qū)域中;
步驟s9,根據(jù)坐標(biāo)變換后得到的目標(biāo)人臉信息targetface,在原輸入圖像中提取人臉信息儲(chǔ)存為人臉圖像faceimage。
進(jìn)一步,所述實(shí)現(xiàn)方法還包括以下步驟:
步驟s10,提取輸入圖像矩陣中的綠色通道像素信息作為人臉圖像faceimage的灰度圖像初始值,將人臉圖像faceimage的灰度圖像進(jìn)行直方圖均勻化處理,計(jì)算人臉圖像faceimage的灰度圖獲得預(yù)處理的人臉圖像preprocessedface;
步驟s11,初始化參數(shù)eye_sx=0.16;eye_sy=0.26;eye_sw=0.30;eye_sh=0.28,即初始化人眼位置估計(jì)比例:x、y坐標(biāo)、寬度、高度,在預(yù)處理的人臉圖像preprocessedface計(jì)算人眼位置:x、y坐標(biāo)、寬度、高度leftx、topy、widthx、heighty、rightx,從預(yù)處理的人臉圖像preprocessedface中提取左眼和右眼的預(yù)估計(jì)圖像;
步驟s12,利用訓(xùn)練好的haar人眼檢測(cè)器分別對(duì)左眼和右眼中預(yù)估圖像來(lái)檢測(cè)右眼和左眼,得到人眼具體的位置大小信息。
進(jìn)一步,所述實(shí)現(xiàn)方法還包括以下步驟:
步驟s14,初始化lxmovelen、lymovelen、rxmovelen、rymovelen,即初始化人眼位置修正尺度:左右眼x、y坐標(biāo)移動(dòng)尺度,對(duì)步驟s11中變換后的坐標(biāo)進(jìn)行逆向變換,計(jì)算左眼、右眼在原圖中的x、y坐標(biāo)和寬度、高度;
步驟s15,根據(jù)步驟s14所得信息在原圖中獲取準(zhǔn)確的左眼、右眼的圖像,對(duì)左眼、右眼圖像進(jìn)行縮放成80*100像素圖像;
步驟s16,對(duì)左眼、右眼的圖像進(jìn)行雙邊濾波并轉(zhuǎn)化為灰度圖像,并用canny算子對(duì)灰度圖進(jìn)行邊緣檢測(cè),完成后進(jìn)入步驟s17。
進(jìn)一步,所述實(shí)現(xiàn)方法還包括以下步驟:
步驟s17,初始化眼眶邊緣itc1,使眼眶邊緣itc1成為眼眶邊緣集合中的第一個(gè)邊緣,眼眶邊緣集合是由眼眶邊緣線上的點(diǎn)的坐標(biāo)組成的集合;
步驟s18,對(duì)眼眶邊緣itc1進(jìn)行矩形擬合,得到能夠包含邊緣信息的最小矩陣,得到矩陣的x,y坐標(biāo)和width,height信息;
步驟s19,計(jì)算出擬合最小矩陣的中心坐標(biāo),判斷矩形是否滿足眼眶的預(yù)估計(jì)位置,若是滿足則將眼眶邊緣itc1添加到eyeedge集合。
進(jìn)一步,所述實(shí)現(xiàn)方法還包括以下步驟:
步驟s21,判斷眼眶邊緣itc1是否為眼眶邊緣集合中最后一條未檢測(cè)的邊緣;
步驟s22,賦值眼眶邊緣itc1,令眼眶邊緣itc1=眼眶邊緣集合中下一條未檢測(cè)眼眶邊緣;
步驟s23,判斷eyeedge集合是否為空;
步驟s24,對(duì)eyeedge集合擬合最小矩形得到矩形眼眶信息rect;
步驟s25,對(duì)左眼、右眼的圖像進(jìn)行雙邊濾波并轉(zhuǎn)化為灰度圖像,設(shè)置閥值為24,即即threshold(24,thresh_binary),對(duì)圖像雙邊濾波轉(zhuǎn)化過來(lái)的灰度圖進(jìn)行二值化運(yùn)算,設(shè)置算子大小為(9,9)對(duì)二值化運(yùn)算之后得到的圖像進(jìn)行形態(tài)學(xué)閉運(yùn)算,設(shè)置閥值為1對(duì)形態(tài)學(xué)閉運(yùn)算之后的圖像進(jìn)行二值化運(yùn)算,進(jìn)行邊緣檢測(cè)。
進(jìn)一步,所述實(shí)現(xiàn)方法還包括以下步驟:
步驟s26,初始化虹膜邊緣itc2,使得虹膜邊緣itc2為虹膜邊緣集合中的第一個(gè)邊緣,虹膜邊緣集合是由虹膜邊緣線上的點(diǎn)的坐標(biāo)組成的集合;
步驟s27,對(duì)虹膜邊緣itc2進(jìn)行圓形擬合,得到能夠包含邊緣信息的最小圓形,得到圓形的圓心、半徑信息;
步驟s28,檢測(cè)圓形圓心半徑是否符合人眼虹膜;
步驟s29,將圓形的圓心和半徑添加到list集合,list是自定義的一個(gè)列表,專門用來(lái)存儲(chǔ)圓心和半徑。
進(jìn)一步,所述實(shí)現(xiàn)方法還包括以下步驟:
步驟s30,判斷虹膜邊緣itc2是否為虹膜邊緣集合中最后一條未檢測(cè)邊緣;
步驟s31,賦值虹膜邊緣itc2,使得虹膜邊緣itc2等于虹膜邊緣集合中下一條未檢測(cè)虹膜邊緣;
步驟s32,判斷列表list是否為空;
步驟s33,從列表list中過濾出最大的虹膜半徑及對(duì)應(yīng)的圓心,得到虹膜半徑、虹膜中心;
步驟s34,輸出眼眶、虹膜半徑、虹膜中心;
步驟s35,進(jìn)行動(dòng)作匹配、錯(cuò)誤信息過濾、誤操作過濾;
步驟s36,輸出動(dòng)作信號(hào),完成后進(jìn)入ui界面。
本發(fā)明采用以上技術(shù)方案,與現(xiàn)有技術(shù)性比,具有以下優(yōu)點(diǎn):。
本作品根據(jù)特征匹配達(dá)到動(dòng)作檢測(cè)的目的,進(jìn)而產(chǎn)生動(dòng)作信號(hào)由ui反饋給使用者。
通過眼球控制,增加控制動(dòng)作信息,使得ui操作更加豐富。綜合利用多種圖像處理方法,以及快速動(dòng)作匹配,使得程序的實(shí)時(shí)性、準(zhǔn)確性大幅度提高。使用可見光攝像頭采集人體圖像,運(yùn)用圖像識(shí)別算法,實(shí)現(xiàn)虹膜位置提取,眼皮張合位置信息。將眼球特征信息組成的動(dòng)作信息進(jìn)行動(dòng)態(tài)特征匹配,產(chǎn)生信號(hào),在ui界面進(jìn)行反饋。調(diào)節(jié)程序整體的高效、準(zhǔn)確性、實(shí)時(shí)性,保證使用者的使用體驗(yàn)。
較于市面上其他產(chǎn)品,取消了紅外補(bǔ)光措施,雖然給圖像處理部分增加了部分難度,但是去除了紅外光長(zhǎng)時(shí)間照射帶來(lái)的諸多不良因素。
相比較于現(xiàn)有技術(shù),本作品具備虹膜坐標(biāo)識(shí)別提取準(zhǔn)確率達(dá)到90%、控制距離達(dá)到2米、安全、操作簡(jiǎn)單等優(yōu)點(diǎn)。
附圖說(shuō)明
附圖1是本發(fā)明實(shí)施例中多媒體播放器結(jié)構(gòu)的概念圖;
附圖2是本發(fā)明實(shí)施例中多媒體播放器程序的運(yùn)行流程簡(jiǎn)圖;
附圖3是本發(fā)明實(shí)施例中l(wèi)bp算子基本原理圖;
附圖4是本發(fā)明實(shí)施例中l(wèi)bp算子基本原理圖;
附圖5是本發(fā)明實(shí)施例中haar-like特征描述圖;
附圖6是本發(fā)明實(shí)施例中檢測(cè)虹膜和眼眶的主要操作步驟的流程圖;
附圖7是本發(fā)明實(shí)施例中播放器的實(shí)現(xiàn)方法流程圖。
具體實(shí)施方式
實(shí)施例,如圖1至圖7所示,一種眼球識(shí)別多媒體播放器,包括顯示器與半透鏡,將顯示器與半透鏡相結(jié)合,顯示器采用一般普通的電腦顯示屏,若需要將設(shè)備安裝在不同環(huán)境,則根據(jù)不同情況使用不同大小的顯示屏。在顯示器前方緊貼一面單向透視反光薄膜的半透鏡,并采用木質(zhì)結(jié)構(gòu)固定,封裝成一個(gè)較為成型的實(shí)用模型。也可采用市面上的原子鏡,對(duì)其進(jìn)行改裝,也可以完成本發(fā)明硬件部分的設(shè)計(jì)。
當(dāng)顯示器工作的時(shí)候,可以透過半透鏡看到屏幕顯示的內(nèi)容;當(dāng)顯示器沒有工作或者未安裝屏幕的區(qū)域,該播放器可以充當(dāng)鏡子使用。所述播放器還包括ov2710攝像頭,顯示器通過usb接口連接ov2710攝像頭,顯示器通過與其連接的ov2710攝像頭實(shí)時(shí)獲取畫面,通過usb接口傳給軟件主控端進(jìn)行處理。
基于haar特征的adaboost人臉檢測(cè):人臉可以看做是各種器官特征的組合,從而可以根據(jù)鼻子,眼鏡,嘴巴,眉毛等器官的特征以及相互之間的幾何位置關(guān)系來(lái)檢測(cè)人臉?;诮y(tǒng)計(jì)的方法,將人臉看作是一個(gè)整體的模式—二維像素矩陣,從統(tǒng)計(jì)的觀點(diǎn)通過大量圖像樣本,根據(jù)相似度來(lái)判斷人臉是否存在。
lbp算子:一種用來(lái)描述圖像局部紋理特征的算子;它具有旋轉(zhuǎn)不變性和灰度不變性等顯著的優(yōu)點(diǎn)。它是首先由t.ojala,m.pietik?inen,和d.harwood在1994年提出,用于紋理特征提取。lbp算子在每個(gè)像素點(diǎn)都可以得到一個(gè)lbp“編碼”,那么,對(duì)一幅圖像(記錄的是每個(gè)像素點(diǎn)的灰度值)提取其原始的lbp算子之后,得到的原始lbp特征依然是“一幅圖片”(記錄的是每個(gè)像素點(diǎn)的lbp值)。lbp的應(yīng)用中,如紋理分類、人臉分析等,一般都不將lbp圖譜作為特征向量用于分類識(shí)別,而是采用lbp特征譜的統(tǒng)計(jì)直方圖作為特征向量用于分類識(shí)別。
所述播放器的實(shí)現(xiàn)方法軟件端前期準(zhǔn)備工作,利用開源的人臉、人眼庫(kù),運(yùn)用lbp、haar算法進(jìn)行機(jī)器學(xué)習(xí),生成能夠使用的正臉識(shí)別分類器和左右眼識(shí)別分類器,能夠在軟件運(yùn)行時(shí)進(jìn)行調(diào)用。lbp算法具有極佳的速度,但是準(zhǔn)確性沒有haar算子優(yōu)良,但是haar算子速度較慢,對(duì)于實(shí)時(shí)性要求較高的項(xiàng)目來(lái)說(shuō),并不適合,因此本發(fā)明結(jié)合了兩種算子,對(duì)于準(zhǔn)確性要求不高的人臉檢測(cè)采用lbp算法,而后對(duì)于需要精確位置坐標(biāo)的人眼檢測(cè),采用了準(zhǔn)確度較高的haar算子。此方案對(duì)于本發(fā)明實(shí)時(shí)采集數(shù)據(jù)進(jìn)行運(yùn)算具有重要的優(yōu)化作用。
opencv作為領(lǐng)域較為成熟的一個(gè)圖像處理函數(shù)庫(kù),對(duì)于訓(xùn)練用于人臉和人眼檢測(cè)的分類器有比較成熟。訓(xùn)練需要準(zhǔn)備足夠的人臉和人眼樣本,在開源網(wǎng)站上都能找到,綜合對(duì)比各方面因素,選用了orl數(shù)據(jù)庫(kù)對(duì)于初始化測(cè)試比較適合,但它是一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù),特征臉已經(jīng)可以達(dá)到97%的識(shí)別率,所以使用其他方法很難得到更好的提升。yale人臉數(shù)據(jù)庫(kù)是一個(gè)對(duì)于初始實(shí)驗(yàn)更好的數(shù)據(jù)庫(kù),因?yàn)樽R(shí)別問題更復(fù)雜。這個(gè)數(shù)據(jù)庫(kù)包括15個(gè)人(14個(gè)男性,1個(gè)女性),每一個(gè)都有11個(gè)灰度圖像,大小是320*243像素。數(shù)據(jù)庫(kù)中有光照變化(中心光照、左側(cè)光照、右側(cè)光照)、表情變化(開心、正常、悲傷、瞌睡、驚訝、眨眼)、眼鏡(戴眼鏡或者沒戴)。
利用獲取到的正負(fù)樣本和opencv開源的訓(xùn)練器進(jìn)行訓(xùn)練,將得到的lbp人臉檢測(cè)和haar人眼檢測(cè)器用于接下來(lái)的具體實(shí)施。
所述多媒體播放器包括ui反饋模塊、攝像頭獲取圖像信息模塊、圖像處理模塊,攝像頭獲取圖像信息模塊獲取了圖像信息后進(jìn)入圖像處理模塊,圖像處理模塊處理完圖像后進(jìn)入ui反饋模塊。
所述播放器的實(shí)現(xiàn)方法包括以下模塊步驟:
第一模塊步驟:攝像頭輸入圖像模塊;
第二模塊步驟:預(yù)處理模塊,攝像頭輸入圖像模塊處理完后進(jìn)入預(yù)處理模塊;
第三模塊步驟:人臉檢測(cè)模塊,預(yù)處理模塊處理完成后進(jìn)入人臉檢測(cè)模塊;
第四模塊步驟:動(dòng)作信號(hào)模塊,人臉檢測(cè)模塊檢測(cè)完成后進(jìn)入動(dòng)作信號(hào)模塊;
第五模塊步驟:提取虹膜眼眶位置信息模塊,動(dòng)作信號(hào)模塊處理完成后進(jìn)入提取虹膜眼眶位置信息模塊;
第六模塊步驟:人眼檢測(cè)模塊,提取虹膜眼眶位置信息模塊處理完成后進(jìn)入人眼檢測(cè)模塊;
第七模塊步驟:排出誤操作模塊,人眼檢測(cè)模塊檢測(cè)完成后進(jìn)入排出誤操作模塊;
第八模塊步驟:功能信號(hào)模塊,排出誤操作模塊完成后進(jìn)入功能信號(hào)模塊;
第九模塊步驟:ui反饋模塊,功能信號(hào)模塊完成后進(jìn)入ui反饋模塊。
所述播放器的實(shí)現(xiàn)方法包括以下具體步驟:
步驟s1,程序開始運(yùn)行,完成后進(jìn)入步驟s2;
步驟s2,輸入由攝像頭獲得的分辨率600*800的rgb人臉圖像,完成后進(jìn)入步驟s3;
步驟s3,計(jì)算輸入圖像的灰度圖,將輸入的rgb圖像轉(zhuǎn)換為灰度圖像,提取輸入圖像矩陣中的綠色通道像素信息作為灰度圖像grayimg的初始值,完成后進(jìn)入步驟s4;
步驟s4,檢測(cè)灰度圖像寬度為320,灰度圖像的放縮比例為800/灰度圖像寬度,灰度圖像高度為600/灰度圖像的放縮比例,將灰度圖像grayimg按比例進(jìn)行縮放,縮放后的灰度圖像的分辨率為240*320;由于人臉檢測(cè)很耗時(shí)間,所以需要盡可能縮小原始圖像,但是有需要保證檢測(cè)的質(zhì)量,如果圖像太小,像素信息丟失過多,無(wú)法得到預(yù)期結(jié)果。經(jīng)過多次測(cè)試驗(yàn)證,240*320比例左右的圖像具有較好的測(cè)試質(zhì)量,完成后進(jìn)入步驟s5;
步驟s5,將灰度圖像grayimg進(jìn)行直方圖均勻化處理,獲得預(yù)處理的人臉圖像preprocessedimage,需要對(duì)圖像進(jìn)行雙邊濾波,過濾掉圖像中的噪點(diǎn),減少雜質(zhì)對(duì)于接下來(lái)檢測(cè)的干擾,對(duì)于圖像進(jìn)行直方圖歸一化,保證個(gè)像素點(diǎn)的像素值能夠落在0~255值域范圍內(nèi),并進(jìn)行歸一化處理,以減少光線對(duì)于參數(shù)設(shè)置的影響,否則由于環(huán)境光線的多樣化,圖像的像素值將會(huì)落在不同的值域內(nèi),對(duì)于接下來(lái)的處理將會(huì)帶來(lái)許多不便的影響,歸一化將更利于對(duì)像素值進(jìn)行統(tǒng)一處理,完成后進(jìn)入步驟s6;
步驟s6,為了讓人臉檢測(cè)效率達(dá)到最大值,設(shè)置檢測(cè)參數(shù):最小特征尺度minfeaturesize=size(30,30)、檢測(cè)范圍因子searchscalefactor=1.1f、最小臨近因子minneighbors=4、檢測(cè)方式標(biāo)識(shí)位fiag=cascade_find_biggest_object|cascade_do_rough_search,使得檢測(cè)檢測(cè)結(jié)果為所檢測(cè)到目標(biāo)中最大的;加載提前訓(xùn)練好的lbp人臉檢測(cè)器,在預(yù)處理過后的圖像中獲取到目標(biāo)人臉targetface的位置信息(x,y,width,height),完成后進(jìn)入步驟s7;
步驟s7,判斷是否檢測(cè)到目標(biāo)人臉targetface,若是則進(jìn)入步驟s8,否則返回執(zhí)行步驟s2;
步驟s8,對(duì)目標(biāo)人臉targetface按照計(jì)算比例進(jìn)行坐標(biāo)逆向變換,防止坐標(biāo)溢出超過范圍,需要對(duì)坐標(biāo)進(jìn)行值域限制,計(jì)算變化過后的x、y坐標(biāo)及width、height,在原始圖中將人臉圖像儲(chǔ)存在新的內(nèi)存區(qū)域中,完成后進(jìn)入步驟s9;
步驟s9,根據(jù)坐標(biāo)變換后得到的目標(biāo)人臉信息targetface,在原輸入圖像中提取人臉信息儲(chǔ)存為人臉圖像faceimage,完成后進(jìn)入步驟s10;
步驟s10,提取輸入圖像矩陣中的綠色通道像素信息作為人臉圖像faceimage的灰度圖像初始值,將人臉圖像faceimage的灰度圖像進(jìn)行直方圖均勻化處理,計(jì)算人臉圖像faceimage的灰度圖獲得預(yù)處理的人臉圖像preprocessedface,完成后進(jìn)入步驟s11;
步驟s11,初始化參數(shù)eye_sx=0.16;eye_sy=0.26;eye_sw=0.30;eye_sh=0.28,即初始化人眼位置估計(jì)比例:x、y坐標(biāo)、寬度、高度,在預(yù)處理的人臉圖像preprocessedface計(jì)算人眼位置:x、y坐標(biāo)、寬度、高度leftx、topy、widthx、heighty、rightx,從預(yù)處理的人臉圖像preprocessedface中提取左眼和右眼的預(yù)估計(jì)圖像,為了提高程序人眼檢測(cè)效率,根據(jù)普通人的人眼在臉上的位置,預(yù)估計(jì)左右眼出現(xiàn)的位置范圍,提取粗略的左右眼圖像,減少檢測(cè)數(shù)據(jù)量,極大提高檢測(cè)效率,完成后進(jìn)入步驟s12;
步驟s12,利用訓(xùn)練好的haar人眼檢測(cè)器分別對(duì)左眼和右眼中預(yù)估圖像來(lái)檢測(cè)右眼和左眼,得到人眼具體的位置大小信息,完成后進(jìn)入步驟s13;
步驟s13,左眼和右眼是否被檢測(cè)出來(lái),若是則進(jìn)入步驟s14,否則返回執(zhí)行步驟s2;
步驟s14,初始化lxmovelen、lymovelen、rxmovelen、rymovelen,即初始化人眼位置修正尺度:左右眼x、y坐標(biāo)移動(dòng)尺度,對(duì)步驟s11中變換后的坐標(biāo)進(jìn)行逆向變換,計(jì)算左眼、右眼在原圖中的x、y坐標(biāo)和寬度、高度,由于將原始圖像進(jìn)行了放縮,人眼在240*320像素的圖像中已經(jīng)遠(yuǎn)低于檢測(cè)效率的最高值,因此,需要進(jìn)行坐標(biāo)變換,完成后進(jìn)入步驟s15;
步驟s15,根據(jù)步驟s14所得信息在原圖中獲取準(zhǔn)確的左眼、右眼的圖像,對(duì)左眼、右眼圖像進(jìn)行縮放成80*100像素圖像,完成后進(jìn)入步驟s16;
步驟s16,對(duì)左眼、右眼的圖像進(jìn)行雙邊濾波并轉(zhuǎn)化為灰度圖像,并用canny算子對(duì)灰度圖進(jìn)行邊緣檢測(cè),完成后進(jìn)入步驟s17;
步驟s17,初始化眼眶邊緣itc1,使眼眶邊緣itc1成為眼眶邊緣集合中的第一個(gè)邊緣,眼眶邊緣集合是由眼眶邊緣線上的點(diǎn)的坐標(biāo)組成的集合,完成后進(jìn)入步驟s18;
步驟s18,對(duì)眼眶邊緣itc1進(jìn)行矩形擬合,得到能夠包含邊緣信息的最小矩陣,得到矩陣的x,y坐標(biāo)和width,height信息,完成后進(jìn)入步驟s19;
步驟s19,計(jì)算出擬合最小矩陣的中心坐標(biāo),判斷矩形是否滿足眼眶的預(yù)估計(jì)位置,若是滿足則進(jìn)入步驟s20,否則進(jìn)入步驟s21;
步驟s20,將眼眶邊緣itc1添加到eyeedge集合,完成后進(jìn)入步驟s21;
步驟s21,判斷眼眶邊緣itc1是否為眼眶邊緣集合中最后一條未檢測(cè)的邊緣,若是則進(jìn)入步驟s23,否則進(jìn)入步驟s22;
步驟s22,賦值眼眶邊緣itc1,令眼眶邊緣itc1=眼眶邊緣集合中下一條未檢測(cè)眼眶邊緣,完成進(jìn)入步驟s18;
步驟s23,判斷eyeedge集合是否為空,若是則返回執(zhí)行步驟s2,否則進(jìn)入步驟s24;
步驟s24,對(duì)eyeedge集合擬合最小矩形得到矩形眼眶信息rect,完成后進(jìn)入步驟s25;
步驟s25,對(duì)左眼、右眼的圖像進(jìn)行雙邊濾波并轉(zhuǎn)化為灰度圖像,設(shè)置閥值為24,即即threshold(24,thresh_binary),對(duì)圖像雙邊濾波轉(zhuǎn)化過來(lái)的灰度圖進(jìn)行二值化運(yùn)算,設(shè)置算子大小為(9,9)對(duì)二值化運(yùn)算之后得到的圖像進(jìn)行形態(tài)學(xué)閉運(yùn)算,設(shè)置閥值為1對(duì)形態(tài)學(xué)閉運(yùn)算之后的圖像進(jìn)行二值化運(yùn)算,進(jìn)行邊緣檢測(cè),完成后進(jìn)入步驟s26;
步驟s26,初始化虹膜邊緣itc2,使得虹膜邊緣itc2為虹膜邊緣集合中的第一個(gè)邊緣,虹膜邊緣集合是由虹膜邊緣線上的點(diǎn)的坐標(biāo)組成的集合,完成后進(jìn)入步驟s27;
步驟s27,對(duì)虹膜邊緣itc2進(jìn)行圓形擬合,得到能夠包含邊緣信息的最小圓形,得到圓形的圓心、半徑信息,完成后進(jìn)入步驟s28;
步驟s28,檢測(cè)圓形圓心半徑是否符合人眼虹膜,若是符合則進(jìn)入步驟s29,否則進(jìn)入步驟s30;
步驟s29,將圓形的圓心和半徑添加到list集合,list是自定義的一個(gè)列表,專門用來(lái)存儲(chǔ)圓心和半徑,完成后進(jìn)入步驟s30;
步驟s30,判斷虹膜邊緣itc2是否為虹膜邊緣集合中最后一條未檢測(cè)邊緣,若是則進(jìn)入步驟s32,否則進(jìn)入步驟s31;
步驟s31,賦值虹膜邊緣itc2,使得虹膜邊緣itc2等于虹膜邊緣集合中下一條未檢測(cè)虹膜邊緣,完成進(jìn)入步驟s27;
步驟s32,判斷列表list是否為空,若是則返回執(zhí)行步驟s2,否則進(jìn)入步驟s33;
步驟s33,從列表list中過濾出最大的虹膜半徑及對(duì)應(yīng)的圓心,得到虹膜半徑、虹膜中心,完成后進(jìn)入步驟s34;
步驟s34,輸出眼眶、虹膜半徑、虹膜中心,完成后進(jìn)入步驟s35;
步驟s35,檢測(cè)之后,將得到的虹膜和眼眶的位置大小信息傳給程序進(jìn)行接下來(lái)的處理,即動(dòng)作匹配、錯(cuò)誤信息過濾、誤操作過濾,完成后進(jìn)入步驟s36;
進(jìn)行動(dòng)作匹配:
進(jìn)行動(dòng)作匹配,將人眼圖像區(qū)域按照數(shù)字九鍵,將2定義為上,5、8定義為中,1、4、7定義為左,3、6、9定義為右,如此按照一定比例將整個(gè)圖像分為四個(gè)區(qū)域,根據(jù)虹膜圓心位置確定不同的人眼動(dòng)作;
根據(jù)人眼眼眶的距離來(lái)判斷是否眨眼,當(dāng)距離小于一定的閾值,則判定為眨眼一次,為了防止出現(xiàn)誤操作,將三幀畫面信息中出現(xiàn)至少兩次眨眼的情況,視為一次眨眼信號(hào);
進(jìn)行錯(cuò)誤信息過濾:
對(duì)于得到的虹膜和眼眶的位置大小信息進(jìn)行分析,若超出正常的情況,則認(rèn)定為檢測(cè)出錯(cuò),并舍棄當(dāng)前幀的信息,根據(jù)虹膜的半徑檢測(cè)大小反饋控制虹膜檢測(cè)時(shí)設(shè)置的閾值,以達(dá)到自主調(diào)節(jié)控制優(yōu)化光線帶來(lái)的誤差;
進(jìn)行誤操作過濾:
當(dāng)人眼虹膜處于不同位置并且眨眼過后,視為觸發(fā)第一次動(dòng)作信號(hào),在接下來(lái)的0.5s中,任何信號(hào)都視為無(wú)效信號(hào),0.5s過后的2s內(nèi)需要觸發(fā)第二次相同的動(dòng)作信號(hào),成功觸發(fā)則視為一次動(dòng)作,否則判定為誤操作,并舍棄目前儲(chǔ)存的第一次信號(hào);
步驟s36,輸出動(dòng)作信號(hào),完成后進(jìn)入ui界面,本發(fā)明的ui界面分為功能區(qū)域和調(diào)試區(qū)域,功能區(qū)域具有實(shí)時(shí)定位、天氣預(yù)報(bào)、視頻音樂播放、網(wǎng)頁(yè)新聞瀏覽的功能,調(diào)試區(qū)域可以看到用戶的人眼圖像,各類位置坐標(biāo)信息,以及觸發(fā)的信號(hào)記錄。
用戶可以通過人眼不同的動(dòng)作進(jìn)行操作,當(dāng)人眼向左/右/上/中間看時(shí),眨眼可以分別觸發(fā)光標(biāo)左/右移、取消、確定等功能信號(hào)。程序根據(jù)不同的功能信號(hào)在ui上面反映出不同的操作,
最終實(shí)現(xiàn)的操作流程如下:沒有用戶時(shí),多媒體鏡子上顯示當(dāng)前時(shí)間,識(shí)別到有人進(jìn)入目標(biāo)范圍內(nèi)時(shí),顯示歡迎界面,并打開地圖定位和天氣預(yù)報(bào)功能。用戶通過眨眼進(jìn)入菜單,左右眨眼移動(dòng)光標(biāo),眨眼確定,選定不同的功能使用,眼睛向上看返回。當(dāng)人離開后,頁(yè)面重新回到時(shí)間顯示頁(yè)面。
實(shí)時(shí)定位和天氣預(yù)報(bào)調(diào)用了高德api接口獲取數(shù)據(jù),并在qt設(shè)計(jì)界面上用webview展現(xiàn)給用戶。視頻音樂播放和網(wǎng)頁(yè)瀏覽采用qt軟件開發(fā)庫(kù)中的multimediawidgets和webkitwidgets實(shí)現(xiàn)。
綜合利用haar、lbp算法的優(yōu)點(diǎn),高效率實(shí)現(xiàn)人臉識(shí)別、人眼識(shí)別。通過多種原創(chuàng)圖像處理方法獲取虹膜、眼眶信息,進(jìn)行動(dòng)態(tài)的人眼動(dòng)作匹配。通過分析機(jī)器檢測(cè)結(jié)果,可進(jìn)行負(fù)反饋,自主學(xué)習(xí)調(diào)節(jié)識(shí)別算法參數(shù),優(yōu)化光線帶來(lái)的誤差。在光線不佳的情況下,自主進(jìn)行物理補(bǔ)光。提供pc主控端程序,可在設(shè)備安裝后,遠(yuǎn)距離進(jìn)行信息更新。內(nèi)置視頻、音樂、網(wǎng)頁(yè)等多種媒體傳播方式,增加了作品的應(yīng)用價(jià)值。為特殊人群和多種應(yīng)用場(chǎng)合提供了釋放雙手的交互方式,為殘疾人提供了更為便利的操控方式,并為了理發(fā)店鏡面提供了合理的利用方式,極大地增加了理發(fā)店的商業(yè)利用價(jià)值。
從而給用戶提供一種新型的智能交互設(shè)備,可應(yīng)用于多種場(chǎng)合給人們提供更加豐富的生活。
以上所述為本發(fā)明最佳實(shí)施方式的舉例,其中未詳細(xì)述及的部分均為本領(lǐng)域普通技術(shù)人員的公知常識(shí)。本發(fā)明的保護(hù)范圍以權(quán)利要求的內(nèi)容為準(zhǔn),任何基于本發(fā)明的技術(shù)啟示而進(jìn)行的等效變換,也在本發(fā)明的保護(hù)范圍之內(nèi)。