葉 強,夏 懿,姚志明
(1.南京體育學院運動健康科學系,南京 210014;2.安徽大學電氣工程與自動化學院,合肥 230601;3.中國科學院合肥智能機械研究所,合肥 230031)
步態是人類在行走過程中的行為特征,涉及行為習慣、職業、教育、年齡及性別等因素,也受到多種疾病的影響[1]。步態分析主要包括步態時空參數的計算,足底壓力分布的提取,以及相關肌肉肌電的活動模式分析。步態分析在臨床診斷[2],康復評估[3]以及體育訓練[4]等活動中具有十分重要的應用價值。作為步態分析的一個基本步驟,跟蹤足部運動并建立每一個腳印的幀序列是一個非常重要的必要步驟。只有正確的捕捉到每一個腳印的時空位置信息,才能夠保證步態參數的正確計算。
大多數步態研究中,受壓力感應區域面積的限制,步態實驗過程中受試者的運動方式通常都是直線運動[5],因此兩腳之間的距離跨度很大,而且腳的動作都是非常簡單的常規足底動作[6],因此足印提取問題的解決相對比較容易。隨著模塊化柔性陣列傳感器制造水平和數據通信技術的提高,壓力感應場地(以下稱之為數字場地)的面積越來越大。
大面積的數字場地為測試者采用任意方向的足部運動以及更加復雜的非常規足部動作提供了硬件條件,一些相關的步態應用,如足底壓力分析[7],足部姿態識別[8]等,其研究開發都將成為可能。然而一旦不限制足部運動的方向以及姿態,足印提取任務將不再是一個簡單的問題[6,9]。其困難主要來自兩個方面:首先,因為足部運動不再是簡單的直線跨步,因而兩腳之間的距離在某些情況下非常小,導致距離測度不足以將屬于兩個不同腳印的各個數據點聚集塊區分開來。其次,如果單腳在某個位置的著地過程中可能會存在多個非常規動作(如旋轉、半抬,側歪等),造成該區域的腳印是由多個單腳印疊加而成,如何正確的從中分割出單個腳印也不是一個容易的問題。例如圖1(a)與圖1(b)分別顯示了一個太極拳表演者在運動過程中留下的雜亂足印軌跡,以及一個帕金森病人在拐彎處短促與慌亂的步伐軌跡。
為解決上述步態分析問題,本文提出一個三階段的解決方案。第1階段:沿時間軸對每一幀壓力圖像進行基于密度聚類的圖像分割,其結果是得到不同的數據點聚集塊;第2階段:利用腳印的幾何特征如腳印的大小、形狀以及前后腳時間序列信息等,將第1階段產生的不同數據塊歸屬到相應的左、右不同腳印;第3階段:通過尋找腳印面積—時間曲線上的波峰與波谷點,來完成復雜步態的單腳印分割。

圖1 足跡軌跡
本文實驗中鋪設的大面積數字場地是由24個壓力感應模塊拼裝組成,形成一個3×8的行列結構。每個模塊的面積為100 cm×100 cm,上面共有80×80個壓力傳感點,每個傳感點的半徑為0.5cm,相互之間的距離為1.25 cm。所有壓力感應模塊在數據層通過局域以太網實現實時數據傳輸。系統的采樣頻率是50 Hz,每個壓力單元所受的壓力分為4個等級。灰度壓力圖像寬為640(8×80)像素,高為240(3×80)像素。圖2顯示了一個太極拳表演者在數字場地上運動的場景。實驗中,分別召募了5名太極拳運動表演者以及5名帕金森病人來采集相應的足底壓力序列。試驗者的相關信息見表1。太極拳運動者根據自己的喜好在場地上表演一套時間長度不一的太極拳,而帕金森病人則需要根據我們規劃的路線(2段直線、3個拐彎)來進行測試。實驗中,一共采集了10段(每位測試者一段)不同時長的足底壓力圖像視頻進行算法的分析評估。為了驗證本文提出的分階段足印分割算法的有效性,實驗過程中架設了一臺攝像機以同步記錄測試者的足底動作,然后通過回放錄像來驗證足印提取的準確性。

