鄧澤夫
(上海理工大學機械工程學院,上海 200093)
人體姿勢作為人類傳遞信息的一種方式,廣泛應用于生命體征檢測、生產安全和人機交互等多個領域。不同的人體姿勢可以表達人體當前的狀態或者需求。目前普遍的姿勢識別是通過攝像機來完成的,然而出于個體的隱私考慮,許多人不愿意在家或工作中使用攝像頭,并且基于視覺的系統在夜間或是惡劣的天氣條件下,目標識別能力會嚴重下降。與基于視覺的系統相比,毫米波雷達傳感器是一種不侵害隱私的非侵入式技術,可以在惡劣的環境中依舊保持良好的性能。
卷積神經網絡(Convolutional Neural Network,CNN)在圖像數據的處理中較其他神經網絡更有優勢,因為該網絡可以直接提取圖片的特征,簡化了前期對圖像的處理。周義凱等使用CNN對五種人體姿勢進行識別,得出相較于機器學習,CNN識別性能更優。查毅等使用CNN建立通用的優化模型,實現人體運動姿勢分析識別系統。ZHOU等提出一種基于毫米波的人體睡眠姿勢識別方法,并設計了一種帶有初始殘差模塊的輕量級多通道CNN,對多通道雷達回波特征進行學習和分類。不過上述研究對人體姿勢的識別僅采用單一的CNN識別算法。
本文提出一種融合CNN和支持向量機(Support Vector Machine,SVM)的方法對毫米波雷達數據生成的人體姿勢距離角度圖進行識別,以期當數據量很大時在識別分類中獲得更快的訓練和收斂速度。
為了降低人體姿勢距離角度圖的復雜多樣性對特征提取和訓練的影響,提高訓練的速度和可靠性,需要對數據進行主成分分析(Principal Component Analysis,PCA)處理。主成分分析是一種基于統計學的特征提取方法,該方法使用正交變換的方法將數據中線性相關的變量轉換成少數幾個線性無關的變量,即數據經過主成分分析后變成幾個彼此不相關的數據。具體的處理步驟如下所述。
(1)計算數據的每個維度均值。
(2)數據去均值處理。
(3)計算所有圖像的協方差矩陣Cov。
(4)構造并計算協方差矩陣Cov對應的特征值和特征向量。
(5)將計算得到的特征值按從大到小順序排列,特征值對應的特征向量也以同樣順序排列成變換矩陣。
(6)將變換矩陣與輸入圖像做矩陣乘法運算,得到經過主成分分析后的結果。
CNN是實現各種計算機視覺任務(如圖像識別和圖像分類)的最著名的深度學習模型之一。對比傳統的神經網絡,CNN具有權值共享的特點。權值共享是指在特征提取過程中,一個模型在多個權值的位置只需要使用相同的權值,也就是可以將CNN中輸入的每個位置都用上卷積核的元素,只要權值參數被計算出來就可以應用在整個網絡的圖片元素中,這是CNN不可或缺的優點。但CNN也有劣勢,比如當數據集的量較小時,往往會影響精度和過擬合,通常解決該問題的做法是擴充數據集或者使用遷移學習。
在結構上,標準的CNN一般由輸入層、卷積層、池化層、全連接層構成。輸入的圖像數據在卷積層與卷積核進行卷積,得到若干特征圖,接著經過池化層壓縮信息,保證留下的信息最能表達圖像的特征。將池化后所有的特征圖輸入全連接層,經過Softmax運算實現圖像分類。
SVM是一種常見的監督學習優化算法。它使用邊界(超平面)來描述數據,使其更容易查看、分類和區分數據類的不同實例。超平面的任一側分隔兩個數據類,因此SVM是一種二值分類算法,在面對多分類問題時,可以構造多個二值分類問題來解決。
使用SVM處理維數據時,若存在-1 維超平面使數據可分,則該數據稱為線性可分數據。在處理復雜的線性不可分問題時,通常需要選擇核函數。其原理是將維數據通過核函數映射到維空間,其中大于,直到新的維數據存在-1 維超平面線性可分數據。常見的核函數有線性核函數、多項式核函數和高斯核函數等。
SVM的優點也很明顯,該算法具有其模型復雜度不受訓練數據中遇到的特征數量影響,非常適合處理特征數量相對于訓練實例數量較大的學習任務。同時,該算法泛化能力強,較之其他機器學習算法更加穩健。
本文結合毫米波雷達的數據特征,提出基于CNN和SVM結合的網絡模型來實現對人體姿勢的識別,模型結構如圖1所示,它包括六個CNN網絡結構(兩個卷積層、一個歸一化層、一個最大池化層、數據拼接和一個全連接層)和一個SVM分類器。由于生成的人體姿勢距離角度圖有兩個方向,分別是水平角和俯仰角,所以需要對兩個不同平面的數據分別進行數據特征的提取。

