基于靈敏度參數(shù)的人臉朝向識(shí)別方法
【專利摘要】本發(fā)明公開(kāi)了一種基于靈敏度參數(shù)的人臉朝向識(shí)別方法,包括步驟:S1:對(duì)采集到的單幀圖像逐一進(jìn)行靜態(tài)人臉朝向識(shí)別,根據(jù)人臉旋轉(zhuǎn)的角度大小判斷單幀圖像的人臉朝向是正面、朝左還是朝右;S2:在給定的采集時(shí)間內(nèi),對(duì)采集到的所有單幀圖像都進(jìn)行靜態(tài)人臉朝向識(shí)別,得出一個(gè)按照時(shí)序依次排列的人臉朝向結(jié)果集;S3:對(duì)人臉朝向結(jié)果集進(jìn)行過(guò)程分析,識(shí)別指令意圖,得出人臉朝向過(guò)程給出的指令結(jié)果。本發(fā)明結(jié)合簡(jiǎn)單的面部特征與實(shí)時(shí)捕捉頭部動(dòng)態(tài)過(guò)程結(jié)果作為相應(yīng)指令匹配方式,能準(zhǔn)確識(shí)別移動(dòng)機(jī)器人人機(jī)交互過(guò)程中的面部轉(zhuǎn)動(dòng)指令,這種方式自然而且表達(dá)清晰,不受環(huán)境的限制,適用范圍廣。
【專利說(shuō)明】
基于靈敏度參數(shù)的人臉朝向識(shí)別方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及移動(dòng)機(jī)器人,尤其涉及一種用于機(jī)器人的基于靈敏度參數(shù)的人臉朝向 識(shí)別方法。
【背景技術(shù)】
[0002] 在復(fù)雜室內(nèi)環(huán)境中,如現(xiàn)代實(shí)驗(yàn)室、運(yùn)輸物流工廠等,移動(dòng)機(jī)器人常用來(lái)替代人員 執(zhí)行簡(jiǎn)單、危險(xiǎn)、重復(fù)性的任務(wù),以節(jié)省大量的人力資源成本。在流程控制特別繁瑣的室內(nèi) 環(huán)境中,如在化學(xué)實(shí)驗(yàn)室中,移動(dòng)機(jī)器人的運(yùn)用能減少科研人員接觸危險(xiǎn)品的機(jī)會(huì),不僅能 夠保證實(shí)驗(yàn)的準(zhǔn)確性,而且能有效地降低事故發(fā)生幾率。
[0003] 人機(jī)交互是移動(dòng)機(jī)器人智能化的重要組成部分,如今,人類已經(jīng)從通過(guò)觸摸式,如 鼠標(biāo)、鍵盤、按鈕等媒介,對(duì)機(jī)器進(jìn)行指令發(fā)送發(fā)展到通過(guò)各種傳感器(如聲音傳感器,紅外 傳感器等)的運(yùn)用給機(jī)器下達(dá)各種任務(wù)指令。微軟公司Kinect傳感器的出現(xiàn),使人機(jī)交互方 式又邁出了一大步,基于Kinect傳感器開(kāi)發(fā)的交互界面下,人身體本身就可以成為控制器。 譬如,使用雙臂完成幾種姿勢(shì)來(lái)操控機(jī)器人完成任務(wù)(如申請(qǐng)?zhí)?01210267315.3公開(kāi)了《一 種雙臂機(jī)器人基于Kinect的人機(jī)交互方法》和申請(qǐng)?zhí)?01310327955.3公開(kāi)了《基于kinect 人體骨骼跟蹤控制的智能機(jī)器人人機(jī)交互方法》),但是這種應(yīng)用場(chǎng)景范圍非常受限。
[0004] 例如:當(dāng)機(jī)器人面對(duì)與雙手緊抱重物或手持物品的工作人員進(jìn)行人機(jī)交互,或者 機(jī)器人面對(duì)電梯里擠滿不同工作單位的人員時(shí),該如何聽(tīng)從指令;此外,還需要一些與特定 的操作任務(wù)無(wú)關(guān)的手勢(shì)用于改變機(jī)器人的操作模式,這些都造成了操作任務(wù)的交流不自 然。因此需要一種自然的容易被操作人員理解記憶的控制方法。
[0005] 當(dāng)然,我們也可以利用語(yǔ)音來(lái)進(jìn)行操作(如申請(qǐng)?zhí)?01410057451.9公開(kāi)了《一種基 于單人手勢(shì)和語(yǔ)音信息的機(jī)器人人工導(dǎo)航方法》),但是如果在工廠里或者聲音嘈雜的實(shí)驗(yàn) 室環(huán)境下,移動(dòng)機(jī)器人如何正確的接收并分析識(shí)別所下達(dá)的語(yǔ)音指令也是一個(gè)難題。
[0006] 這些公開(kāi)的檔案中,很多都側(cè)重于或只考慮人的肢體行為,只依賴于Kinect傳感 器提供的骨骼數(shù)據(jù),而忽略了人類社會(huì)中另一種重要的交流媒介一一人臉,并且Kinect傳 感器本身?yè)碛辛畠r(jià)而又優(yōu)越的硬件條件,如深度傳感器,紅外傳感器和普通攝像頭可以提 供可達(dá)到每秒30幀的1080p高清圖像,這些高清圖像足夠可以應(yīng)付要求達(dá)到高識(shí)別率的人 臉識(shí)別技術(shù)并且可以構(gòu)建清晰的人臉三維模型,通過(guò)人臉面部與頭部行為來(lái)對(duì)機(jī)器人獲取 控制權(quán)和下達(dá)指令。
[0007] 然而,普通的人臉識(shí)別都是基于靜態(tài)單幀圖像處理或者只關(guān)注于臉部細(xì)微特征變 化(如申請(qǐng)?zhí)?01410848027.6公開(kāi)了《基于Kinect及人臉識(shí)別的疲勞駕駛檢測(cè)方法》),雖然 可以達(dá)到很高的人臉識(shí)別準(zhǔn)確率,但是不能應(yīng)用于與移動(dòng)機(jī)器人交互的動(dòng)態(tài)過(guò)程中,因?yàn)椋?如果運(yùn)用臉部表情刻意變化去表征某個(gè)指令,對(duì)于用戶來(lái)說(shuō)不夠自然感到不適并且表情細(xì) 微的變化特征抖動(dòng)會(huì)限制指令正確識(shí)別率。此外,如果只處理單個(gè)時(shí)間點(diǎn)的數(shù)據(jù)幀,當(dāng)機(jī)器 人捕捉到的人臉本身就是有旋轉(zhuǎn)角度的人臉圖像,譬如,機(jī)器人首先捕捉到朝右的人臉圖 像,過(guò)了兩秒后捕捉到人臉圖像又是朝右,是否一定能判斷此人做出的行為一定是頭部向 右轉(zhuǎn)動(dòng)?答案是否定的,因?yàn)樵?秒這段時(shí)間內(nèi)人的頭部行為是未知的,這就降低了識(shí)別的 準(zhǔn)確率。因此,在實(shí)際運(yùn)用中必須要實(shí)時(shí)的動(dòng)態(tài)的識(shí)別人的臉部狀態(tài),這就既要求高識(shí)別準(zhǔn) 確率又要求短的計(jì)算時(shí)間。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明目的在于提供一種基于靈敏度參數(shù)的人臉朝向識(shí)別方法,以解決現(xiàn)有面部 識(shí)別應(yīng)用于與移動(dòng)機(jī)器人交互的動(dòng)態(tài)過(guò)程中識(shí)別的準(zhǔn)確率不高的技術(shù)問(wèn)題。
[0009] 為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于靈敏度參數(shù)的人臉朝向識(shí)別方法,包括 以下步驟:
[0010] S1:對(duì)采集到的單幀圖像逐一進(jìn)行靜態(tài)人臉朝向識(shí)別,根據(jù)人臉旋轉(zhuǎn)的角度大小 判斷單幀圖像的人臉朝向是正面、朝左還是朝右;
[0011 ] S2:在給定的米集時(shí)間內(nèi),對(duì)米集到的所有單幀圖像都進(jìn)行靜態(tài)人臉朝向識(shí)別,得 出一個(gè)按照時(shí)序依次排列的人臉朝向結(jié)果集;
[0012] S3:對(duì)人臉朝向結(jié)果集進(jìn)行過(guò)程分析,識(shí)別指令意圖,得出人臉朝向過(guò)程給出的指 令結(jié)果。
[0013] 作為本發(fā)明的方法的進(jìn)一步改進(jìn):
[0014] 優(yōu)選地,步驟S1包括以下步驟:
[0015] S101:對(duì)采集到的單幀圖像,獲取頭部原點(diǎn)四元數(shù),采用如下公式計(jì)算起始時(shí)刻頭 部旋轉(zhuǎn)的角度的歐拉角(cp e 〇))的大?。?br>(U
[0017]其中,四元數(shù)是由實(shí)數(shù)w加上三個(gè)虛數(shù)單位i,j,k組成的超復(fù)數(shù),表示為w+xi+yj+ zk,其中i的旋轉(zhuǎn)代表X軸與Y軸相交平面中X軸正向向Y軸正向的旋轉(zhuǎn),j旋轉(zhuǎn)代表Z軸與X軸 相交平面中Z軸正向向X軸正向的旋轉(zhuǎn),k旋轉(zhuǎn)代表Y軸與Z軸相交平面中Y軸正向向Z軸正向 的旋轉(zhuǎn),_i、_ j、_k分別代表i、j、k旋轉(zhuǎn)的反向旋轉(zhuǎn);
[0018] S102:根據(jù)歐拉角中co值大小,判斷人臉朝向:如果起始時(shí)刻《大于左靈敏度閾 值,判斷起始人臉朝向?yàn)槌?;如果起始時(shí)刻《處于左靈敏度閾值與右靈敏度閾值之間或 者等于左靈敏度閾值與右靈敏度閾值時(shí),判斷起始人臉朝向?yàn)檎?如果起始時(shí)刻《小于 右靈敏度閾值,判斷起始人臉朝向?yàn)槌遥?br>[0019] S103:記錄人臉朝向狀態(tài)。
[0020]優(yōu)選地,在步驟S102中,左靈敏度閾值為0或者根據(jù)用戶動(dòng)作習(xí)慣設(shè)置的第一定 值;右靈敏度閾值為〇或者根據(jù)用戶動(dòng)作習(xí)慣設(shè)置的第二定值。
[0021] 優(yōu)選地,人臉朝向結(jié)果集包括人臉朝向數(shù)組,步驟S2包括以下步驟:
[0022] S201:獲取在給定的采集時(shí)間內(nèi)按照采集頻率采集的多個(gè)單幀圖像;
[0023] S202:采用步驟S101對(duì)采集到的所有單幀圖像都計(jì)算起始時(shí)刻頭部旋轉(zhuǎn)的角度的 歐拉角:(.中8 M )_的大小,得出一個(gè)按照時(shí)序依次排列的向量〇 = ( 〇 1,〇 2,…,W i,…,《 3〇t) 且t = l,2,3,…;其中t為單幀圖像采集的時(shí)序編號(hào);
[0024] S204:采用步驟S102判斷向量〇中的每個(gè)元素的人臉朝向,得出人臉朝向數(shù)組r = (ri,r2,…,ri,…,r3〇t)且t = l,2,3,…,ri = 0,1,2〇
[0025]優(yōu)選地,人臉朝向結(jié)果集還包括角度差值數(shù)組,在步驟S204完成后,步驟S2包括以 下步驟:
[0026] S205:計(jì)算向量〇中的每個(gè)元素與起始時(shí)刻〇值的差值絕對(duì)值d的大小,(1=||〇- ? i I I,并保存入角度差值數(shù)組d = (cU,d2,…,di,…,d30t)且t = 1,2,3,…,角度差值數(shù)組中 的元素與人臉朝向數(shù)組中的元素一一對(duì)應(yīng)。
[0027] 優(yōu)選地,在步驟S204進(jìn)行之前,步驟S2還包括以下步驟:
[0028] S203:判斷當(dāng)前單幀圖像當(dāng)前時(shí)刻是否已經(jīng)超出給定采集時(shí)間的長(zhǎng)度閥值,如果 否,進(jìn)入步驟S204。
[0029]優(yōu)選地,指令結(jié)果,包括轉(zhuǎn)動(dòng)朝向,轉(zhuǎn)動(dòng)朝向包括正面、朝左及朝右,步驟S3包括以 下步驟:
[0030] S301:如果起始人臉朝向?yàn)檎?,遍歷人臉朝向結(jié)果集中的后續(xù)值,如果后續(xù)值都 是正面則指令結(jié)果為正面;如果遍歷時(shí)出現(xiàn)的第一個(gè)不為正面的值是朝左則判斷指令結(jié)果 為朝左,如果遍歷時(shí)出現(xiàn)的第一個(gè)不為正面的值是朝右則判斷指令結(jié)果為朝右;
[0031] S302:如果起始人臉朝向?yàn)槌?,遍歷人臉朝向結(jié)果集中的后續(xù)值,直到出現(xiàn)第一 個(gè)不是朝左的值,如果這個(gè)值為正面,則繼續(xù)遍歷;如果繼續(xù)遍歷出現(xiàn)的值為朝右則判斷指 令結(jié)果為朝右;如果只有正面和朝左那么統(tǒng)計(jì)后續(xù)值分別為正面和朝左的數(shù)量,如果朝左 的數(shù)量多那么判斷指令結(jié)果為朝左;反之結(jié)果為朝右;如果沒(méi)有非值是朝左的其他值,則指 令結(jié)果為正面;
[0032] S303:如果起始人臉朝向?yàn)槌遥闅v人臉朝向結(jié)果集中的后續(xù)值,直到出現(xiàn)第一 個(gè)不是朝右的值,如果這個(gè)值為正面,則繼續(xù)遍歷;如果繼續(xù)遍歷出現(xiàn)的值為朝左則判斷指 令結(jié)果為朝左;如果只有正面和朝右那么統(tǒng)計(jì)后續(xù)值分別為正面和朝右的數(shù)量,如果朝右 的數(shù)量多那么結(jié)果為朝右,反之結(jié)果為朝左;如果沒(méi)有非值是朝右的其他值,則指令結(jié)果為 正面。
[0033] 優(yōu)選地,指令結(jié)果還包括朝向角度,在步驟S301至步驟S303中,遍歷人臉朝向結(jié)果 集時(shí),在記錄所有單幀圖像的角度差值數(shù)組中,根據(jù)得出的轉(zhuǎn)動(dòng)朝向的相應(yīng)的最大時(shí)刻點(diǎn) 的角度差值作為朝向角度的大小輸出。
[0034] 優(yōu)選地,步驟S3完成后,將指令結(jié)果輸送給移動(dòng)機(jī)器人的執(zhí)行部件以控制移動(dòng)機(jī) 器人按照指令結(jié)果中的轉(zhuǎn)動(dòng)朝向和朝向角度行進(jìn)或退避。
[0035] 優(yōu)選地,采集到的單幀圖像為獲取了移動(dòng)機(jī)器人控制權(quán)的授權(quán)人的身體數(shù)據(jù)幀和 面部數(shù)據(jù)幀的彩色圖像。
[0036]本發(fā)明具有以下有益效果:
[0037] 1、本發(fā)明的基于靈敏度參數(shù)的人臉朝向識(shí)別方法,結(jié)合簡(jiǎn)單的面部特征與實(shí)時(shí)捕 捉頭部動(dòng)態(tài)過(guò)程結(jié)果作為相應(yīng)指令匹配方式,能準(zhǔn)確識(shí)別移動(dòng)機(jī)器人人機(jī)交互過(guò)程中的面 部轉(zhuǎn)動(dòng)指令,這種方式自然而且表達(dá)清晰,不受環(huán)境的限制,適用范圍廣。
[0038] 2、在優(yōu)選的方案中,本發(fā)明的基于靈敏度參數(shù)的人臉朝向識(shí)別方法,可以識(shí)別多 角度人臉朝向,工作人員可以指定角度大小,機(jī)器人按照指定角度進(jìn)行有角度朝向行進(jìn)避 讓。使用靈敏度參數(shù)中人臉轉(zhuǎn)向幅度參數(shù)進(jìn)行調(diào)節(jié),適應(yīng)各種光照不同的環(huán)境下人機(jī)交互 控制的使用,提高了人臉位置的識(shí)別正確率。
[0039] 除了上面所描述的目的、特征和優(yōu)點(diǎn)之外,本發(fā)明還有其它的目的、特征和優(yōu)點(diǎn)。 下面將參照附圖,對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
【附圖說(shuō)明】
[0040] 構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí) 施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0041] 圖1是本發(fā)明優(yōu)選實(shí)施例的基于靈敏度參數(shù)的人臉朝向識(shí)別方法的流程示意圖;
[0042] 圖2是本發(fā)明另一優(yōu)選實(shí)施例的基于靈敏度參數(shù)的人臉朝向識(shí)別方法的流程示意 圖;
[0043] 圖3是本發(fā)明優(yōu)選實(shí)施例的授權(quán)人發(fā)出指令朝右避讓可能出現(xiàn)的指令形式示意 圖。
【具體實(shí)施方式】
[0044]以下結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明,但是本發(fā)明可以由權(quán)利要求限定 和覆蓋的多種不同方式實(shí)施。
[0045] 本實(shí)施例中所稱的靈敏度參數(shù)是指根據(jù)不同人員的臉部轉(zhuǎn)向習(xí)慣而定義的用于 實(shí)現(xiàn)移動(dòng)機(jī)器人交互控制的一組參數(shù),包括人臉轉(zhuǎn)向速度、人臉轉(zhuǎn)向幅度和控制權(quán)競(jìng)勝。人 臉轉(zhuǎn)向速度代表個(gè)體頭部轉(zhuǎn)向速度的快慢。人臉轉(zhuǎn)向幅度是指人臉正對(duì)于機(jī)器人正面所旋 轉(zhuǎn)的具體角度。在高質(zhì)量的移動(dòng)機(jī)器人運(yùn)輸交互控制中,除了人臉轉(zhuǎn)向速度和人臉轉(zhuǎn)向幅 度非常重要,控制權(quán)競(jìng)勝參數(shù)也直接影響著交互控制的智能化水平。例如,當(dāng)機(jī)器人視野內(nèi) 出現(xiàn)多名工作人員,而這些工作人員中存在一名或幾名想與機(jī)器人進(jìn)行交互,除此外其他 人員沒(méi)有有與機(jī)器人進(jìn)行交互的意愿,如果機(jī)器人沒(méi)有預(yù)先考慮這個(gè)參數(shù),機(jī)器人會(huì)實(shí)時(shí) 進(jìn)行指令偵聽(tīng),這樣有可能那些沒(méi)有意愿給機(jī)器人下達(dá)指令的人的一些無(wú)意識(shí)的轉(zhuǎn)頭動(dòng) 作,機(jī)器人會(huì)誤以為該個(gè)體給他下達(dá)了相關(guān)指令內(nèi)容,譬如假設(shè)該人無(wú)意識(shí)的進(jìn)行了頭部 右轉(zhuǎn)動(dòng)作,這個(gè)頭部右轉(zhuǎn)動(dòng)作預(yù)設(shè)的指令內(nèi)容是朝右前進(jìn),那么機(jī)器人如果執(zhí)行這個(gè)指令 可能會(huì)與朝右前進(jìn)的路線上的某物體或其他人產(chǎn)生碰撞,產(chǎn)生嚴(yán)重事故。因此,這個(gè)參數(shù)是 至關(guān)重要的,個(gè)體若想對(duì)機(jī)器人下達(dá)指令,也就是想要獲取機(jī)器人的臨時(shí)控制權(quán),那么事先 可以通過(guò)給出這個(gè)參數(shù)值告知機(jī)器人本人想要下達(dá)指令,說(shuō)明接下來(lái)的指令動(dòng)作是有效 的,其他人未首先給出有效的控制權(quán)競(jìng)勝參數(shù),那么接下的下達(dá)的指令視為無(wú)效。該參數(shù)可 以由眼部閉合狀態(tài)、個(gè)體頭部抬頭或低頭具體角度大小或者混合方式來(lái)表征。本實(shí)施例僅 表述與以頭部轉(zhuǎn)動(dòng)過(guò)程結(jié)果作為相應(yīng)的指令內(nèi)容,告知機(jī)器人停止等待、行走方向和相應(yīng) 的退避方向的相關(guān)內(nèi)容。本實(shí)施例包括但不限于采用微軟生產(chǎn)的Kinect傳感器實(shí)現(xiàn)彩色圖 像的米集。
[0046] 參見(jiàn)圖1,本發(fā)明的基于靈敏度參數(shù)的人臉朝向識(shí)別方法,包括以下步驟:
[0047] S1:對(duì)采集到的單幀圖像逐一進(jìn)行靜態(tài)人臉朝向識(shí)別,根據(jù)人臉旋轉(zhuǎn)的角度大小 判斷單幀圖像的人臉朝向是正面、朝左還是朝右;
[0048] S2:在給定的米集時(shí)間內(nèi),對(duì)米集到的所有單幀圖像都進(jìn)行靜態(tài)人臉朝向識(shí)別,得 出一個(gè)按照時(shí)序依次排列的人臉朝向結(jié)果集;
[0049] S3:對(duì)人臉朝向結(jié)果集進(jìn)行過(guò)程分析,識(shí)別指令意圖,得出人臉朝向過(guò)程給出的指 令結(jié)果。
[0050] 以上步驟,結(jié)合簡(jiǎn)單的面部特征與分析實(shí)時(shí)捕捉頭部動(dòng)態(tài)過(guò)程結(jié)果作為相應(yīng)指令 匹配方式,能準(zhǔn)確識(shí)別移動(dòng)機(jī)器人人機(jī)交互過(guò)程中的面部轉(zhuǎn)動(dòng)指令,這種方式自然而且表 達(dá)清晰,不受環(huán)境的限制,適用范圍廣。
[0051] 在實(shí)際應(yīng)用中,在上述步驟的基礎(chǔ)上,本發(fā)明的基于靈敏度參數(shù)的人臉朝向識(shí)別 方法還可步驟進(jìn)行優(yōu)化,以下說(shuō)明另一個(gè)優(yōu)化后的實(shí)施例,參見(jiàn)圖2,在進(jìn)行本發(fā)明的識(shí)別 之前,移動(dòng)機(jī)器人先進(jìn)行如下工作:
[0052] 實(shí)時(shí)檢測(cè)偵聽(tīng)模塊完成后,從它獲取檢測(cè)到的人數(shù)結(jié)果和所有相應(yīng)追蹤號(hào)。然后 從Kinetc傳感器獲取身體數(shù)據(jù)幀(源于Kinect傳感器SDK類庫(kù)的BodyFrameSource參數(shù))和 面部數(shù)據(jù)幀(源于Kinect傳感器SDK類庫(kù)的faceFrameSources參數(shù))。
[0053]判斷指令觸發(fā)狀態(tài)變量,是否已經(jīng)收到指令觸發(fā)命令(眼睛閉合狀態(tài)數(shù)據(jù))。如果 是,表示有人通過(guò)眼睛閉合狀態(tài)給出指令,有意圖要控制機(jī)器人,因此尋找授權(quán)人,并且如 果找到授權(quán)人,則獲取授權(quán)人的追蹤號(hào)和采集時(shí)間長(zhǎng)度;如果否,表示沒(méi)有人想控制機(jī)器 人,機(jī)器人獲取下一人身體數(shù)據(jù)幀和面部數(shù)據(jù)幀,進(jìn)行持續(xù)監(jiān)測(cè)。
[0054]運(yùn)用尋找授權(quán)人方法,尋找授權(quán)人,并記錄追蹤號(hào)。如果沒(méi)有找到授權(quán)人那么獲取 身體數(shù)據(jù)幀和面部數(shù)據(jù)幀。獲取授權(quán)人的追蹤號(hào)后,對(duì)授權(quán)人發(fā)出的指令采用本實(shí)施例的 方法進(jìn)行識(shí)別,以授權(quán)人的頭部轉(zhuǎn)動(dòng)過(guò)程結(jié)果作為相應(yīng)的指令內(nèi)容,告知機(jī)器人停止等待、 行走方向和相應(yīng)的退避方向。
[0055] 參見(jiàn)圖2,本實(shí)施例的基于靈敏度參數(shù)的人臉朝向識(shí)別方法,包括以下步驟:
[0056] S1:對(duì)采集到的單幀圖像(采集到的單幀圖像是獲取了移動(dòng)機(jī)器人控制權(quán)的授權(quán) 人的身體數(shù)據(jù)幀和面部數(shù)據(jù)幀的彩色圖像,授權(quán)人即有權(quán)限的指令發(fā)起人)逐一進(jìn)行靜態(tài) 人臉朝向識(shí)別,根據(jù)人臉旋轉(zhuǎn)的角度大小判斷單幀圖像的人臉朝向是正面、朝左還是朝右; 具體包括以下步驟:
[0057] S101:對(duì)采集到的單幀圖像,獲取頭部原點(diǎn)四元數(shù),采用如下公式計(jì)算起始時(shí)刻頭 部旋轉(zhuǎn)的角度的歐拉角(cpe?)的大?。?br>(1)
[0059]其中,四元數(shù)是由實(shí)數(shù)w加上三個(gè)虛數(shù)單位i,j,k組成的超復(fù)數(shù),表示為w+xi+yj+ zk,對(duì)于虛數(shù)單位i,j,k本身的幾何意義可以理解為一種旋轉(zhuǎn),其中i的旋轉(zhuǎn)代表X軸與Y軸 相交平面中X軸正向向Y軸正向的旋轉(zhuǎn),j旋轉(zhuǎn)代表Z軸與X軸相交平面中Z軸正向向X軸正向 的旋轉(zhuǎn),k旋轉(zhuǎn)代表Y軸與Z軸相交平面中Y軸正向向Z軸正向的旋轉(zhuǎn),-i、-j、-k分別代表i、j、 k旋轉(zhuǎn)的反向旋轉(zhuǎn)。此處頭部原點(diǎn)位置指由眼睛連線與鼻梁縱向直線相交點(diǎn)位置代表確定, 根據(jù)此點(diǎn)在空間內(nèi)的坐標(biāo)位置變化可計(jì)算出代表頭部旋轉(zhuǎn)的四元數(shù)值。在具體實(shí)現(xiàn)時(shí),四 元數(shù)值可由Kinect體感傳感器直接實(shí)時(shí)測(cè)量獲得,然后計(jì)算對(duì)應(yīng)的頭部旋轉(zhuǎn)歐拉角。
[0060] S102:根據(jù)歐拉角中《值大小,判斷人臉朝向:如果起始時(shí)刻《大于左靈敏度閾 值,判斷起始人臉朝向?yàn)槌?;如果起始時(shí)刻《處于左靈敏度閾值與右靈敏度閾值之間或 者等于左靈敏度閾值與右靈敏度閾值時(shí),判斷起始人臉朝向?yàn)檎?如果起始時(shí)刻《小于 右靈敏度閾值,判斷起始人臉朝向?yàn)槌?左靈敏度閾值為0或者根據(jù)用戶動(dòng)作習(xí)慣設(shè)置的 第一定值;右靈敏度閾值為0或者根據(jù)用戶動(dòng)作習(xí)慣設(shè)置的第二定值。
[0061 ]左靈敏度閾值和右靈敏度閾值可手動(dòng)調(diào)節(jié)人臉轉(zhuǎn)向幅度參數(shù),左靈敏度閾值人臉 朝左轉(zhuǎn)動(dòng)幅度大小,假設(shè)此值設(shè)為10°,那么表示只有當(dāng)授權(quán)人人臉向左轉(zhuǎn)動(dòng)角度超過(guò)10° 時(shí)機(jī)器人才視為向左轉(zhuǎn)動(dòng),也就是說(shuō)明了值越大,指令靈敏度越低,安全性越高,微小的轉(zhuǎn) 動(dòng)不會(huì)產(chǎn)生錯(cuò)誤的指令下達(dá),可依據(jù)個(gè)人習(xí)慣而確定。同樣的,右靈敏度閾值指的是右轉(zhuǎn)靈 敏度。此外,當(dāng)應(yīng)用環(huán)境內(nèi)光照強(qiáng)烈時(shí),需調(diào)高此參數(shù)來(lái)保障機(jī)器人指令識(shí)別正確率。在實(shí) 際應(yīng)用中,對(duì)于這兩個(gè)個(gè)參數(shù)值,可采用人臉識(shí)別習(xí)慣記憶方式自動(dòng)調(diào)節(jié)。
[0062] S103:記錄人臉朝向狀態(tài)。
[0063] S2:在給定的采集時(shí)間內(nèi),對(duì)采集到的所有單幀圖像(連續(xù)幀,一般是每秒30幀)都 進(jìn)行靜態(tài)人臉朝向識(shí)別,得出一個(gè)按照時(shí)序依次排列的人臉朝向結(jié)果集;人臉朝向結(jié)果集 包括人臉朝向數(shù)組角度差值數(shù)組。給定的采集時(shí)間,具體包括以下步驟:
[0064] S201:獲取在給定的采集時(shí)間內(nèi)按照采集頻率采集的多個(gè)單幀圖像;
[0065] S202:采用步驟S101對(duì)采集到的所有單幀圖像都計(jì)算起始時(shí)刻頭部旋轉(zhuǎn)的角度的 歐拉角(<P 0⑴)的大小,得出一個(gè)按照時(shí)序依次排列的向量《 = ( ? 1,《 2,…,W i,…,《 3〇t) 且t = l,2,3,…;其中t為單幀圖像采集的時(shí)序編號(hào);
[0066] S203:判斷當(dāng)前單幀圖像當(dāng)前時(shí)刻是否已經(jīng)超出給定采集時(shí)間的長(zhǎng)度閥值,如果 否,進(jìn)入步驟S204。設(shè)定的采集時(shí)間長(zhǎng)度閥值t,采集時(shí)間長(zhǎng)度閥值確定采集數(shù)據(jù)幀的時(shí)間 段。本實(shí)施例中通過(guò)幀到達(dá)計(jì)數(shù)確定,每秒30幀,則若設(shè)定t值為2秒,則采集60幀。
[0067] S204:采用步驟S102判斷向量〇中的每個(gè)元素的人臉朝向,得出人臉朝向數(shù)組r = (ri,r2,…,ri,…,r3〇t)且t = l,2,3,…,ri = 0,1,2〇
[0068] S205:計(jì)算向量〇中的每個(gè)元素與起始時(shí)刻〇值的差值絕對(duì)值d的大小,(1=||〇- ? i I I,并保存入角度差值數(shù)組d = (cU,d2,…,di,…,d30t)且t = 1,2,3,…,角度差值數(shù)組中 的元素與人臉朝向數(shù)組中的元素一一對(duì)應(yīng)。
[0069] S3:對(duì)人臉朝向結(jié)果集進(jìn)行過(guò)程分析,識(shí)別指令意圖,得出人臉朝向過(guò)程給出的指 令結(jié)果。指令結(jié)果包括轉(zhuǎn)動(dòng)朝向,轉(zhuǎn)動(dòng)朝向包括正面、朝左及朝右。
[0070] 實(shí)時(shí)的人臉朝向識(shí)別算法主要難點(diǎn)在于授權(quán)人通過(guò)頭部轉(zhuǎn)動(dòng)發(fā)出指令的行為的 不確定性,譬如,在給定的采集圖像時(shí)間區(qū)域內(nèi),授權(quán)人初始狀態(tài)是正面面對(duì)機(jī)器人,此時(shí) 初始頭部旋轉(zhuǎn)角度為〇°,接下來(lái),授權(quán)人意圖告知機(jī)器人右轉(zhuǎn),于是授權(quán)人先進(jìn)行頭部右 轉(zhuǎn),考慮到采集時(shí)間長(zhǎng)短與授權(quán)人頭部轉(zhuǎn)動(dòng)速度快慢,可能在既定的圖像采集時(shí)間段內(nèi),如 果授權(quán)人頭部轉(zhuǎn)動(dòng)速度比較慢,那么在既定采集時(shí)間段內(nèi),機(jī)器人采集到的授權(quán)人頭部運(yùn) 動(dòng)過(guò)程是從正朝對(duì)機(jī)器人到右轉(zhuǎn),如果授權(quán)人頭部轉(zhuǎn)動(dòng)速度較快,那么采集到的過(guò)程可能 是先正朝對(duì)機(jī)器人,然后右轉(zhuǎn),然后又是左轉(zhuǎn)復(fù)位。因此,如果單純從采集的幾個(gè)片段判斷 授權(quán)人意圖是不正確的,可能采集到的人臉圖朝向識(shí)別結(jié)果是朝左,但是實(shí)際是朝右,對(duì)于 一般的只采集幾個(gè)時(shí)間點(diǎn)進(jìn)行識(shí)別的方法中這些類似的錯(cuò)誤結(jié)果發(fā)生的概率很大。
[0071] 所以為了解決這個(gè)過(guò)程性問(wèn)題,首先本實(shí)施例大致把指令意圖與實(shí)際頭部行為分 為如圖3所示幾種情況(圖中說(shuō)明的是一個(gè)過(guò)程,只列出授權(quán)人指令意圖是朝右,朝左情形 與圖示類似),其中圖3a表示起始時(shí)刻臉正面朝對(duì)機(jī)器;圖3b表示起始時(shí)刻臉朝右對(duì)機(jī)器 人;圖3c表示起始時(shí)刻臉朝左對(duì)機(jī)器人。
[0072]上述情況如果用數(shù)字1代表正臉面對(duì),2代表朝左,3代表朝右則可分別表述為:
[0073] 情形一:起始時(shí)刻采集到的臉朝向?yàn)?,正常時(shí)間范圍內(nèi)狀態(tài)過(guò)程可表述為如 11133333。如果采集時(shí)間(人臉轉(zhuǎn)向速度參數(shù))很長(zhǎng)則可能出現(xiàn)如11133331111情形。
[0074] 情形二:起始時(shí)刻采集到的臉朝向?yàn)?,正常時(shí)間范圍內(nèi)狀態(tài)過(guò)程可表述為如 33333333。如果采集時(shí)間(人臉轉(zhuǎn)向速度參數(shù))很長(zhǎng)則可能出現(xiàn)如33333331111情形。
[0075]情形三:起始時(shí)刻采集到的臉朝向?yàn)?,正常時(shí)間范圍內(nèi)狀態(tài)過(guò)程可表述為如 222111。如果采集時(shí)間很長(zhǎng)(人臉轉(zhuǎn)向速度參數(shù))則可能出現(xiàn)如222111(333111)222情形。
[0076] 因此,本實(shí)施例中步驟S3具體采用以下步驟實(shí)現(xiàn):
[0077] S301:如果起始人臉朝向?yàn)?,遍歷人臉朝向結(jié)果集中的后續(xù)值,如果后續(xù)值都是1 則指令結(jié)果為1;如果遍歷時(shí)出現(xiàn)的第一個(gè)不為1的值是2則判斷指令結(jié)果為2,如果遍歷時(shí) 出現(xiàn)的第一個(gè)不為1的值是3則判斷指令結(jié)果為3;遍歷人臉朝向結(jié)果集時(shí),在記錄所有單幀 圖像的角度差值數(shù)組中(即步驟S204所得人臉朝向數(shù)組),根據(jù)得出的轉(zhuǎn)動(dòng)朝向的相應(yīng)的最 大時(shí)刻點(diǎn)的角度差值作為朝向角度的大小輸出。也就是,人臉朝向最終結(jié)果為朝右,那么在 y中遍歷尋找連續(xù)出現(xiàn)值為3的最后一個(gè)時(shí)刻點(diǎn)j,那么輸出角度為山。歸納就是,已知人臉 朝向結(jié)果為a,如果y i = a且y j<i = a且y j>i = a,則輸出角度為di。
[0078] S302:如果起始人臉朝向?yàn)?,遍歷人臉朝向結(jié)果集中的后續(xù)值,直到出現(xiàn)第一個(gè) 不是2的值,如果這個(gè)值為1,則繼續(xù)遍歷;如果繼續(xù)遍歷出現(xiàn)的值為3則判斷指令結(jié)果為3; 如果只有1和2那么統(tǒng)計(jì)后續(xù)值分別為1和2的數(shù)量,如果2的數(shù)量多那么判斷指令結(jié)果為2; 反之結(jié)果為3;如果沒(méi)有非值是2的其他值,則指令結(jié)果為1(可能存在授權(quán)人意圖發(fā)出右轉(zhuǎn) 命令或左轉(zhuǎn),但是轉(zhuǎn)動(dòng)角度實(shí)在太小默認(rèn)為沒(méi)轉(zhuǎn)動(dòng),如果有這樣的需求,可以采用方式一, 調(diào)節(jié)靈敏度通過(guò)頭部轉(zhuǎn)動(dòng)角度可以精確的判斷,如果后續(xù)角度大于閥值結(jié)果2,如果小于閥 值為3,閥值內(nèi)為1);遍歷人臉朝向結(jié)果集時(shí),在記錄所有單幀圖像的角度差值數(shù)組中(即步 驟S204所得人臉朝向數(shù)組),根據(jù)得出的轉(zhuǎn)動(dòng)朝向的相應(yīng)的最大時(shí)刻點(diǎn)的角度差值作為朝 向角度的大小輸出。
[0079] S303:如果起始人臉朝向?yàn)?,遍歷人臉朝向結(jié)果集中的后續(xù)值,直到出現(xiàn)第一個(gè) 不是3的值,如果這個(gè)值為1,則繼續(xù)遍歷;如果繼續(xù)遍歷出現(xiàn)的值為2則判斷指令結(jié)果為2; 如果只有1和3那么統(tǒng)計(jì)后續(xù)值分別為1和3的數(shù)量,如果3的數(shù)量多那么結(jié)果為3,反之結(jié)果 為2;如果沒(méi)有非值是3的其他值,則指令結(jié)果為1(可能存在授權(quán)人意圖發(fā)出右轉(zhuǎn)命令或左 轉(zhuǎn),但是轉(zhuǎn)動(dòng)角度實(shí)在太小默認(rèn)為沒(méi)轉(zhuǎn)動(dòng),如果有這樣的需求,可以采用方式一,調(diào)節(jié)靈敏 度通過(guò)頭部轉(zhuǎn)動(dòng)角度可以精確的判斷,如果后續(xù)角度大于閥值結(jié)果2,如果小于閥值為3,閥 值內(nèi)為1)。遍歷人臉朝向結(jié)果集時(shí),在記錄所有單幀圖像的角度差值數(shù)組中(即步驟S204所 得人臉朝向數(shù)組),根據(jù)得出的轉(zhuǎn)動(dòng)朝向的相應(yīng)的最大時(shí)刻點(diǎn)的角度差值作為朝向角度的 大小輸出。
[0080] 得到指令結(jié)果后,將指令結(jié)果輸送給移動(dòng)機(jī)器人的執(zhí)行部件以控制移動(dòng)機(jī)器人按 照指令結(jié)果中的轉(zhuǎn)動(dòng)朝向和朝向角度行進(jìn)或退避。
[0081] 綜上可知,本發(fā)明的基于靈敏度參數(shù)的人臉朝向識(shí)別方法,可以識(shí)別多角度人臉 朝向,工作人員可以指定角度大小,機(jī)器人按照指定角度進(jìn)行有角度朝向行進(jìn)避讓。使用靈 敏度參數(shù)中人臉轉(zhuǎn)向幅度參數(shù)進(jìn)行調(diào)節(jié),適應(yīng)各種光照不同的環(huán)境下人機(jī)交互控制的使 用,提高了人臉位置的識(shí)別正確率。本發(fā)明計(jì)算簡(jiǎn)單,執(zhí)行效率高,可通過(guò)調(diào)節(jié)靈敏度適應(yīng) 不同場(chǎng)合,可輸出朝向結(jié)果的同時(shí)精確的給出朝向角度,通過(guò)旋轉(zhuǎn)角度的提供可進(jìn)行擴(kuò)展 性的開(kāi)發(fā)出更多指令內(nèi)容,延展性好。
[0082]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種基于靈敏度參數(shù)的人臉朝向識(shí)別方法,其特征在于,包括以下步驟: S1:對(duì)采集到的單幀圖像逐一進(jìn)行靜態(tài)人臉朝向識(shí)別,根據(jù)人臉旋轉(zhuǎn)的角度大小判斷 所述單幀圖像的人臉朝向是正面、朝左還是朝右; S2:在給定的采集時(shí)間內(nèi),對(duì)采集到的所有單幀圖像都進(jìn)行靜態(tài)人臉朝向識(shí)別,得出一 個(gè)按照時(shí)序依次排列的人臉朝向結(jié)果集; S3:對(duì)所述人臉朝向結(jié)果集進(jìn)行過(guò)程分析,識(shí)別指令意圖,得出人臉朝向過(guò)程給出的指 令結(jié)果。2. 根據(jù)權(quán)利要求1所述的人臉朝向識(shí)別方法,其特征在于,所述步驟S1包括以下步驟: S101:對(duì)采集到的單幀圖像,獲取頭部原點(diǎn)四元數(shù),采用如下公式計(jì)算起始時(shí)刻頭部旋 轉(zhuǎn)的角度的歐拉角(φ β ω )的大?。浩渲校脑獢?shù)是由實(shí)數(shù)w加上三個(gè)虛數(shù)單位i,j,k組成的超復(fù)數(shù),表示為w+xi+yj+zk,其 中i的旋轉(zhuǎn)代表X軸與Y軸相交平面中X軸正向向Y軸正向的旋轉(zhuǎn),j旋轉(zhuǎn)代表Z軸與X軸相交平 面中Z軸正向向X軸正向的旋轉(zhuǎn),k旋轉(zhuǎn)代表Y軸與Z軸相交平面中Y軸正向向Z軸正向的旋 轉(zhuǎn),_i、- j、_k分別代表i、j、k旋轉(zhuǎn)的反向旋轉(zhuǎn); S102:根據(jù)歐拉角中ω值大小,判斷人臉朝向:如果起始時(shí)刻ω大于左靈敏度閾值,判 斷起始人臉朝向?yàn)槌?如果起始時(shí)刻ω處于左靈敏度閾值與右靈敏度閾值之間或者等于 左靈敏度閾值與右靈敏度閾值時(shí),判斷起始人臉朝向?yàn)檎?如果起始時(shí)刻ω小于右靈敏 度閾值,判斷起始人臉朝向?yàn)槌遥? S103:記錄人臉朝向狀態(tài)。3. 根據(jù)權(quán)利要求2所述的人臉朝向識(shí)別方法,其特征在于,在所述步驟S102中,所述左 靈敏度閾值為〇或者根據(jù)用戶動(dòng)作習(xí)慣設(shè)置的第一定值;所述右靈敏度閾值為〇或者根據(jù)用 戶動(dòng)作習(xí)慣設(shè)置的第二定值。4. 根據(jù)權(quán)利要求3所述的人臉朝向識(shí)別方法,其特征在于,所述人臉朝向結(jié)果集包括人 臉朝向數(shù)組,所述步驟S2包括以下步驟: S201:獲取在給定的采集時(shí)間內(nèi)按照采集頻率采集的多個(gè)單幀圖像; S202:采用步驟S101對(duì)采集到的所有單幀圖像都計(jì)算起始時(shí)刻頭部旋轉(zhuǎn)的角度的歐拉 角?φ:0ω:.〉的大小,得出一個(gè)按照時(shí)序依次排列的向量ω =( ω1; ω2,···,c〇i,···,ω3(Η)且t =1,2,3,…;其中t為所述單幀圖像采集的時(shí)序編號(hào); S204:采用步驟S102判斷向量ω中的每個(gè)元素的人臉朝向,得出人臉朝向數(shù)組r = (ri, Γ2,··· ,Γ?,··· ,r3〇t)iit = 1,2,3,··· ,π = 0,1,2〇5. 根據(jù)權(quán)利要求4所述的人臉朝向識(shí)別方法,其特征在于,所述人臉朝向結(jié)果集還包括 角度差值數(shù)組,在所述步驟S204完成后,所述步驟S2包括以下步驟: S205:計(jì)算向量ω中的每個(gè)元素與起始時(shí)刻ω值的差值絕對(duì)值d的大小,d= | | ω-coi | ,并保存入角度差值數(shù)組…,扎…,d3Qt)且t = l,2,3,…,所述角度差值數(shù)組中 的元素與所述人臉朝向數(shù)組中的元素一一對(duì)應(yīng)。6. 根據(jù)權(quán)利要求5所述的人臉朝向識(shí)別方法,其特征在于,在所述步驟S204進(jìn)行之前, 所述步驟S2還包括以下步驟: S203:判斷當(dāng)前單幀圖像當(dāng)前時(shí)刻是否已經(jīng)超出給定采集時(shí)間的長(zhǎng)度閥值,如果否,進(jìn) 入步驟S204。7. 根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的人臉朝向識(shí)別方法,其特征在于,所述指令結(jié)果, 包括轉(zhuǎn)動(dòng)朝向,所述轉(zhuǎn)動(dòng)朝向包括正面、朝左及朝右,所述步驟S3包括以下步驟: S301:如果起始人臉朝向?yàn)檎?,遍歷人臉朝向結(jié)果集中的后續(xù)值,如果后續(xù)值都是正 面則指令結(jié)果為正面;如果遍歷時(shí)出現(xiàn)的第一個(gè)不為正面的值是朝左則判斷指令結(jié)果為朝 左,如果遍歷時(shí)出現(xiàn)的第一個(gè)不為正面的值是朝右則判斷指令結(jié)果為朝右; S302:如果起始人臉朝向?yàn)槌?,遍歷人臉朝向結(jié)果集中的后續(xù)值,直到出現(xiàn)第一個(gè)不 是朝左的值,如果這個(gè)值為正面,則繼續(xù)遍歷;如果繼續(xù)遍歷出現(xiàn)的值為朝右則判斷指令結(jié) 果為朝右;如果只有正面和朝左那么統(tǒng)計(jì)后續(xù)值分別為正面和朝左的數(shù)量,如果朝左的數(shù) 量多那么判斷指令結(jié)果為朝左;反之結(jié)果為朝右;如果沒(méi)有非值是朝左的其他值,則指令結(jié) 果為正面; S303:如果起始人臉朝向?yàn)槌?,遍歷人臉朝向結(jié)果集中的后續(xù)值,直到出現(xiàn)第一個(gè)不 是朝右的值,如果這個(gè)值為正面,則繼續(xù)遍歷;如果繼續(xù)遍歷出現(xiàn)的值為朝左則判斷指令結(jié) 果為朝左;如果只有正面和朝右那么統(tǒng)計(jì)后續(xù)值分別為正面和朝右的數(shù)量,如果朝右的數(shù) 量多那么結(jié)果為朝右,反之結(jié)果為朝左;如果沒(méi)有非值是朝右的其他值,則指令結(jié)果為正 面。8. 根據(jù)權(quán)利要求7所述的人臉朝向識(shí)別方法,其特征在于,所述指令結(jié)果還包括朝向角 度,在所述步驟S301至所述步驟S303中,遍歷所述人臉朝向結(jié)果集時(shí),在記錄所有單幀圖像 的角度差值數(shù)組中,根據(jù)得出的轉(zhuǎn)動(dòng)朝向的相應(yīng)的最大時(shí)刻點(diǎn)的角度差值作為朝向角度的 大小輸出。9. 根據(jù)權(quán)利要求1或8所述的人臉朝向識(shí)別方法,其特征在于,所述步驟S3完成后,將所 述指令結(jié)果輸送給移動(dòng)機(jī)器人的執(zhí)行部件以控制所述移動(dòng)機(jī)器人按照所述指令結(jié)果中的 轉(zhuǎn)動(dòng)朝向和朝向角度行進(jìn)或退避。10. 根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的人臉朝向識(shí)別方法,其特征在于,所述采集到的 單幀圖像為獲取了移動(dòng)機(jī)器人控制權(quán)的授權(quán)人的身體數(shù)據(jù)幀和面部數(shù)據(jù)幀的彩色圖像。
【文檔編號(hào)】G06K9/00GK105930775SQ201610230028
【公開(kāi)日】2016年9月7日
【申請(qǐng)日】2016年4月14日
【發(fā)明人】劉輝, 李燕飛, 張雷
【申請(qǐng)人】中南大學(xué)