国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于時空特征的動態(tài)手勢識別方法研究

2022-02-27 03:27趙雅李建軍
電子設計工程 2022年4期
關鍵詞:關鍵幀識別率手部

趙雅,李建軍

(內蒙古科技大學信息工程學院,內蒙古包頭 014010)

手勢識別是計算機視覺、虛擬現(xiàn)實、人機交互和手語翻譯的一種重要的交互模式[1]。手勢識別可以分為接觸式[2]手勢識別和基于視覺的手勢識別[3]。接觸性手勢識別因為其設備較復雜、價格較昂貴,限制了手勢的自然表達,不利于高效的手勢交互應用。而基于視覺的手勢識別無需復雜且價格高昂的設備,操作簡便,更符合人機交互的發(fā)展趨勢,真正實現(xiàn)了從復雜、低效到簡單、高效的轉變,因而具有廣闊的應用前景。

手勢識別根據(jù)是否具有時序性,可分為靜態(tài)手勢識別和動態(tài)手勢識別。靜態(tài)手勢識別指單幀靜止的手勢圖像。文芳等人[4]采用融合深度信息和彩色信息的手勢分割算法分割手勢區(qū)域,并提取靜態(tài)手勢輪廓的圓形度、凸包點及凸缺陷點等特征向量,采用SVM 進行分類。Prachi Sharma 等人[5]在深度圖像中分割手部區(qū)域,提取幾何形狀特征,并計算舉起手指數(shù)目和手掌中心距離作為特征向量,采用高斯SVM 核函數(shù)分類器進行識別分類。

相比靜態(tài)手勢識別,動態(tài)手勢識別更加復雜,不僅需要關注手部手形的變化,還要關注手指在時間、空間中的運動趨勢。隨著Microsoft Kinect 等深度相機的廣泛使用,人們很容易獲得精準的骨架數(shù)據(jù)。手部骨胳關節(jié)點的變化趨勢通??梢院芎玫胤从巢煌瑒討B(tài)手勢的特征。LiuXing 等人[6]提出采用幾何代數(shù)的方法從骨骼序列中提取形狀和運動特征,構造時空視圖不變模型。吳佳等人[7]提出動作特征,保存相關編碼信息,采用改進編輯距離對手勢動作進行分類。

針對動態(tài)手勢識別過程中可變性的問題,文中提出動態(tài)手勢關鍵幀的提取方法,采用基于運動的分析算法,利用圖像序列中像素在時間域上的變化,以及相鄰幀之間的相關性,找到上一幀跟當前幀之間存在的差值信息,根據(jù)閾值選出最合適的關鍵幀,去除動態(tài)手勢中的冗余幀。

1 動態(tài)手勢識別方法

文中從動態(tài)手勢運動的內在特征出發(fā),結合時間域和空間域手勢所具有的個體性差異,提出了一種新的動態(tài)手勢識別框架,如圖1 所示。

圖1 動態(tài)手勢識別框架

首先對輸入的視頻序列,通過運動分析算法提取有效的關鍵幀,然后通過OpenPose 獲取關鍵幀序列中手部的21 個關節(jié)點的坐標和置信度,最后采用閾值法和XGBoost 分類算法進行動態(tài)手勢識別。該框架結合時空連續(xù)性,有效解決手勢的時序問題,使動態(tài)手勢識別變得更加高效、簡潔。

1.1 關鍵幀提取

對于動態(tài)手勢視頻序列,若簡單地選取每一幀作為關鍵幀,容易出現(xiàn)相鄰兩幀變化甚微的情況,且容易出現(xiàn)嚴重的信息冗余,導致算法效率降低。單幀提取手勢視頻序列變化情況如圖2所示。

圖2 關鍵幀分析

