一種新型基於Kinect的目標行人軌跡跟蹤方法與流程
2023-06-07 15:40:36 2
本發明涉及人體識別智能監控系統設計,具體說來先建立人體步態資料庫,再開發分類識別系統,進而查詢到目標行人對其進行軌跡跟蹤。
背景技術:
通過對目標行人進行軌跡跟蹤不但可以幫助安保部門從大量的監控視頻當中識別出已經出現過的可疑人員,而且可以確定該人員的行動範圍,為安保部門偵破案件提供線索。
然而現如今對於目標行人的軌跡跟蹤大多是採用傳統的直接對於視頻的跟蹤處理算法,大大增加了視頻處理的複雜度,在實際應用當中往往不能及時地對目標行人進行軌跡跟蹤。
技術實現要素:
本發明的目的是開發一種步態識別分類系統,旨在幫助安保部門從大量的監控視頻當中識別出已經出現過的可疑人員,對目標行人進行實時地軌跡跟蹤,進而確定該人員的行動範圍,為安保部門偵破案件提供線索。
本發明的目的是按以下方式實現的,首先建立步態資料庫;然後開發步態識別分類系統;最後對目標行人進行軌跡跟蹤。具體算法如下:
首先,建立步態資料庫:開啟sdk的骨骼跟蹤功能,編寫獲取步態特徵的wpf程序,獲得步態特徵的特徵向量數據,輸出這些數據到txt文本文檔中,並且輸出同一時間經過骨骼跟蹤標定的彩色圖像,以及同一時間的彩色視頻流。
然後,開發步態識別分類系統:通過c++來開發分類識別系統,利用改進的最近臨分類算法實現系統分類。
最後,對目標行人進行軌跡跟蹤:根據識別出的同一時間的目標步態數據找到同一時間目標行人所在的視頻段來實現。
本發明的優異效果如下:使用kinect進行步態識別可以利用其骨骼跟蹤功能實時獲得20個骨骼點的三維坐標,獲得人體的步態特徵向量進而建立步態資料庫,避免了傳統圖像處理的繁瑣,降低了特徵提取的難度,而且提取的步態特徵向量數據非常精確;採用最近鄰分類算法的步態識別系統不但具有非常高的識別率,而且計算簡單,計算效率比較高;根據識別出的同一時間的目標步態數據找到同一時間目標行人所在的視頻段來實現目標行人軌跡跟蹤,與傳統的直接對於視頻的跟蹤處理算法相比,大大降低了計算量和實現的複雜度。
附圖說明
圖1目標行人軌跡跟蹤流程圖
圖2kinect硬體結構分布圖
圖3獲取步態資料庫wpf程序運行界面
圖4骨骼節點標定的目標行人的彩色圖片
圖5目標行人的標記過程
具體實施方式
參照說明書附圖對本發明作以下詳細地說明。
首先,建立步態資料庫:開啟sdk的骨骼跟蹤功能,並且編寫獲取步態特徵的wpf程序,獲得步態特徵的特徵向量數據,輸出這些數據到txt文本文檔中,並且輸出同一時間經過骨骼跟蹤標定的彩色圖像,以及同一時間的彩色視頻流。
1)編寫wpf程序獲得步態特徵向量數據
步態特徵向量包括胳膊的長度、腿的長度、身高、步長、大臂和脊柱之間夾角、小臂和脊柱之間夾角、大臂和小臂之間的夾角、大腿和小腿之間的夾角、上身部位質心分別到左右胳膊質心的距離、上身部位質心分別到左右腿部質心的距離。利用空間向量法計算步態特徵向量的具體方法如下:
利用空間向量法來計算關節之間的角度以及關節部位長度的步驟分為三步,第一步是先求得kinect坐標系中各個關節點的三維坐標點,第二步利用兩個相鄰骨骼關節點坐標用向量來表示骨骼關節部位,第三步是通過餘弦公式來計算兩個關節部位之間的夾角,利用向量模值求得關節部位的長度。
利用空間向量法來計算身體某個部位的質心與質心之間的距離的步驟為:第一步是先求得kinect坐標系中各個關節點的三維坐標點,第二步求得質心在kinect坐標系中的坐標值,第三步用向量來連接兩個質心,利用向量模值求得兩個質心之間的距離。
獲得步態特徵向量數據步驟分為四步:第一步在mainwindows窗體上增加一系列label控制項,命名為相應的數據變量表示名稱,例如lspine0、lspine1、lspine2分別表示脊柱部位關節點的x,y,z空間坐標值;第二步註冊骨骼跟蹤事件,按照上述計算步態特徵值的方法獲得相應的步態特徵向量,第三步在mainwindows窗體上增加一個button控制項按鈕;第四步註冊button_click事件,使用streamwriter類將通過數據處理部分計算得到的最近的60幀內的步態特徵向量值以double類型的形式保存到文本文檔中,並且通過datetime類以計算機的當前時間格式命名文檔名,進而將不同時刻採集到的數據保存在不同的文檔中,以此來區分不同序列的數據。
2)編寫wpf程序獲得彩色視頻流
第一步在mainwindows窗體上增加一個image控制項,命名為imagecamera;第二步註冊彩色視頻流事件,一般通過writeablebitmap方法將將彩色視頻流圖像讀取出來,並且將圖片數據與imagecamera控制項綁定,同時利用opencv計算機視覺庫進行視頻的錄製,同樣也通過datetime類以計算機的當前時間格式命名視頻文件,進而將不同時刻採集到的視頻流數據保存在不同的avi文件中,以此來區分不同序列的視頻流數據。
3)編寫wpf程序獲得經過骨骼跟蹤標定的彩色圖像
獲得經過骨骼跟蹤標定的彩色圖像步驟分為三步:第一步在mainwindows窗體上增加一個畫布canvas控制項,命名為canas;第二步註冊骨骼跟蹤事件,對骨骼跟蹤事件進行處理、將骨骼關節點坐標映射到彩色圖像坐標中去,將canvas控制項疊加到image控制項中去進而在彩色視頻流圖像中顯示出骨骼跟蹤信息,視頻中用紅色圓點標定kinect跟蹤到的骨骼關節點,總共用20個紅色圓點標定的位置來代表20個人體骨骼關節點的位置。第三步在前面獲得步態特徵向量數據部分註冊的button_click事件的基礎上繼續編寫觸發事件,利用filestream類將視頻流數據以「.png」格式保存到圖片中,並且也通過datetime類以計算機的當前時間格式命名圖片名,進而將不同時刻採集到的視頻流數據保存在不同的png圖片中,以此來區分不同序列的圖片數據。
然後,開發步態識別分類系統:通過c++來開發分類識別系統,利用改進的最近臨分類算法實現系統分類。
考慮到待分類數據的特點:步態特徵向量資料庫中總共有n個特徵類別,每個類別包含m個樣本,每一個樣本向量的維數為10,每個特徵分量值的大小的取值範圍均為(0,2)。現在定義以下改進的最近鄰公式用於計算待檢測樣本與資料庫中數據之間的距離。
其中xi表示待檢測樣本數據的第i維特徵值,μki表示資料庫中的第k(k=1,2,…,n)類數據的m個樣本的第i維特徵值的平均值。
分類步驟:
第一步,通過公式(2)逐一求出資料庫中第k類數據的5個樣本的第i維特徵值的平均值μki。
第二步,通過公式(1)逐一求出待檢測樣本數據的第i維特徵值xi與μki之間的差的平方,再對其求和開平方,進而逐一得到待檢測樣本與資料庫中數據之間的n個距離l(k)。
第三步,對n個距離l(k)進行排序處理,找出最小的距離值,則將待檢測樣本數據歸類到該最小距離值所屬的類別中。
最後,對目標行人進行軌跡跟蹤:根據識別出的同一時間的目標步態數據找到同一時間目標行人所在的視頻段來實現。
研究表明:雖然kinect傳感器可以精確捕獲到人體骨骼流數據的視場範圍是有限的,但是足以利用有效的分類數據通過步態識別系統找到目標向量數據。此外通過kinect可以採集到彩色視頻流的範圍是很廣的。因此可以利用kinect傳感器的這一優勢來實現目標行人的軌跡跟蹤。
行人面向kinect走來,當行人未走到骨骼追蹤的範圍內時,行人不會被標記,但是可以採集到彩色視頻圖像。
因此目標行人軌跡跟蹤的步驟:
第一步,在小範圍內通過分類識別系統找出待檢測行人的目標步態數據;
第二步,根據該步態數據採集的時刻t找到t時刻的目標彩色圖片;
第三步,根據目標彩色圖片存儲的時刻t找到t時刻的目標彩色視頻流;
第四步,在包含有目標行人的整個彩色視頻流中查詢到大範圍內的目標行人,進而確定目標行人的行動範圍。
最後說明的是,以上所述僅為本發明的較佳實例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改,等同替換和改進等,均應包含在本發明的保護範圍之內。