• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    人體學(xué)輸入設(shè)備軌跡識(shí)別與功能增強(qiáng)

    2016-07-25 08:05:48魏為民孔志偉
    關(guān)鍵詞:狀態(tài)機(jī)手勢引擎

    魏為民, 孫 易, 孔志偉

    (上海電力學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上?!?00090)

    ?

    人體學(xué)輸入設(shè)備軌跡識(shí)別與功能增強(qiáng)

    魏為民, 孫易, 孔志偉

    (上海電力學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海200090)

    隨著機(jī)器學(xué)習(xí)技術(shù)在軌跡識(shí)別中的廣泛應(yīng)用,提出了一種基于人工神經(jīng)網(wǎng)絡(luò)的瀏覽器鼠標(biāo)手勢擴(kuò)展算法.該算法通過對(duì)軌跡進(jìn)行分類并與動(dòng)作建立映射來實(shí)現(xiàn)鼠標(biāo)手勢功能,可有效地識(shí)別各種復(fù)雜的軌跡并準(zhǔn)確執(zhí)行相應(yīng)的動(dòng)作.實(shí)驗(yàn)結(jié)果表明,該方法明顯提高了用戶的操作體驗(yàn).

    鼠標(biāo)手勢; 機(jī)器學(xué)習(xí); BP神經(jīng)網(wǎng)絡(luò); 瀏覽器擴(kuò)展程序

    隨著圖形化界面技術(shù)的不斷發(fā)展,人們已經(jīng)越來越依賴于使用鼠標(biāo)、觸控板等人體學(xué)輸入設(shè)備來控制計(jì)算機(jī).而目前的圖形化界面設(shè)計(jì)存在一些問題,大部分控件都處于屏幕的邊緣,每次操作控件都會(huì)分散用戶的注意力.對(duì)此可采用一種稱之為鼠標(biāo)手勢的方法,[1]用戶只要在正文內(nèi)容區(qū)域按住鼠標(biāo)并拖動(dòng),繪出特定的軌跡,程序會(huì)自動(dòng)識(shí)別出軌跡對(duì)應(yīng)的動(dòng)作,并執(zhí)行這個(gè)動(dòng)作,無需操作者過多的注意和思考.

    在現(xiàn)有的鼠標(biāo)手勢程序中,主要使用方向向量軌跡識(shí)別法,即識(shí)別軌跡中的上下左右4個(gè)分量.這樣的識(shí)別方法會(huì)損失軌跡的大量特征,甚至?xí)l(fā)生誤判.例如,矩形手勢和逆時(shí)針的圓形手勢均會(huì)被識(shí)別為“左—下—右—上”4個(gè)方向向量,這直接導(dǎo)致了程序識(shí)別率低和不良的用戶交互體驗(yàn).人工神經(jīng)網(wǎng)絡(luò)是目前較為流行的一種機(jī)器學(xué)習(xí)方法,在眾多領(lǐng)域中都得到了廣泛的應(yīng)用.[2]與方向向量識(shí)別法相比,神經(jīng)網(wǎng)絡(luò)不依賴于上下左右4個(gè)簡單的方向分量,而是將構(gòu)成軌跡的一組向量視為一個(gè)整體,自動(dòng)學(xué)習(xí)訓(xùn)練樣本中的規(guī)律,排除噪聲干擾并將學(xué)習(xí)結(jié)果推廣到?jīng)]有學(xué)習(xí)過的軌跡上.[3]因此,相較于傳統(tǒng)的方向向量軌跡識(shí)別法,神經(jīng)網(wǎng)絡(luò)對(duì)于軌跡識(shí)別具有較強(qiáng)的自適應(yīng)和自學(xué)習(xí)能力.但神經(jīng)網(wǎng)絡(luò)需要先訓(xùn)練再使用,并且訓(xùn)練結(jié)果存在一定的不穩(wěn)定性,所以不能在手勢識(shí)別程序中單獨(dú)使用.因此,本文提出一種將神經(jīng)網(wǎng)絡(luò)與方向向量相結(jié)合的識(shí)別方法.該方法使用神經(jīng)網(wǎng)絡(luò)作為主要識(shí)別引擎,當(dāng)神經(jīng)網(wǎng)絡(luò)沒有準(zhǔn)備好或者識(shí)別失敗時(shí),轉(zhuǎn)為使用方向向量識(shí)別法進(jìn)行簡單識(shí)別,以保證程序能夠正常運(yùn)行,彌補(bǔ)兩種方法各自的缺陷.

    1 鼠標(biāo)手勢識(shí)別引擎算法

    1.1系統(tǒng)框架

    鼠標(biāo)手勢擴(kuò)展程序的主要工作流程如下:根據(jù)存儲(chǔ)的軌跡訓(xùn)練神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)軌跡特征;捕獲鼠標(biāo)事件記錄軌跡,處理軌跡,將軌跡分別送入方向向量引擎與神經(jīng)網(wǎng)絡(luò)引擎中,根據(jù)兩者的計(jì)算結(jié)果執(zhí)行對(duì)應(yīng)的預(yù)定動(dòng)作,如圖1所示.

    圖1 工作流程示意

    作為一個(gè)鼠標(biāo)手勢擴(kuò)展程序,其核心功能是識(shí)別并執(zhí)行手勢對(duì)應(yīng)的動(dòng)作,圍繞這一核心功能,可以進(jìn)行修飾和增強(qiáng),以提高實(shí)用性.例如可增加以下功能:

    (1) 任意添加、修改、刪除手勢,并為不同目標(biāo)上的相同手勢指定不同的功能,當(dāng)出現(xiàn)手勢沖突時(shí),需要給出提示并引導(dǎo)用戶解決沖突;

    (2) 提供特殊手勢的支持,例如提供滾輪手勢的支持;

    (3) 選擇觸發(fā)軌跡繪制的按鍵;

    (4) 臨時(shí)禁用鼠標(biāo)手勢;

    (5) 選擇鼠標(biāo)手勢軌跡的顏色;

    (6) 為不同的用戶提供不同的配置文件,配置文件之間必須相互獨(dú)立,可以隨意啟停;

    (7) 提供更加美觀的交互界面,便于與用戶進(jìn)行交互.

    為此,要求所實(shí)現(xiàn)的擴(kuò)展程序能對(duì)用戶輸入的手勢軌跡進(jìn)行記錄,提取代表軌跡的特征點(diǎn).同時(shí),要求能對(duì)已記錄的手勢軌跡進(jìn)行訓(xùn)練,保證神經(jīng)網(wǎng)絡(luò)處于最新的狀態(tài).另外,擴(kuò)展程序需要有一個(gè)良好的圖形用戶界面,讓用戶能夠管理手勢軌跡,了解神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)進(jìn)度.擴(kuò)展程序還需要一個(gè)手勢識(shí)別引擎,對(duì)用戶輸入的手勢軌跡使用兩種不同算法進(jìn)行判定,確定并執(zhí)行對(duì)應(yīng)的預(yù)置動(dòng)作.

    1.2識(shí)別引擎設(shè)計(jì)

    1.2.1軌跡壓縮算法

    軌跡壓縮算法是完成神經(jīng)網(wǎng)絡(luò)識(shí)別的必要條件.其作用是將組成一段軌跡的數(shù)目不定的點(diǎn)壓縮到一個(gè)恒定的數(shù)目N,在壓縮的同時(shí)要盡可能地保留軌跡的特征以便于準(zhǔn)確識(shí)別.同時(shí),算法還需有較快的運(yùn)行速度,以保證能夠提供良好的用戶體驗(yàn).算法具體描述如下.

    (1) 如果捕獲到的軌跡中包含少于N個(gè)點(diǎn),則向軌跡中最長向量的中點(diǎn)添加一個(gè)點(diǎn).重復(fù)這一過程,直到新的軌跡中的點(diǎn)數(shù)達(dá)到N為止.

    (2) 如果捕獲到的軌跡中包含了數(shù)目大于2N個(gè)的點(diǎn),則將這些點(diǎn)兩兩分組,取每組的中點(diǎn)連接成新的軌跡.重復(fù)這一過程,直到新的軌跡中的點(diǎn)數(shù)少于2N為止.

    (3) 如果捕獲到的軌跡中包含的點(diǎn)數(shù)介于N和2N之間,則取軌跡中長度最短的向量,刪除向量的一端使其和相鄰的向量融合成一個(gè)較短一點(diǎn)的向量.重復(fù)這一過程,直到新的軌跡中點(diǎn)數(shù)達(dá)到N為止.

    在實(shí)際應(yīng)用中,捕獲的軌跡中的點(diǎn)數(shù)往往都非常多,文獻(xiàn)[4]中所提到的方法每次只能壓縮一個(gè)點(diǎn),而本文提出的方法預(yù)先對(duì)大量的點(diǎn)進(jìn)行了快速處理,在保留軌跡特征的同時(shí)提高了速度.

    1.2.2神經(jīng)網(wǎng)絡(luò)引擎算法

    (1)

    取Pjmax所對(duì)應(yīng)的預(yù)定義手勢軌跡,即為最相似的手勢軌跡.

    圖2 BP神經(jīng)網(wǎng)絡(luò)引擎結(jié)構(gòu)

    構(gòu)造神經(jīng)網(wǎng)絡(luò)時(shí),確定隱藏層的神經(jīng)元個(gè)數(shù)的公式為:

    (2)

    式中:nh——隱藏層神經(jīng)元的個(gè)數(shù);

    ni——輸入層神經(jīng)元的個(gè)數(shù);

    no——輸出層神經(jīng)元的個(gè)數(shù);

    a——0~10之間的常數(shù).[5]

    由于輸出層神經(jīng)元的個(gè)數(shù)不確定,因此隱藏層的神經(jīng)元個(gè)數(shù)也需要做動(dòng)態(tài)調(diào)整.

    神經(jīng)網(wǎng)絡(luò)在使用前需要進(jìn)行學(xué)習(xí)和訓(xùn)練,誤差反向傳播(Error Back Propagation,BP)算法是一種較為成熟的訓(xùn)練方法,即數(shù)據(jù)被送入網(wǎng)絡(luò)后,輸出的結(jié)果將與預(yù)期結(jié)果相比較,根據(jù)誤差調(diào)整輸出層的權(quán)重;再根據(jù)隱藏層誤差調(diào)整隱藏層權(quán)重;這樣完成一輪反向傳播,重復(fù)這個(gè)過程,最后結(jié)果的誤差平方和(Sum of the Squared Errors,SSE)小于一定的值,即可認(rèn)為神經(jīng)網(wǎng)絡(luò)已經(jīng)準(zhǔn)備完成,可以投入應(yīng)用.

    由于用于訓(xùn)練的數(shù)據(jù)較為單一,而神經(jīng)網(wǎng)絡(luò)對(duì)單一數(shù)據(jù)的歸納推廣能力有限,容易造成學(xué)習(xí)效果不佳.因此,每個(gè)軌跡都會(huì)被多次送入神經(jīng)網(wǎng)絡(luò),每次被送入網(wǎng)絡(luò)學(xué)習(xí)前,都需要添加噪聲.[6]添加噪聲的方法是對(duì)組成軌跡的每一個(gè)向量隨機(jī)添加-1°到1°的偏轉(zhuǎn),使之與其他軌跡略有不同,采用這樣的數(shù)據(jù)進(jìn)行訓(xùn)練可以提高神經(jīng)網(wǎng)絡(luò)的歸納推廣能力.訓(xùn)練過程中,選用的輸出層誤差計(jì)算公式為:[4]

    (3)

    式中:Ek——輸出層第k個(gè)神經(jīng)細(xì)胞的誤差值;

    tk——輸出層第k個(gè)神經(jīng)細(xì)胞的實(shí)際輸出;

    ok——輸出層第k個(gè)神經(jīng)細(xì)胞的期望輸出值.

    輸出層第k個(gè)神經(jīng)細(xì)胞與隱藏層第j個(gè)神經(jīng)細(xì)胞連接的權(quán)重調(diào)整公式為:

    (4)

    式中:wjk——隱藏層第j個(gè)神經(jīng)細(xì)胞與輸出層第k個(gè)神經(jīng)細(xì)胞相連接的權(quán)值;

    oj——隱藏層第j個(gè)神經(jīng)細(xì)胞的輸出值;

    L——神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率.

    在經(jīng)典的BP神經(jīng)網(wǎng)絡(luò)算法中,學(xué)習(xí)率一般是固定值.在其他條件相同的情況下,學(xué)習(xí)率越高,網(wǎng)絡(luò)的訓(xùn)練時(shí)間越短,但學(xué)習(xí)效果也會(huì)相應(yīng)變差.由于學(xué)習(xí)率在整個(gè)訓(xùn)練過程中不會(huì)改變,其值在選擇不當(dāng)時(shí)可能會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)收斂過慢或者發(fā)生震蕩.為了達(dá)到較好的學(xué)習(xí)效果,有時(shí)可以選用自適應(yīng)學(xué)習(xí)率以進(jìn)行動(dòng)態(tài)調(diào)整,此時(shí)L的調(diào)整公式為:[7]

    (5)

    式中:Lm,Lm-1——本次和上一次迭代計(jì)算使用的學(xué)習(xí)率;

    Lm+1——下一次迭代計(jì)算要用到的學(xué)習(xí)率;

    Em,Em-1——本次和上一次迭代計(jì)算的誤差平方和.

    當(dāng)Em1.04Em-1時(shí),說明該次迭代無效,此時(shí)應(yīng)該降低學(xué)習(xí)率以提高學(xué)習(xí)效果.這樣就可以使學(xué)習(xí)率動(dòng)態(tài)平衡于一個(gè)相對(duì)較優(yōu)的位置,提高網(wǎng)絡(luò)的學(xué)習(xí)能力.

    訓(xùn)練中選用的隱藏層誤差計(jì)算公式為:[4]

    (6)

    式中:Ej——隱藏層第j個(gè)神經(jīng)細(xì)胞的誤差值.

    隱藏層第j個(gè)神經(jīng)細(xì)胞與輸入層第i個(gè)神經(jīng)細(xì)胞連接的權(quán)重調(diào)整公式為:[4]

    (7)

    式中:m——?jiǎng)恿恐?一般為0.9;

    ΔWij——本次迭代中連接隱藏層第j個(gè)神經(jīng)元和輸入層第i個(gè)神經(jīng)元的權(quán)重與上一次迭代中相同位置上權(quán)重的差值.

    在式(7)中使用了動(dòng)量對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化.在訓(xùn)練過程中,使用動(dòng)量可以盡可能地避免神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu)解,改善神經(jīng)網(wǎng)絡(luò)的收斂性.

    1.2.3方向向量識(shí)別引擎算法

    在傳統(tǒng)的鼠標(biāo)手勢軟件中,識(shí)別模塊的核心就是方向向量識(shí)別引擎.在本文所實(shí)現(xiàn)的鼠標(biāo)手勢軟件中,方向向量識(shí)別引擎將與神經(jīng)網(wǎng)絡(luò)引擎一起協(xié)同工作,保證識(shí)別的準(zhǔn)確程度和可靠程度.方向向量的識(shí)別流程如圖3所示.

    圖3 方向向量識(shí)別引擎識(shí)別流程

    當(dāng)用戶的鼠標(biāo)產(chǎn)生拖動(dòng)事件時(shí),會(huì)通知方向向量識(shí)別引擎,方向向量識(shí)別引擎會(huì)根據(jù)此次拖動(dòng)所產(chǎn)生的方向向量將拖動(dòng)方向判定為上、下、左、右中的一種,分別用U,D,L,R 4個(gè)英文字母表示.在下一次收到拖動(dòng)事件時(shí),同樣也會(huì)判定出一個(gè)方向,如果拖動(dòng)方向沒有發(fā)生改變,則不增加新的方向,否則將增加新的方向.方向識(shí)別出的結(jié)果以Trie樹(前綴樹)的形式存儲(chǔ)在對(duì)象中,這樣的存儲(chǔ)可以加快搜索速度,也可以降低空間占用率.圖4為存儲(chǔ)方向信息的前綴樹示例,方向字符串“UDR”對(duì)應(yīng)了命令A(yù),“UDL”對(duì)應(yīng)命令B,“ULD”對(duì)應(yīng)命令C,“UL”對(duì)應(yīng)命令D.可以看到,通過前綴樹進(jìn)行查找可以大大縮短查找時(shí)間,也更為直觀.

    圖4 Trie樹存儲(chǔ)手勢命令示例

    1.2.4雙引擎結(jié)果選擇

    從神經(jīng)網(wǎng)絡(luò)引擎和方向向量引擎中送出的結(jié)果不一定會(huì)相同,在這種情況下,就需要有一種方法對(duì)兩個(gè)不同的結(jié)果進(jìn)行選擇.本文采用如下方法進(jìn)行選擇.

    (1) 若神經(jīng)網(wǎng)絡(luò)輸出的最佳匹配率低于閾值u,代表神經(jīng)網(wǎng)絡(luò)無法確定是否與已知軌跡高度相似,因此回退(fallback)到使用方向向量引擎的判別結(jié)果.若方向向量引擎也無法判別,則認(rèn)為該手勢不存在.

    (2) 若神經(jīng)網(wǎng)絡(luò)輸出的最佳匹配率高于閾值u,且與第二佳匹配率之差小于v,代表神經(jīng)網(wǎng)絡(luò)認(rèn)為有多個(gè)已知軌跡與輸入軌跡相似,無法確定應(yīng)該選擇哪一個(gè),因此回退到使用方向向量引擎的判別結(jié)果.若方向向量引擎也無法判別,則認(rèn)為該手勢不存在.

    (3) 若神經(jīng)網(wǎng)絡(luò)輸出的最佳匹配率高于閾值u,且與第二佳匹配率之差大于v,說明神經(jīng)網(wǎng)絡(luò)能夠確定輸入軌跡與某個(gè)已知軌跡極為相似,因此使用神經(jīng)網(wǎng)絡(luò)引擎輸出的判別結(jié)果.

    2 軌跡捕獲邏輯設(shè)計(jì)與動(dòng)作實(shí)現(xiàn)

    2.1操作界面軌跡捕獲邏輯設(shè)計(jì)

    鼠標(biāo)手勢程序的另一個(gè)重點(diǎn)是捕獲鼠標(biāo)繪制的軌跡,只有捕獲了繪制的軌跡,才可以讓識(shí)別引擎對(duì)軌跡進(jìn)行分類與識(shí)別.由于現(xiàn)代瀏覽器并未提供特殊拖動(dòng)事件應(yīng)用程序編程接口(Application Programming Interface,API),[8]本文實(shí)現(xiàn)的鼠標(biāo)手勢擴(kuò)展程序是基于網(wǎng)頁中的DOM鼠標(biāo)事件來捕獲軌跡的,這就需要程序自行處理拖動(dòng)事件.本文采用有限狀態(tài)機(jī)(Finite-state machine)來處理拖動(dòng)事件,有限狀態(tài)機(jī)處理捕獲邏輯示意圖如圖5所示.

    圖5 有限狀態(tài)機(jī)處理捕獲邏輯示意

    該狀態(tài)機(jī)有4個(gè)狀態(tài):Free,Pushed,Ready,Working,通過DOM鼠標(biāo)事件在不同狀態(tài)間進(jìn)行轉(zhuǎn)移.使用有限狀態(tài)機(jī)可以使代碼的邏輯結(jié)構(gòu)變得清晰,提高代碼的可讀性和可維護(hù)性.當(dāng)觸發(fā)預(yù)料之外的事件或轉(zhuǎn)移到不正確的狀態(tài)時(shí),可以直接通過清除和復(fù)位狀態(tài)來重置有限狀態(tài)機(jī),提高程序的可靠性.該有限狀態(tài)機(jī)代碼如下:

    switch currentStatus

    case"free":

    if eventType =="mousedown" then

    注冊(cè)鼠標(biāo)事件到本函數(shù)并初始化

    狀態(tài)機(jī)

    將狀態(tài)轉(zhuǎn)移到pushed

    case "pushed":

    switch eventType:

    case"mouseup":將狀態(tài)轉(zhuǎn)移到free

    case"mousemove":將狀態(tài)轉(zhuǎn)移到ready

    case"mousewheel":識(shí)別滾輪手勢并執(zhí)行動(dòng)作

    case"ready":

    switch eventType:

    case"mousemove":

    在移動(dòng)一段距離后轉(zhuǎn)移到working狀態(tài)

    case "mouseup":將狀態(tài)轉(zhuǎn)移到free

    case "working":

    switch eventType:

    case"mousemove":收集數(shù)據(jù)并繪制軌跡

    case"mouseup":

    調(diào)用識(shí)別引擎識(shí)別軌跡并執(zhí)行相應(yīng)的動(dòng)作

    將狀態(tài)轉(zhuǎn)移到free

    其中,currentStatus代表有限狀態(tài)機(jī)當(dāng)前的狀態(tài),eventType代表DOM鼠標(biāo)事件的類型.在程序初始化時(shí),需要將鼠標(biāo)事件綁定到這個(gè)函數(shù)上.當(dāng)鼠標(biāo)事件被觸發(fā)時(shí),通過對(duì)不同狀態(tài)下不同的事件類型進(jìn)行判斷,便可執(zhí)行與其對(duì)應(yīng)的動(dòng)作.同時(shí),可以通過改變currentStatus的值在各狀態(tài)之間進(jìn)行轉(zhuǎn)移.

    2.2鼠標(biāo)手勢動(dòng)作實(shí)現(xiàn)

    在對(duì)軌跡進(jìn)行識(shí)別后,需要執(zhí)行與軌跡相對(duì)應(yīng)的動(dòng)作.在傳統(tǒng)的鼠標(biāo)手勢程序中,一般通過在頁面上運(yùn)行JavaScript代碼來執(zhí)行動(dòng)作.這樣的設(shè)計(jì)存在一定的局限性,例如,由于DOM和BOM本身的局限性,只能執(zhí)行較為簡單的操作,對(duì)于一些涉及瀏覽器本身的操作就無能為力.同時(shí)出于安全方面的考慮,瀏覽器對(duì)運(yùn)行在頁面上下文環(huán)境中的JavaScript程序做了許多限制,無形中更加弱化了傳統(tǒng)鼠標(biāo)手勢程序能夠提供的功能.

    為此,可使用在現(xiàn)代瀏覽器中專為擴(kuò)展程序設(shè)計(jì)的API.以Google Chrome瀏覽器為例,其為擴(kuò)展程序提供了一個(gè)安全可靠的JavaScript運(yùn)行環(huán)境,該環(huán)境與常規(guī)頁面中的腳本運(yùn)行環(huán)境完全隔離,程序可以在其中調(diào)用chrome.*API家族提供的超過50種API來執(zhí)行包括操作窗口和標(biāo)簽頁內(nèi)容、顯示桌面通知、改變?yōu)g覽器設(shè)置和外觀,以及在用戶授權(quán)的情況下錄制屏幕內(nèi)容、訪問并操作瀏覽器書簽和歷史記錄等實(shí)用功能,[8]這些都是傳統(tǒng)的鼠標(biāo)手勢程序所無法做到的.

    在開發(fā)過程中,可根據(jù)業(yè)界慣例預(yù)置一部分通用手勢,提供開箱即用的用戶體驗(yàn).同時(shí)程序也會(huì)附帶大量的動(dòng)作,用戶可以在設(shè)置頁面中創(chuàng)建手勢到動(dòng)作的映射,為不同手勢賦予不同的動(dòng)作.用戶還可以自行為動(dòng)作編寫代碼,達(dá)到完全自定義動(dòng)作的目的.此外,由于Google Chrome提供了擴(kuò)展間通訊功能,因此手勢可以執(zhí)行的動(dòng)作并不局限在本程序可以提供的功能內(nèi),還能夠擴(kuò)展到其他符合標(biāo)準(zhǔn)的通訊接口的擴(kuò)展程序上,極大地豐富了程序可以使用的動(dòng)作,提升了用戶的交互體驗(yàn).

    3 實(shí)驗(yàn)及結(jié)果

    在本實(shí)驗(yàn)中,依據(jù)本文所提出的方法對(duì)常見的6種軌跡進(jìn)行識(shí)別,具體如圖6所示.網(wǎng)絡(luò)的具體參數(shù)如下:輸入神經(jīng)元個(gè)數(shù)ni為32,輸出神經(jīng)元個(gè)數(shù)no為6,隱藏層神經(jīng)元個(gè)數(shù)nh為13,學(xué)習(xí)率L固定為0.1,動(dòng)量值m為0.9,誤差平方和(SSE)門限為0.001,采用sigmoid函數(shù)作為神經(jīng)元的激勵(lì)函數(shù).閾值u為0.9,閾值v為0.1,噪聲添加次數(shù)為每個(gè)向量500次.

    圖6 用于測試的6種鼠標(biāo)手勢軌跡

    在實(shí)驗(yàn)前,為每個(gè)手勢軌跡采集了101個(gè)樣本,將其中的一個(gè)樣本送入鼠標(biāo)手勢引擎中進(jìn)行訓(xùn)練,剩下的作為待測樣本進(jìn)行測試,結(jié)果如表1所示,其中所有數(shù)據(jù)均為百分制的準(zhǔn)確率.

    表1 鼠標(biāo)手勢引擎識(shí)別準(zhǔn)確率 %

    由表1可以看到,在較為復(fù)雜的手勢上,神經(jīng)網(wǎng)絡(luò)有著較高的識(shí)別率,五角星手勢的識(shí)別率可以達(dá)到92%.但在其他手勢上的表現(xiàn)就比較一般,L形手勢甚至出現(xiàn)了因?yàn)檎`判而降低綜合識(shí)別率的問題.這與本次實(shí)驗(yàn)所選用的閾值比較高有很大的關(guān)系,因?yàn)檩^高的閾值可以有效降低神經(jīng)網(wǎng)絡(luò)出現(xiàn)錯(cuò)判的可能,但也會(huì)大大降低神經(jīng)網(wǎng)絡(luò)的總體識(shí)別率,考慮到鼠標(biāo)手勢程序“寧可漏識(shí)別也不可錯(cuò)誤識(shí)別”的需求,在選擇閾值時(shí)選擇較高的閾值,無法識(shí)別的部分將由方向向量引擎進(jìn)行補(bǔ)充識(shí)別.方向向量引擎在簡單的手勢識(shí)別上有著極高的識(shí)別率,最簡單的向右手勢可以達(dá)到100%的識(shí)別.但是方向向量引擎在復(fù)雜手勢的識(shí)別上表現(xiàn)非常差,在普通手勢的識(shí)別上的表現(xiàn)也較一般,出現(xiàn)了不少的誤判,總體表現(xiàn)不如神經(jīng)網(wǎng)絡(luò)引擎.在將兩個(gè)引擎結(jié)合以后,綜合識(shí)別率較業(yè)界通用的方向向量識(shí)別方法大幅提高.

    4 結(jié) 語

    本文詳細(xì)介紹了為提高用戶交互體驗(yàn)而制作的鼠標(biāo)手勢擴(kuò)展程序的現(xiàn)狀,提出了一種神經(jīng)網(wǎng)絡(luò)引擎與方向向量引擎相結(jié)合的鼠標(biāo)手勢擴(kuò)展識(shí)別方法.基于該研究方案,闡述了擴(kuò)展程序的需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)等關(guān)鍵環(huán)節(jié).測試結(jié)果表明,擴(kuò)展程序的穩(wěn)定性、軌跡的壓縮方法、采用的識(shí)別策略都有明顯提升.本文所實(shí)現(xiàn)的擴(kuò)展程序功能目前已較為完善,可以日常使用.

    [1]劉子慧,陳碩.鼠標(biāo)手勢的工效學(xué)研究進(jìn)展[J].人類工效學(xué),2009,15(1):53-55.

    [2]劉天白,張舒白.機(jī)器學(xué)習(xí)技術(shù)在游戲中的應(yīng)用研究——解決鼠標(biāo)軌跡識(shí)別問題[J].電腦知識(shí)與技術(shù),2011,7(13):3 100-3 102.

    [3]成功.基于智能算法的鼠標(biāo)手勢識(shí)別的應(yīng)用研究[D].大連:大連海事大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2013.

    [4]布克蘭德.游戲編程中的人工智能技術(shù)[M].吳祖增,沙鷹,譯.北京:清華大學(xué)出版社,2006:37-53.

    [5]林梅燕.基于神經(jīng)網(wǎng)絡(luò)運(yùn)動(dòng)軌跡識(shí)別系統(tǒng)[D].福州:福建師范大學(xué),2010.

    [6]陳喆,周雷.基于BP 神經(jīng)網(wǎng)絡(luò)的鼠標(biāo)軌跡識(shí)別技術(shù)[J].電腦知識(shí)與技術(shù),2013(1):130-132.

    [7]唐艷,付存君,魏建新.基于自適應(yīng)學(xué)習(xí)速率的改進(jìn)BP神經(jīng)網(wǎng)絡(luò)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(4):48-49.

    [8]Chromium Authors.Google Chrome Extensions Development Documentation[CP/OL].[2014-05-20]https://developer.chrome.com/extensions.

    (編輯桂金星)

    Enhancing Human Input Device Features Based on Orbit Recognition

    WEI Weimin, SUN Yi, KONG Zhiwei

    (School of Computer Science and Technology, Shanghai University of Electric Power, Shanghai200090, China)

    With machine learning technology widely used in the orbit recognition,a browser mouse gestures extension based on an artificial neural network is presented.The extension implements mouse gestures function by classifying and mapping orbits.Experimental results show that the extension can effectively identify a variety of complex orbits and execute the appropriate instructions,and can significantly improve the user experience.

    mouse gestures; machine learning; BP neural network; browser extension

    10.3969/j.issn.1006-4729.2016.03.015

    2015-05-16

    簡介:魏為民(1970-),男,博士,副教授,湖北蒲圻人.主要研究方向?yàn)閳D像處理,數(shù)字取證,信息隱藏和工業(yè)控制信息安全.E-mail:wwm@shiep.edu.cn.

    上海市自然科學(xué)基金(11ZR1414300); 上海市教育委員會(huì)科研創(chuàng)新項(xiàng)目(11YZ194).

    TP391.412

    A

    1006-4729(2016)03-0277-06

    猜你喜歡
    狀態(tài)機(jī)手勢引擎
    基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
    挑戰(zhàn)!神秘手勢
    V字手勢的由來
    藍(lán)谷: “涉藍(lán)”新引擎
    商周刊(2017年22期)2017-11-09 05:08:31
    勝利的手勢
    無形的引擎
    河南電力(2015年5期)2015-06-08 06:01:46
    基于Cocos2d引擎的PuzzleGame開發(fā)
    FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
    基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
    基于VHDL的一個(gè)簡單Mealy狀態(tài)機(jī)
    咸丰县| 巍山| 清原| 温州市| 玉屏| 宜黄县| 大关县| 桑日县| 汪清县| 宜城市| 桂平市| 丹凤县| 沧州市| 乐安县| 腾冲县| 鱼台县| 荥经县| 沙湾县| 天祝| 宜兰市| 伊吾县| 江油市| 长顺县| 广西| 敦煌市| 东乡族自治县| 右玉县| 柏乡县| 彭水| 新建县| 平山县| 鹤庆县| 丹巴县| 广宁县| 阳山县| 高密市| 桓仁| 许昌市| 瑞安市| 海安县| 沁阳市|