手勢可以分為3 個階段:起始、高潮、結束??梢钥闯鰪囊曨l序列的第1 幀到第8 幀基本沒有什么動作,可以看成是靜止不動的,屬于起始階段。從第13 幀開始到第25 幀,手部動作開始頻繁變換,屬于高潮階段,包含豐富的動作信息。從第33 幀到第45 幀同樣手部動作變化不明顯,屬于結束階段。因此,手勢的變化階段主要在高潮階段,包含了豐富的運動變化信息,在判別手勢過程中起到了決定性作用。

因此,為了提高算法效率,在完整識別出動態(tài)手勢序列的前提下有效減少視頻序列中的冗余幀,文中采用基于運動分析的方法來提取關鍵幀。具體算法描述如下:

1)讀取視頻,遍歷數(shù)據(jù)集中的所有視頻數(shù)據(jù),并創(chuàng)建目錄;

2)提取視頻中的每一幀圖像,并對每一幀提取灰度信息之后作高斯模糊處理,計算每一幀參數(shù)和相鄰幀的差別,并保存到字典list中;

3)統(tǒng)計每一幀與上一幀的差值,記錄最大值、最小值、平均值、標準差等信息,保存到字典list中;

4)根據(jù)字典list 中的信息(主要是平均值和標準差)計算閾值,當相鄰幀之間的差距大于閾值時就把這一幀保存為關鍵幀。

根據(jù)上述算法所提取出的關鍵幀如圖3 所示。

圖3 提取手勢關鍵幀

1.2 OpenPose手部關鍵點提取

OpenPose[8]可實現(xiàn)人體動作、面部表情、手指運動等姿態(tài)估計,適用于單人和多人,具有極好的魯棒性。

OpenPose 中CPM(單人姿態(tài)估計)的算法流程如下:

首先,對圖像中所有出現(xiàn)的人進行回歸,回歸每個人的關節(jié);

然后,根據(jù)center map 去除掉對其他人的響應;

最后,通過重復地對預測出來的heatmap 進行refine,得到最終的姿態(tài)估計結果。在進行refine 時,OpenPose 引入了中間層的loss,從而保證較深的網(wǎng)絡仍然可以完成訓練,避免出現(xiàn)梯度彌散或爆炸現(xiàn)象。通過coarse to fine 逐漸提升回歸的準確度。

文中采用開源的OpenPoseDemo 文件讀取圖片中的姿態(tài)信息,并將讀取的信息保存為json 文件。針對手勢識別只需要關注json 文件中的兩個鍵hand_left_keypoints_2d、hand_right_keypoints_2d。每個鍵對應手部21 個關鍵點,節(jié)點有3 個值(X,Y,置信度),其中一幀的關鍵點數(shù)據(jù)如表1 所示。

表1 關鍵點數(shù)據(jù)

由于部分手勢動作左右手的動作相差無幾,或者只有一只手處于運動狀態(tài),故不區(qū)分左右手,只識別手勢的動作。文中通過對某個節(jié)點保持Y坐標不變,X坐標變?yōu)?X來進行數(shù)據(jù)增強。為了方便讀取,將最終的樣本整合為一個csv 文件,該文件有65 列(21(關鍵點)×3(X,Y,置信度)+左手/右手+動作標志)。

1.3 XGBoost分類算法

XGBoost[9]是一種專注于梯度提升的機器學習算法,被廣泛應用在Kaggle 競賽及其他機器學習競賽中,取得了不錯的成績。不但在識別率上較傳統(tǒng)梯度提升樹要高,在識別效率上也有一定的優(yōu)勢。

XGBoost 本質上屬于梯度提升樹,其算法的基本思想是讓新的模型(GBDT 以CART 分類回歸樹為基模型)去擬合前面模型的偏差,從而不斷地將加法模型的偏差降低。

相比于經典的GBDT 算法,XGBoost 作了一些改進,因而在效果和性能上有非常明顯的提升:

1)XGBoost 加入了葉子權重的L2 正則化項來平滑各葉子節(jié)點的預測值,因此模型可以獲得更低的方差。

