崔 浩,萬亞平,鐘 華,聶明星,肖 楊
(南華大學計算機學院,湖南 衡陽 421001)
人體活動識別HAR(Human Activity Recognition)在諸如醫療保健[1]、智能家居[2]和人員識別[3]等許多應用中都有重要作用。相對于可穿戴式傳感器與攝像頭,無線傳感設備以其安裝于環境中而不需隨時佩戴,不采集用戶敏感信息而受到了更廣泛的關注。近年,基于WiFi[4]、FMCW(Frequency Modulated Continuous Wave)雷達[5]、RFID(Radio Frequency IDentification)[6]、多種設備混合檢測[7]、與深度學習結合檢測[8-10]的實驗均取得了很多突破。
如表1所示,WiFi信號高頻信號穿透力較差,僅能保證有限的有效傳感范圍。FMCW雷達因其分辨率與數據的稀疏性[18]在細粒度人體活動識別任務中表現較差。RFID常被用于分析人員流動和用戶跟蹤[19],但用于人體活動識別任務時就會對RFID標簽的攜帶與RFID閱讀器的放置有較苛刻的要求[19]。前述工作沒能很好地解決有效傳感距離短的問題。LoRa(Long Range radio)[6]是低功耗廣域網絡的一種通信技術,在過去的幾年中已經在許多亞歐國家廣泛部署。此前工作大多只利用其傳遞其他傳感器采集的數據[21]。近年來,針對LoRa設備的傳感范圍[22]、抗干擾性[23]、感知人體活動的能力[24]進行研究,并將其用于解決多目標呼吸檢測問題[25],展現了LoRa設備在長距離傳感領域的巨大潛力。所以,本文引入LoRa設備,測試其在多個房間內的人體活動識別能力。本文提出一種LoRa數據的特征提取方法,通過分析LoRa信號變化提取特征,以便使用深度學習方法來完成人體活動識別任務。該方法從LoRa數據中提取反映人體活動的頻率變化特征并以圖像形式保存,然后使用深度神經網絡學習不同活動信號間的特征差異。為了檢驗本文所提方法的性能,采集LoRa數據,創建2個數據集并復現了數個當前先進的圖像分類深度學習網絡。本文的數據集獲取途徑已公開在Github并可在https://github.com/CocoNazZ/LoRa-Dataset下載。

Table 1 Comparison of conventional wireless sensor devices表1 常規無線傳感設備對比

Figure 1 Workflow of LoRa data processing圖1 LoRa數據處理流程
本節首先介紹提出的LoRa數據處理方法,然后分析LoRa數據與所提方法的流程細節。
如圖1所示,原始LoRa數據是包括I/Q雙通道的復數組,轉化到實數域可得到一個非常長的時域信號序列。本文方法首先對原始LoRa數據進行短時傅里葉變換STFT(Short-Time Fourier Transform),得到一個反映時間-頻率變化規律的二維矩陣;然后去除其中與人體活動無關的數據與靜態環境分量;最后重新排列該矩陣,得到大小合適的矩陣作為圖像分類網絡的輸入。
LoRa采用啁啾擴頻CSS(Chirp Spread Spectrum)調制技術[26],將數據變換為頻率隨時間變化的啁啾發送。假設生成一個啁啾信號s(t)=ejπkt2(j為虛數單位,k為任意正整數),經過N條不同的路徑傳播到達接收端,則由Zhang等人[24]的工作可知,接收端接收到的信號如式(1)所示:
(1)
其中,an(t)表示第n條路徑的衰減因子;τn(t)表示信號在第n條路徑上的傳播延遲;θc=2πΔft,Δf=fc-f′c是由發射器和接收器時鐘不同步引起的載波頻率偏移CFO(Carrier Frequency Offset)[24];θs是由采樣頻率偏移SFO(Sampling Frequency Offset)引起的相位誤差。θc和θs會顯著影響相位變化。

