蘇志同,張小橋
(北方工業(yè)大學 信息學院,北京 100144)
隨著計算機在我們生活中發(fā)揮著越來越重要的作用,單目圖像估計三維人體姿態(tài)成為計算機視覺中的一個重要課題[1]。隨著深度學習的發(fā)展,用深度神經(jīng)網(wǎng)絡解決三維人體姿態(tài)估計問題的技術也發(fā)展的越發(fā)成熟。
關于人體姿態(tài)的動作捕捉,存在很多種方法,第一種是帶有傳感器的關節(jié)、剛性連桿的及機械式運動捕捉;第二種是利用聲波發(fā)生和接受器的聲學式涌動捕捉;第三種是利用電磁發(fā)生和感應的電磁式運動捕捉;第四種是利用標記點和攝像機的光學是運動捕捉;第五種是基于視頻的運動捕捉[2]。本文利用的是第五種中基于單目攝像頭進行的動作捕捉,目前也有雙目攝像頭的研究[3],但有架設成本高、調(diào)試時間長的缺點。而單目攝像頭獲取容易,在筆記本電腦上的攝像頭就能輕松實現(xiàn)。
伴隨神經(jīng)網(wǎng)絡技術的逐步發(fā)展和完善,利用深度學習來獲得人體骨骼姿態(tài)成為一種趨勢。本文在通過 Openpose獲得骨骼數(shù)據(jù)的基礎上進行姿態(tài)對比,能夠在為動作學習需求學員提供一定的動作方面的知道。在動作教學發(fā)展方面具有一定的意義。在二維數(shù)據(jù)對三維數(shù)據(jù)進行了轉(zhuǎn)化,隨后用卡爾曼濾波對數(shù)據(jù)進行降噪。通過預先輸入教練動作的數(shù)據(jù),以此骨骼數(shù)據(jù)為標準動作數(shù)據(jù),然后再輸入學員的動作數(shù)據(jù),通過余弦相似度和歐式距離來判斷和標準動作的差距,并給出每個骨骼數(shù)據(jù)的分數(shù)。
近年來,通過深度卷積神經(jīng)網(wǎng)絡識別人體姿態(tài)的相關研究取得了較大的進展。在 2012年,AlexNet[4]的出現(xiàn),使神經(jīng)網(wǎng)絡在識別圖像上達到了較高的準確率。
圖1 AlexNet的網(wǎng)絡結構Fig.1 The network structure of alexnet
2015年,把人體姿態(tài)估計當做檢測問題,輸出熱圖,這樣能進一步提高圖像識別的準確率。2016年,CPM采用了級聯(lián)網(wǎng)絡,從而能進行像素級別的圖像分割[5],這也是Openpose的前身。
Openpose是在CNN基礎上進行改進的,在監(jiān)督學習的對人體姿態(tài)進行檢測,由圖可見,輸入一幅圖像,經(jīng)過VGG19[6]卷積網(wǎng)絡提取特征,得到特征圖F,之后分成兩路,分別使用CNN網(wǎng)絡提取Part Confidence Maps和 Part Affinity Fields,采用大卷積核來獲得大的感受野,網(wǎng)絡架構如圖2。
圖2 Ope npose的網(wǎng)絡外部結構Fig.2 The external network structure of openpose
比較常見的骨骼數(shù)據(jù)格式有 BVH、BVA、HTR、ASF/AMC等,本文采用BVH作為動捕的數(shù)據(jù)。
BVH(Biovision Hierarchy)是由 Biovision公司開發(fā),用以描述動作捕獲的數(shù)據(jù)文件格式[7]。這種文件是以文本形式存儲的,可以存儲骨骼的動作信息,便于開發(fā)。所以本文選擇這類格式作為載體來傳遞骨骼的信息[8]。從openpose中獲得的數(shù)據(jù),獲取到的的數(shù)據(jù)轉(zhuǎn)化為BVH格式的文件[9]。
獲得的骨骼數(shù)據(jù)分別為[hips, head, neck, chest,rightCollar, leftCollar, rightUpArm, leftUpArm,rightLowArm, leftLowArm, rightUpLeg, leftUpLeg,rightLowLeg, leftLowLeg, rightFoot, leftFoot]openpose里沒有hips,取openpose數(shù)據(jù)里8和11兩點連線的中點為 hips的坐標數(shù)據(jù)[10]。圖3為BVH格式的示意圖。
圖3 BVH 骨骼示意圖Fig.3 BVH skeleton diagram
表1 BVH 結構示意圖Tab.1 BVH structure diagram
卡爾曼濾波(Kalman filter)是一種高效率的遞歸濾波器,能在一系列的不完全及包含噪聲的測量中,估計動態(tài)系統(tǒng)的狀態(tài)[11]。卡爾曼濾波是有著廣泛的應用,比如:自動駕駛儀,動態(tài)定位系統(tǒng),經(jīng)濟學,慣性導航系統(tǒng),雷達跟蹤器,衛(wèi)星導航系統(tǒng)。就連阿波羅飛船的導航電腦也是使用了這種濾波器。
卡爾曼濾波適合連續(xù)變化的系統(tǒng),而且整個算法占用的系統(tǒng)內(nèi)存較小,所以特別適用于實現(xiàn)現(xiàn)在的人體姿態(tài)識別。
卡爾曼濾波有兩種方法,分別是直接法濾波和間接法濾波,兩個各有優(yōu)缺點。直接法的系統(tǒng)方程一般都是非線性方程,間接法的系統(tǒng)方程都是線性方程,可以采用基本濾波方程。人體的運動為非線性,這里采用直接法的非線性濾波法。下面是卡爾曼濾波公式。
后驗估計Pos3D和先驗估計Now3D的關系式如下:
Now3D-X為測量的殘差,為預測值和真實值的差異。
K為增益或融合因子,是后驗誤差協(xié)方差的最小化結果,K值的大小決定著最終的估計值是傾向于測量值,還是傾向于預測值,下面為K值的求法。
R和Q的基本是固定的,這里本文定的是Q=0.001R=0.0015
式中:disti,j代表兩個關鍵點在世界坐標系下的距離,xi、yi、zi分別表示教練動作的一個點的x軸、y軸、z軸坐標數(shù)據(jù),xj、yj、zj分別表示學員動作的相對應點的x軸、y軸、z軸坐標數(shù)據(jù)。通過這兩個點坐標距離的計算,可以得知學員的動作和教練的動作相差多少。
但這種歐式距離的方法有局限性。首先,需要對齊坐標系,但人體與世界坐標的相對位置和旋轉(zhuǎn)角不同,需要進行對齊,移動學員的根骨骼使其三維坐標和教練的相同。人與人之間的骨骼有大小的差異,同時還需要先進行縮放,縮放的比例是根據(jù) chest到hips的比值,縮放后使兩個根節(jié)點的hips相互重合,然后再一次對比其他骨骼節(jié)點。
式中:cosSimilarityi,j代表兩格向量的余弦值,其值范圍是[–1,1],所以用式(4)使其取值在[0,1]之間。vi表示教練骨骼的向量,vj表示學員骨骼的向量。通過這兩個點坐標距離的計算得出的結果,從得出的數(shù)值可以得知學員的動作和教練的動作相差多少。
式(7)是歸一化處理:
式(8)中:H代表最終得分,disti,j代表兩個關鍵點在世界坐標系下的距離,cosSimilarityi,j代表兩格向量的余弦值,W1表示歐式距離分數(shù)的權重,W2表示余弦向量分數(shù)的權重。通過分數(shù)大小可以得知學員的動作和教練的動作相差多少。
對實驗可變數(shù)據(jù)進行變更,觀察結果預期得出的結果和已有的數(shù)據(jù)相差多少準確率。
整體的實驗結果流程圖如表2所示。
表2 歐式距離與余弦向量方法不同權重下的準確率Tab.2 The accuracy of Euclidean distance and cosine vector method under different weights
從實驗結果可知,過于依賴歐氏距離方法獲得的分數(shù),或者過于依賴余弦向量獲得的分數(shù),都會使得結果的準確率有所下降。可以通過分析歐式距離和余弦向量方法的優(yōu)缺點來驗證實驗結果的正確性。
通過歐式距離獲得的對比數(shù)據(jù),是根據(jù)兩組骨骼數(shù)據(jù)每個點的對比。歐式距離方式的優(yōu)點,能夠較為準確的對比出每個重要骨骼關節(jié)的位置,尤其的是末尾的關節(jié)點,當對比的關節(jié)點,說明學員的姿勢肯定存在不正確的地方,這會在之后的得分中體現(xiàn)。當出現(xiàn)一種這種情況時,學員的肘關節(jié)在教練,學員的手臂和教練的手臂姿勢呈X形狀。這時候手腕和手肘關節(jié)離教練的距離都不遠,但是動作卻相差很大,說明歐式距離方法不能有效檢測出特殊情況。
通過余弦向量分析的結果目的在于許愿,其優(yōu)勢是彌補歐氏距離在特殊情況下檢測能力的不足。余弦向量能夠有效的檢測出,能夠有效的彌補歐氏距離方法所帶來的誤差。但余弦向量的缺點也很明顯,由于不能確定每個點,只能通過兩組骨骼方向朝向夾角來判定,當遇到上兩組骨骼所在的平面與下兩組骨骼所形成的平面成垂直時,就可能會出現(xiàn)這樣的情況,學員胳膊肘朝內(nèi),教練胳膊肘朝外,而余弦向量方法無法指出這樣的錯誤。而且,由于蝴蝶效應,每組關節(jié)都偏移一定的角度,會導致學員和教練在末尾關節(jié)點的有很大的偏差,這就需要歐式距離方法作為彌補。
所以得出的結論是:兩種方法忽悠優(yōu)劣,互相彌補。從而得出較為準確的人體姿態(tài)對比。
圖4 實驗流程圖Fig.4 Experiment flow chart
通過以上公式,導入輸出的結果如圖5所示。
圖5 實驗結果圖Fig.5 Diagram of experimental results
圖6輸出的結果為
圖6 學員與專業(yè)運動員姿勢對比截圖Fig.6 The students and professional athletes are just screenshots
本文在已有openpose人體姿態(tài)識別網(wǎng)絡的基礎上,將獲得的二維關節(jié)點的骨骼數(shù)據(jù)的三維姿態(tài)的重建,利用卡爾曼濾波進行降噪,并利用余弦向量和歐式距離,對學員的動作與標準動作進行對比,根據(jù)所得到的分數(shù)判斷的該學員的準確率?,F(xiàn)有的研究是通過視頻中的單幀圖像進行對比,后續(xù)可以通過硬件技術的發(fā)展,使此方法能在普通的設備下進行較為流暢的動作姿態(tài)比對。