• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于子動作特征矩陣與DTW算法的手臂動作識別方法

      2021-08-07 02:00:54崔建偉曹爾凡陸普東李志鋼
      東南大學學報(自然科學版) 2021年4期
      關鍵詞:手臂坐標系波形

      崔建偉 曹爾凡 陸普東 李志鋼

      (東南大學儀器科學與工程學院, 南京 210096)

      助殘機械假手可以在一定程度上代替人手幫助殘疾者進行生活自理[1].但是大多數(shù)假手產(chǎn)品只能被動模擬人手功能,通過按鈕、語音等人為信號控制機械假手完成抓握動作,操作繁瑣,給殘疾者造成心理負擔.人的手臂是助殘手的牽引工具,準確識別手臂動作,將動作特征反饋給假手系統(tǒng),由其學習并調(diào)整參數(shù),對實現(xiàn)假手的智能化控制具有一定意義.基于慣性測量單元(IMU)的手臂動作識別是人體動作識別領域的熱點.

      IMU是在MEMS技術的基礎上將加速度計、角速度計、磁力計等多種微器件集成的慣性組合,具有微型化、低功耗、低成本等優(yōu)勢[2].Wang等[3]在老年人手腕部位佩戴IMU并結合環(huán)境傳感器,采用支持向量機模型對17種日常人體活動進行識別,總識別率達到96.82%;Mazomenos等[4]在受試者的肘部、腕部分別佩戴IMU,通過對手臂運動過程中的關節(jié)角、關節(jié)位置變化進行分析,采用閾值區(qū)分法對倒茶動作的多個子動作進行區(qū)分,取得良好的分類效果.

      動態(tài)時間規(guī)整(DTW)算法是一種模板匹配算法,用來計算時間序列數(shù)據(jù)之間的相似性.由于該算法對連續(xù)時間序列數(shù)據(jù)有很好的處理效果,且相對于機器學習和神經(jīng)網(wǎng)絡算法具有數(shù)據(jù)需求量小、計算量小的優(yōu)勢[5],目前在基于慣性器件的動作識別場景也有較多應用[6-7].Lian等[8]在運動員的大臂和小臂分別穿戴IMU,使用與DTW原理相同的LCS算法對棒球投擲動作的6個子動作進行識別,平均識別率達到95.14%;劉盛羽[9]將決策樹算法與DTW算法相結合,基于IMU和壓力傳感器對人體步態(tài)動作進行分類,整體識別率達到95%以上.

      上述研究都使用了DTW算法直接處理人體動作的IMU時間序列數(shù)據(jù),雖然取得了良好的識別準確性,但仍存在不足:①DTW算法的耗時與時間序列長度相關.動作持續(xù)時間越長,算法的耗時越大,識別的實時性受很大影響.如持續(xù)時長超過10 s的動作,識別的耗時會超過4 s,在實時性要求較高的助殘手系統(tǒng)中不被允許.②不同的人做同一個動作的速度可能會有很大差別,對2個持續(xù)時間差異較大動作的時間序列直接進行比較計算,識別效果會變差.針對以上不足,本文提出基于子動作特征矩陣的DTW算法對手臂動作數(shù)據(jù)進行處理.不同于直接計算時間序列數(shù)據(jù),本文設計了一種活躍波形匹配算法,將手臂動作按照執(zhí)行的順序拆解成若干個子動作,對每個子動作計算角速度和手臂空間位置變化的若干組特征值,構成特征向量.然后將完整手臂動作的所有子動作特征向量進行組合,構造子動作特征矩陣,在識別階段用子動作特征矩陣代替時間序列進行模板匹配計算.該方法使得基于DTW算法的手臂動作識別不受動作持續(xù)時間長度的影響,提高了識別的準確度和實時性.最后將本文提出的方法與常見的直接計算時間序列數(shù)據(jù)的方法進行比較,驗證了該方法的有效性.

      1 識別系統(tǒng)整體框架

      本文使用數(shù)據(jù)手套作為手臂動作數(shù)據(jù)采集平臺.數(shù)據(jù)手套由3個IMU和5個彎曲傳感器組成.每個IMU集成了三軸加速度計、三軸角速度計、三軸磁力計,同時內(nèi)置了DMP姿態(tài)融合器,可直接輸出四元數(shù)和姿態(tài)角數(shù)據(jù).本系統(tǒng)中,3個IMU分別固定在右手手臂的大臂、小臂和手背的中間位置,且3個IMU的佩戴方向一致,以便于后文解算手臂末端空間位置.

      如圖1所示,U-XUYUZU、F-XFYFZF、H-XHYHZH分別為3個IMU的載體坐標系,Y沿手臂指向前方,Z垂直于Y指向外側(cè),X垂直于YZ平面指向后方.

      圖1 IMU佩戴位置與載體坐標系方向

      手臂動作識別的整體流程如圖2所示,共包含空間位置解算、子動作拆解、構造特征矩陣、制作動作模板、動作識別5個步驟.

      圖2 手臂動作識別流程

      2 手臂空間位置解算

      從骨骼構造的角度看,手臂是一個簡單的連桿模型,肩部為固定點,大臂、小臂、手掌在肘關節(jié)和腕關節(jié)的連接下可相對運動.本文以手臂連桿模型為基礎,參照機器人的正向運動學理論對手臂末端的相對空間位置進行解算.

      圖3為右手手臂連桿模型示意圖.O-XOYOZO、A-XAYAZA、B-XBYBZB、C-XCYCZC、D-XDYDZD分別為胸坐標系、肩關節(jié)坐標系、肘關節(jié)坐標系、腕關節(jié)坐標系、掌關節(jié)坐標系,LOA、LAB、LBC、LCD分別為半肩寬長度、大臂長度、小臂長度、手掌長度.因胸部與肩部未佩戴IMU,無法測量2個部位的姿態(tài),故本文設定胸坐標系與肩坐標系為固定坐標系,即O-XOYOZO與A-XAYAZA固定不動,且2個坐標系在同一水平面上,與地理坐標系方向一致;B-XBYBZB、C-XCYCZC、D-XDYDZD方向分別與大臂IMU、小臂IMU、手背IMU載體坐標系方向一致.本文的手臂空間位置解算以O-XOYOZO為基準坐標系,以D-XDYDZD的原點D為手臂末端位置解算對象.

      圖3 右手手臂連桿模型

      求點D在O-XOYOZO下的坐標是一個坐標系連續(xù)變換的過程.以單個坐標系變換O-XOYOZO到A-XAYAZA為例,點A在O-XOYOZO下的坐標求解公式為

      (1)

      (2)

      從O-XOYOZO到D-XDYDZD經(jīng)歷了4次坐標系變換,根據(jù)正運動學理論,只要分別求出4次變換的齊次變換矩陣,依次相乘,即可求出點D在O-XOYOZO下的坐標:

      (3)

      求解過程中,關節(jié)坐標系之間的旋轉(zhuǎn)角度為前后時刻位置節(jié)點的IMU所測姿態(tài)角差值,是一個相對角度,因此IMU佩戴位置的差異不會影響手臂末端位置的解算準確性,解算方法的魯棒性較好.同時,每個人的手臂長度不同,為了簡化計算,本文依照國家標準《中國成年人人體尺寸》[11]中的人體尺寸參數(shù),統(tǒng)一手臂模型長度參數(shù),取LOA=18.75 cm、LAB=31.30 cm、LBC=23.70 cm、LCD=10.00 cm,手臂總長65.00 cm.

      圖4展示了在手臂畫半圓動作下,該方法解算的手臂空間軌跡與理論軌跡的對比,其中動作的起點為(18.75,0,-65) cm,終點為(18.75,0,65) cm.從圖中可以看出二者基本吻合,驗證了正運動學解算手臂位置的正確性.

      圖4 手臂空間位置解算方法驗證

      3 子動作拆解和子動作特征矩陣

      日常生活中,一個復雜的連續(xù)手臂動作可以按先后順序拆解成若干個子動作.例如當我們喝水時,通常是按照伸手拿杯子—將杯子送到嘴邊—放回杯子—將手放回的子動作順序完成動作.在自然狀態(tài)下,人不可能勻速完成整個動作,子動作之間會產(chǎn)生短暫的停頓.利用這個特點,本文采用拆解子動作并構造子動作特征矩陣的方式來研究手臂動作.假設一個完整手臂動作的子動作數(shù)量為n個,那么該動作的子動作特征矩陣為S=[F1F2…Fi…Fn],其中Fi為第i個子動作的特征向量,包含了能描述該子動作的若干個特征值.在識別階段,使用子動作特征矩陣代替長度較大的時間序列,作為DTW算法的輸入進行動作相似度比較,可提高識別的準確性與實時性.

      在構造子動作特征矩陣之前,需要通過對原始動作數(shù)據(jù)進行分析,總結運動規(guī)律,從而將子動作拆解出來.對于IMU數(shù)據(jù),常見的方法是選取加速度進行時域或頻域分析[12].考慮到手臂是一種連桿模型,手臂運動的本質(zhì)就是旋轉(zhuǎn),因此角速度能很好地表征手臂運動信息.本文選取手背部位的角速度進行分析.

      3.1 數(shù)據(jù)預處理

      設置數(shù)據(jù)采集的頻率為50 Hz,首先對原始數(shù)據(jù)進行預處理.

      3.1.1 濾波

      采用一階低通濾波器對原始數(shù)據(jù)進行濾波,去除高頻噪聲,即

      (4)

      式中,Yk為本次濾波輸出值;Yk-1為上次濾波輸出值;Xk為本次采樣值;α為濾波系數(shù),取α=0.25.圖5為濾波效果.

      圖5 一階低通濾波前后對比

      3.1.2 動作分割

      對于采集的整段動作數(shù)據(jù),需要從中分割出有效的數(shù)據(jù)段,這樣更有利于特征的提取.常見的方法是設置固定長度的窗口,通過定長滑動分割出動作段,這種方法計算量小,但很容易將一個完整動作切割開,分割成功率低[13].基于第2節(jié)解算出的手臂空間位置可知,當手臂從靜止開始移動或移動到靜止時,手臂位置坐標會產(chǎn)生大幅變化,而差分值與方差對數(shù)據(jù)的劇烈變化較為敏感,因此從這2種特征量入手,來判斷動作的始終點,分割出有效動作段.具體過程如下:

      ①設置滑動窗口長度w=10個采樣點,窗口滑動步長l=1個采樣點.

      ②對每個滑動窗口計算手臂位置三軸坐標差分值的和,即

      (5)

      ③對每個滑動窗口計算手臂位置三軸坐標的方差和,即

      Vk=

      (6)

      ⑤尋找動作段起點,以喝水動作為例,如圖6所示.對Vp中的元素遍歷.若當前Vp值的橫坐標對應的差分和E>tE,則該Vp值是與起點匹配的波峰,對當前采樣點減去窗口長度偏移值ms,即找到起點,其中tE為大量實驗后設置的E閾值.若E

      ⑥尋找動作段終點,從后向前遍歷Vp,判斷方法與步驟⑤相似.圖6中,me為終點的窗口長度偏移值,對找到的Vp對應采樣點加上me,即找到終點,設定me=3w.

      圖6 喝水動作分割

      3.2 子動作拆解

      為了便于分析子動作拆解過程,計算手背部位角速度三軸分量的綜合值,即

      (7)

      式中,Gx、Gy、Gz分別為手背角速度三軸分量.綜合值Gf將三軸角速度融合,能夠體現(xiàn)角速度的整體變化趨勢.

      以喝水動作的Gf曲線為例,分析手臂動作的規(guī)律.如圖7所示,Gf出現(xiàn)了4個較大幅度的活躍波形,對應喝水動作的4個子動作,而每個活躍波形之間存在一個短暫的平靜期,對應子動作之間短暫的停頓.

      喝水動作的4個子動作都是手臂的單方向運動,而在日常生活中,手臂的來回擺動也是常見動作類型,例如刷牙、切菜等.圖8是刷牙動作的Gf曲線.當實驗者手拿牙刷做出來回擺動的刷牙動作時,Gf值對應的是一個頻率較快的有多個波峰的波形,且手擺動的次數(shù)與波峰的數(shù)量相同.由于擺動動作頻率高,且每次擺動代表的動作含義相同,本文將這種擺動動作視為一個子動作處理.

      圖7 喝水動作的活躍波形與子動作對應關系

      圖8 刷牙中的擺動動作Gf曲線

      基于以上對手臂動作特點的分析,本文設計了一種針對動作Gf曲線的活躍波形匹配算法.該算法從區(qū)分Gf曲線的活躍期和平靜期入手,匹配活躍期的起點與終點,將每個子動作對應的活躍波形從完整動作波形中摘取出,形成子動作窗口,完成子動作拆解.對于擺動類型子動作活躍波形,該算法也能準確匹配.

      本文以圖8的刷牙Gf曲線為例,簡述活躍波形匹配算法的流程.

      ②遍歷Gf,p,對每個波峰進行始點、終點探測.設置指針pl從當前波峰開始向左移動,每當遇到波谷時,判斷波谷值Gf,v是否小于tg及波谷往前5個采樣點的值是否都小于tg.同時滿足這2個條件時,認為波形已進入平靜期,該波谷則為起點,結束探測.若有一個條件不滿足,則認為波形仍處于活躍狀態(tài),而該波谷是人體抖動或擺動動作導致的干擾點,忽略并讓pl繼續(xù)左移.

      ③探測活躍波形終點.設置指針pr從當前波峰開始向右移動尋找終點,方法與步驟②相同.

      ④對Gf,p中下一個波峰進行探測前,判斷該波峰的橫坐標值是否小于上一個活躍波形的終點.若滿足小于條件,代表該波峰屬于擺動動作的一個部分,已經(jīng)被上一個子動作包含,不必再處理;若不滿足條件,說明該波峰屬于新的子動作,回到步驟②繼續(xù)計算.

      匹配的大致過程和結果如圖9所示,圖中的虛線為算法匹配出的子動作窗口邊界.

      圖9 活躍波形匹配過程

      3.3 子動作特征矩陣構造

      子動作拆分完成后,需要對每個子動作窗口計算易于區(qū)分不同手臂動作的特征值.經(jīng)過實驗觀察,選取6種特征值,如表1所示.其中,前3種描述了角速度變化特征,后3種描述了手臂空間位置變化特征.

      表1 對子動作選取的特征值

      將選取的6種特征值組成子動作的特征向量,即

      F={ΔT,M,N, ΔPx, ΔPy, ΔPz}T

      (8)

      然后將整個手臂動作的多個子動作的特征向量進行組合,得到手臂動作的子動作特征矩陣,即

      S=[F1F2…Fi…Fn]T

      (9)

      子動作特征矩陣S的構造使得手臂動作原本長度為幾百甚至幾千的時間序列,濃縮成長度為子動作數(shù)量的子動作特征矩陣,對于下文使用DTW算法識別手臂動作有重要的意義.

      4 動作識別算法

      4.1 DTW算法原理

      DTW算法用來計算序列之間的相似性,是一種模板匹配算法,其原理如圖10所示.相似性通常是用2個序列之間的最短距離γ來衡量.γ越小,2個序列的相似度越高.DTW算法應用于手臂動作識別的過程如下:建立動作模板庫,將測試動作與所有模板動作進行比對,計算二者之間的最短距離γ,結果最小的模板動作即為識別結果.

      圖10 DTW算法原理

      由于輸入DTW算法中的2個序列長度通常不相等,不能直接計算它們之間的歐氏距離,因此使用動態(tài)規(guī)劃的方法來計算.

      以長度n的序列Q1={a1,a2,…,an}為橫軸,長度m的序列Q2={b1,b2,…,bn}為縱軸,構造n×m的網(wǎng)格矩陣,網(wǎng)格中任意一個交叉點(i,j)為序列中的元素Q1(i)與Q2(j)的相交.網(wǎng)格中任意點(i,j)的最短距離γ的計算公式如下:

      (10)

      式中,d(i,j)為Q1的第i個元素與Q2的第j個元素的距離,一般用歐式距離計算.以點(1,1)為起點,迭代計算至終點(n,m),γ(n,m)即為Q1和Q2最短距離的計算結果.

      本文將構造好的子動作特征矩陣S代替序列Q輸入到DTW算法中,S中的每列為特征向量,因此歐式距離d(i,j)的計算公式為

      (11)

      式中,S1(i,k)為特征矩陣S1的第i個子動作特征向量的第k個特征值;S2(j,k)為特征矩陣S2的第j個子動作特征向量的第k個特征值;l為特征值數(shù)量,即為6.

      4.2 動作模板制作

      常見的模板匹配方法是將待識別動作序列與模板庫中每一個模板動作序列進行比對,得出結果.這種方法會受到模板庫規(guī)模的影響,模板庫中模板數(shù)量越多,計算量就越大,耗時越久.為了減少計算時間,采取對每一類動作的所有模板動作序列求平均序列的方法,制作每類動作唯一動作模板,從而在識別階段計算一次即可.

      本文采用文獻[14]中基于動態(tài)時間規(guī)整的重心平均(DTW barycenter averaging, DBA)算法對多個動作模板求平均模板.該方法通過反復迭代計算,減小臨時平均模板與各個原始動作模板的最短距離γ,得到最終的動作平均模板,且不受迭代順序的影響.

      5 實驗

      5.1 實驗設計

      結合助殘機械手的研究背景,選取了6種生活中常見的需要用手進行抓取的手臂動作,并定義了子動作順序,作為測試本文方法的動作標簽,如表2所示.

      表2 實驗選取的動作

      尋找了10名健康受試者進行手臂動作實驗,共8男2女,年齡23~50歲,身高160~185 cm.要求受試者的右臂佩戴數(shù)據(jù)手套,軀干保持不動,以自然狀態(tài)與速度按照表2的子動作順序執(zhí)行手臂動作,每類手臂動作執(zhí)行15次,最后采集得到900組動作數(shù)據(jù).

      從每個受試者執(zhí)行的每類15組動作中,隨機抽取5組作為模板組,其余10組作為測試組,共得到300組模板組數(shù)據(jù),600組測試組數(shù)據(jù).模板組每類動作為50組數(shù)據(jù),對這50組數(shù)據(jù)使用DBA算法,得到最終的動作模板,共得到6個動作模板.同時,對數(shù)據(jù)集采用五折交叉驗證,減少實驗結果的隨機性.

      5.2 實驗結果分析

      對采集的實驗數(shù)據(jù)使用傳統(tǒng)的基于時間序列的DTW方法和本文提出的基于子動作特征矩陣的DTW方法進行識別,并對2種方法的準確性和實時性進行對比.表3和表4分別是2種方法的識別結果混淆矩陣,表中數(shù)據(jù)為五次交叉驗證取平均值的結果.

      表3 基于時間序列的動作識別混淆矩陣

      表4 基于子動作特征矩陣的動作識別混淆矩陣

      通過觀察表3和表4可知,本文方法相對于傳統(tǒng)基于時間序列的方法準確性有所提高,總識別率由96.9%提高到99.4%,也證明了所選的6種子動作特征值對于區(qū)分不同動作有一定貢獻.

      圖11(a)為每類動作50個模板樣本的動作模板制作平均耗時對比,圖11(b)為100個測試樣本的動作識別平均耗時對比.可看出,無論是模板制作階段還是識別階段,基于子動作特征矩陣的方法耗時都小于基于時間序列的方法.進一步觀察圖11,發(fā)現(xiàn)基于時間序列的方法識別耗時與動作的持續(xù)時間成正相關,而基于子動作特征矩陣的方法識別耗時差距很小,與動作的持續(xù)時間長短無關,證明了本文提出的識別方法具有良好的實時性.

      (a) 動作模板制作耗時

      (b) 動作識別耗時

      6 結論

      1) 設計了手臂動作識別流程,包含手臂空間位置解算、子動作拆解、子動作特征矩陣構造、動作模板制作、動作識別等5個步驟.

      2) 針對常見基于時間序列的DTW動作識別方法在準確性和實時性方面的不足,采用拆解手臂動作、構造子動作特征矩陣的方法,用子動作特征矩陣代替時間序列對手臂動作進行識別.

      3) 選取6種生活中常見的手臂動作進行實驗,與基于時間序列的DTW方法相比,本文方法在識別準確性和實時性上有顯著提高,驗證了本文方法的有效性.

      4) 由于動作識別的準確性和實時性與特征選擇緊密相關,因此后續(xù)研究將圍繞手臂位姿變換,深入研究子動作特征的提取,以進一步提高識別的準確性并減少算法的延時性,為助殘手智能控制打下基礎.

      猜你喜歡
      手臂坐標系波形
      對《壓力容器波形膨脹節(jié)》2018版新標準的理解及分析
      手臂上的抓痕
      基于LFM波形的靈巧干擾效能分析
      測控技術(2018年2期)2018-12-09 09:00:46
      解密坐標系中的平移變換
      坐標系背后的故事
      基于重心坐標系的平面幾何證明的探討
      章魚長長的手臂是用來做什么的
      抱手臂的娃娃
      基于ARM的任意波形電源設計
      大連臺使用CTS-1記錄波形特點
      新余市| 鸡泽县| 溧水县| 甘肃省| 内黄县| 湖南省| 赤峰市| 上杭县| 泸溪县| 夹江县| 聂拉木县| 沽源县| 肥乡县| 壤塘县| 潼南县| 揭西县| 封开县| 汉源县| 永福县| 宁国市| 鹿泉市| 嵩明县| 鄄城县| 绥芬河市| 专栏| 岳池县| 上林县| 周宁县| 剑阁县| 黎川县| 鹿泉市| 进贤县| 苗栗县| 东平县| 河北省| 平舆县| 北川| 海丰县| 全州县| 永顺县| 新安县|