Figure 2 Change of two antenna signals and their ratios in frequency domain圖2 2根天線信號及其比值在頻域的變化
CFO與SFO產生的主要原因是收發器之間振蕩器的頻率誤差以及多普勒頻移,其中振蕩器頻率誤差主要受到所處環境及振蕩器溫度變化的容差等影響[28]。如何計算并消除CFO與SFO的誤差是存在已久的研究問題。在本文的研究中,θc=2πΔft=2π(fc-f′c)t。假設f′c=fc+Δt·k,Δt為f′c和fc之間的時間差,則θc在接收端對信號頻率引起的影響如式(2)所示:
(2)
在500 kHz的帶寬下(Band Width,公式中用變量B表示),LoRa設備具有±ΔfB=500=60 kHz的頻率偏移[29]。在125 kHz的帶寬下,LoRa設備的頻率偏移會更小。所以,2個設備間頻率相差的時間Δt<ΔfB=500/(B/T)≈0.48T,其中T為LoRa信號啁啾的一個變化周期。實際上這種偏移對LoRa設備傳遞數據本就影響甚微[30],也可以通過查詢來自每個LoRa有效載荷前面的前置和SFD(Start Frame Delimiter)位的信息來糾正[30],但本文僅通過不同時間多次采集多組數據來減弱其對數據的影響。
而多普勒頻移則指發射端、接收端與傳播介質之間存在相對運動時,接收端接收的信號頻率不再是發射端發射的頻率的現象。這對于建立傳統處理模型的方法來說是一個很大的誤差,但其受到相對運動的影響也表明多普勒頻移的變化規律可以被機器學習方法捕捉來反向分析發射、接收端之間發生的相對運動。已有多項研究工作通過機器學習方法分析多普勒頻移,來識別傳播介質之間存在的相對運動信息[31-33]。
LoRa信號傳播過程中的主要誤差CFO、SFO會影響對相位的分析,但它們對頻率的影響是相對可以容忍(CFO)并利用(SFO)的。所以,本文以受誤差影響小的頻率變化規律作為識別不同活動的特征。區別于WiFi信號的分析CSI矩陣的方法[27],文獻[24]提出的消除CFO、SFO誤差的信號比方法提高了檢測相位變化的準確度,如圖2c所示(圖2為本文在相同時刻2根天線各自信號及其比值的時頻圖,其中,橫坐標表示時間,單位為s,與實際時間一致;縱坐標表示頻率,單位為Hz,為方便觀察僅截取了變化明顯且位于相同頻段的部分,縱坐標值不等于實際頻率值),該方法也完全消除了信號的頻域變化規律。為此,本文對LoRa信號頻率變化進行了進一步研究。
2.3.1 提取數據位啁啾
圖3所示為通過短時傅里葉變換后的數個LoRa數據片段。由圖3可知,在一個變化周期內,LoRa信號頻率首先是一個頻率隨時間從最小頻率向最大頻率增加的長上行啁啾;然后是頻率隨時間從最大頻率向最小頻率減小的幀定界符SFD;最后就是數據位的啁啾。通過對比不同活動的數據變化可以發現,上啁啾和SFD部分的頻率不受活動種類變化影響,但數據位啁啾頻率的變化受活動種類影響十分明顯,那么去除上啁啾和SFD后的數據位頻率變化就可以作為識別不同種類活動的特征。

Figure 3 Comparison of LoRa signal fragments of multiple groups of activities圖3 多組活動的LoRa信號片段對比
2.3.2 用信號差去除靜態分量

Figure 4 Spread paths of LoRa signal in the room圖4 LoRa信號在房屋內的傳播路徑