圖2 足底壓力感應場地

表1 測試者基本信息
HAY:Hoehn and Yahr score
在測試者移動的過程中,足底不同部位所受的壓力一直處在變化之中,在某個時刻有些部位所受的壓力可很能小,或者沒有接觸到地面,再加上數字場地傳感點之間還存在一定的距離,因此采集到的足底壓力圖像在物體形態上與攝像頭得到的感光圖像不一樣,足跡不是整體連通的,而是由幾個分離的大區域塊加上周邊一些小的區域塊所共同構成。文中采用數據點聚類的方法來尋找壓力圖像中的不同區域塊。足底壓力圖像中的足印受足底壓力大小分布的影響,區域塊的形狀變化無常,因此本文選擇一種對形狀不太敏感的基于密度的聚類算法,DBSCAN[10],來完成足印區域塊的尋找工作。
如上所述,壓力點聚集塊劃分主要目的是將不同聚集塊歸屬到不同的腳印(在本文中被限定為同一個人的左或者右腳)。
假設給定如下條件:①當前時刻t時的壓力圖像幀:Ot={Ci},Ci是組成某一個聚集塊的點集合,i=1,…,K,K為聚集塊總數。②上一時刻t-1時所有聚集塊均被正確歸屬到不同的左右腳,即Ot-1={Fi},Fi為組成一只腳印的點集合,i∈{left,right}。③假設Ti是左、右腳印的某種形狀特征空間,EDi表示壓力點集合Di對應的形狀特征向量,如果數據點集合構成真實腳印的一部分,則EDi∈Ti,否則EDi?Ti。
于是聚集塊劃分問題的解決需要滿足如下約束:
Di∩Dj=?,i≠j;i,j∈{left,right}
(1)
EDi∈Ti,i∈{left,right}
(2)
Di∩Fj=?,i≠j;i,j∈{left,right}
(3)
EDi∪Fi∈Ti,i∈{left,right}
(4)
Di?Ot,i∈{left,right},為構成左腳或右腳的數據塊集合。條件(1)表明每一幀中不同腳印之間在空間位置上應該沒有重疊;條件(2)表明構成一個腳印的數據點集合在空間上的分布應該在一個腳印的形狀范圍內;條件(3)和(4)則描述了不同腳印的數據點集合在兩個相鄰幀之間的空間關系。由于幀t-1與幀t之間的采樣間隔時間非常短(20 ms),因此兩個不同腳印之間不會發生重疊,這就給出了條件(3)。類似,在上述短暫的間隔內,對單個腳印而言,相鄰兩幀數據點集合的并集在空間分布上應該仍然在一只腳印的范圍內,于是條件(4)成立。
上述問題的解決步驟如下:
①判斷當前幀中腳印的個數
如果當前幀中壓力點聚集塊的總面積超過了一只腳印的大小,那么可以很容易的得知當前幀中有多只腳印(本文實驗中最多為兩只,因為只有一個人)。然而,如果總面積在一只腳印范圍內,腳印的數目既可能為一個,也有可能為兩個,具體情形需要通過上述約束4個條件來具體判定。
②尋找每個腳印的主壓力區域塊
一旦發現當前數據幀中有不止一個的腳印時,我們根據每一腳印在任一時刻都有一個壓力重心的原則,首先來尋找每一個腳印的主壓力區域塊Mi,其具體規則是:
(5)
式中,pressure( )是一個算子,用來獲取數據點集合的總壓力大小,條件Ck∩Fi≠? 約束當前左或右腳印的主壓力區域塊必須和上一幀此腳印在空間上有交集。
③將其他區域塊歸屬到不同的腳印
完成腳印主區域塊的定位之后,接下來就是將剩余的區域塊進行左右腳歸屬劃分。這一過程的原則為:
Bi={Cm|Cm=Ck∪Mi;Cm∈Ti;Cm∩Fj=?},
Ck∈Ot;Ck≠Mi;i∈{left,right};i≠j
(6)
其具體過程為:給定不同腳印的主區域塊Mi,上一幀腳印的區域塊Fi,不同腳印的特征空間Ti,當前幀的區域塊集合Ot,這里i∈{left,right};下面先選定一個主區域塊Mi,然后檢查待劃分的區域塊Ck,如果Ck和Mi的并集Cm符合一個腳印的特征,并且和上一幀其他腳印Fj沒有交集,那么Ck和Mi在當前幀中同屬一個腳印。這一個過程順序執行,直到所有區域塊劃分完畢。
在上述過程中,如果雙腳距離相對較遠(圖3(b)所示),根據可能的足印大小,那么區域的劃分容易完成。但是如果雙腳距離比較近,如圖3(a)所示,那么其他小區域塊的歸屬判定則不是那么直接。

