本發(fā)明涉及基于計算機模式識別技術(shù),具體涉及基于卷積神經(jīng)網(wǎng)絡(luò)的手勢檢測和識別技術(shù),尤其涉及一種基于fasterregion-basedconvolutionalneuralnetworks(簡稱fasterr-cnn)的手勢檢測和識別方法。
背景技術(shù):
21世紀(jì)以來,學(xué)者們已經(jīng)提出了很多手勢檢測和識別方法,主要是利用圖像分割方法,將手勢圖像從背景中分離出來,然后進行模板匹配識別手勢。早期的研究主要集中于基于數(shù)據(jù)手套的手勢識別,但使用起來不方便,器件成本較高,不利于在實際環(huán)境中的人機交互。另一種是基于計算機視覺的方法,較常用的方法有方向梯度直方圖(histogramoforientedgradient,簡稱hog)特征與支持向量機(supportvectormachine,簡稱svm),基于kinect深度圖像的手勢檢測和基于膚色檢測技術(shù)的手勢分割。但是這些方法都需要在特定的場合下才能使用,不利于推廣。后來有學(xué)者提出了基于不同顏色空間的手勢檢測算法,這些基于膚色的檢測方法在背景單一的情況下可以取得不錯的效果,但在背景較為復(fù)雜時,效果一般。
卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetworks,簡稱cnn)是一種為了處理二維圖像而設(shè)計的人工神經(jīng)網(wǎng)絡(luò),對翻轉(zhuǎn)、平移和比例縮放等具有扭曲不變性,因此已經(jīng)有學(xué)者將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在在手勢識別領(lǐng)域。但他們沒有進行手勢檢測,所以只適用于小圖片或簡單背景下的手勢識別。deepcnn成功地提高了目標(biāo)檢測和圖像分類的精度。
技術(shù)實現(xiàn)要素:
為了克服已有手勢識別方式的魯棒性較差、準(zhǔn)確率較低的不足,本發(fā)明提供了一種增強魯棒性、提高準(zhǔn)確率的基于fasterr-cnn的手勢檢測和識別方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種基于fasterr-cnn的手勢檢測和識別方法,所述方法包括以下步驟:
s1,采用fasterr-cnn網(wǎng)絡(luò),面向手勢識別應(yīng)用設(shè)置網(wǎng)絡(luò)中的參數(shù);
s2,給手勢樣本制作標(biāo)簽,并將標(biāo)簽樣本作為fasterr-cnn網(wǎng)絡(luò)的輸入,從其共享卷積層中輸出有效的非線性特征并輸入到區(qū)域提取網(wǎng)絡(luò)(regionproposalnetwork,簡稱rpn)和fastregion-basedconvolutionalneuralnetworks(簡稱fastr-cnn);
由具有擾動交疊率算法的rpn網(wǎng)絡(luò)獲得手勢目標(biāo)的區(qū)域建議,并反饋給fastr-cnn網(wǎng)絡(luò);
s3,由fastr-cnn網(wǎng)絡(luò)通過分類層和邊框回歸層,輸出手勢位置和手勢類別。
進一步,所述步驟s1中,根據(jù)所述采用fasterr-cnn網(wǎng)絡(luò),面向手勢識別應(yīng)用設(shè)置網(wǎng)絡(luò)中的參數(shù),包括:
fasterr-cnn網(wǎng)絡(luò)的輸入?yún)?shù):將圖片輸入大小設(shè)置為640*480;將ntu數(shù)據(jù)集分類的類別數(shù)目設(shè)置為11類(包括背景);使用vgg_cnn_m_1024網(wǎng)絡(luò)模型。
anchors的參數(shù):本專利anchors的基準(zhǔn)面積大小設(shè)為8*8,使用三種寬高比2:1,1:1和1:2,采用的尺度為[8,12,16]。
再進一步,所述步驟s2中,根據(jù)所述從使用擾動交疊率算法的rpn中獲得手勢目標(biāo)的區(qū)域建議,包括:
通過擾動交疊率算法產(chǎn)生擾動標(biāo)簽,擾動交疊率算法采用的策略就是在每1000次迭代中按概率10%隨機選取一部分迭代的iou設(shè)為0.5,其余的iou都設(shè)為0.7;
更進一步,所述步驟s3中,由fastr-cnn網(wǎng)絡(luò)通過分類層和邊框回歸層,輸出手勢位置和手勢類別,包括:
通過regionofinterest(簡稱roi)池化層和全連接層得到手勢區(qū)域的1024維特征向量,再將此特征向量輸入到分類層和邊框回歸層;
分類層輸出1×11維手勢類別數(shù)據(jù);
邊框回歸層輸出1×44維邊框坐標(biāo)數(shù)據(jù)。
本發(fā)明的有益效果主要表現(xiàn)在:增強手勢識別的魯棒性、提高手勢識別的準(zhǔn)確率。
附圖說明
圖1為基于fasterr-cnn的手勢檢測和識別方法的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
圖2為基于fasterr-cnn的手勢檢測和識別方法的流程示意圖
圖3為給樣本制作標(biāo)簽的流程示意圖。
圖4為anchor框的大小、比例示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進一步描述。
參照圖1~圖4,一種基于fasterr-cnn的手勢檢測和識別方法,用于手勢的檢測與識別。本申請實施例所述的手勢檢測和識別方法,主要是指使用fasterr-cnn網(wǎng)絡(luò)和擾動交疊率算法。
本申請實施例中使用的網(wǎng)絡(luò)整體結(jié)構(gòu)如附圖1所示。將手勢標(biāo)簽數(shù)據(jù)輸入到fasterr-cnn網(wǎng)絡(luò)中,將共享卷積層中輸出的非線性特征輸入到區(qū)域提取網(wǎng)絡(luò)rpn和fastr-cnn網(wǎng)絡(luò);然后將rpn網(wǎng)絡(luò)得到的手勢目標(biāo)的區(qū)域建議反饋給fastr-cnn網(wǎng)絡(luò);最終由fastr-cnn網(wǎng)絡(luò)通過分類層和邊框回歸層,輸出手勢位置和手勢類別。
本申請實施例使用的數(shù)據(jù)為ntu-microsoft-kinect-handposturedataset(簡稱ntu)數(shù)據(jù)集中的手勢圖片。
如附圖2所示,本申請實施例的基于fasterr-cnn的手勢檢測和識別方法,主要包括如下步驟:
步驟s1,采用fasterr-cnn網(wǎng)絡(luò),面向手勢識別應(yīng)用設(shè)置網(wǎng)絡(luò)中的參數(shù);
步驟s2,給手勢樣本制作標(biāo)簽,并將標(biāo)簽樣本作為fasterr-cnn網(wǎng)絡(luò)的輸入,從中提取出有效的非線性特征并輸入到rpn網(wǎng)絡(luò)和fastr-cnn網(wǎng)絡(luò);
步驟s3,由具有擾動交疊率算法的rpn網(wǎng)絡(luò)獲得手勢目標(biāo)的區(qū)域建議,并反饋給fastr-cnn網(wǎng)絡(luò);
步驟s4,由fastr-cnn網(wǎng)絡(luò)通過分類層和邊框回歸層,輸出手勢位置和手勢類別。
本申請實施例中,根據(jù)所述采用fasterr-cnn網(wǎng)絡(luò),面向手勢識別應(yīng)用設(shè)置網(wǎng)絡(luò)中的參數(shù),包括:
fasterr-cnn網(wǎng)絡(luò)的輸入?yún)?shù):將圖片輸入大小設(shè)置為640*480;將ntu數(shù)據(jù)集分類的類別數(shù)目設(shè)置為11類(包括10種手勢和背景);使用vgg_cnn_m_1024網(wǎng)絡(luò)模型。
anchors的參數(shù):anchors的基準(zhǔn)面積大小設(shè)為8*8,使用三種寬高比2:1,1:1和1:2,采用的尺度為[8,12,16]。
本申請實施例中,根據(jù)所述給訓(xùn)練樣本制作標(biāo)簽。圖3給出了主要步驟。
步驟s210,將樣本圖片使用matlab批量重命名為“00001.jpg”的形式。
步驟s220,使用python的畫圖像標(biāo)注工具,將圖片中的手勢部位信息保存到txt文件夾中,如:00001.jpghand_04428132121。前面是圖片名,中間是手勢類別,最后是手勢的包圍框坐標(biāo)。
步驟s230,使用matlab將步驟s220中的每個txt文件批量生成相應(yīng)xml文件,xml文件的名字就是圖片的編號,如“00001.xml”。
步驟s240,新建一個文件夾,名字為annotations,將xml文件全部放到該文件夾里。新建一個文件夾,名字為jpegimages,將所有的訓(xùn)練圖片放到該文件夾里。新建文件夾,命名為imagesets,在imagesets里再新建文件夾,命名為main。通過xml名字(或圖片名),生成兩個txt文件,即:train.txt,test.txt,文件里面是訓(xùn)練和測試圖片的索引。新建voc2007文件夾,將annotations、imagesets和jpegimages都保存到此文件夾中。
本申請實施例中,由具有擾動交疊率算法的rpn網(wǎng)絡(luò)獲得手勢目標(biāo)的區(qū)域建議,并反饋給fastr-cnn網(wǎng)絡(luò),包括:
將rpn網(wǎng)絡(luò)的滑動窗口大小設(shè)為3*3。anchor基準(zhǔn)面積大小都設(shè)為8*8,使用三種寬高比2:1,1:1和1:2,采用的尺度為[8,12,16],這樣在每個滑動窗口位置就產(chǎn)生了9個anchors,如附圖4所示。
借鑒擾動標(biāo)簽算法的思想來加強損失層的正則化,避免訓(xùn)練模型的過擬合問題。擾動標(biāo)簽的算法就是在每次迭代過程中,隨機選擇一些樣本,使用錯誤的標(biāo)記值進行訓(xùn)練,本發(fā)明迭代時每次就取10張圖片,若采用一樣的策略顯然不合適,由于正負(fù)樣本不是在制作數(shù)據(jù)集時規(guī)定的,而是在訓(xùn)練時根據(jù)iou值和目標(biāo)真實框的標(biāo)簽共同確定。所以本發(fā)明采用的策略就是在每1000次迭代中按概率
從rpn訓(xùn)練階段開始闡述,送入rpn的標(biāo)簽數(shù)據(jù)為
l({pi},{ti})表示損失函數(shù)如式(2),
disturbiou算法產(chǎn)生擾動的iou后主要影響的是12k個區(qū)域建議的類別標(biāo)記,對每個區(qū)域建議通過disturbiou后產(chǎn)生的擾動標(biāo)記表示為p=[p0,p1]。p是由輸入數(shù)據(jù)根據(jù)正負(fù)樣本標(biāo)定規(guī)則生成的(p0表示anchor框為背景的概率,p1表示anchor框為目標(biāo)的概率),其中iou的大小起決定作用。
iou的計算公式如式(5)所示,
其中n為每次迭代的次數(shù),本申請n=1000,
式(6)中
如附圖1所示,將上述disturbiou算法產(chǎn)生的擾動標(biāo)簽輸入到rpn數(shù)據(jù)層,rpn數(shù)據(jù)層將卷積特征映射到一個低維向量,最后將這個低維向量送入到兩個全連接層,即邊框回歸層和邊框分類層。分類層輸出每個位置上9個anchors屬于前景和背景的概率;邊框回歸層輸出每個位置上9個anchors對應(yīng)的窗口應(yīng)該平移縮放的參數(shù)。對于每個位置來說,分類層從低維特征中輸出屬于前景和背景的概率;回歸層從低維特征中輸出4個平移縮放參數(shù)。
本申請實施例中,根據(jù)所述通過fastr-cnn網(wǎng)絡(luò)的分類層和邊框回歸層,對手勢進行定位和識別,包括:
將共享卷積層輸出的非線性特征和rpn網(wǎng)絡(luò)反饋回來的區(qū)域建議通過roi池化層和全連接層得到手勢區(qū)域的特征向量,再將此特征向量輸入到分類層和邊框回歸層。分類層和邊框回歸層分別輸出手勢的類別和位置。
本發(fā)明提出了一種基于fasterr-cnn的手勢檢測和識別方法,實驗表明本發(fā)明能有效增強手勢識別的魯棒性,提高手勢識別精度。