陳錫鍛 陳鵬








摘? 要:針對人體跟蹤過程中因遮擋、姿態變化而導致的跟蹤器魯棒性變差的問題,提出一種基于深度相機和卡爾曼濾波的人體目標跟蹤方法,在深度圖像下,基于人體骨架關鍵點,將人體目標分解成若干個關鍵點的位置狀態,分別建立各關鍵點運動的數學模型,通過卡爾曼濾波器的跟蹤,增加了人體目標跟蹤不確定性的描述,提高了對遮擋、識別錯誤等不利因素的魯棒性。
關鍵詞:人體目標;深度相機;卡爾曼濾波;魯棒性
中圖分類號:TP391? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標志碼:A? ? ? ? ? ? ? ?文章編號:1672-0105(2022)01-0072-05
Application of Depth Camera and Kalman Filter in Human Target Tracking
CHEN Xiduan, CHEN Peng
Abstract:? In view of the poor robustness of the tracker caused by occlusion and attitude change in the process of human tracking, a human target tracking method based on depth camera and Kalman filter is proposed. In the depth image, based on the key points of human skeleton, the human target is decomposed into the position state of each key point, and the mathematical models of the movement of each key point are established respectively, Through the tracking of Kalman filter, the description of human target tracking uncertainty is increased, and the robustness to adverse factors such as occlusion and recognition errors is improved.
Key Words:? human targets; depth camera; Kalman filter; robustness
引言
人體目標跟蹤在人員安全監控、運動員比賽分析、智能人機交互等領域具有廣泛的應用[1],研究人體目標跟蹤技術,助力公共安全、智能交通、智慧城市等領域的發展,這對于促進社會發展具有深遠的意義[2]。
實現人體目標跟蹤任務前,首先需要解決的問題是如何對人體目標進行實時性、強魯棒性的檢測。本文針對人體跟蹤過程中因遮擋、姿態變化而導致的跟蹤器魯棒性變差的問題,提出一種基于深度相機和卡爾曼濾波器的人體目標跟蹤方法,該方法在深度圖像下,基于人體骨架關鍵點,將人體目標分解成若干個關鍵點的位置狀態,分別建立各關鍵點運動的數學模型,通過卡爾曼濾波器的預測跟蹤,增加了人體目標跟蹤不確定性的描述,提高了跟蹤器對遮擋、識別錯誤等不利因素的魯棒性。
1? 人體骨架關鍵點
深度相機的骨架提取算法可獲取到豐富的人體姿態信息。檢測到的人體骨架關鍵點總共有17個,分別為頭部、頸部、軀干、左肩、右肩、左肘部、右肘部、左手、右手、左胸、右胸、左腰、右腰、左膝、右膝、左足和右足,如圖1所示。
在人體目標跟蹤時,對人體骨架關鍵點建立運動數學模型如下:
(1)
其中[j=1,…,17]為人體目標關鍵點[j]的狀態,[xjp,k],[yjp,k]和[zjp,k]分別為關鍵點[j]在x、y和z軸上的位置,[xjv,k],[yjv,k]和[zjv,k]分別為關鍵點[j]在x、y和z軸上的速度,[xja,k],[yja,k]和[zja,k]分別為關鍵點[j]在x、y和z軸上的加速度。
2? 卡爾曼濾波器
卡爾曼濾波器是一個對動態系統的狀態序列進行線性最小誤差估計的算法,一般用于線性系統[3]??柭鼮V波在物體互相遮擋和測量值帶噪聲的情況下仍然可以實現實時目標跟蹤的效果,預測時具有無偏、穩定和最優的特點[4-5]。
2.1 算法描述
根據公式(1)建立的人體骨骼關鍵點的運動數學模型,建立卡爾曼濾波狀態和觀測模型如下所示:
(2)
(3)
其中,[Fjk]為關鍵點[j]的狀態轉移
(4)
[wjk-1]和[vjk]分別為零均值且協方差為[Qjk-1]和[Rjk]的高斯白噪聲?;诋斍皶r刻各關鍵點的狀態估計值,利用公式(5)和(6)預測下一時刻關鍵點[j]的狀態[xjk]和[Pjk]。
(5)
(6)
其中,[xjk-1]與[Pjk-1]為k-1時刻的狀態估計值,接著,深度相機采集人體目標深度圖像,實現人體目標的識別,并計算出人體各關鍵點的位置,讀取人體目標各關鍵點的量測值[zjk],[j=1,…,17]。并利用公式(7)和(8)計算關鍵點[j]在卡爾曼更新后的狀態估計值[xjk]和[Pjk]。
(7)
(8)
其中[Kjk]如下:
(9)
2.2 算法實現流程
基于深度相機的卡爾曼濾波人體目標跟蹤算法的具體做法如下,其流程圖如圖2所示:
(1)將人體目標狀態分解成17個關鍵點的位置狀態,建立各關鍵點運動的模型,并確定卡爾曼濾波器參數;
(2)根據上一時刻的人體目標關鍵點位置估計,分別預測下一時刻人體目標關鍵點位置;
(3)讀取深度圖像傳感器的信息,識別并計算人體目標關鍵點位置,讀取人體目標關鍵點位置信息;
(4)根據讀取到的人體目標關鍵點位置信息,分別對預測的人體目標關鍵點位置進行量測更新;
(5)重復執行步驟2~步驟4,完成人體目標的魯棒實時跟蹤。
3? 實驗與分析
在人體運動目標自動跟蹤系統的實際應用中,考慮到卡爾曼濾波算法需要進行大量的矩陣運算,故在本文中將卡爾曼運動預測跟蹤方法做了簡化,不考慮系統誤差和觀測誤差對系統的影響[6],在室內環境,固定背景情況下,采用卡爾曼預測方法,預測人體目標各關鍵點下一時刻目標最可能出現的位置,獲取實驗數據,并對結果進行分析。
深度相機采用北京韻動體感科技有限公司的YDSENS韻動體感深度攝像頭,1 080P分辨率,深度范圍為0.5~4米,實時性高,攝像頭幀率為每秒30幀。其中SDK支持人體骨架關鍵點識別,同時支持市場上多種相機,包括Intel Realsense。其深度原始圖片與深度圖像如圖3所示,圖片左側為行人目標圖像,右側為深度圖像下的骨架關鍵點圖。
人體目標跟蹤效果如圖4所示,其中圖(a)為正常行人目標下的人體目標跟蹤圖,圖(b)為手臂部分被遮擋后的人體目標跟蹤圖,圖(c)為雙手被擋后的人體目標跟蹤圖,圖(d)為人體加速向右上方運動并遮擋右腿的人體目標跟蹤圖。由圖可知:在深度圖像下,利用卡爾曼對人體目標骨架關鍵點進行運動預測從而實現人體目標跟蹤,效果比較理想。
為了方便數據的分析處理,將運動目標各關鍵點的三維坐標數據轉化為二維坐標數據,將各關鍵點實際位置坐標(X,Y)和卡爾曼濾波得到的數據四舍五入以.csv文件的形式保存,其部分數據如表1所示。
人體局部數據(右手)所得實際值與卡爾曼預測值數據做對比,其中被遮擋人體部位數據處理為(0,0)坐標,圖5為X坐標數據,圖6為Y坐標數據。從中我們可以看出,在2~2.5秒時間里,由于右手部分被遮擋,從而觀測數據丟失,因而卡爾曼預測值與實際值有偏差,但在整體預測過程中,卡爾曼對運動目標跟蹤有著較好的效果。
采取跟蹤精度為算法性能指標來評價算法性能,跟蹤精度定義為預測目標位置與實際位置之間的距離誤差小于特定閾值的幀數與總幀數之比[7],其中誤差距離公式如下:
(10)
其中[(xp,yp)]為人體預測目標中心位置,[(xt,yt)]為表示實際目標所在中心位置,實驗以25的距離作為特定閾值,本文通過比較傳統卡爾曼人體目標跟蹤方法與本文方法的跟蹤精度,其中在遮擋性環境下測試算法性能時,通過間斷性遮擋人體目標部位進行實驗,得到結果如表2所示:
由表2我們可以得知在無遮擋環境下本文方法和傳統方法的跟蹤精度相差無幾,在遮擋環境下,尤其是遮擋上半身部位和大面積遮擋下半身部位,本文算法能夠顯著提高系統的跟蹤精度,增強系統的魯棒性。
4? 結語
在深度圖像下,基于人體骨架,本文首先將人體骨架分為17個關鍵特征點,并分別對各關鍵點建立運動數學模型,其次通過卡爾曼濾波器對各關鍵點進行目標跟蹤,從而增加了人體目標跟蹤不確定性的描述,最后通過實驗測試得出數據和結果。
從實驗測試結果可以看出:在深度圖像下,基于人體骨架關鍵點,采用卡爾曼預測人體骨架關鍵點,增加了人體目標跟蹤不確定性的描述,對人體目標的運動趨勢和方向能夠做出正確的預測估計,特別對于人體跟蹤過程中因遮擋、姿態變化而導致的跟蹤器魯棒性變差的問題能夠很好的解決,從而能夠較準確完成人體目標跟蹤任務,為系統的整體穩定性提供了保證。
收稿日期:2022-01-26
基金項目:2021年浙江工貿職業技術學院院級課題“基于結構特征匹配與漸進卡爾曼濾波的人體目標跟蹤方法研究”(G210101)
作者簡介:陳錫鍛(1989—),男,浙江蒼南人,浙江工貿職業技術學院助教,主要研究方向:模式識別、信號與信息處理、語音識別;陳鵬(1979—),女,四川開江人,浙江工貿職業技術學院講師,主要研究方向:圖像處理、數字排版、界面設計。