王 逸,裴生雷,2*,王 煜
(1.青海民族大學(xué) 物理與電子信息工程學(xué)院,西寧 810007;2.人工智能應(yīng)用技術(shù)國(guó)家民委重點(diǎn)實(shí)驗(yàn)室(青海民族大學(xué)),西寧 810007;3.天津大學(xué) 智能與計(jì)算學(xué)部,天津 300350)
隨著新一輪智慧城市的興起,公眾Wi-Fi 作為一項(xiàng)惠民工程,幾乎普及到了我們周圍的各個(gè)角落。尤其是在旅游景點(diǎn)中,絕大部分都已經(jīng)實(shí)現(xiàn)了Wi-Fi 全覆蓋,當(dāng)游客的智能設(shè)備連接到景點(diǎn)的Wi-Fi 后,就能充分體驗(yàn)景點(diǎn)的各種個(gè)性化服務(wù),如地圖導(dǎo)覽、景點(diǎn)介紹、實(shí)時(shí)講解等。在游客享受更好服務(wù)的同時(shí),景點(diǎn)也可以通過(guò)Wi-Fi 收集數(shù)據(jù),包括每天服務(wù)人數(shù)、游客景點(diǎn)內(nèi)軌跡分析、游覽時(shí)間喜好、享用服務(wù)頻次、游覽時(shí)長(zhǎng)等。通過(guò)分析這些數(shù)據(jù),可以大幅提高景點(diǎn)的服務(wù)質(zhì)量和應(yīng)急響應(yīng)能力。與蜂窩信號(hào)相比,Wi-Fi 信號(hào)傳輸速率更快、成本更低,并且使用頻段在全球范圍內(nèi)都不受限制[1],所以景點(diǎn)全覆蓋的Wi-Fi 網(wǎng)絡(luò)將會(huì)受到更多游客的青睞。景點(diǎn)若想使用Wi-Fi 數(shù)據(jù)獲取游客的游覽軌跡、游覽時(shí)長(zhǎng)、游覽喜好等數(shù)據(jù),就要使用Wi-Fi 定位技術(shù)獲取游客的位置。雖然室外定位技術(shù)非常成熟,如北斗定位系統(tǒng)[2]和蜂窩定位系統(tǒng)[3],都能實(shí)現(xiàn)非常精準(zhǔn)的定位。但是,國(guó)內(nèi)有許多重要的景點(diǎn)并不在室外,如故宮、兵馬俑、黃鶴樓等,還有全國(guó)各地的生態(tài)、文化景點(diǎn),游客更加需要旅游導(dǎo)覽、實(shí)時(shí)講解等服務(wù),所以更需要室內(nèi)定位來(lái)確定游客的位置,為游客提供更好的服務(wù)。但室內(nèi)定位技術(shù)發(fā)展并不迅速。與外部環(huán)境不同,室內(nèi)環(huán)境因有許多障礙物,導(dǎo)致北斗衛(wèi)星信號(hào)的強(qiáng)度在室內(nèi)也會(huì)大幅下降;而且為了保護(hù)歷史古跡,許多古跡景點(diǎn)的蜂窩信號(hào)強(qiáng)度并不理想,尤其是在絕大部分Wi-Fi 覆蓋的景點(diǎn),Wi-Fi 信號(hào)強(qiáng)度要遠(yuǎn)強(qiáng)于蜂窩信號(hào),所以在這些景點(diǎn)使用Wi-Fi 定位將會(huì)更加精準(zhǔn)。
傳統(tǒng)的Wi-Fi 室內(nèi)定位使用接收信號(hào)強(qiáng)度(Received Signal Strength Indication,RSSI)數(shù)據(jù),相較于傳統(tǒng)的RSSI 室內(nèi)定位[4-7],信道狀態(tài)信息(Channel State Information,CSI)數(shù)據(jù)不僅在時(shí)間上具有穩(wěn)定性,并且不同位置CSI 數(shù)據(jù)的特性變化明顯,因而受到了廣大學(xué)者的關(guān)注[8-10]。Wang 等[11]提出了RSSI 與CSI 相結(jié)合生成的混合指紋庫(kù)的定位方法。孟俊劍等[12]用序列最小優(yōu)化(Sequential Minimal Optimization,SMO)算法建立降維特征與相應(yīng)位置的回歸模型,并對(duì)位置進(jìn)行預(yù)測(cè)。Dai 等[13]提出了基于K 近鄰(K-Nearest Neighbor,KNN)算法的CSI 室內(nèi)定位,但是每次定位都需要在線和指紋庫(kù)的所有數(shù)據(jù)進(jìn)行逐個(gè)對(duì)比匹配,定位效率不高。田廣東等[14]利用了CSI 成簇分布的特性,使用了K 均值(K-means)聚類算法對(duì)CSI 數(shù)據(jù)進(jìn)行特征提取,然后使用KNN 算法定位。黨小超等[15]提出了CSI 的支持向量機(jī)(Support Vector Machine,SVM)回歸的室內(nèi)定位方法。這些基于CSI 的室內(nèi)定位方法都分為離線階段和在線階段,其中離線階段建立指紋庫(kù)[16],在線階段進(jìn)行指紋匹配,最終實(shí)現(xiàn)定位。Rao 等[17]提出了DFPhaseFL 系統(tǒng),首先從信道狀態(tài)信息測(cè)量中提取原始相位信息,然后去除相位偏移,得到濾波后的校準(zhǔn)相位信息,最后進(jìn)行定位。然而,上述方法在兩個(gè)階段中采取的策略各有優(yōu)缺點(diǎn),尤其是離線階段都使用單指紋庫(kù)導(dǎo)致模型訓(xùn)練復(fù)雜度提高;而在線階段,預(yù)測(cè)點(diǎn)數(shù)據(jù)需要與指紋庫(kù)中所有數(shù)據(jù)進(jìn)行匹配,定位效率不高。
Wi-Fi 室內(nèi)定位應(yīng)用場(chǎng)景多樣,但是對(duì)于旅游景點(diǎn)等復(fù)雜場(chǎng)景下的應(yīng)用,會(huì)受到時(shí)間段等因素的影響,導(dǎo)致人流量在不同時(shí)間、不同區(qū)域驟增或驟減。面對(duì)這些情況,傳統(tǒng)的室內(nèi)定位方法因受單指紋庫(kù)的影響,無(wú)法充分利用系統(tǒng)資源。尤其是在線定位階段,使用傳統(tǒng)定位方法定位時(shí)需要與每個(gè)指紋點(diǎn)進(jìn)行匹配,即使是閑置指紋點(diǎn)也要進(jìn)行多次匹配,導(dǎo)致指紋庫(kù)運(yùn)行緩慢、延遲較高、體驗(yàn)較差。
本文將K 均值聚類算法與支持向量回歸(Support Vector Regression,SVR)算法相結(jié)合,提出了一種多指紋庫(kù)定位方法。根據(jù)不同位置CSI 信號(hào)的簇分布特點(diǎn),將定位指紋點(diǎn)存入多個(gè)指紋庫(kù),進(jìn)而在多指紋庫(kù)中分別建立模型,實(shí)現(xiàn)位置預(yù)測(cè)。該方法不僅能提高定位精度,而且能有效提高定位效率,每次定位都無(wú)須與所有指紋庫(kù)中的數(shù)據(jù)進(jìn)行匹配,可以把閑置的指紋庫(kù)所使用的系統(tǒng)資源分配給繁忙指紋庫(kù),避免了系統(tǒng)資源的浪費(fèi)。
在Wi-Fi 室內(nèi)定位場(chǎng)景中,通過(guò)收集CSI 信息和對(duì)象位置坐標(biāo)實(shí)現(xiàn)指紋定位系統(tǒng),進(jìn)而為用戶提供位置服務(wù),滿足用戶在特殊場(chǎng)景下的位置需求。
根據(jù)指紋定位系統(tǒng)在不同場(chǎng)景的應(yīng)用需求,本文提出的多指紋庫(kù)定位方法具體流程如圖1 所示。首先,基于CSI 成簇分布的特點(diǎn),利用K-means 算法對(duì)訓(xùn)練樣本進(jìn)行聚類以獲取k個(gè)簇的CSI 數(shù)據(jù),進(jìn)而基于k個(gè)簇分別建立指紋庫(kù);然后在k個(gè)指紋庫(kù)中分別訓(xùn)練SVR 模型;最后,由SVR 進(jìn)行位置精準(zhǔn)預(yù)測(cè)。
圖1 定位流程Fig.1 Flow of positioning
CSI 作為定位系統(tǒng)的數(shù)據(jù)源,其原始數(shù)據(jù)以復(fù)數(shù)矩陣的形式存在。采用CSI Tool[18]讀取CSI 數(shù)據(jù),每個(gè)CSI 數(shù)據(jù)包所能提取的CSI 子載波個(gè)數(shù)為30,并可以用矩陣H表示CSI 信息。每個(gè)CSI 數(shù)據(jù)為p×q× 30,其中:p為發(fā)射天線數(shù)量,q為接收天線數(shù)量,子載波個(gè)數(shù)為30。
為了有效利用CSI 數(shù)據(jù),通過(guò)數(shù)據(jù)結(jié)構(gòu)分解得出相應(yīng)的數(shù)據(jù)。將CSI 信號(hào)定義為:
若第k個(gè)子載波上的幅度表示為‖Hk‖,相位表示為∠Hk,那么每一個(gè)子載波上的CSI 可表示為:
由于相位信息受頻偏影響不能精確提取,本文方法僅提取幅值作為指紋信息:
CSI 的幅值在距離無(wú)線接入點(diǎn)(Access Point,AP)點(diǎn)不同的位置時(shí),有不同的特性。如圖2 所示,橫坐標(biāo)表示3 條鏈路的子載波索引,縱坐標(biāo)為它們的幅值,3 條線代表3 根天線接收到的CSI 數(shù)據(jù),當(dāng)靠近AP 點(diǎn)位置測(cè)量CSI 數(shù)據(jù),3 根天線的信號(hào)表現(xiàn)出了相似的特性;但當(dāng)在距離AP 較遠(yuǎn)的位置進(jìn)行測(cè)量時(shí),3 條鏈路的曲線不再相似,并且鏈路之間的差異性變大;即使是同一條鏈路,幅值也有很大的變化,這說(shuō)明CSI幅值對(duì)于位置的變化非常敏感。
圖2 靠近和遠(yuǎn)離AP的CSI信號(hào)Fig.2 CSI signals close to AP and away from AP
采集數(shù)據(jù)后會(huì)生成一個(gè)樣本維度為Ntx×Nrx×N的CSI數(shù)據(jù),其中:Ntx為發(fā)射天線數(shù),Nrx為接收天線數(shù),N為子載波數(shù)量。由于原始數(shù)據(jù)中有1 根發(fā)射天線、3 條鏈路,每條鏈路上的子載波數(shù)量為30,所以每個(gè)CSI 信號(hào)的維度為1×3×30。為了獲取有效的高維信息,使用主成分分析(Principal Component Analysis,PCA)算法將數(shù)據(jù)的N維信息通過(guò)線性變換投影到K1維空間中,其中N維是數(shù)據(jù)本身的維度,K1維是低維。通過(guò)該方法,實(shí)現(xiàn)了Ntx×Nrx×N列的數(shù)據(jù)降維,獲取了有效的CSI 信息,保證了數(shù)據(jù)質(zhì)量。
依據(jù)文獻(xiàn)[19]的實(shí)驗(yàn)分析,CSI 數(shù)據(jù)呈現(xiàn)成簇分布的特點(diǎn),并且認(rèn)為超過(guò)80%的CSI 幅值向量只存在4 個(gè)以內(nèi)的分簇。因此考慮應(yīng)用K-means 算法實(shí)現(xiàn)CSI 數(shù)據(jù)分簇,該算法采用距離來(lái)衡量樣本之間的相似性,將降維后的CSI 數(shù)據(jù)劃分成k個(gè)簇,其中,μi是簇Ci的均值向量:
K-means 算法的本質(zhì)就是尋找k個(gè)質(zhì)心來(lái)最小化平方誤差E,E越小說(shuō)明數(shù)據(jù)相似度越高,將CSI 幅值相似度較高的樣本進(jìn)行聚簇。
經(jīng)過(guò)K-means 得到k個(gè)類別,構(gòu)建k個(gè)指紋庫(kù)[R1,R2,…,Rk],每個(gè)指紋庫(kù)包含F(xiàn)個(gè)樣本的CSI 指紋。設(shè)F={r1,r2,…,rn},n是指紋信息的個(gè)數(shù),CSI 數(shù)據(jù)經(jīng)過(guò)PCA 降維后,指紋屬性集為[λ1,λ2,…,λi]。將F個(gè)樣本包含的CSI指紋屬性分別與坐標(biāo)對(duì)應(yīng),對(duì)應(yīng)坐標(biāo)P={(x1,y1),(x2,y2),…,(xn,yn)},對(duì) 應(yīng)后建 立多指紋庫(kù)[R1,R2,…,Rk],其中:
建立多個(gè)指紋庫(kù)后,每個(gè)指紋庫(kù)里都存入了不同位置的CSI 樣本數(shù)據(jù),然后在每個(gè)數(shù)據(jù)庫(kù)中分別建立SVR 回歸模型進(jìn)行定位。基于SVR 回歸算法的核心思路在于用回歸的想法找出CSI 幅值和位置的關(guān)系[20]。在高維空間中,用非線性映射的方法尋找一個(gè)最優(yōu)超平面,以此來(lái)替換原本的非線性關(guān)系。
建立了k個(gè)指紋庫(kù)后,分別使用每個(gè)指紋庫(kù)的數(shù)據(jù)集,{(ri,xi)|i=1,2,…,n} 和{(ri,yi)|i=1,2,…,n}?;赟VR 算法,利用CSI 的幅值信息與坐標(biāo)信息的關(guān)系,建立函數(shù)fx和fy。在x軸上建立線性回歸估計(jì)函數(shù):
其中:w為權(quán)值向量;φ(r)將低維度的CSI 指紋信息映射到高維空間;b是定值。
SVR 的標(biāo)準(zhǔn)形式為ε-SVR,其中ε為不敏感損失函數(shù)。SVR 的風(fēng)險(xiǎn)泛化函數(shù)R(w)如式(9)所示,其中CSIam是幅值的特征信息。
確定參數(shù)w和b時(shí)為了損失最小,所以解決最優(yōu)化問(wèn)題可化為:
約束條件為:
其中:αi表示拉格朗日乘子。由式(14)得到x軸坐標(biāo)的計(jì)算函數(shù),y軸同理。通過(guò)這種方法,在多個(gè)指紋庫(kù)中訓(xùn)練出不同的SVR 回歸模型,進(jìn)行位置預(yù)測(cè)。
基于SVR 模型的位置預(yù)測(cè)過(guò)程:首先在測(cè)試點(diǎn)收集CSI指紋信息,然后進(jìn)行指紋信息預(yù)處理;接著與離線階段K-means 生成的簇心作距離度量,進(jìn)而將測(cè)試點(diǎn)歸入最相似的指紋庫(kù)中;最后利用離線階段所訓(xùn)練的SVR 模型進(jìn)行預(yù)測(cè),分別預(yù)測(cè)出x軸與y軸的位置坐標(biāo)。
當(dāng)預(yù)測(cè)位置與本身位置不同時(shí),即存在誤差,設(shè)預(yù)測(cè)點(diǎn)坐標(biāo)為(x,y),實(shí)際坐標(biāo)為(x1,y1),預(yù)測(cè)點(diǎn)坐標(biāo)與實(shí)際坐標(biāo)直線距離為Dis,如式(15)所示,用兩坐標(biāo)的直線距離來(lái)表示誤差。
本文提出的多指紋庫(kù)室內(nèi)定位方法面向?qū)嶒?yàn)室場(chǎng)景進(jìn)行實(shí)驗(yàn)分析與驗(yàn)證。該實(shí)驗(yàn)室長(zhǎng)8 m,寬6 m,將實(shí)驗(yàn)參考點(diǎn)劃分標(biāo)記為0.6 m×0.6 m 大小的方格,采集12 個(gè)點(diǎn)的位置坐標(biāo)與CSI 數(shù)據(jù),位置平面圖如圖3(a)所示,其中位置5、6、7、8與位置9、10、11、12 中間有一堵墻作為障礙物。
圖3 實(shí)驗(yàn)環(huán)境的布局平面以及采集設(shè)備Fig.3 Layout plan and acquisition equipment of experimental environment
在實(shí)驗(yàn)中,數(shù)據(jù)采集階段使用3 臺(tái)聯(lián)想ThinkPad T400 筆記本電腦作為顯示器,如圖3(b)所示。每臺(tái)筆記本電腦都運(yùn)行32 位Ubuntu Server 10.04(LTS)操作系統(tǒng),并配置了Intel 5300 802.11n 無(wú)線網(wǎng)卡。AP(或監(jiān)視器)使用在2.4 GHz 頻段的通道6 上運(yùn)行的接口wlan0 與用戶通信,使用接口eth0 與服務(wù)器通信。服務(wù)器使用eth1 連接到Internet。數(shù)據(jù)處理階段采用筆記本電腦的CPU 為Core i7-11800H@2.30 GHz,操作系統(tǒng)為Ubuntu 20.04.3。
為了驗(yàn)證本文算法在不同實(shí)驗(yàn)環(huán)境中的定位誤差以及定位效率,設(shè)計(jì)了不同參考點(diǎn)數(shù)量的誤差分析實(shí)驗(yàn)與不同算法的誤差分析實(shí)驗(yàn)。采用累積分布函數(shù)(Cumulative Distribution Function,CDF)圖來(lái)表示定位誤差的大小,并利用定位誤差累計(jì)概率分布和平均誤差對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)價(jià)。
4.2.1 不同參考點(diǎn)數(shù)量誤差分析
為了驗(yàn)證不同樣本數(shù)對(duì)本文算法性能的影響,分別測(cè)試了在100、300、700 個(gè)樣本點(diǎn)情況下的定位誤差,使用CDF 圖表示在不同樣本數(shù)量情況下的誤差,如圖4 所示,在樣本數(shù)為700 時(shí)的平均誤差為0.95 m,樣本數(shù)為300 時(shí)的平均誤差為1.8 m,樣本數(shù)為100 時(shí)的平均誤差為2.1 m。
圖4 不同樣本數(shù)量的CDF圖Fig.4 CDF diagram of different sample numbers
4.2.2 算法性能比較
為了驗(yàn)證本文算法的性能,分別與文獻(xiàn)[15]提出的SVR算法、傳統(tǒng)的單指紋庫(kù)的KNN 回歸算法、支持向量分類(Support Vector Classification,SVC)算法以及DFPhaseFL 系統(tǒng)作比較。實(shí)驗(yàn)在樣本數(shù)量為700 的情況下計(jì)算了定位誤差的累積分布,如圖5 所示。從圖5 可以看出,本文提出的K-means-SVR 算法在定位誤差為0.6 m 以下的百分比達(dá)到了35%,定位誤差在1.2 m 以下的百分比達(dá)到了70%,平均精度為0.95 m,明顯優(yōu)于其他四種算法。
圖5 定位算法誤差比較Fig.5 Error comparison of positioning algorithms
從表1 中可以看出,本文提出的K-means-SVR 算法在定位誤差為[0,0.6] m 時(shí)的概率為35%,定位誤差在[0,1.2] m的概率為70%,定位誤差明顯小于其他四個(gè)算法。同時(shí),定位誤差在[0,4] m 的范圍時(shí)K-means-SVR 算法的平均誤差最小,達(dá)到了0.95 m。可見(jiàn)本文的K-means-SVR 算法相比文獻(xiàn)[17]所提出的DFPhaseFL 系統(tǒng)、文獻(xiàn)[15]所提出的SVR 算法以及傳統(tǒng)的SVC、KNN 算法,在性能上有了顯著的提高。
表1 樣本數(shù)量為700時(shí)不同定位算法的性能對(duì)比Tab.1 Performance comparison of different positioning algorithms when sample unmber is 700
本文提出了一種基于CSI 的多指紋庫(kù)定位算法,在CSI數(shù)據(jù)成簇的特性上,將樣本聚為3 類,分別建立指紋庫(kù),再用SVR 進(jìn)行預(yù)測(cè),不但提高了定位的精準(zhǔn)度和定位效率,而且解決了人流量驟增導(dǎo)致定位精度下降、定位緩慢、閑置定位點(diǎn)多次匹配進(jìn)而造成內(nèi)存浪費(fèi)等問(wèn)題。然而,該算法僅僅使用了CSI 的高維信息,并未充分挖掘CSI 的低維信息。因此,下一步將充分利用CSI 的低維信息結(jié)合高維信息,探索動(dòng)態(tài)環(huán)境下Wi-Fi 室內(nèi)定位方法。