2)GBDT 將目標函數(shù)泰勒展開到一階,而XGBoost 將目標函數(shù)泰勒展開到了二階。保留了更多有關目標函數(shù)的信息。

3)GBDT 是給新的基模型尋找新的擬合標簽,而XGBoost 是給新的基模型尋找新的目標函數(shù)。

XGBoost 算法中的正則項,目標函數(shù)定義如下:

XGBoot 的預測模型同樣可以表示為式(3):

對于目標損失函數(shù)中的正則項(復雜度)部分,當從單一的樹考慮時,對于其中每一棵回歸樹,其模型可以寫成式(4):

式中,ωq(x)是葉子節(jié)點q的分數(shù),q(x)是葉子節(jié)點的編號,f(x)是其中一棵回歸樹。即任意一個樣本x,其最后會落在樹的某個葉子節(jié)點上,其值為ωq(x),正如上文所說,新生成的決策樹用于擬合上一棵樹預測的殘差,故當生成t棵樹時,預測分數(shù)可以寫成:

同時,目標函數(shù)可以改寫成ft(xi)為當前樹上某個葉子節(jié)點的值:

然后,需要找到能夠使目標函數(shù)最小化的ft。XGBoost 是利用其在ft=0 處的泰勒公式的二階展開式來近似求解的。故目標函數(shù)可以近似為如下公式:

其中,gi為一階導數(shù),hi為二階導數(shù),hi前面的為泰勒二階展開式二階導的系數(shù)

2 算法流程

根據(jù)以上分析,文中采用的算法流程如圖4所示。

圖4 算法流程

3 實驗結果與分析

為了驗證該算法的有效性,分別采用靜態(tài)數(shù)據(jù)集Microsoft Kinect and Leap Motion[10]和動態(tài)數(shù)據(jù)集UTD-MHAD 進行實驗驗證。

Microsoft Kinect and Leap Motion 數(shù)據(jù)集包含了14 位不同受試者執(zhí)行的10 個不同的手勢動作,總共為1 400 個不同的樣本執(zhí)行10 次。每個樣本包括深度和RGB 圖像、原始深度數(shù)據(jù)和CSV 數(shù)據(jù)。文中選擇RGB 圖像進行手勢動作識別,其10 個手勢動作如圖5 所示。最終識別結果采用混淆矩陣表示如圖6 所示?;煜仃嚳梢员砻?,識別率可達98.23%,從中發(fā)現(xiàn)手勢G0 和G6、G3 和G4、G5 和G8、G9 和G6 容易發(fā)生識別混淆。和其他實驗方法進行實驗對比,實驗結果如表2 所示。

圖5 靜態(tài)手勢動作

圖6 Microsoft Kinect and Leap Motion數(shù)據(jù)集上的識別結果

表2 基于Microsoft Kinect and Leap Motion數(shù)據(jù)集不同方法的識別率對比

文獻[11]中提出CSRP 算法,且遞歸模型可解決手勢邊緣序列不等長、起始點匹配問題,可有效區(qū)分不同手勢,提高識別效率。文獻[12]中采用Leap Motion 設備獲取3D 手勢數(shù)據(jù),定義6 個新的特征描述符,使用Random Regression Forest 進行手勢識別,識別率可達到100%,高于文中識別率。由于使用了3D 手勢數(shù)據(jù),相比RGB 圖像的數(shù)據(jù),可以更加準確地對各位受試者的不同手勢進行描述,但Leap Motion 設備采集的數(shù)據(jù)相對復雜,而RGB 圖像更加直觀,相反,3D 的手勢數(shù)據(jù)增加了空間復雜度和計算時間。

文中采用OpenPose 提取手部的21 個關鍵點,無需考慮光照環(huán)境、人的膚色、周圍環(huán)境等外界因素,可以較精確地提取到手部關鍵點信息,而后使用XGBoost 進行手勢分類的算法,可達到98.23%的識別率。通過上述的對比實驗,文中提出的算法有較好的識別效果。

