本申請涉及人機交互技術領域,尤其涉及一種人機交互方法及系統(tǒng)。
背景技術:
隨著智能化信息技術的發(fā)展,新的交互方式層出不窮,特別是出現(xiàn)了多種非接觸式的交互方式,例如基于語音控制的交互方式、基于體感控制的交互方式。
在基于體感控制的非接觸式人機交互方案中,眼控識別是重要方向之一,其原理是通過捕捉用戶的眼球運動作為圖形化界面的輸入方式,實現(xiàn)人機交互?,F(xiàn)有眼控識別對采集圖像的分辨率要求較高,因此需要采用分辨率高的攝像機或攝像頭,或者需要紅外光源等,實現(xiàn)成本較高,而且為保證眼控的使用效果,使用眼控方法需要事先用戶配合進行校準,使用過程中需盡量限制頭部的運動,故其算法也較為復雜,對設備性能要求較高,在一般設備上無法實施,普適性較差。
技術實現(xiàn)要素:
本申請的多個方面提供一種人機交互方法及系統(tǒng),用以提供一種普適性較強的人機交互方案,降低人機交互的成本和實現(xiàn)難度,適用于各種設備。
本申請實施例提供一種人機交互方法,包括:
在人機交互界面上,顯示至少一個待選對象;
對用戶的臉部區(qū)域進行圖像采集,以獲得人臉圖像幀;
根據(jù)所述人臉圖像幀,識別所述用戶的頭部動作為對象選擇動作;
基于所述對象選擇動作,標記所述至少一個待選對象中的第一對象為選中狀態(tài)。
在一可選實施方式中,所述對象選擇動作為頭部轉動動作;
所述第一對象的選中狀態(tài)的標記步驟,包括:
根據(jù)所述頭部轉動動作的轉動方向,確定所述用戶的面部朝向;
根據(jù)面部朝向與待選對象之間的相對位置關系,確定所述至少一個待選對象中對應于所述面部朝向的對象,作為所述第一對象;
標記所述第一對象為選中狀態(tài)。
在一可選實施方式中,在標記所述第一對象為選中狀態(tài)后,所述方法還包括:
繼續(xù)對所述用戶的臉部區(qū)域進行圖像采集,以獲得新的人臉圖像幀;
根據(jù)所述新的人臉圖像幀,識別所述用戶的頭部動作為選擇確認動作或選擇取消動作;
基于所述選擇確認動作或選擇取消動作,確認或取消所述第一對象的選中狀態(tài)。
在一可選實施方式中,所述選擇確認動作的識別步驟,包括:
根據(jù)選定特征點在所述新的人臉圖像幀中的坐標,計算所述選定特征點的水平方向坐標變化幅度和垂直方向坐標變化幅度;
若所述選定特征點的垂直方向坐標變化幅度與所述選定特征點的水平方向坐標變化幅度滿足第一比例關系,且所述垂直方向坐標變化幅度大于垂直方向坐標變化幅度閾值,確定所述用戶的頭部動作為點頭動作,所述點頭動作為所述選擇確認動作;
所述選擇取消動作的識別步驟,包括:
根據(jù)選定特征點在所述新的人臉圖像幀中的坐標,計算所述選定特征點的水平方向坐標變化幅度和垂直方向坐標變化幅度;
若所述選定特征點的垂直方向坐標變化幅度與所述選定特征點的水平方向坐標變化幅度滿足第二比例關系,且所述水平方向坐標變化幅度大于水平方向坐標變化幅度閾值,確定所述用戶的頭部動作為搖頭動作,所述搖頭動作為所述選擇取消動作。
在一可選實施方式中,所述水平方向坐標變化幅度和所述垂直方向坐標變化幅度的計算步驟,包括:
根據(jù)所述選定特征點在所述新的人臉圖像幀中的橫坐標和縱坐標,分別計算平均橫坐標和平均縱坐標;
從所述選定特征點在所述新的人臉圖像幀中的橫坐標與所述平均橫坐標的差值的絕對值中,選擇最大絕對值作為所述水平方向坐標變化幅度;
從所述選定特征點在所述新的人臉圖像幀中的縱坐標與所述平均縱坐標的差值的絕對值中,選擇最大絕對值作為所述垂直方向坐標變化幅度。
在一可選實施方式中,所述第一對象的選中狀態(tài)的標記步驟,包括:
以第一方式,突出顯示所述第一對象;
所述第一對象的選中狀態(tài)的確認步驟,包括:
以不同于所述第一方式的第二方式,突出顯示所述第一對象;
所述第一方式或所述第二方式包括:高亮、加選擇框、加顏色、動畫中的至少一種方式。
在一可選實施方式中,所述至少一個待選對象包括:界面區(qū)域和/或界面元素。
在一可選實施方式中,所述至少一個待選對象的顯示步驟,包括:
將所述人機交互界面垂直劃分為多個界面區(qū)域;
在所述人機交互界面上,顯示所述多個界面區(qū)域的邊界線。
本申請實施例還提供一種人機交互系統(tǒng),包括:
顯示器,用于顯示人機交互界面,所述人機交互界面包括至少一個待選對象;
圖像采集設備,用于對用戶的臉部區(qū)域進行圖像采集,以獲得人臉圖像幀;
交互控制設備,連接于所述圖像采集設備和所述顯示器,用于根據(jù)所述圖像采集設備采集到的人臉圖像幀,識別所述用戶的頭部動作為對象選擇動作,基于所述對象選擇動作,標記所述至少一個待選對象中的第一對象為選中狀態(tài)。
在一可選實施方式中,所述圖像采集設備還用于:繼續(xù)對所述用戶的臉部區(qū)域進行圖像采集,以獲得新的人臉圖像幀;
所述交互控制設備還用于:根據(jù)所述圖像采集設備采集到的新的人臉圖像幀,識別所述用戶的頭部動作為選擇確認動作或選擇取消動作,以及基于所述選擇確定動作或選擇取消動作,確認或取消所述第一對象的選中狀態(tài)。
在本申請實施例中,對用戶的臉部區(qū)域進行圖像采集,獲得人臉圖像幀,基于采集到的人臉圖像幀識別用戶的頭部動作,基于用戶的頭部動作實現(xiàn)人機交互。與現(xiàn)有基于眼動的人機交互方案相比,本申請技術方案對硬件要求較低,通過普通的攝像頭或攝像機即可實現(xiàn),而且本申請技術方案對用戶的頭部運動限制較少,無需事先進行校準,算法難度較低,這使得本申請技術方案的整體實現(xiàn)成本較低,普適性較強。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構成對本申請的不當限定。在附圖中:
圖1為本申請一實施例提供的人機交互系統(tǒng)的結構示意圖;
圖2為本申請另一實施例提供的人機交互界面顯示待選對象的示意圖;
圖3a為本申請另一實施例提供的展示人臉圖像幀中的特征點的示意圖;
圖3b為本申請另一實施例提供的通過點頭動作確認選擇第一對象的示意圖;
圖4為本申請又一實施例提供的人機交互方法的流程示意圖;
圖5為本申請又一實施例提供的人機交互方法的流程示意圖;
圖6為本申請又一實施例提供的人機交互方法的流程示意圖。
具體實施方式
為使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
本申請實施例提供的人機交互方法可基于圖1所示的人機交互系統(tǒng)實現(xiàn),但并不限于此。如圖1所示,所述人機交互系統(tǒng)包括:顯示器10、圖像采集設備20以及交互控制設備30。
其中,顯示器10以及圖像采集設備20分別與交互控制設備30連接。顯示器10或圖像采集設備20與交互控制設備30之間可以是無線或有線網絡連接。
例如,顯示器10或圖像采集設備20可以通過移動網絡與交互控制設備30通信連接。該移動網絡的網絡制式可以為2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax等中的任意一種。
又例如,顯示器10或圖像采集設備20可以通過WiFi、藍牙、紅外等無線網絡與交互控制設備30通信連接。
在本系統(tǒng)中,顯示器10主要用于顯示人機交互界面,所述人機交互界面包括至少一個待選對象。值得說明的是,本系統(tǒng)并不限定待選對象的實現(xiàn)形式,可以是任何能夠呈現(xiàn)于人機交互界面上且可被用戶選擇的對象。舉例說明,所述至少一個待選對象可以包括界面區(qū)域和/或界面元素。界面區(qū)域是指人機交互界面上的區(qū)域;界面元素是指人機交互界面上呈現(xiàn)的元素。
在一可選實施方式中,待選對象為界面區(qū)域,界面區(qū)域內的內容可以被選擇(類似于Windows操作系統(tǒng)中鼠標單擊效果)和選中(類似于Windows操作系統(tǒng)中鼠標單擊效果)。可選的,顯示器10顯示的人機交互界面可被劃分為多個界面區(qū)域,如被垂直劃分為三個界面區(qū)域,分別為左中右三個界面區(qū)域;在人機交互界面上,顯示多個界面區(qū)域的邊界線,以達到顯示多個界面區(qū)域的目的。
在本系統(tǒng)中,圖像采集設備20主要用于對用戶的臉部區(qū)域進行圖像采集,以獲得人臉圖像幀。根據(jù)應用需求的不同,圖像采集設備20可以實時采集一個或多個人臉圖像幀。
可選的,圖像采集設備20可架設于顯示器10的某一部位,或者置于顯示器10內部實現(xiàn)。
可選的,圖像采集設備20可以是攝像頭或攝像機等任何具有圖像采集功能的設備。優(yōu)選的,圖像采集設備20可以選用普通的攝像頭或攝像機,以降低整個人機交互系統(tǒng)的實現(xiàn)成本。
在本系統(tǒng)中,交互控制設備30連接于顯示器10和圖像采集設備20,主要用于根據(jù)圖像采集設備20采集到的人臉圖像幀,識別用戶的頭部動作為對象選擇動作,基于所述對象選擇操作,標記至少一個待選對象中的第一對象為選中狀態(tài)。
可選的,交互控制設備30可以是任何具有一定處理能力的設備,例如可以是計算機、智能終端、平板電腦、服務器等。優(yōu)選的,交互控制設備30可以選用成本較低的計算機,以降低整個人機交互系統(tǒng)的實現(xiàn)成本。
本實施例提供的人機交互系統(tǒng),可基于用戶的頭部動作實現(xiàn)人機交互,與現(xiàn)有基于眼動的人機交互方案相比,對硬件要求較低,通過普通的攝像頭或攝像機即可實現(xiàn),而且本申請技術方案對用戶的頭部運動限制較少,無需事先進行校準,算法難度較低,這使得本申請實施例提供的人機交互系統(tǒng)的整體實現(xiàn)成本較低,普適性較強。
在一可選實施方式中,顯示器10顯示人機交互界面,所述人機交互界面包括至少一個待選對象。圖像采集設備20對用戶的臉部區(qū)域進行圖像采集,以實時獲得人臉圖像幀。交互控制設備30運行開源計算機視覺庫(Open Source Computer Vision Library,OpenCV),通過OpenCV的cv::VideoCapture()函數(shù),讀取圖像采集設備20實時采集到的人臉圖像幀??蛇x的,可以將讀取到的人臉圖像幀命名為captured_image。
在獲得圖像采集設備20采集到的人臉圖像幀后,交互控制設備30可以根據(jù)人臉圖像幀對用戶的頭部動作進行識別。在該實施方式中,設置頭部轉動動作為對象選擇動作。則在人機交互過程中,交互控制設備30需要基于圖像采集設備20采集到的人臉圖像幀識別用戶的頭部轉動動作。
例如,交互控制設備30可以使用OpenFace開源的面部行為分析工具,調用void outputAllFeatures獲得檢測結果數(shù)據(jù),其中包括了面部朝向的坐標數(shù)據(jù)pose_estimate,根據(jù)pose_estimate數(shù)據(jù)的變化識別用戶的頭部動作;當識別到用戶的頭部朝向坐標發(fā)生變化,將該動作識別為用戶頭部轉動,程序將判斷該動作為用戶需要進行對象選擇。其中,OpenFace是一個基于深度神經網絡的開源人臉識別系統(tǒng),其原理可參見現(xiàn)有技術,在此不再贅述。
在上述頭部轉動動作的基礎上,可以預先設置用戶的面部朝向與待選對象之間的相對位置關系,以便于基于頭部轉動動作進行對象選擇。設置相對位置關系,根據(jù)實際使用情景下人機交互界面與用戶操作的相對距離和高度,角度等位置,例如預先判斷面部朝向的大致范圍,得到面部轉動角度的數(shù)據(jù)的變化范圍,將面部轉動角度的數(shù)據(jù)變化范圍平均劃分為N個區(qū)域,N為交互界面的劃分數(shù)量。即通過預先設定方式,將用戶面部轉動的動作,隨動作幅度變化,映射到人機交互界面的N個區(qū)域。
以圖2所示的人機交互界面為例,該人機交互界面包括左中右三個界面區(qū)域,三個界面區(qū)域為待選對象。在該示例中,可以設置左側界面區(qū)域對應于面部朝向屏幕左側,中間界面區(qū)域對應于面部朝向屏幕正中間,右側界面區(qū)域對應于面部朝向屏幕右側?;诖?,當檢測到用戶的面部朝向偏向屏幕左側時,選擇左側邊界區(qū)域,如圖2所示;當檢測到用戶的面部朝向在屏幕中間附近時,選擇中間邊界區(qū)域;當檢測到用戶的面部朝向偏向屏幕右側時,選擇右側邊界區(qū)域。
基于上述面部朝向與待選對象之間的相對位置關系,交互控制設備30在確定用戶的頭部動作為頭部轉動動作后,可以根據(jù)頭部轉動動作的轉動方向,確定用戶的面部朝向;根據(jù)面部朝向與待選對象之間的相對位置關系,確定至少一個待選對象中對應于用戶的面部朝向的對象,作為第一對象;然后,標記第一對象為選中狀態(tài)。其中,第一對象為用戶選擇的對象。例如,可以通過高亮、加選擇框、加顏色、動畫中的至少一種方式對第一對象進行標記。
可選的,在對用戶的面部行為進行分析的過程中,交互控制設備30可以通過OpenFace/FeatureExtraction/FeatureExtraction.cpp中Void outputAllFeatures()函數(shù)將每幀人臉圖像幀的檢測結果記錄到一個文件中;基于此,交互控制設備30可以利用const cv::Vec6d&pose_estimate獲得用戶的面部朝向信息,進而基于用戶的面部朝向確定第一對象。
對顯示器10來說,除了顯示人機交互界面之外,還需要在人機交互界面上顯示第一對象的選中狀態(tài)。
在另一可選實施方式中,顯示器10顯示人機交互界面,所述人機交互界面包括至少一個待選對象。圖像采集設備20對用戶的臉部區(qū)域進行圖像采集,以實時獲得人臉圖像幀。交互控制設備30根據(jù)圖像采集設備20實時采集到的人臉圖像幀,識別用戶的頭部動作為對象選擇動作,基于所述對象選擇操作,標記至少一個待選對象中的第一對象為選中狀態(tài)。
在標記第一對象為選中狀態(tài)后,圖像采集設備20還可以繼續(xù)對用戶的臉部區(qū)域進行圖像采集,以獲得新的人臉圖像幀。根據(jù)應用需求的不同,圖像采集設備20可以實時采集一個或多個新的人臉圖像幀。優(yōu)選的,圖像采集設備20可以連續(xù)采集多個新的人臉圖像幀。相應地,交互控制設備30還可以根據(jù)圖像采集設備20采集到的新的人臉圖像幀,識別用戶的頭部動作為選擇確認動作或選擇取消動作;進而基于選擇確認動作或選擇取消動作,確認或取消第一對象的選中狀態(tài)。
在該實施方式中,通過增加選擇確認動作和選擇取消動作,有利于避免因為無意識的頭部動作而引起的誤操作,提高人機交互的精確性。
在此說明,上述對象選擇動作、選擇確定動作以及選擇取消動作是不同的頭部動作,但本實施例并不限定上述對象選擇動作、選擇確定動作以及選擇取消動作的具體實現(xiàn)形式。
在一可選實施方式中,上述對象選擇動作為頭部轉動動作,上述選擇確認動作可以是點頭動作;相應地,選擇取消動作可以是搖頭動作,但并不限于此。為識別點頭動作或搖頭動作,圖像采集設備20需要采集多個新的人臉圖像幀。這里的多個是指至少兩個。
基于上述,在確認第一對象的選中狀態(tài)的過程中,需要識別用戶的點頭動作。可選的,考慮到人臉圖像幀中的特征點較多,例如通過OpenFace中FeatureExtraction/FeatureExtraction.cpp函數(shù)可以從人臉圖像幀中提取到多達68個特征點,如圖3a所示人臉圖像幀中的特征點。為了降低圖像處理的復雜度,減少數(shù)據(jù)量,交互控制設備30可以從人臉特征點中選擇部分特征點,例如可以選擇一個或多個特征點,稱為選定特征點,例如,選定特征點可以是圖3a所示人臉圖像幀中方框內的特征點,即位于鼻尖位置處的特征點,可記為第32號特征點;根據(jù)選定特征點在多個新的人臉圖像幀中的坐標,計算選定特征點的水平方向坐標變化幅度和垂直方向坐標變化幅度;若選定特征點的垂直方向坐標變化幅度與選定特征點的水平方向坐標變化幅度滿足第一比例關系,且垂直方向坐標變化幅度大于垂直方向坐標變化幅度閾值,確定用戶的頭部動作為點頭動作,所述點頭動作為選擇確認動作。
根據(jù)應用場景的不同,第一比例關系可適應性設置。例如,第一比例關系可以是選定特征點的垂直方向坐標變化幅度為水平方向坐標變化幅度的指定倍數(shù),則當選定特征點的垂直方向坐標變化幅度是選定特征點的水平方向坐標變化幅度的指定倍數(shù),且垂直方向坐標變化幅度大于垂直方向坐標變化幅度閾值時,確定用戶的頭部動作為點頭動作。
基于上述,在取消第一對象的選中狀態(tài)的過程中,需要識別用戶的搖頭動作??蛇x的,交互控制設備30可以從人臉特征點中選擇部分特征點,例如可以選擇一個或多個特征點,稱為選定特征點;根據(jù)選定特征點在多個新的人臉圖像幀中的坐標,計算選定特征點的水平方向坐標變化幅度和垂直方向坐標變化幅度;若選定特征點的垂直方向坐標變化幅度與選定特征點的水平方向坐標變化幅度滿足第二比例關系,且所述水平方向坐標變化幅度大于水平方向坐標變化幅度閾值,確定用戶的頭部動作為搖頭動作,所述搖頭動作為所述選擇取消動作。
根據(jù)應用場景的不同,第二比例關系可適應性設置。例如,第二比例關系可以是選定特征點的水平方向坐標變化幅度為垂直方向坐標變化幅度的指定倍數(shù),則當選定特征點的水平方向坐標變化幅度是選定特征點的垂直方向坐標變化幅度的指定倍數(shù),且水平方向坐標變化幅度大于水平方向坐標變化幅度閾值時,確定用戶的頭部動作為搖頭動作。
在上述識別點頭動作或搖頭動作的過程中,在設定閾值的前提下,加入水平方向坐標變化幅度與垂直方向坐標變化幅度變化比例這一約束條件,即使用戶與圖像采集設備20之間的距離在較大范圍內變化,也能準確檢測到用戶的點頭動作或搖頭動作。
在上述識別點頭動作或搖頭動作的過程中,需要識別選定特征點的水平方向坐標變化幅度和垂直方向坐標變化幅度。可選的,交互控制設備30可以根據(jù)選定特征點在多個新的人臉圖像幀中的橫坐標和縱坐標,分別計算平均橫坐標和平均縱坐標;從選定特征點在多個新的人臉圖像幀中的橫坐標與平均橫坐標的差值的絕對值中,選擇最大絕對值作為水平方向坐標變化幅度;從選定特征點在多個新的人臉圖像幀中的縱坐標與平均縱坐標的差值的絕對值中,選擇最大絕對值作為垂直方向坐標變化幅度。
舉例說明,預先設定一檢測窗口,該檢測窗口用于截取連續(xù)的N個人臉圖像幀,記為|frame1,frame2,...,frameN|;在人臉圖像幀frameN處檢測點頭動作或搖頭動作,可以獲得frame1~frameN之間每個人臉圖像幀中鼻尖位置處的特征點的坐標,記為(x1,y1),...,(xN,yN),計算其平均坐標為(x*,y*);其中,x*=(x1+x2+,...,+xN)/N;y*=(y1+y2+,...,+yN)/N。將每一個人臉圖像幀中鼻尖位置處的特征點的坐標(xi,yi)與平均坐標(x*,y*)相比較,其變化情況記為|xi-x*|和|yi-y*|;在判斷點頭動作或搖頭動作時,取x軸變化最大的絕對值與y軸變化最大的絕對值,作為水平方向坐標變化幅度和垂直方向坐標變化幅度進行判斷。
在上述實施例或下述實施例中,標記第一對象為選中狀態(tài)的步驟,可以為:以第一方式,突出顯示第一對象;所述第一方式包括:高亮、加選擇框、加顏色、動畫中的至少一種方式。
相應地,在上述實施例或下述實施例中,確認第一對象的選中狀態(tài)的步驟,可以為:以不同于第一方式的第二方式,突出顯示第一對象;所述第二方式包括:高亮、加選擇框、加顏色、動畫中的至少一種方式。
舉例說明,當識別到用戶的頭部轉動動作時,確定第一對象并將第一對象的邊框設置為灰色;當識別到用戶的點頭動作時,將第一對象的邊框變更為黑色。
舉例說明,當識別到用戶的頭部轉動動作時,確定第一對象并在第一對象外側添加實線框,實線框的線條較細,如圖2所示,選中左側的界面區(qū)域;當識別到用戶的點頭動作時,改變第一對象外側的實線框的線條寬度,如圖3b所示。
舉例說明,當識別到用戶的頭部轉動動作時,確定第一對象并在第一對象外側添加虛線框;當識別到用戶的點頭動作時,將第一對象外側的虛線框變更為實線框。
基于上述人機交互系統(tǒng),本申請又一實施例提供的人機交互方法,如圖4所示,所述方法包括:
401、在人機交互界面上,顯示至少一個待選對象。
402、對用戶的臉部區(qū)域進行圖像采集,以獲得人臉圖像幀。
403、根據(jù)人臉圖像幀,識別用戶的頭部動作為對象選擇動作。
404、基于對象選擇動作,標記至少一個待選對象中的第一對象為選中狀態(tài)。
本實施例并不限定待選對象的實現(xiàn)形式,可以是任何能夠呈現(xiàn)于人機交互界面上且可被用戶選擇的對象。舉例說明,所述至少一個待選對象可以包括界面區(qū)域和/或界面元素。界面區(qū)域是指人機交互界面上的區(qū)域;界面元素是指人機交互界面上呈現(xiàn)的元素。
在一可選實施方式中,待選對象為界面區(qū)域,界面區(qū)域內的內容可以被選擇(類似于Windows操作系統(tǒng)中鼠標單擊效果)和選中(類似于Windows操作系統(tǒng)中鼠標單擊效果)??蛇x的,可以將人機交互界面劃分為多個界面區(qū)域,在人機交互界面上,顯示這多個界面區(qū)域的邊界線,以達到顯示多個界面區(qū)域的目的。例如,如圖2所示,可以將人機交互界面可垂直劃分為三個界面區(qū)域,分別為左中右三個界面區(qū)域;在人機交互界面上,顯示這三個界面區(qū)域的邊界線,以達到顯示三個界面區(qū)域的目的。又例如,也可以將人機交互界面可垂直劃分為兩個界面區(qū)域,分別為左右兩個界面區(qū)域;在人機交互界面上,顯示這兩個界面區(qū)域的邊界線,以達到顯示兩個界面區(qū)域的目的。
為了便于實現(xiàn)人機交互,對用戶的臉部區(qū)域進行圖像采集,以獲得人臉圖像幀,進而根據(jù)人臉圖像幀,識別用戶的頭部動作。例如,可以通過圖像采集設備,如攝像頭或攝像機對用戶的臉部區(qū)域進行采集,以獲得人臉圖像幀。根據(jù)應用需求的不同,可以實時采集一個或多個人臉圖像幀??蛇x的,可以使用OpenFace開源的面部行為分析工具,檢測人臉圖像幀中的特征點,基于特征點的坐標變化識別用戶的頭部動作。
當識別到用戶的頭部動作為對象選擇動作時,基于識別到的對象選擇動作,從至少一個待選對象中確定該對象選擇動作需要選擇的對象,記為第一對象,并標記第一對象為選中狀態(tài),以完成人機交互。
在本實施例中,基于用戶的頭部動作實現(xiàn)人機交互,與現(xiàn)有基于眼動的人機交互方案相比,對硬件要求較低,通過普通的攝像頭或攝像機即可實現(xiàn),而且本實施例對用戶的頭部運動限制較少,無需事先進行校準,算法難度較低,整體實現(xiàn)成本較低,普適性較強。
在圖4所示實施例的基礎上,本申請又一實施例提供一種人機交互方法,如圖5所示,所述方法在步驟404之后,還包括:
405、繼續(xù)對用戶的臉部區(qū)域進行圖像采集,以獲得新的人臉圖像幀。
406、根據(jù)所述新的人臉圖像幀,識別用戶的頭部動作為選擇確認動作或選擇取消動作。
407、基于所述選擇確認動作或選擇取消動作,確認或取消第一對象的選中狀態(tài)。
在本實施例中,在基于用戶的對象選擇動作將第一對象標記為選中狀態(tài)后,繼續(xù)對用戶的臉部區(qū)域進行圖像采集,以獲得新的人臉圖像幀,并根據(jù)新的人臉圖像幀進一步識別用戶的頭部動作,以供用戶確認選擇第一對象,或者取消選擇第一對象,有利于避免因為無意識的頭部動作而引起的誤操作,提高人機交互的精確性。
在上述實施例中,對象選擇動作、選擇確定動作以及選擇取消動作是不同的頭部動作,但并不限定上述對象選擇動作、選擇確定動作以及選擇取消動作的具體實現(xiàn)形式。
在一可選實施方式中,對象選擇動作可以為頭部轉動動作,選擇確認動作可以是點頭動作;相應地,選擇取消動作可以是搖頭動作?;诖耍旧暾堄忠粚嵤├峁┮环N人機交互方法,如圖6所示,包括:
601、在人機交互界面上,顯示至少一個待選對象。
本實施例并不限定待選對象的實現(xiàn)形式,可以是任何能夠呈現(xiàn)于人機交互界面上且可被用戶選擇的對象。舉例說明,所述至少一個待選對象可以包括界面區(qū)域和/或界面元素。界面區(qū)域是指人機交互界面上的區(qū)域;界面元素是指人機交互界面上呈現(xiàn)的元素。
602、對用戶的臉部區(qū)域進行圖像采集,以獲得人臉圖像幀。
例如,可以通過圖像采集設備,如攝像頭或攝像機對用戶的臉部區(qū)域進行采集,以獲得人臉圖像幀,進而通過OpenCV的cv::VideoCapture()函數(shù),讀取圖像采集設備采集到的人臉圖像幀。
603、根據(jù)所述人臉圖像幀,識別用戶的頭部動作為頭部轉動動作。
可選的,可以使用OpenFace開源的面部行為分析工具,檢測人臉圖像幀中的特征點,基于特征點的坐標變化識別用戶的頭部動作;當識別到用戶的頭部動作為頭部轉動動作時,確定用戶需要進行對象選擇。
604、根據(jù)所述頭部轉動動作的轉動方向,確定所述用戶的面部朝向。
605、根據(jù)面部朝向與待選對象之間的相對位置關系,確定至少一個待選對象中對應于所述面部朝向的對象,作為所述第一對象。
在本實施例中,預先設置用戶的面部朝向與待選對象之間的相對位置關系,以便于基于頭部轉動動作進行對象選擇?;谒雒娌砍蚺c待選對象之間的相對位置關系,在確定用戶的頭部動作為頭部轉動動作后,可以根據(jù)頭部轉動動作的轉動方向,確定用戶的面部朝向;根據(jù)面部朝向與待選對象之間的相對位置關系,確定至少一個待選對象中對應于用戶的面部朝向的對象,作為第一對象。
以圖2所示的人機交互界面為例,該人機交互界面包括左中右三個界面區(qū)域,三個界面區(qū)域為待選對象。在該示例中,可以設置左側界面區(qū)域對應于面部朝向屏幕左側,中間界面區(qū)域對應于面部朝向屏幕正中間,右側界面區(qū)域對應于面部朝向屏幕右側?;诖耍敊z測到用戶的面部朝向偏向屏幕左側時,選擇左側邊界區(qū)域,如圖2所示;當檢測到用戶的面部朝向屏幕中間時,選擇中間邊界區(qū)域;當檢測到用戶的面部朝向偏向屏幕右側時,選擇右側邊界區(qū)域。
606、以第一方式,突出顯示第一對象,以將為對象標記為選中狀態(tài)。
可選的,第一方式包括:高亮、加選擇框、加顏色、動畫中的至少一種方式。
607、繼續(xù)對用戶的臉部區(qū)域進行圖像采集,以獲得多個新的人臉圖像幀。
608、判斷根據(jù)多個新的人臉圖像幀,識別到用戶的頭部動作是點頭動作還是搖頭動作;若根據(jù)多個新的人臉圖像幀,識別到用戶的頭部動作為點頭動作,則執(zhí)行步驟609;若根據(jù)多個新的人臉圖像幀,識別到用戶的頭部動作為搖頭動作,則執(zhí)行步驟610。
例如,可以從人臉特征點中選擇部分特征點,例如可以選擇一個或多個特征點,稱為選定特征點,優(yōu)選的,可以選擇位于鼻尖位置處的特征點;根據(jù)選定特征點在多個新的人臉圖像幀中的坐標,計算選定特征點的水平方向坐標變化幅度和垂直方向坐標變化幅度。
當選定特征點的垂直方向坐標變化幅度與選定特征點的水平方向坐標變化幅度滿足第一比例關系,且垂直方向坐標變化幅度大于垂直方向坐標變化幅度閾值時,確定用戶的頭部動作為點頭動作。
當選定特征點的垂直方向坐標變化幅度與選定特征點的水平方向坐標變化幅度滿足第二比例關系,且所述水平方向坐標變化幅度大于水平方向坐標變化幅度閾值時,確定用戶的頭部動作為搖頭動作。
根據(jù)應用場景的不同,第一比例關系和第二比例關系可適應性設置。
在上述識別點頭動作或搖頭動作的過程中,需要識別選定特征點的水平方向坐標變化幅度和垂直方向坐標變化幅度。可選的,可以根據(jù)選定特征點在多個新的人臉圖像幀中的橫坐標和縱坐標,分別計算平均橫坐標和平均縱坐標;從選定特征點在多個新的人臉圖像幀中的橫坐標與平均橫坐標的差值的絕對值中,選擇最大絕對值作為水平方向坐標變化幅度;從選定特征點在多個新的人臉圖像幀中的縱坐標與平均縱坐標的差值的絕對值中,選擇最大絕對值作為垂直方向坐標變化幅度。
在上述識別點頭動作或搖頭動作的過程中,在設定閾值的前提下,加入水平方向坐標變化幅度與垂直方向坐標變化幅度變化比例這一約束條件,即使用戶與圖像采集設備之間的距離在較大范圍內變化,也能準確檢測到用戶的點頭動作或搖頭動作。
609、以第二方式,突出顯示第一對象,以確認第一對象的選中狀態(tài)。
其中,第二方式也可以包括:高亮、加選擇框、加顏色、動畫中的至少一種方式,但第二方式不同于第一方式。第二方式與第一方式的不同之處可以是任何用戶可直觀看到的不同,例如樣式、顏色等。通過第二方式突出顯示第一對象,以表示用戶最終確認選擇第一對象。
610、以默認方式,顯示第一對象,以取消第一對象的選中狀態(tài)。
其中,默認方式不同于第一方式,通過默認方式顯示第一對象,以表示用戶最終取消對第一對象的選擇。
在本實施例中,基于用戶的頭部動作實現(xiàn)人機交互,與現(xiàn)有基于眼動的人機交互方案相比,對硬件要求較低,通過普通的攝像頭或攝像機即可實現(xiàn),而且本實施例對用戶的頭部運動限制較少,無需事先進行校準,算法難度較低,整體實現(xiàn)成本較低,普適性較強。而且,本實施例通過增加選擇確認動作和選擇取消動作,有利于避免因為無意識的頭部動作而引起的誤操作,提高人機交互的精確性。
需要說明的是,上述實施例所提供方法的各步驟的執(zhí)行主體均可以是同一設備,或者,該方法也由不同設備作為執(zhí)行主體。比如,步驟201至步驟203的執(zhí)行主體可以為設備A;又比如,步驟201和202的執(zhí)行主體可以為設備A,步驟203的執(zhí)行主體可以為設備B;等等。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitory media),如調制的數(shù)據(jù)信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求范圍之內。