圖1 CNN和SVM結合模型的網絡結構Fig.1 Network structure of the combined model of CNN and SVM
在本模型中,CNN起的主要作用是提取數據的特征,將提取出來的特征送入分類器中訓練。SVM比傳統CNN中Softmax分類器具有更加優越的分類性能,所以選用SVM代替Softmax來實現分類。
為了驗證所提出的CNN-SVM模型的性能,本文使用毫米波雷達實測的數據作為輸入的數據集。
整個實驗數據處理系統包括雷達板、數據采集裝置及筆記本。使用TI公司的IWR6843ISK-ODS毫米波雷達評估板和DCA1000EVM雷達數據采集板進行數據采集。該雷達傳感器的工作頻率為60 GHz,具有3.92 GHz的掃頻帶寬。使用三個L形配置的發射天線和四個矩形配置的接收天線,在方位角和俯仰角上都有120 度的雷達視野。實驗采用的PC配置為Windows 10 64位操作系統,Intel i5 4核CPU,16 GB內存,NVIDIA GeForce GTX 1650顯卡,環境Python 3.7。
選擇一間安靜的辦公室作為實驗場地,室內除了桌子和實驗設備外沒有其他物品。房間大小為3 米×5 米,雷達位于房間左側的中心,離地約為1 米。在房間的右側并排放置三張鐵制桌子,桌子尺寸約為1.2 米×0.6 米×1 米。實驗者身高約為1.75 米,距離雷達1.5 米,正對雷達擺出六種姿勢,分別為大字、弓步、馬步、坐、站和躺。
本部分討論從原始雷達信號生成雷達距離角度圖像的方法。完整的過程包括距離維快速傅里葉變換(Fast Fourier Transform,FFT)和最小方差無失真響應(Minimum Variance Distortionless Response,MVDR)角度估計算法,具體的流程如圖2所示。

圖2 毫米波雷達數據處理流程Fig.2 Data processing flow of millimeter-wave radar
調頻連續波(Frequency Modulated Continuous Wave,FMCW)毫米波雷達發射chirp信號,該信號由發射天線發射,并在遇到人體目標后反射回來。接收天線收到反射信號的調頻脈沖后,將其與本地發射信號進行混合、放大和濾波,最后進行采樣和數模轉換。采集到人體姿勢的原始數據后,對chirp信號時域采樣數據進行距離維快速傅里葉變換得到該chirp信號中的頻譜分布,即信號頻譜圖,通過頻率與距離的對應公式可以計算目標與雷達之間的徑向距離,發射信號如式(1)所示,接收信號如式(2)所示:

假設被測物體靜止,徑向距離不變,則中頻信號頻率不變為定值,因此可以通過對中頻信號進行頻譜分析得到距離信息,中頻信號如式(3)所示:

然后對距離維傅里葉變換后的雷達數據進行MVDR角度估計。MVDR算法是一種常見的數字波束成形算法,其原理是在空間中形成窄帶濾波器,使用具有特定形狀的光束選擇性地通過目標信號,同時在一定程度上抑制干擾信號。經過MVDR角度估計算法后的人體姿勢距離角度圖像如圖3所示,分別表示六種姿勢的距離角度圖。