Figure 5 Change of two antenna signals and their differences in frequency domain圖5 2根天線的信號及其差在頻域的變化
Zhang等人[24]的工作顯示,信號的傳播路徑受人體活動影響也會有一定變化。如圖4所示,如果將LoRa信號依據在整個傳感空間的傳播路徑是否會受人體活動影響分為恒不受人體活動影響(Sv1)和會受人體活動影響(Dv1)2類,那么,在有人活動時(如圖4a所示)接收端的信號可以表示如式(3)所示:
Rx1(t)=Sv1+Dv1
(3)
相對地,在無人活動時(如圖4b所示)接收端的信號則可以表示如式(4)所示:
Rx2(t)=Sv1+Sv2
(4)
其中,Sv1不變,Sv2表示有人活動時會受到影響但此時只受環境影響的那部分信號。
對比式(3)和式(4)可知,在任何活動的傳播路徑中總會存在不受人體活動影響的靜態分量Sv1,這對于分布范圍更小的動態分量Dv1而言是一個很大的誤差項。但是,這2組信號的Sv1項是近似一致的,如果對這2組數據進行減法運算,即可得到式(5):
R′x=Dv1-Sv2
(5)
此時雖然仍有Sv2部分的誤差,但去掉了Sv1部分,靜態分量對Dv1的影響大幅下降。同時,如圖5所示(圖5為本文在相同時刻2根天線各自信號及其差值的時頻圖,其中,橫坐標表示時間,單位為s,與實際時間一致;縱坐標表示頻率,單位為Hz,為方便觀察僅截取了變化明顯且位于相同頻段的部分,縱坐標值不等于實際頻率值),由于短時傅里葉變換的性質,對信號值的加減可以變換成為對信號瞬時頻率的加減。這樣通過簡單的減法運算就能更準確地突出不同活動對LoRa信號頻率變化的影響。同時同一活動數據經過與不同無人活動的數據做差也可以成為一種鍛煉數據對環境、CFO等誤差的魯棒性的數據增強策略。

Figure 6 Time frequency charts obtained using two downsampling methods圖6 使用2種下采樣方法得到的時頻圖
2.3.3 按時間排列每幀
時間間隔為5 s的LoRa數據經過短時傅里葉變換可以得到大小約為25*39064的數組。受時間、設備和開始采集時刻等外部因素影響,每次采集實際得到的幀數、每幀實際長度都會有一定變化。為突出活動數據,經過裁剪后剩余數據每幀大小約為25*224,共有約173幀。在去除上行啁啾和SFD后得到的剩余數據中,每幀大小約為25*142,按每幀分隔開約25*(142*173),其長寬不均衡、幀數過多并不適合直接進行訓練。針對此類問題,研究人員常對數據進行下采樣后再進行后續識別操作,如使用卷積神經網絡提取每幀特征完成下采樣,再將每幀采樣結果輸入到循環神經網絡中[33]完成識別的方法。本文首先嘗試了擴大STFT窗口與隨機下采樣的下采樣方法,如圖6所示(同圖2和圖5一樣,縱坐標值不等于實際頻率值),此時頻率變化特征已經被稀釋,而且,過多幀數也對循環神經網絡的訓練有較大壓力。對此本文提出了新的處理思路。
LoRa設備的采樣率能達到900 kHz,如果將代表整個活動的頻率變化矩陣按幀分割開,此時幀數過多難以處理。由于該序列實際上是以長寬不均衡的二維矩陣的形式保存的,二維矩陣又是圖像的常見保存形式,如果能重新排列每幀使矩陣更均衡就可以將幀序列作為頻率變化圖保存起來,使數據更容易被處理。本文仿照Vision Transformer網絡將圖像分為多個塊并按順序排列來將圖像轉換為序列的思路,逆向將每幀數據分為多個塊并按順序拼接成一幅大小更均勻的圖像。如圖7所示,本文將幀序列中每數個連續幀拼接得到長度一致的數個二維矩陣當做塊,然后將這些矩陣在豎直方向再次拼接起來,最終得到長寬相近(等)的一個二維矩陣并保存為圖像格式。這樣在按時間順序保留頻率變化特征的同時把幀序列轉化成了幀圖,此時圖像大小適宜,可以直接輸入圖像分類神經網絡中訓練,將序列分析問題轉換成了圖像分類問題。對于幀序列的處理會有更科學高效的方法,這需要后續進一步研究。

