杭州蕭山技師學(xué)院 張 祺
針對傳統(tǒng)的人與機(jī)器人交互方式存在操作不便、效率低、難以滿足行動不便及失語人群等缺陷,設(shè)計出一種具有面部表情控制的作業(yè)型移動機(jī)器人。首先,結(jié)合運動學(xué)原理,設(shè)計和搭建了以NI MyRio為核心控制器的移動機(jī)器人運動平臺,實現(xiàn)移動機(jī)器人的水平移動、旋轉(zhuǎn)和機(jī)械手臂伸縮、旋轉(zhuǎn)、升降、抓取功能;其次,采集人臉圖像進(jìn)行預(yù)處理,采用AdaBoost算法實現(xiàn)人臉檢測,訓(xùn)練人臉數(shù)據(jù),采用主成分分析法實現(xiàn)人臉識別,識別出特定的人臉信息,獲取人臉位置信息,訓(xùn)練人臉表情數(shù)據(jù),采用支持向量機(jī)算法,識別出三種類型的表情。最后,將人臉表情信息和數(shù)據(jù)無線傳輸給移動機(jī)器人,實現(xiàn)表情控制。實驗結(jié)果表明,移動機(jī)器人能夠跟隨特定的人臉進(jìn)行移動,能夠判斷出三種表情,控制移動機(jī)器人機(jī)械手臂的旋轉(zhuǎn)、伸縮和停止,具有較好的應(yīng)用價值和研究前景。
隨著醫(yī)療水平和科學(xué)技術(shù)的提高,越來越多先進(jìn)的機(jī)器人技術(shù)、人機(jī)交互技術(shù)在醫(yī)療領(lǐng)域得以廣泛應(yīng)用。移動機(jī)器人由于其承載力大、可重復(fù)性強(qiáng)、誤差小、成本低的優(yōu)點,正逐步應(yīng)用于醫(yī)療領(lǐng)域,但目前老人、重病患者和失語人群等弱勢群體由于身體原因不能操作移動機(jī)器人上的實體按鍵和觸屏,或通過語音識別控制機(jī)器人,不能享受移動機(jī)器人所帶來的便利。
因此,我們逐漸把目光集中到移動機(jī)器人視覺領(lǐng)域,通過視覺采集技術(shù)和圖像處理技術(shù)對外界信息進(jìn)行收集與分析,向移動機(jī)器人發(fā)送控制指令做出相應(yīng)的動作反應(yīng),讓移動機(jī)器人能夠像人一樣“看到”物體并作出決策。
心理學(xué)家Mehrabian曾指出:人與人之間的交流一半以上的信息都是通過面部表情來表達(dá)。由此可見,面部信息在人與人交流過程中占有主導(dǎo)地位,通過準(zhǔn)確分析面部信息,可以分辨身份,了解人的內(nèi)心情緒波動。如果機(jī)器人能夠通過視覺技術(shù)進(jìn)行人臉識別,同時能夠捕捉人的面部表情,則可以根據(jù)人的面部信息來分析人類的意圖,幫助人類完成工作和任務(wù),此技術(shù)將會提升人與機(jī)器人交流的智能化水平,使弱勢群體能夠更方便地使用移動機(jī)器人等現(xiàn)代科技。
表情識別是集計算機(jī)技術(shù)、圖像處理技術(shù)和模式識別技術(shù)于一體的綜合領(lǐng)域,將表情識別應(yīng)用到移動機(jī)器人領(lǐng)域當(dāng)中,可以豐富人與移動機(jī)器人的交流方式。因此,本文基于機(jī)器學(xué)習(xí)、模式識別等核心算法以及移動機(jī)器人運動控制,將人臉檢測、人臉識別、表情識別等技術(shù)應(yīng)用到移動機(jī)器人控制方式當(dāng)中,讓移動機(jī)器人能識別出面部信息、表情變化,進(jìn)而幫助行動不便或者感知障礙的人群使用移動機(jī)器人 完成目標(biāo)任務(wù),提升弱勢群體的生活便利性。
本文系統(tǒng)設(shè)計方案流程如圖1所示,具體實現(xiàn)步驟如下:
圖1 系統(tǒng)設(shè)計方案流程圖
(1)數(shù)據(jù)收集與訓(xùn)練:收集人臉數(shù)據(jù)和表情數(shù)據(jù),結(jié)合數(shù)據(jù)庫,采用主成分分析法和支持向量機(jī)對數(shù)據(jù)進(jìn)行分類訓(xùn)練,在程序中調(diào)用訓(xùn)練好的模型。
(2)圖像采集:采用攝像頭對待識別場景進(jìn)行數(shù)據(jù)采集。
(3)圖像預(yù)處理:將圖像采集的數(shù)據(jù)經(jīng)過灰度預(yù)處理、圖像歸一化、直方圖修正和圖像去噪,減少由于角度、尺寸和光照等外界噪聲造成的干擾。
(4)表情識別:識別出圖像中的人臉,判斷人臉是否為特定人臉,獲取特定人臉的位置數(shù)據(jù),識別出人臉表情的類別。
(5)數(shù)據(jù)傳輸:將特定人臉的位置數(shù)據(jù)和人臉表情的類別編號通過藍(lán)牙通訊,傳輸給移動機(jī)器人控制器。
(6)移動機(jī)器人控制:移動機(jī)器人接收到數(shù)據(jù),根據(jù)人臉的位置數(shù)據(jù)控制移動機(jī)器人前后、左右移動,實現(xiàn)人臉跟隨,根據(jù)人臉表情類別編號,控制移動機(jī)器人機(jī)械手旋轉(zhuǎn)、伸縮和停止。
AdaBoost算法是一種基于統(tǒng)計理論的自適應(yīng)提升算法,它可以通過學(xué)習(xí)數(shù)據(jù)樣本,讓機(jī)器提取樣本的主要特征,基于AdaBoost人臉檢測方法的主要步驟是:使用Haar-like矩形特征表示人臉信息,采用“積分圖”快速計算特征向量,將特征值標(biāo)準(zhǔn)化,根據(jù)AdaBoost算法選擇最主要的特征,構(gòu)成弱分類器,通過賦予不同權(quán)值組成強(qiáng)分類器。
級聯(lián)分類器是將多個強(qiáng)分類器組合在一起,進(jìn)一步提高系統(tǒng)檢測能力,待檢測圖像經(jīng)過每一級強(qiáng)分類器分類檢測后,仍然屬于設(shè)定的人臉圖像標(biāo)準(zhǔn),那么待檢測圖像大概率即為最終的設(shè)定圖像。
人臉圖像屬于高維數(shù)據(jù),在進(jìn)行信息處理時比較復(fù)雜,主成分分析法首先將訓(xùn)練集中的人臉數(shù)據(jù)進(jìn)行圖像預(yù)處理,求出總體樣本均值,即平均臉;其次,通過差值臉和協(xié)方差矩陣將特征值分揀,求出特征向量,構(gòu)建變換矩陣;再次,通過K-L變換選取主成分,求出特征向量在空間的投影,構(gòu)建人臉特征庫;最后求出待測人臉圖像的差值臉,通過變換矩陣將人臉圖像投影到特征空間,與之前訓(xùn)練的人臉數(shù)據(jù)庫作對比,若小于設(shè)定的閾值,則屬于人臉庫數(shù)據(jù)信息,若大于設(shè)定的閾值,則不屬于人臉庫數(shù)據(jù)信息。
支持向量機(jī)是一種基于統(tǒng)計的機(jī)器學(xué)習(xí)算法,它通過核函數(shù)把人臉表情數(shù)據(jù)投射到高維空間,在高維空間中構(gòu)造具有低VC維的最優(yōu)超平面,并將其作為判決面,對于一些樣本少、維數(shù)高、非線性的問題具有良好的解決能力,因此在機(jī)器學(xué)習(xí)、表情識別等將數(shù)據(jù)分類的研究領(lǐng)域占有越來越重要的地位。
支持向量機(jī)首先通過由核函數(shù)定義的非線性變換,將輸入樣本空間轉(zhuǎn)換到一個高維空間,然后在這個新的空間中求解最優(yōu)分類面。如圖2為支持向量機(jī)表情識別流程圖,首先,選取合適的表情數(shù)據(jù),進(jìn)行歸一化預(yù)處理;其次,選擇模型參數(shù),構(gòu)建SVM模型;再次,進(jìn)行模型初始化,通過輸入訓(xùn)練樣本進(jìn)行SVM訓(xùn)練;最后,輸入測試樣本,進(jìn)行SVM模型測試。
圖2 支持向量機(jī)表情識別流程圖
進(jìn)行人臉檢測和人臉識別的過程中,首先,收集不同場景、不同人臉的數(shù)據(jù)信息,本文采用的是ORL人臉數(shù)據(jù)庫;其次,采用AdaBoost算法采集自己的人臉信息,OpenCV提供了多種分類器用于正面人臉檢測,為了提高檢測精度的同時兼顧到檢測速度,采用“haarcascade_frontalface_alt.”進(jìn)行人臉檢測;最后,當(dāng)檢測到環(huán)境中出現(xiàn)人臉圖像時,對人臉圖形進(jìn)行灰度化和尺寸歸一化,并將采集的不同表情不同角度的人臉圖像保存在文件目錄下。
使用Dlib庫進(jìn)行人臉68點的標(biāo)定操作,主要是通過68點的模型進(jìn)行提取臉部的68點的特征值。首先,打開攝像頭,加載需要的臉部識別和姿態(tài)估計的模型,將文件中的模型放置在pos_model中;其次,處理通過攝像頭獲取的每一幀的圖片,將其中轉(zhuǎn)化為RGB圖片,通過模型進(jìn)行特征點捕捉,用點標(biāo)出特征點,并用數(shù)字顯示出具體數(shù)值;最后,將采集的特征點存入TXT文檔中,將三種不同表情的特征點的TXT文檔放置到不同的文件夾當(dāng)中。
采用CSV文件讀取文件夾中所有的人臉數(shù)據(jù),CSV文件通常由要讀取的文件名稱和所識別種類的標(biāo)簽構(gòu)成,同一個人臉的標(biāo)簽名稱相同,用名字或編號作為我們要識別的人臉的標(biāo)簽。使用openCV中有關(guān)人臉識別的類文件進(jìn)行訓(xùn)練,F(xiàn)acerecognizer類包含了常用的人臉識別模型,采用“createEigenFaceRecognizer”PCA主成分分析法,先讀取訓(xùn)練圖像和標(biāo)簽,存在容器中,接著移除最后一張圖片以便測試模型,再進(jìn)行模型訓(xùn)練,保存為“MyFacePCAModel.xml”,最后進(jìn)行模型測試,如圖3為人臉識別測試結(jié)果,系統(tǒng)可以檢測出環(huán)境中的人臉,并用框圖定位,識別出兩個人的身份,并將顯示被識別者的名字。
圖3 人臉識別測試圖
加載支持向量機(jī)訓(xùn)練模型,通過支持向量機(jī)分類器進(jìn)行數(shù)據(jù)分類,訓(xùn)練采集到的特征點數(shù)據(jù),將訓(xùn)練好的模型存入“SVM_DATA.xml”,加載人臉檢測模型和訓(xùn)練好的表情識別模型,利用測試數(shù)據(jù)進(jìn)行表情識別測試,測試結(jié)果如圖4所示,系統(tǒng)識別出不同類型的表情。
圖4 表情識別測試圖
移動機(jī)器人人臉跟隨:求出識別出的特定人臉的中心點坐標(biāo),將中心點坐標(biāo)通過藍(lán)牙發(fā)送到移動機(jī)器人端,移動機(jī)器人接收到信息后對數(shù)據(jù)進(jìn)行處理,判斷人臉中心在整個圖像區(qū)域水平方向上的位置,將位置數(shù)據(jù)轉(zhuǎn)化為左右方向速度控制量,控制移動機(jī)器人跟隨人臉的左右移動而移動。同理,移動機(jī)器人接收來自PC端的人臉區(qū)域的面積值,人臉越靠近攝像頭面積值越大,將面積值轉(zhuǎn)化為前后方向速度控制量,控制移動機(jī)器人跟隨人臉前后移動而運動。移動機(jī)器人人臉跟隨效果圖如圖5所示。
圖5 移動機(jī)器人人臉追蹤效果圖
移動機(jī)器人機(jī)械手臂表情識別控制:將識別出的表情類別編號通過藍(lán)牙傳輸至移動機(jī)器人控制器,當(dāng)面部表情為“happy”類別時,移動機(jī)器人手臂旋轉(zhuǎn)運動,當(dāng)面部表情為“sad”類別時,移動機(jī)器人手臂前后伸縮運動,當(dāng)面部表情為“calmness”類別時,移動機(jī)器人停止動作,移動機(jī)器人表情識別控制機(jī)械手臂效果圖如圖6所示。
圖6 表情識別控制機(jī)械手臂效果圖
結(jié)語:本文根據(jù)基于人臉表情識別的移動機(jī)器人設(shè)計需求,提出具體的系統(tǒng)架構(gòu)和研究方案,將人臉識別技術(shù)、表情識別技術(shù)應(yīng)用到移動機(jī)器人的控制中,通過人臉識別,完成人臉定位,設(shè)計移動機(jī)器人模型,建立合理通訊方式,實現(xiàn)移動機(jī)器人跟隨人臉的功能。通過表情識別,判斷出三種不同的表情,控制機(jī)械手臂的旋轉(zhuǎn)、伸縮和停止,并完成系統(tǒng)測試。同時優(yōu)化移動機(jī)器人的控制方案,建立穩(wěn)定的運行平臺,通過設(shè)計與調(diào)試、已經(jīng)基本實現(xiàn)基于視覺的移動機(jī)器人人臉跟隨,表情識別控制機(jī)械手臂動作的任務(wù)。