圖3 六種人體姿勢的距離角度圖Fig.3 Range and angle images of six human postures
本研究設計了大字、弓步、馬步、坐、站和躺這六種姿勢,每個姿勢分為水平方向和俯仰方向的距離角度圖,每個方向各100 組數據,共計1,200 組數據。每組數據大小是64×120,其中我們可以將120看成是數據的維度,使用PCA在不顯著減少數據信息量的同時減小數據的維度,從而達到優化數據集的目的。在本研究中為了顯著降低數據維度,在[2,20]區間中尋找最佳數據維度。如圖4所示,橫坐標表示維度,縱坐標表示可解釋性方差,即數據信息量??梢钥闯鲈诰S度為10時,可解釋性方差已趨于平緩接近100%,即數據集的維度降至10 維時,已經包含了原始數據中大部分的信息。于是本文將數據的維度設置為10,同時遍歷所有的姿勢數據將數據的大小統一為64×10,最后把1,200 組64×10的數據輸入改進的深度學習模型中訓練。

圖4 在[2,20]維度中的數據信息量曲線Fig.4 Data information volume curve in [2,20] dimension
在深度學習模塊中,本文使用TensorFlow搭建1D-CNN網絡模型。首先需要對輸入的數據進行預處理,即分別將水平方向的數據和俯仰方向的數據拼接起來,對其進行特征工程,包含隨機采樣和標簽編碼等,接著劃分訓練集和測試集,其中80%的數據為訓練集,20%的數據為測試集,然后分別訓練水平方向的數據和俯仰方向的數據,將池化后兩個方向的數據特征拼接起來展開成一維數據進行全連接,最后輸出給分類器,具體參數如表1所示。

表1 CNN模型參數Tab.1 The CNN model parameters
另外,CNN模型中卷積層和全連接層的激活函數均為ReLU,使用categorical_crossentropy作為損失函數,批處理量為32,迭代次數為20。通過Adam算法進行優化,對每一個參數進行優化調整,使模型具有較強的泛化性。在全連接最后部分,將集成在全連接層上的Softmax分類器替換為SVM,其中SVM的參數如表2所示。

表2 SVM參數Tab.2 SVM parameters
根據第三節提出的模型使用自建的數據集進行了模擬,分別用準確率曲線和損失函數曲線來評價兩個模型。準確率(ACC)表示正確識別姿勢的數量與姿勢總數的比例,是衡量分類效果的重要指標。損失函數曲線是用來評價深度學習訓練好壞的指標,這里主要看測試集的損失函數,期望的目標是訓練集的損失函數與測試集的損失函數都收斂并且兩者之間相差較小,實驗具體結果如圖5所示。

圖5 單獨CNN模型和CNN-SVM模型的準確率和損失函數曲線Fig.5 Accuracy rate and loss function curves of single CNN model and CNN-SVM model
圖5(a)顯示單獨使用CNN模型的準確率曲線,其中帶有方形的線條表示訓練集的準確率曲線,帶有三角形的線條表示測試集的準確率曲線。從圖中不難看出訓練到第七輪時模型實現擬合,準確率為99%。圖5(b)顯示單獨使用CNN模型的損失函數曲線,同樣帶有方形的線條表示訓練集的損失函數曲線,帶有三角形的線條表示測試集的損失函數曲線。從圖中發現模型在第八輪時損失函數曲線趨于平穩接近于0。圖5(c)顯示CNN-SVM模型的準確率曲線,模型在第五輪時已經實現收斂,準確率為100%,模型的準確率比單獨使用CNN提高了1%,收斂速度也比單獨使用CNN快。圖5(d)顯示CNNSVM模型的損失函數曲線,模型在第五輪時已經趨于平穩接近于0,損失函數的收斂速度亦快于單獨使用CNN的模型。
本文提出了一種基于調頻連續波毫米波雷達距離角度圖的人體姿勢識別算法。通過主成分分析實現數據維度的降低,從而加快模型的收斂。我們設計的CNN-SVM模型,提高了識別準確率并進一步提高了收斂速度。實驗結果顯示,由于數據集較小,在準確率方面CNN-SVM與單獨使用CNN的差別不明顯,但依然提升1%,在測試集中實現了100%的測試精度。未來,我們將嘗試使用更豐富的姿勢數據,并通過提高數據集的大小來進一步評價本文的模型。