龍樟,盧成婭,李國鵬,張維烈,溫飛娟*,,李波
(1. 西南石油大學(xué) 工程學(xué)院,四川南充 637000; 2. 西南石油大學(xué) 信息學(xué)院,四川南充 637000)
手勢控制作為一種新型的交互方式,具有表達(dá)內(nèi)容豐富、控制方便、快捷等特點(diǎn),在娛樂行業(yè)得到了初步的應(yīng)用[1],在機(jī)器人的控制方面也具有較強(qiáng)的實(shí)用性。目前手勢控制主要分為基于數(shù)據(jù)手套為輸入設(shè)備的手勢控制和基于視覺設(shè)備為輸入設(shè)備的手勢控制[2-3]?;跀?shù)據(jù)手套為輸入設(shè)備的手勢控制通過檢測手指的彎曲、手部的力覺反饋來模擬出人手所表達(dá)的信息,從而獲得控制信息,其接觸式檢測方式限制了手勢的豐富性及自然性。基于視覺檢測的手勢控制通過視覺識(shí)別技術(shù)以非接觸的方式獲取手勢信息,使操作者擁有更好的操作體驗(yàn),受到了國內(nèi)外學(xué)者的青睞,且數(shù)據(jù)手套設(shè)備價(jià)格昂貴,使得數(shù)據(jù)手套的手勢控制方式近年來逐漸被淘汰。
基于視覺檢測的手勢控制關(guān)鍵技術(shù)在于手勢的識(shí)別。早期視覺手勢識(shí)別依賴于在人手部涂抹或粘貼便于識(shí)別的顏色或形狀的標(biāo)記,通過視覺識(shí)別標(biāo)記實(shí)現(xiàn)手勢的識(shí)別[4],該方法由于標(biāo)記數(shù)量及質(zhì)量受限,難以識(shí)別豐富的手勢。隨著視覺技術(shù)的發(fā)展,無標(biāo)記的視覺手勢識(shí)別成為了當(dāng)前的主流,通常意義上的基于視覺的手勢識(shí)別就是無標(biāo)記的視覺手勢識(shí)別(后述未特殊說明都為無標(biāo)記的視覺手勢識(shí)別)。
視覺手勢識(shí)別的主要流程包括:1) 圖像采集:通過視覺相機(jī)采集手勢圖像;2) 手部檢測及分割:檢測手勢圖像中手部位置并分割出手部區(qū)域;3) 手勢識(shí)別:提取手部區(qū)域圖像特征,并根據(jù)特征識(shí)別出手勢類型。圖像采集裝置主要為單目相機(jī)、雙目相機(jī)及深度相機(jī)。單目相機(jī)成本較低,采集圖像比較直觀,由于其存在多視角性,從而影響手勢識(shí)別的準(zhǔn)確率[5];雙目相機(jī)獲得的手勢信息更豐富,但需要進(jìn)行相機(jī)校準(zhǔn)以及畸變矯正,計(jì)算量相對(duì)較大,手勢圖像成像質(zhì)量影響因素較多[6];深度相機(jī)除獲得圖像彩色信息外還可直接獲得對(duì)應(yīng)像素位置深度信息,避免了立體視覺的計(jì)算環(huán)節(jié),但其硬件成本相對(duì)較高[7]。手部檢測與分割常常采用形狀、膚色、深度及運(yùn)動(dòng)等信息[8]。圖像識(shí)別方法主要有模板匹配法[9]、狀態(tài)轉(zhuǎn)移圖模型法[10]、統(tǒng)計(jì)學(xué)習(xí)法[11]以及神經(jīng)網(wǎng)絡(luò)法[12]。其中基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法在圖像識(shí)別中因識(shí)別準(zhǔn)確率高成為了目前核心方法,也是手勢識(shí)別的主要方法之一,但其隨著網(wǎng)絡(luò)層的增加對(duì)處理器的要求也較高,甚至需要采用GPU并行計(jì)算[13]。
目前國內(nèi)外學(xué)者初步研究了手勢控制在無人機(jī)、機(jī)械臂控制中的應(yīng)用[14-15]。從國內(nèi)外現(xiàn)有研究可知,目前視覺手勢識(shí)別在要求精度下往往對(duì)硬件要求高,手勢控制在移動(dòng)機(jī)器人控制方面尚缺相關(guān)文獻(xiàn)論述。為了實(shí)現(xiàn)移動(dòng)機(jī)器人控制人機(jī)交互的智能化、多功能化以及低成本、普適性,本文基于普通USB攝像頭、一般性能的個(gè)人電腦設(shè)計(jì)了一種視覺手勢識(shí)別的移動(dòng)機(jī)器人手勢控制系統(tǒng)。該手勢控制系統(tǒng)采用VGG16卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建了手勢識(shí)別模型,實(shí)驗(yàn)驗(yàn)證了該控制系統(tǒng)工作穩(wěn)定,能夠高效、準(zhǔn)確的識(shí)別手勢命令并控制機(jī)器人運(yùn)動(dòng)。
本文采用麥克納姆輪搭建全向四輪移動(dòng)機(jī)器人平臺(tái),其運(yùn)動(dòng)靈活性強(qiáng),具有較大的應(yīng)用場景,移動(dòng)機(jī)器人平臺(tái)如圖1所示。
圖1 移動(dòng)機(jī)器人平臺(tái)
手勢控制系統(tǒng)包含手勢識(shí)別圖像處理及電機(jī)控制兩個(gè)部分,視覺圖像處理對(duì)處理器性能要求較高,而電機(jī)控制對(duì)處理器性能要求低,考慮整體控制性能,采用實(shí)時(shí)性較好、適用于高精度及高速度控制的主從控制方式。上位機(jī)負(fù)責(zé)手勢識(shí)別,下位機(jī)負(fù)責(zé)機(jī)器人運(yùn)動(dòng)控制,上位機(jī)與下位機(jī)之間通過TCP協(xié)議進(jìn)行WIFI無線通信。
為了滿足視覺手勢識(shí)別控制系統(tǒng)的普適性、通用性需要,在滿足控制性能需要下,應(yīng)盡可能減小硬件成本。因此,本文視覺處理采用普通的PC機(jī),視覺相機(jī)采用單目USB攝像頭,機(jī)器人運(yùn)動(dòng)控制器采用樹莓派3B+上位機(jī)以PyCharm2019作為開發(fā)平臺(tái),并搭載OpenCV、Keras,下位機(jī)以Raspbian操作系統(tǒng)為開發(fā)環(huán)境,整個(gè)系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)整體架構(gòu)
手勢識(shí)別采用深度學(xué)習(xí)方法,為了保證識(shí)別的準(zhǔn)確率,首先要對(duì)手勢圖像進(jìn)行處理,再用深度學(xué)習(xí)訓(xùn)練的網(wǎng)絡(luò)模型進(jìn)行識(shí)別。因此,手勢識(shí)別框架由手勢圖像預(yù)處理、深度學(xué)習(xí)網(wǎng)絡(luò)模型訓(xùn)練兩個(gè)部分組成。
為保證上、下位機(jī)具有高效、準(zhǔn)確的交互控制,選用了6種最常見的手勢與全向移動(dòng)機(jī)器人6種最通用的運(yùn)動(dòng)方式,手勢指令與運(yùn)動(dòng)方式對(duì)應(yīng)關(guān)系如表1所示。
表1 手勢指令與運(yùn)動(dòng)方式對(duì)應(yīng)關(guān)系
經(jīng)攝像頭采集到的圖像為RGB彩色圖像,其色彩豐富,包含大量信息及噪聲,直接對(duì)其識(shí)別處理可能導(dǎo)致整體處理速度降低,影響交互控制的流暢度及識(shí)別率,而手勢圖像一般都有明顯的特征,在灰度圖像下亦能滿足識(shí)別需求。因此,在手勢圖像進(jìn)行識(shí)別前,首先要對(duì)其進(jìn)行預(yù)處理,包括圖像灰度化、圖像濾波、圖像鏡像。
1) 手勢圖像灰度化
采集到的RGB圖像進(jìn)行灰度化處理常用的方法有:加權(quán)平均法、分量法、最大值法等。加權(quán)平均值法是根據(jù)顏色的篩選需求及其它指標(biāo),將R、G、B這3個(gè)分量設(shè)置獨(dú)立的加權(quán)系數(shù)實(shí)現(xiàn)加權(quán)平均,其相比分量法和最大值法能夠有效地避免彩色圖像灰度化處理后引起的圖像失真,而且經(jīng)加權(quán)平均法處理后的灰度圖像還具有邊緣亮度噪聲少,平滑效果好的特點(diǎn),為后續(xù)的圖像處理提供了有利條件。因此,綜合考慮選擇加權(quán)平均法對(duì)圖像進(jìn)行灰度化處理,其圖像處理表達(dá)式為
Gray(i,j)=0.114B+0.587G+0.299R
(1)
式中:Gray表示灰度圖像;i,j表示圖像矩陣的行和列位置;R表示紅色通道;G表示綠色通道;B代表藍(lán)色通道,3個(gè)分量前的系數(shù)代表它們被分配的權(quán)重,3個(gè)系數(shù)之和為1。
2) 手勢圖像濾波
針對(duì)獲取的圖像存在噪聲,對(duì)后續(xù)手勢識(shí)別效果有著直接的影響,因此需要對(duì)圖像進(jìn)行濾波處理。圖像濾波常用方法主要有均值濾波、中值濾波、高斯濾波、高通濾波、低通濾波等。高斯濾波常被用作消除圖片中的高斯噪聲,由于其較好的去噪效果,被廣泛應(yīng)用于一般的降噪操作之中。手勢圖像中存在的噪聲主要為高斯噪聲,因此采用高斯濾波對(duì)圖像進(jìn)行降噪處理,模板采用5×5大小。
很多地區(qū)對(duì)農(nóng)機(jī)的使用安全問題上意識(shí)比較淡薄,很多農(nóng)機(jī)操作者比較粗心,不重視對(duì)農(nóng)機(jī)的正確使用。還有些操作者操作水平不高,沒有根據(jù)要求去操作農(nóng)機(jī)。還有些操作者為了方便,會(huì)更改一些農(nóng)機(jī)的安全部件,沒有較好的利用,因此,經(jīng)常會(huì)發(fā)生在農(nóng)機(jī)操作時(shí)發(fā)生安全事故。
3) 圖像鏡像
為了提高交互的靈活性,使左、右手都能實(shí)現(xiàn)手勢動(dòng)作的高效識(shí)別,將手勢圖像進(jìn)行鏡像處理。本文手勢圖像預(yù)處理都采用OpenCV視覺庫相應(yīng)函數(shù),手勢圖像預(yù)處理結(jié)果如圖3所示。
手勢的識(shí)別過程基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行分類、識(shí)別,其中包括手勢圖像數(shù)據(jù)集的制作,網(wǎng)絡(luò)模型結(jié)構(gòu)的設(shè)計(jì),以及網(wǎng)絡(luò)模型的訓(xùn)練和調(diào)優(yōu),然后利用網(wǎng)絡(luò)模型進(jìn)行手勢識(shí)別。
1) 手勢圖像數(shù)據(jù)集的制作
制作手勢圖像數(shù)據(jù)集采集手勢圖像采用與識(shí)別手勢相同的USB攝像頭,通過設(shè)置一定的時(shí)間間隔對(duì)攝像頭捕捉到的視頻進(jìn)行圖像截取。
在手勢圖像數(shù)據(jù)集的制作程序中設(shè)置了2個(gè)按鈕和2個(gè)窗口,2個(gè)按鈕分別負(fù)責(zé)圖像的截取和手勢灰度圖像的保存,2個(gè)窗口分別顯示攝像頭獲取的原始圖像和手勢灰度圖像,如圖4所示。通過設(shè)置程序的窗口位置參數(shù)可以改變獲取手勢圖像的位置,從而適應(yīng)不同的攝像頭視域位置。
圖4 手勢數(shù)據(jù)集制作
為獲得較為理想的手勢識(shí)別網(wǎng)絡(luò)模型訓(xùn)練效果,將采集到的手勢圖像的尺寸、像素等參數(shù)設(shè)置在一定范圍內(nèi),并對(duì)其正確分類后制作成手勢圖像數(shù)據(jù)集,如圖5所示。每一種手勢的圖像數(shù)據(jù)集為1 500張手勢圖像,包括了不同手尺寸大小、不同位姿、不同背景環(huán)境的手勢圖像,保證了手勢圖像數(shù)據(jù)集的多樣性,為后續(xù)網(wǎng)絡(luò)模型訓(xùn)練提供豐富的數(shù)據(jù)。本文將所有的數(shù)據(jù)集按照8∶2的比例分為了用于訓(xùn)練的數(shù)據(jù)集和用于測試的數(shù)據(jù)集。
圖5 手勢庫的建立和分類
2) 網(wǎng)絡(luò)模型的設(shè)計(jì)
本文深度學(xué)習(xí)采用基于CNN學(xué)習(xí)框架下的VGG網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)模型是一個(gè)相對(duì)穩(wěn)定且經(jīng)典的模型,相對(duì)AlexNet網(wǎng)絡(luò)模型對(duì)硬件要求低,相對(duì)GoogLeNet網(wǎng)絡(luò)模型更簡單[18-19]。除此之外還有很多數(shù)量龐大且復(fù)雜的網(wǎng)絡(luò)模型,但無法滿足低成本、通用性要求。VGG Net在ILSVRC Classification(圖像分類比賽)中也被證明是很好的分類網(wǎng)絡(luò)。VGG Net包含6種結(jié)構(gòu)不同的網(wǎng)絡(luò)模型,它們的相同點(diǎn)是每一個(gè)網(wǎng)絡(luò)的卷積都有5組,且每一個(gè)卷積層都采用3×3的卷積核,其中C列中的conv1除外,每組卷積之后是2×2的最大池化,緊接著的是3層全連接層。本文根據(jù)手勢識(shí)別的實(shí)際需求,設(shè)計(jì)了13個(gè)卷積層和3個(gè)全連接層的VGG16網(wǎng)絡(luò)模型。
3) 網(wǎng)絡(luò)模型的訓(xùn)練與調(diào)優(yōu)
對(duì)VGG16網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練與調(diào)優(yōu)的流程如圖6所示,主要包括:1) 讀取圖像文件并對(duì)圖片的數(shù)據(jù)類型進(jìn)行修正;2) 產(chǎn)生用于訓(xùn)練的批次;3) 定義訓(xùn)練模型的參數(shù);4) 采用訓(xùn)練集進(jìn)行訓(xùn)練得出初步的識(shí)別模型;5) 采用測試集進(jìn)行模型檢測根據(jù)檢驗(yàn)結(jié)果進(jìn)行參數(shù)調(diào)優(yōu)直至滿足識(shí)別要求,得到識(shí)別網(wǎng)絡(luò)模型。
圖6 網(wǎng)絡(luò)模型訓(xùn)練與調(diào)優(yōu)流程
在產(chǎn)生訓(xùn)練的數(shù)據(jù)前對(duì)數(shù)據(jù)進(jìn)行增強(qiáng)操作,采用隨機(jī)旋轉(zhuǎn)度數(shù),隨機(jī)水平、豎直平移,隨機(jī)裁剪、按比例縮放圖像處理方法,增強(qiáng)了原始的手勢圖像數(shù)據(jù)集,提高網(wǎng)絡(luò)模型的泛化能力。采用遷移學(xué)習(xí)的方法對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練與調(diào)優(yōu),利用上文制作的80%手勢圖像數(shù)據(jù)集對(duì)設(shè)計(jì)的VGG16網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,其余20%手勢圖像數(shù)據(jù)用于測試,使得VGG16網(wǎng)絡(luò)模型中的參數(shù)學(xué)習(xí)到最佳手勢特征。
由于采用的已經(jīng)訓(xùn)練好的VGG16網(wǎng)絡(luò)需要預(yù)測的類別有1 000種,即最后一層全連接層的輸出有1 000個(gè),與本文要求的6個(gè)手勢識(shí)別結(jié)果不相符,所以僅取VGG16模型的卷積層和池化層,重新搭建一個(gè)適應(yīng)輸出6個(gè)手勢結(jié)果的全連接層。根據(jù)測試集數(shù)據(jù)的測試結(jié)果進(jìn)行模型調(diào)優(yōu),包括參數(shù)及網(wǎng)絡(luò)結(jié)構(gòu)的修改等操作,并再次進(jìn)行測試,最終得到一個(gè)理想的網(wǎng)絡(luò)模型,改進(jìn)后的VGG16網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。
圖7 改進(jìn)VGG16網(wǎng)絡(luò)結(jié)構(gòu)
4) 手勢識(shí)別方法
根據(jù)手勢控制移動(dòng)機(jī)器人的一般實(shí)際應(yīng)用場景,可以采取兩種方法實(shí)現(xiàn)實(shí)時(shí)的手勢識(shí)別,一種是根據(jù)實(shí)時(shí)拍攝到的單張圖像進(jìn)行手勢的預(yù)測,另一種是根據(jù)實(shí)時(shí)拍攝到的視頻,然后獲取視頻每一幀進(jìn)行手勢的預(yù)測。兩種方法獲取采集到的圖像都需要進(jìn)行預(yù)處理操作,進(jìn)一步對(duì)其進(jìn)行適當(dāng)大小的調(diào)整、圖片轉(zhuǎn)數(shù)組的變換和歸一化處理,最后利用訓(xùn)練優(yōu)化所得網(wǎng)絡(luò)識(shí)別模型對(duì)手勢進(jìn)行預(yù)測,并輸出預(yù)測的結(jié)果。
在實(shí)際測試中發(fā)現(xiàn),實(shí)時(shí)拍攝獲取的單張圖像識(shí)別準(zhǔn)確率較高,且運(yùn)行也較為流暢,但針對(duì)有手勢變化的圖像進(jìn)行識(shí)別則較為困難,實(shí)時(shí)性相對(duì)較差。對(duì)于視頻中的手勢圖像進(jìn)行逐幀識(shí)別的準(zhǔn)確率較低,且運(yùn)行稍顯卡頓,但若只對(duì)偶數(shù)幀的圖像進(jìn)行預(yù)測,則可以有效的改善程序運(yùn)行的流暢度。考慮到可變換手勢的識(shí)別更具有實(shí)用性,最終采用第二種方法進(jìn)行手勢識(shí)別,并采用間隔幀圖像進(jìn)行識(shí)別,有效改善了逐幀識(shí)別卡頓問題,手勢識(shí)別效果如圖8所示。
圖8 手勢識(shí)別效果圖
為了驗(yàn)證視覺手勢識(shí)別的移動(dòng)機(jī)器人控制系統(tǒng)的可靠性,開展視覺識(shí)別功能測試,對(duì)影響手勢識(shí)別的因素進(jìn)行分析,提出改進(jìn)措施,并對(duì)整體功能進(jìn)行測試。
手勢識(shí)別是手勢控制的前提,其穩(wěn)定性、準(zhǔn)確性直接影響到移動(dòng)機(jī)器人控制的可靠性,因此有必要對(duì)手勢識(shí)別算法的穩(wěn)定性進(jìn)行測試,并分析其影響因素。
通過改變手勢在鏡頭中的出現(xiàn)位置與頻率、手勢的偏轉(zhuǎn)角度、手勢尺寸大小和識(shí)別的環(huán)境背景對(duì)手勢識(shí)別進(jìn)行測試。測試結(jié)果顯示:改變手勢在鏡頭中的出現(xiàn)位置、出現(xiàn)頻率和改變手勢尺寸的大小手勢識(shí)別時(shí)間約為0.1 s,能夠準(zhǔn)確的識(shí)別手勢,并具有很高的穩(wěn)定性。
但若手勢處于識(shí)別難度較大的位姿,即與定義的手勢姿態(tài)特征不符,會(huì)對(duì)手勢識(shí)別的結(jié)果造成一定影響。如圖9所示,手勢3在訓(xùn)練集與測試集均為3根手勢間有間隙,若在識(shí)別時(shí)手指間無間隙則無法識(shí)別。同時(shí)在特別復(fù)雜背景下的識(shí)別準(zhǔn)確率也有所下降。為保證手勢控制移動(dòng)機(jī)器人系統(tǒng)具有較高的準(zhǔn)確率,被測試者在展示手勢時(shí),應(yīng)盡量保證采集到的手勢圖片易于區(qū)分,且處于識(shí)別難度較小的位姿,同時(shí)也應(yīng)選擇較為簡單或人為設(shè)計(jì)的環(huán)境背景進(jìn)行手勢識(shí)別。
圖9 手勢位姿造成的識(shí)別困難示例
系統(tǒng)整體測試在與訓(xùn)練集及測試集手勢背景相同的環(huán)境下進(jìn)行。通過以不同角度、距離、速度多次測試6種不同的手勢命令,上位機(jī)手勢識(shí)別系統(tǒng)能夠準(zhǔn)確識(shí)別無干擾的手勢,且手勢識(shí)別準(zhǔn)確率達(dá)到100%,手勢控制移動(dòng)機(jī)器人能夠按照演示的指令做出相應(yīng)的動(dòng)作,且網(wǎng)絡(luò)通信穩(wěn)定,系統(tǒng)工作狀態(tài)正常,實(shí)現(xiàn)了預(yù)期的手勢控制移動(dòng)機(jī)器人運(yùn)動(dòng)目標(biāo)。如圖10所示,為手勢3識(shí)別結(jié)果左橫移,將該識(shí)別結(jié)果發(fā)送給下位機(jī)樹莓派控制移動(dòng)機(jī)器人實(shí)現(xiàn)左橫移運(yùn)動(dòng)。本文設(shè)計(jì)的手勢識(shí)別算法解決了旋轉(zhuǎn)、縮放后手勢動(dòng)態(tài)識(shí)別率較低的問題,實(shí)現(xiàn)了低成本視覺手勢識(shí)別手勢控制系統(tǒng)設(shè)計(jì)目標(biāo),且具有高穩(wěn)定性、可靠性和實(shí)際應(yīng)用價(jià)值。
圖10 手勢控制移動(dòng)機(jī)器人測試實(shí)驗(yàn)
針對(duì)低成本、普適性手勢控制在移動(dòng)機(jī)器人運(yùn)動(dòng)控制需求,采用普通USB攝像頭及個(gè)人計(jì)算機(jī)設(shè)計(jì)了視覺手勢識(shí)別的移動(dòng)機(jī)器人手勢控制系統(tǒng)。采用改進(jìn)的VGG16網(wǎng)絡(luò)模型對(duì)手勢進(jìn)行識(shí)別,在網(wǎng)絡(luò)模型的訓(xùn)練集中考慮了手勢角度、縮放等因素,解決了旋轉(zhuǎn)、縮放后手勢動(dòng)態(tài)識(shí)別率較低的問題。實(shí)驗(yàn)中,手勢識(shí)別時(shí)間約為0.1 s,識(shí)別效率較高,在與訓(xùn)練集相似背景下識(shí)別準(zhǔn)確率為100%,識(shí)別率高;移動(dòng)機(jī)器人能夠按照動(dòng)態(tài)手勢指令實(shí)時(shí)作出運(yùn)動(dòng)響應(yīng),控制準(zhǔn)確、實(shí)時(shí)性強(qiáng)。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的視覺手勢識(shí)別的移動(dòng)機(jī)器人手勢控制系統(tǒng)具有穩(wěn)定性、可靠性及實(shí)用性,為無接觸、自然的人機(jī)交互控制系統(tǒng)提供了應(yīng)用參考。