圖3 數據聚類得到的不同區域塊
為此,我們采用一個層次化的決策方法來完成這一任務,其基本步驟為:
①利用區域塊的包絡框進行初步判斷
首先根據條件(6)將不同的小區域塊與主壓力區域塊相組合得到一個新的區域塊集合Bi,計算其最小包絡框,然后根據其長軸以及短軸的長短來進行一個初步的判斷。
②利用卷積神經網絡進行二次判斷
第1步在雙腳比較靠近的情況下往往不能有效判斷合并后的區域塊是否是一個有效腳印。如圖4所示,是不同組合所形成的包絡框,可以看出兩種組合很難通過包絡框的大小來進行選擇。

圖4 區域塊的不同組合(對應圖3(a))
為此,我們利用近年來在多個領域取得廣泛成功的深度卷積神經網絡[11]來進行左、右以及非腳印的判斷。深度卷積神經網絡通過卷積子、感受野、下采樣、非線性化以及正則化等一系列操作來提取不同尺度下的圖像特征[12],并通過誤差反向傳播[13]來訓練神經網絡的模型參數,從而實現特征的自動提取。而傳統方法往往需要事先設計特定的算子來進行特征提取,其過程相對復雜且效果有限。卷積神經網絡還可以通過將分類器集成到網絡結構中,實現端(輸入的腳印)到端(輸出的分類結果)的流水線作業方式,從而省去了傳統模式分類任務過程中不同模塊的參數調優過程。模型完成訓練后,通過前向網絡傳播,利用已訓練的模型參數來得到正確的分類結果。
表2面積—時間曲線上有效波峰波谷提取算法

測試者運動過程中,除了直線跨步外,還有其他一些比較復雜的足部運動,例如單腳旋轉,單腳輕拖,雙腳并攏等等。這些動作所對應的腳印通常是多個單一腳印疊加而成,如圖5所示。

圖5 采集的復雜腳印