Figure 7 Convering long matrix to square matrix圖7 將長矩陣轉換為正方形矩陣
為了驗證本文方法的有效性,選取近年來圖像分類任務中效果突出、有代表性的Vision Transformer網絡、Swin Transformer網絡和ConvNext網絡進行對比實驗。具體版本信息為:基于PyTorch框架復現的Vision Transformer網絡的base版本(vit_base_patch16_224_in21k)、Swin Transformer網絡的tiny版本(swin_tiny_patch4_window7_224)和ConvNext網絡的Base版本。
本節首先介紹實驗設備信息與實驗場景,然后介紹本文提出的2個數據集的具體采集過程,最后通過分類實驗結果來驗證本文方法的有效性和LoRa信號用于傳感的潛力。
如圖8所示,LoRa實驗樣機由1個LoRa發射端和1個LoRa接收端構成。其中,LoRa發射端由一個搭載Semtech SX1276[34]LoRa節點的Arduino Uno[35]開發板組成,并配備了一根定向天線用于發送信號;接收端由2根分別接收數據的天線組成,這2根天線的距離非常近,來自這2根天線的數據可以近似認為代表一致的結果。
上述LoRa發射端在915 MHz頻段以125 kHz的信道帶寬發送信號,通過USRP B210[36]和GNU Radio[37]配置LoRa網關作為接收端接收LoRa信號并由GNU Radio直接保存在設備中。在GNU Radio中,采樣率設定為900 kHz,Gain type屬性設置為Normalized,逐漸調整增益值Gain Value以選出合適的增益,同時接收器通過USB連接到配備AMD R4800H CPU和16 GB內存的華碩天選FA506IU筆記本電腦并用其收集、處理數據。

Figure 8 Devices and experiment scene layout圖8 設備及場景布置
3.2.1 收集1個房間內細粒度活動數據
本節以圖9所示的空曠房間作為實驗場地,調整增益Gain Value值為0.3,并以900 kHz的采樣率每5 s數據記為一組活動。
實驗一共邀請了8名實驗者(以姓名首字母B、C、D、F、L、R、W、X作為代號)分別進行慢跑、步行、撿東西、下蹲、起立與站立的活動,與無人活動(代號為E)的空活動一起共7類活動。由相同2名采集人員始終在接收端檢查接收的數據,并標注數據,保證受試者的活動符合預期。如此保證每名受試者每種活動均重復采集數十次。每次采集前也會先額外采集人員C與人員X站立的數據以測試設備,最終采集結果如表2所示,其中,Tol表示該行/列的總采集組數,Perc表示該行/列采集組數占全部組數的比重。

Figure 9 Activity recognition experimental site in one room圖9 1個房間內活動識別的實驗場地
3.2.2 收集多個房間內活動的數據
本節以圖10所示的4間相鄰房間作為實驗場景,調整增益值Gain Value為0.83,并以900 kHz的采樣率邀請5名實驗者分別在4個房間內隨意走動,不限速度、位置和方向,每走動5 s記為一組運動。實驗一共邀請了5名實驗者(以姓名首字母C、S、W、X、Y作為代號)在4個房間分別走動,與4個房間均無人活動的空活動共組成5類活動。由相同2名采集人員始終在接收端檢查接收的數據,并標注數據。如此保證每名受試者每種活動均重復采集數十次,最終采集結果如表3所示。
本節測試使用本文方法在創建的數據集上進行活動識別的結果,包括在1個房間內的活動識別、在1個房間內對各種活動的人員識別、在4個房間內的活動所在房屋識別以及在4個房間內的人員識別。

Table 2 Collection of activity data in one room 表2 1間房屋內活動數據采集情況

Figure 10 Experimental sites for identification of active room in four rooms圖10 4個房間內活動發生房間識別的實驗場地

