鄧澤夫
(上海理工大學(xué)機(jī)械工程學(xué)院,上海 200093)
人體姿勢作為人類傳遞信息的一種方式,廣泛應(yīng)用于生命體征檢測、生產(chǎn)安全和人機(jī)交互等多個領(lǐng)域。不同的人體姿勢可以表達(dá)人體當(dāng)前的狀態(tài)或者需求。目前普遍的姿勢識別是通過攝像機(jī)來完成的,然而出于個體的隱私考慮,許多人不愿意在家或工作中使用攝像頭,并且基于視覺的系統(tǒng)在夜間或是惡劣的天氣條件下,目標(biāo)識別能力會嚴(yán)重下降。與基于視覺的系統(tǒng)相比,毫米波雷達(dá)傳感器是一種不侵害隱私的非侵入式技術(shù),可以在惡劣的環(huán)境中依舊保持良好的性能。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在圖像數(shù)據(jù)的處理中較其他神經(jīng)網(wǎng)絡(luò)更有優(yōu)勢,因?yàn)樵摼W(wǎng)絡(luò)可以直接提取圖片的特征,簡化了前期對圖像的處理。周義凱等使用CNN對五種人體姿勢進(jìn)行識別,得出相較于機(jī)器學(xué)習(xí),CNN識別性能更優(yōu)。查毅等使用CNN建立通用的優(yōu)化模型,實(shí)現(xiàn)人體運(yùn)動姿勢分析識別系統(tǒng)。ZHOU等提出一種基于毫米波的人體睡眠姿勢識別方法,并設(shè)計了一種帶有初始?xì)埐钅K的輕量級多通道CNN,對多通道雷達(dá)回波特征進(jìn)行學(xué)習(xí)和分類。不過上述研究對人體姿勢的識別僅采用單一的CNN識別算法。
本文提出一種融合CNN和支持向量機(jī)(Support Vector Machine,SVM)的方法對毫米波雷達(dá)數(shù)據(jù)生成的人體姿勢距離角度圖進(jìn)行識別,以期當(dāng)數(shù)據(jù)量很大時在識別分類中獲得更快的訓(xùn)練和收斂速度。
為了降低人體姿勢距離角度圖的復(fù)雜多樣性對特征提取和訓(xùn)練的影響,提高訓(xùn)練的速度和可靠性,需要對數(shù)據(jù)進(jìn)行主成分分析(Principal Component Analysis,PCA)處理。主成分分析是一種基于統(tǒng)計學(xué)的特征提取方法,該方法使用正交變換的方法將數(shù)據(jù)中線性相關(guān)的變量轉(zhuǎn)換成少數(shù)幾個線性無關(guān)的變量,即數(shù)據(jù)經(jīng)過主成分分析后變成幾個彼此不相關(guān)的數(shù)據(jù)。具體的處理步驟如下所述。
(1)計算數(shù)據(jù)的每個維度均值。
(2)數(shù)據(jù)去均值處理。
(3)計算所有圖像的協(xié)方差矩陣Cov。
(4)構(gòu)造并計算協(xié)方差矩陣Cov對應(yīng)的特征值和特征向量。
(5)將計算得到的特征值按從大到小順序排列,特征值對應(yīng)的特征向量也以同樣順序排列成變換矩陣。
(6)將變換矩陣與輸入圖像做矩陣乘法運(yùn)算,得到經(jīng)過主成分分析后的結(jié)果。
CNN是實(shí)現(xiàn)各種計算機(jī)視覺任務(wù)(如圖像識別和圖像分類)的最著名的深度學(xué)習(xí)模型之一。對比傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),CNN具有權(quán)值共享的特點(diǎn)。權(quán)值共享是指在特征提取過程中,一個模型在多個權(quán)值的位置只需要使用相同的權(quán)值,也就是可以將CNN中輸入的每個位置都用上卷積核的元素,只要權(quán)值參數(shù)被計算出來就可以應(yīng)用在整個網(wǎng)絡(luò)的圖片元素中,這是CNN不可或缺的優(yōu)點(diǎn)。但CNN也有劣勢,比如當(dāng)數(shù)據(jù)集的量較小時,往往會影響精度和過擬合,通常解決該問題的做法是擴(kuò)充數(shù)據(jù)集或者使用遷移學(xué)習(xí)。
在結(jié)構(gòu)上,標(biāo)準(zhǔn)的CNN一般由輸入層、卷積層、池化層、全連接層構(gòu)成。輸入的圖像數(shù)據(jù)在卷積層與卷積核進(jìn)行卷積,得到若干特征圖,接著經(jīng)過池化層壓縮信息,保證留下的信息最能表達(dá)圖像的特征。將池化后所有的特征圖輸入全連接層,經(jīng)過Softmax運(yùn)算實(shí)現(xiàn)圖像分類。
SVM是一種常見的監(jiān)督學(xué)習(xí)優(yōu)化算法。它使用邊界(超平面)來描述數(shù)據(jù),使其更容易查看、分類和區(qū)分?jǐn)?shù)據(jù)類的不同實(shí)例。超平面的任一側(cè)分隔兩個數(shù)據(jù)類,因此SVM是一種二值分類算法,在面對多分類問題時,可以構(gòu)造多個二值分類問題來解決。
使用SVM處理維數(shù)據(jù)時,若存在-1 維超平面使數(shù)據(jù)可分,則該數(shù)據(jù)稱為線性可分?jǐn)?shù)據(jù)。在處理復(fù)雜的線性不可分問題時,通常需要選擇核函數(shù)。其原理是將維數(shù)據(jù)通過核函數(shù)映射到維空間,其中大于,直到新的維數(shù)據(jù)存在-1 維超平面線性可分?jǐn)?shù)據(jù)。常見的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)和高斯核函數(shù)等。
SVM的優(yōu)點(diǎn)也很明顯,該算法具有其模型復(fù)雜度不受訓(xùn)練數(shù)據(jù)中遇到的特征數(shù)量影響,非常適合處理特征數(shù)量相對于訓(xùn)練實(shí)例數(shù)量較大的學(xué)習(xí)任務(wù)。同時,該算法泛化能力強(qiáng),較之其他機(jī)器學(xué)習(xí)算法更加穩(wěn)健。
本文結(jié)合毫米波雷達(dá)的數(shù)據(jù)特征,提出基于CNN和SVM結(jié)合的網(wǎng)絡(luò)模型來實(shí)現(xiàn)對人體姿勢的識別,模型結(jié)構(gòu)如圖1所示,它包括六個CNN網(wǎng)絡(luò)結(jié)構(gòu)(兩個卷積層、一個歸一化層、一個最大池化層、數(shù)據(jù)拼接和一個全連接層)和一個SVM分類器。由于生成的人體姿勢距離角度圖有兩個方向,分別是水平角和俯仰角,所以需要對兩個不同平面的數(shù)據(jù)分別進(jìn)行數(shù)據(jù)特征的提取。
圖1 CNN和SVM結(jié)合模型的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of the combined model of CNN and SVM
在本模型中,CNN起的主要作用是提取數(shù)據(jù)的特征,將提取出來的特征送入分類器中訓(xùn)練。SVM比傳統(tǒng)CNN中Softmax分類器具有更加優(yōu)越的分類性能,所以選用SVM代替Softmax來實(shí)現(xiàn)分類。
為了驗(yàn)證所提出的CNN-SVM模型的性能,本文使用毫米波雷達(dá)實(shí)測的數(shù)據(jù)作為輸入的數(shù)據(jù)集。
整個實(shí)驗(yàn)數(shù)據(jù)處理系統(tǒng)包括雷達(dá)板、數(shù)據(jù)采集裝置及筆記本。使用TI公司的IWR6843ISK-ODS毫米波雷達(dá)評估板和DCA1000EVM雷達(dá)數(shù)據(jù)采集板進(jìn)行數(shù)據(jù)采集。該雷達(dá)傳感器的工作頻率為60 GHz,具有3.92 GHz的掃頻帶寬。使用三個L形配置的發(fā)射天線和四個矩形配置的接收天線,在方位角和俯仰角上都有120 度的雷達(dá)視野。實(shí)驗(yàn)采用的PC配置為Windows 10 64位操作系統(tǒng),Intel i5 4核CPU,16 GB內(nèi)存,NVIDIA GeForce GTX 1650顯卡,環(huán)境Python 3.7。
選擇一間安靜的辦公室作為實(shí)驗(yàn)場地,室內(nèi)除了桌子和實(shí)驗(yàn)設(shè)備外沒有其他物品。房間大小為3 米×5 米,雷達(dá)位于房間左側(cè)的中心,離地約為1 米。在房間的右側(cè)并排放置三張鐵制桌子,桌子尺寸約為1.2 米×0.6 米×1 米。實(shí)驗(yàn)者身高約為1.75 米,距離雷達(dá)1.5 米,正對雷達(dá)擺出六種姿勢,分別為大字、弓步、馬步、坐、站和躺。
本部分討論從原始雷達(dá)信號生成雷達(dá)距離角度圖像的方法。完整的過程包括距離維快速傅里葉變換(Fast Fourier Transform,FFT)和最小方差無失真響應(yīng)(Minimum Variance Distortionless Response,MVDR)角度估計算法,具體的流程如圖2所示。
圖2 毫米波雷達(dá)數(shù)據(jù)處理流程Fig.2 Data processing flow of millimeter-wave radar
調(diào)頻連續(xù)波(Frequency Modulated Continuous Wave,FMCW)毫米波雷達(dá)發(fā)射chirp信號,該信號由發(fā)射天線發(fā)射,并在遇到人體目標(biāo)后反射回來。接收天線收到反射信號的調(diào)頻脈沖后,將其與本地發(fā)射信號進(jìn)行混合、放大和濾波,最后進(jìn)行采樣和數(shù)模轉(zhuǎn)換。采集到人體姿勢的原始數(shù)據(jù)后,對chirp信號時域采樣數(shù)據(jù)進(jìn)行距離維快速傅里葉變換得到該chirp信號中的頻譜分布,即信號頻譜圖,通過頻率與距離的對應(yīng)公式可以計算目標(biāo)與雷達(dá)之間的徑向距離,發(fā)射信號如式(1)所示,接收信號如式(2)所示:
假設(shè)被測物體靜止,徑向距離不變,則中頻信號頻率不變?yōu)槎ㄖ担虼丝梢酝ㄟ^對中頻信號進(jìn)行頻譜分析得到距離信息,中頻信號如式(3)所示:
然后對距離維傅里葉變換后的雷達(dá)數(shù)據(jù)進(jìn)行MVDR角度估計。MVDR算法是一種常見的數(shù)字波束成形算法,其原理是在空間中形成窄帶濾波器,使用具有特定形狀的光束選擇性地通過目標(biāo)信號,同時在一定程度上抑制干擾信號。經(jīng)過MVDR角度估計算法后的人體姿勢距離角度圖像如圖3所示,分別表示六種姿勢的距離角度圖。
圖3 六種人體姿勢的距離角度圖Fig.3 Range and angle images of six human postures
本研究設(shè)計了大字、弓步、馬步、坐、站和躺這六種姿勢,每個姿勢分為水平方向和俯仰方向的距離角度圖,每個方向各100 組數(shù)據(jù),共計1,200 組數(shù)據(jù)。每組數(shù)據(jù)大小是64×120,其中我們可以將120看成是數(shù)據(jù)的維度,使用PCA在不顯著減少數(shù)據(jù)信息量的同時減小數(shù)據(jù)的維度,從而達(dá)到優(yōu)化數(shù)據(jù)集的目的。在本研究中為了顯著降低數(shù)據(jù)維度,在[2,20]區(qū)間中尋找最佳數(shù)據(jù)維度。如圖4所示,橫坐標(biāo)表示維度,縱坐標(biāo)表示可解釋性方差,即數(shù)據(jù)信息量??梢钥闯鲈诰S度為10時,可解釋性方差已趨于平緩接近100%,即數(shù)據(jù)集的維度降至10 維時,已經(jīng)包含了原始數(shù)據(jù)中大部分的信息。于是本文將數(shù)據(jù)的維度設(shè)置為10,同時遍歷所有的姿勢數(shù)據(jù)將數(shù)據(jù)的大小統(tǒng)一為64×10,最后把1,200 組64×10的數(shù)據(jù)輸入改進(jìn)的深度學(xué)習(xí)模型中訓(xùn)練。
圖4 在[2,20]維度中的數(shù)據(jù)信息量曲線Fig.4 Data information volume curve in [2,20] dimension
在深度學(xué)習(xí)模塊中,本文使用TensorFlow搭建1D-CNN網(wǎng)絡(luò)模型。首先需要對輸入的數(shù)據(jù)進(jìn)行預(yù)處理,即分別將水平方向的數(shù)據(jù)和俯仰方向的數(shù)據(jù)拼接起來,對其進(jìn)行特征工程,包含隨機(jī)采樣和標(biāo)簽編碼等,接著劃分訓(xùn)練集和測試集,其中80%的數(shù)據(jù)為訓(xùn)練集,20%的數(shù)據(jù)為測試集,然后分別訓(xùn)練水平方向的數(shù)據(jù)和俯仰方向的數(shù)據(jù),將池化后兩個方向的數(shù)據(jù)特征拼接起來展開成一維數(shù)據(jù)進(jìn)行全連接,最后輸出給分類器,具體參數(shù)如表1所示。
表1 CNN模型參數(shù)Tab.1 The CNN model parameters
另外,CNN模型中卷積層和全連接層的激活函數(shù)均為ReLU,使用categorical_crossentropy作為損失函數(shù),批處理量為32,迭代次數(shù)為20。通過Adam算法進(jìn)行優(yōu)化,對每一個參數(shù)進(jìn)行優(yōu)化調(diào)整,使模型具有較強(qiáng)的泛化性。在全連接最后部分,將集成在全連接層上的Softmax分類器替換為SVM,其中SVM的參數(shù)如表2所示。
表2 SVM參數(shù)Tab.2 SVM parameters
根據(jù)第三節(jié)提出的模型使用自建的數(shù)據(jù)集進(jìn)行了模擬,分別用準(zhǔn)確率曲線和損失函數(shù)曲線來評價兩個模型。準(zhǔn)確率(ACC)表示正確識別姿勢的數(shù)量與姿勢總數(shù)的比例,是衡量分類效果的重要指標(biāo)。損失函數(shù)曲線是用來評價深度學(xué)習(xí)訓(xùn)練好壞的指標(biāo),這里主要看測試集的損失函數(shù),期望的目標(biāo)是訓(xùn)練集的損失函數(shù)與測試集的損失函數(shù)都收斂并且兩者之間相差較小,實(shí)驗(yàn)具體結(jié)果如圖5所示。
圖5 單獨(dú)CNN模型和CNN-SVM模型的準(zhǔn)確率和損失函數(shù)曲線Fig.5 Accuracy rate and loss function curves of single CNN model and CNN-SVM model
圖5(a)顯示單獨(dú)使用CNN模型的準(zhǔn)確率曲線,其中帶有方形的線條表示訓(xùn)練集的準(zhǔn)確率曲線,帶有三角形的線條表示測試集的準(zhǔn)確率曲線。從圖中不難看出訓(xùn)練到第七輪時模型實(shí)現(xiàn)擬合,準(zhǔn)確率為99%。圖5(b)顯示單獨(dú)使用CNN模型的損失函數(shù)曲線,同樣帶有方形的線條表示訓(xùn)練集的損失函數(shù)曲線,帶有三角形的線條表示測試集的損失函數(shù)曲線。從圖中發(fā)現(xiàn)模型在第八輪時損失函數(shù)曲線趨于平穩(wěn)接近于0。圖5(c)顯示CNN-SVM模型的準(zhǔn)確率曲線,模型在第五輪時已經(jīng)實(shí)現(xiàn)收斂,準(zhǔn)確率為100%,模型的準(zhǔn)確率比單獨(dú)使用CNN提高了1%,收斂速度也比單獨(dú)使用CNN快。圖5(d)顯示CNNSVM模型的損失函數(shù)曲線,模型在第五輪時已經(jīng)趨于平穩(wěn)接近于0,損失函數(shù)的收斂速度亦快于單獨(dú)使用CNN的模型。
本文提出了一種基于調(diào)頻連續(xù)波毫米波雷達(dá)距離角度圖的人體姿勢識別算法。通過主成分分析實(shí)現(xiàn)數(shù)據(jù)維度的降低,從而加快模型的收斂。我們設(shè)計的CNN-SVM模型,提高了識別準(zhǔn)確率并進(jìn)一步提高了收斂速度。實(shí)驗(yàn)結(jié)果顯示,由于數(shù)據(jù)集較小,在準(zhǔn)確率方面CNN-SVM與單獨(dú)使用CNN的差別不明顯,但依然提升1%,在測試集中實(shí)現(xiàn)了100%的測試精度。未來,我們將嘗試使用更豐富的姿勢數(shù)據(jù),并通過提高數(shù)據(jù)集的大小來進(jìn)一步評價本文的模型。