UTD-MHAD 數(shù)據(jù)集中選擇RGB 視頻數(shù)據(jù),其中包含8 位不同受試者執(zhí)行的27 個不同的動作,每個動作重復4次,共861個RGB視頻序列。從中選擇了16個動作,分別為Wave、Clap、Throw、Arm cross、Draw X、Draw circle(counter clockwise)、Bowling、Boxing、Baseball swing、Tennis swing、Arm curl、Push、Catch、Jog、Walk、Squat,共512 個視頻序列。最終的識別結果采用混淆矩陣表示,如圖7 所示。

圖7 UTD-MHAD數(shù)據(jù)集上的識別結果

由以上混淆矩陣可以表明,識別率可達95.84%,從中發(fā)現(xiàn)Jog 與Squat 較容易發(fā)生識別混淆。在該數(shù)據(jù)集上和其他方法進行實驗對比,如表3所示。

表3 基于UTD-MHAD數(shù)據(jù)集不同方法的識別率對比

文獻[16]中,提取3 個通道的深度信息DMM(Front DMM、Side DMM 和Top DMM)及RGB 圖像數(shù)據(jù),通過VGG 分別進行訓練預測,最終將4 個通道的預測分數(shù)進行融合,達到了95.74%的識別率。DMM由三維結構組成,故3 個通道的DMM 可充分表示各維度特征。經過預測,結合RGB 圖像的預測結果進行融合,由于深度圖像和RGB 圖像提取特征的互補性,可實現(xiàn)較高的識別率。文中提出的算法,不僅能夠對動作的關鍵幀進行選取,去掉冗余信息、提高效率,同時還能夠獲得理想的識別效果,充分說明該方法的有效性和可行性[17]。

4 結束語

通過實驗結果表明,文中提出的動態(tài)手勢識別框架,具有一定的可行性,該關鍵幀提取方法能夠有效地提取到動態(tài)手勢序列中的關鍵動作,并利用關鍵幀替代全部的動態(tài)手勢幀,避免了數(shù)據(jù)的冗余。然后通過OpenPose 提取手部的關鍵點坐標及置信度,有效地減少了傳統(tǒng)上對RGB 圖像的預處理過程,在不同光照、環(huán)境下有很好的識別效果,可準確提取到手勢的信息。

猜你喜歡
關鍵幀識別率手部
手部皮膚軟組織缺損修復的皮瓣選擇
尺動脈腕上皮支逆行島狀皮瓣修復手部皮膚軟組織缺損
封閉負壓吸引技術聯(lián)合游離股前外側穿支皮瓣修復手部大面積軟組織缺損
基于圖像熵和局部幀差分的關鍵幀提取方法
自適應無監(jiān)督聚類算法的運動圖像關鍵幀跟蹤
基于塊分類的礦井視頻圖像DCVS重構算法
基于真耳分析的助聽器配戴者言語可懂度指數(shù)與言語識別率的關系
聽力正常青年人的低通濾波言語測試研究*
基于誤差預測模型的半自動2D轉3D關鍵幀提取算法
檔案數(shù)字化過程中OCR技術的應用分析
凤翔县| 香格里拉县| 新田县| 祁阳县| 维西| 商河县| 湘潭市| 青川县| 莲花县| 尖扎县| 远安县| 潞西市| 东乡县| 开江县| 普兰县| 镇坪县| 沙雅县| 察雅县| 香格里拉县| 克拉玛依市| 出国| 泸溪县| 江油市| 田林县| 瑞安市| 乡宁县| 行唐县| 泸定县| 苏尼特左旗| 镶黄旗| 罗江县| 南通市| 弥勒县| 平顺县| 广饶县| 都安| 安平县| 临汾市| 大化| 绥阳县| 祁阳县|