Table 3 Collection of activity data in four rooms
3.3.1 1個房間內活動識別
本節對原始數據以及與經過做差之后的數據分別進行訓練,效果如圖11a所示。可以看到,ConvNext與Swin Transformer的準確率都達到了89%,Vision Transformer則只有86%。這說明LoRa信號頻率受人體活動影響產生的變化可以作為對人體活動分類的一種依據。
在與空活動做差的數據上的分類結果如圖11b所示。可以看到,3種網絡的分類效果都有一定提升,ConvNext用更少的批次Epoch分類準確率就提升了5%(達到94%),Swin Transformer則提升了3%(達到92%),Vision Transformer則提升了3%(達到89%)。這說明通過信號差方法去除部分靜態分量可以提高通過分析時頻圖完成人體活動識別的準確率。原始數據集的LoRa信號頻率變化中不受人活動影響的靜態分量的確會影響對活動的識別效果。

Figure 11 Recognition results of activities圖11 對活動的識別效果
此外,為探究LoRa設備識別人體活動的泛化能力,本節將數據集中由人員C完成活動的數據刪除,以其他7人的活動組成新的數據集進行訓練,然后由人員C的活動數據作為驗證集檢測分類的泛化能力,結果如圖12和圖13所示。

Figure 12 Recognition results after removing data of tester C圖12 去除人員C數據后的識別效果

Figure 13 Confusion matrix obtained by inputting data of tester C data into ConvNext network, reflecting the ability to identify types of activities圖13 人員C數據輸入ConvNext網絡 得到的反映識別活動種類能力的混淆矩陣

Figure 14 Identification recognition results of each activity圖14 每種活動的人員識別效果
由圖12和圖13可以發現,3種網絡均能識別人員C的活動,而且對跑步、步行、站立和起立的活動識別效果明顯,但是在下蹲和撿東西這2種活動中都出現了相當多的項被誤判為起立。這可能是由于跑步、步行和站立這3種動作與其他動作的姿態變化相差巨大,分辨這些動作比較容易,但完整的撿東西動作需要依次彎腰→撿東西→起立,其中彎腰與起立的姿態與下蹲、起立的姿態相似。撿東西活動的姿態變化過程近似包含下蹲和起立的姿態變化。由于不同人做這些活動的不同特點會對分類有所影響,所以對于這種細粒度多姿態的復雜活動通過現有方法暫時難以準確分辨,需要在未來對LoRa信號進行更進一步的分析研究。
3.3.2 1個房間內的人員識別
在完成對活動的識別后,本節改變數據的分類方式,將每種活動的數據按照實驗人員進一步分組,并使用3種網絡測試此時在各種活動數據中對人員的分類效果,結果如圖14所示。從圖14中發現,3個網絡在各種活動中對實驗人員的分類效果都較好。盡管此時數據集過小導致曲線波動較大,但大體上升到了較高的識別準確率,這依然表明了LoRa信號的頻率變化在人員識別工作方面的潛力。
3.3.3 活動所在房屋識別
與在1間房屋內的活動識別的驗證流程一致,本節首先對比在原始數據以及在與空活動做差后的數據上的分類效果。
如圖15a所示,3種網絡均體現了LoRa信號分辨活動發生房間的能力。在原始數據集上,ConvNext達到了81%的識別準確率,Swin Transformer達到了75%的識別準確率,Vision Transformer則達到了78%的識別準確率。在與空活動數據做差后ConvNext的識別準確率迅速提升了16%(達到了97%),Swin Transformer的識別準確率提升了18%(達到了93%),Vision Transformer的識別準確率則提升了5%(達到83%)。這說明LoRa信號在長40 m、有3堵厚約30 cm的墻相隔的4間房屋構成的實驗環境中仍保持了對活動所發生房間的分辨能力,同時3種網絡的識別準確率的提升也驗證了本文方法的可行性。