圖6 足底觸地面積沿時間軸變化曲線
為了分割這些復雜腳印,尋找單個腳印在時間軸上的起始與結束點是關鍵。而一個簡單腳印的起始與結束點通常是觸地面積沿時間軸最小的兩個位置。圖6所示是圖5所對應的觸底面積沿時間軸的變化曲線。
我們通過統計復雜腳印每一幀的足底壓力面積,進而尋找面積—時間曲線上的谷底位置,并以此位置作為單個腳印的劃分點來分割復雜腳印。由圖6可以發現,面積—時間曲線上有不少并不是真正腳印劃分點的波谷位置,這些小的波動主要是由腳著地過程中足底壓力的波動[14]所造成。為了消除小波動所引起的干擾,本文首先利用高斯函數對曲線進行平滑處理,然后對平滑后的曲線通過表2中的算法1來進行有效波峰波谷的檢測。
實驗從兩個方面來評價算法的有效性:①檢查每一幀足底壓力圖像中的所有區域塊是否被正確的劃分到左右腳,實驗中通過回放足底壓力圖像的方式來進行此項檢查。在回放過程中,分屬不同腳的區域塊所顯示的顏色不同,其中左腳的顏色為藍色,右腳的顏色為紅色。在雙腳比較靠攏的情況,通過放慢回放速度的方法來人工判斷是否有區域塊劃分錯誤。②檢查復雜足部動作引起的復雜腳印的分割是否正確,此項檢查首先觀察足部運動錄像來判斷復雜腳印的構成,然后檢查本文提出的分割算法是否準確的找到了這些單腳印在時間順序上的起止點。
正如2.2節所述,在這一實驗中我們需要構建一個基于深度卷積神經網絡的腳印分類器。該分類器實現左、右以及非腳印形狀的分類。為此我們分別采集左、右腳印樣本800個,而非腳印樣本600個。其中左、右腳印的采集比較容易,而非腳印是通過人工組合雙腳靠近情況下不同區域塊的方式產生的,這種方式產生的非腳印更適合本研究需要。為了提高訓練效果,我們使用平移、旋轉等數據擴展方式,使得最終的樣本總數為6 000,三類樣本各2 000個。每個樣本通過預處理被統一為高48像素寬為48像素大小。實驗中隨機選取60%樣本用于訓練,40%樣本用于測試。圖7展示了所采集的不同類別樣本。

上排左腳印,中排右腳印,下排非腳印圖7 訓練樣本圖片

這里“Conv”,“Bn”,“ReLU”,“FC”,‘DO’,and“MP”分別是“Convolutional layer”,“Batch normalization”,“Rectified Linear Unit”,“Fully connected layer”,“Drop Out”,and“Max pooling layer”的簡寫。“@”符號之前的數字代表相應操作的核參數,而之后的數字代表卷積層的特征圖數量或者全連接層的輸出維度圖8 用于對三類腳印進行分類的卷積神經網絡
本文所采用的深度卷積神經網絡結構如圖8所示。
實驗中,我們采用的學習參數見表3,各參數的具體含義見文獻[15]。針對測試數據,我們得到的top-1準確率為98.1%。針對所采集的10段足底壓力圖像視頻,壓力點左右腳劃分的結果如表4所示。

表3 實驗中卷積神經網絡所使用的學習參數

表4 壓力點左右腳劃分結果
NL為劃分左右腳發生錯誤的幀數
圖9給出了圖5所示復雜腳印的分割結果。圖中上排對應圖6面積—時間曲線谷底點之前的動作,而下排對應谷底點之后的動作。其中圖9(a)、9(b)是圖5(a)的分解,圖9(c)、9(d)是圖5(b)的分解,而圖9(e)、9(f)是圖5(c)的分解。

圖9 復雜腳印的分割結果(與圖5、圖6對應)
表5列出了10段動作中復雜腳印分割的準確率。

表5 算法的分割結果
NS為復雜腳印分割發生錯誤的個數
從實驗結果來看,大多數情況下算法能夠準確分割左右腳的足印,然而算法在分割的各個階段都存在分析錯誤的情況。在區域塊劃分階段,當雙腳區域特別靠近時,受形狀識別能力的限制,一些不屬于該腳印的區域塊被劃分為該腳;而在復雜腳印分割階段,曲線關鍵點尋找過程中所使用的閾值技術有其局限性,因此難免會存在一些真正的分割點沒有定位到,而一些不是分割點的關鍵點被誤認為是分割點。
針對大面積數字場地上的單人復雜步態運動的足印分割問題,本文提出一種分階段的解決方案。首先從每一幀足底壓力圖像中分割出左右腳,形成左右腳的運動軌跡,然后針對某些復雜步態所形成的復雜腳印,通過尋找觸地面積—時間曲線上的轉折點來進行復雜腳印的多階段動作分解。實驗表明本文所提方法對于單人復雜腳印的分割提取具有很高的準確性。