Figure 15 Recognition results of rooms with tester activities圖15 對有測試人員活動的房間的識別效果
然后去除人員C的數據,采取剩余4人的數據重新訓練并用人員C的數據進行驗證,其結果與混淆矩陣分別如圖16和圖17所示。由圖16可以發現3種網絡仍然保持了較高的準確率。由圖17的混淆矩陣可以發現,此時對人員C所處的第1,2和4個房間的識別都表現良好,在第3個房間的識別雖有一定誤差但正確識別數也占據了較大的比重,且當人員C處于第3個房間時對相鄰第2和第4個房間的誤判占據了較大的誤差比。這說明活動發生的房間的確在一定程度上影響了信號變化。而由識別準確率(4>1>2>3)的結果可知,LoRa信號在穿墻傳感時,對靠近信號收發器尤其是信號接收器的活動分辨效果更明顯。

Figure 16 Recognition results after removing data of tester C圖16 去除人員C數據后的識別效果

Figure 17 Confusion matrix obtained by inputting data of tester C data into ConvNext network, reflecting the ability to identify the rooms with activities圖17 人員C數據輸入ConvNext網絡 得到反映識別發生活動的房屋能力的混淆矩陣
3.3.4 4個房間內的人員識別
在完成對活動的識別后,本文改變數據的分類格式,在每個房間中依據實驗者進一步分組,并重新使用3種網絡測試在每個房間內對實驗者的分類效果。如圖18所示,3種網絡對4個房間內活動人員的分類效果依舊比較明顯。這表明了LoRa信號的頻率變化在多個房間內人員識別工作方面的潛能,同時也反映出了活動越靠近發射器,人員識別效果相對越好,越靠近接收器,人員識別效果相對越差的規律。

Figure 18 Identification recognition results in each room圖18 每個房屋內的人員識別效果
3.3.5 與卷積循環神經網絡的對比
對于多幀無線信號數據,目前常用的方法是先使用卷積神經網絡從各幀數據中提取特征,再把這些特征按時間順序輸入循環神經網絡學習[8,9]。為此,本文實現了由RESNET34網絡和LSTM網絡構成的卷積循環網絡RESNET34-LSTM,并用采集的數據進行訓練。
如圖19所示,該模型對活動識別和所在房屋識別的準確率能達到92%和94%,這表明了數據的正確性。但是,該方法在訓練過程中也出現了一些問題。首先,以900 kHz采樣率得到的LoRa數據原始幀數與文獻[8,9]中的輸入幀數相差很大,這對RESNET34-LSTM網絡訓練與硬件設備而言壓力過大。其次,RESNET34-LSTM網絡的訓練用時也數倍于ConvNext、Swin Transformer和Vision Transformer網絡的。與卷積循環網絡相比,本文方法相對不受幀數的數量制約,可接受大量數據同時輸入。同時,將數據幀按時間排列,既保留了時間規律又不需嚴格按時間序列訓練,節約了大量訓練時間。

Figure 19 Recognition results of RESNET34-LSTM network圖19 RESNET34-LSTM網絡的識別效果
針對長距離無線人體活動識別問題,本文基于LoRa設備提出了一個數據處理方法。首先通過提取數據位頻率變化并與空活動信號做差來提取LoRa信號特征,再重新排列每幀形成具有時間、信號變化特征的圖像。由該方法處理得到的圖像數據可直接作為圖像分類神經網絡的輸入。然后本文設計實驗收集LoRa信號制作數據集并通過對比有代表性的圖像分類深度學習網絡驗證該方法的有效性與可行性,并與已有的直接經過卷積-循環網絡的方法進行了對比。
實驗結果表明,LoRa設備的傳感能力在一個房間內能對活動種類與活動人員進行一定的識別,也能對在多個房間內活動所處房間與每個房間內活動人員進行一定的識別。本文提出的方法相比已有方法識別速度更快、識別準確率更高。后續將圍繞降低環境敏感度,設計對LoRa信號更有針對性的神經網絡模型展開研究。相信LoRa優秀的傳感范圍及效果最終可以使其在日常生活中更高效地完成長距離傳感任務。