張天穎,史明泉,崔麗珍,秦 嶺
(內蒙古科技大學信息工程學院,內蒙古 包頭 014010)
在科技引領的新時代中,基于位置的服務早已滲透到各行各業中,并不斷地影響著人們的生活。對于室內定位,眾多的學者和研究人員從未停止對其探索,如基于藍牙、射頻識別、超寬帶無線電、Wi-Fi等室內定位技術[1-7]。其中,基于Wi-Fi的室內定位技術因Wi-Fi設備覆蓋廣泛,不需要花費時間和成本建設而得到廣泛應用。
在離線階段可選擇不同的物理量作為位置指紋[8-17]。如,基于接收信號強度指標(received signal strength indicator, RSSI)、到達角、到達時間、到達時間差和信道狀態信息(channel state information, CSI)等基礎信號,以及基于信噪比、AP之間的信號強度差等復雜的信號。在基礎信號中,CSI的波動小,相對于其他信號更加穩定,但CSI的采集需要專門的設備,不便于普及。研究表明[18],RSSI的空間分辨率更高,大部分位置指紋技術采用RSSI作為指紋。
卷積神經網絡(convolutional neural network,CNN)可以通過一系列的卷積運算和池化運算提取數據中的高級特征,但其不能捕捉特征之間的關系,如相對位置關系、空間關系、尺度關系等。為了更好地表征這些特征信息,Hinton提出了“膠囊”的概念,膠囊網絡(capsule network,CapsNet)[19]選取活動向量的長度來表示實體存在的概率,并使用它的方向來表示實例化參數。這使CapsNet可以從輸入數據中提取更多細節特征,同時也減少了特征信息的丟失,增強了室內定位的穩健性和準確性。
綜上所述,本文提出一種由CNN和CapsNet共同構成的CNN-CapsNet網絡模型,以此對原始采集信息的特征進行充分的提取。同時,為了更好地利用采集數據中包含的信息,將采集到的RSSI數據按照一定的空間特征順序構成二維位置指紋圖像,并使用滑動窗口對數據集進行擴展,再使用CNN-CapsNet網絡提取和學習特征,以期得到準確率更高的定位模型。
系統模型如圖1所示,包括:離線階段和在線階段兩個階段。離線階段是首先將采集到的數據進行預處理得到訓練數據集,通過CNN提取底層信息,然后將其輸入到CapsNet中進行訓練,得到最優結構;而在線定位階段就是通過訓練好的最優結構直接進行測試數據的目標區域估計。

圖1 基于CNN-CapsNet的Wi-Fi室內定位系統
采集數據的試驗區域是內蒙古科技大學逸夫樓一個空曠的長廊,如圖2所示。其中共有50個采集點,每兩個采集點之間間隔1.6 m。

圖2 數據采集區域平面圖
考慮人在行走站立的過程中,手持移動終端的平均高度約為1.5 m,因此,將移動終端放置高度為1.5 m的手機支架上,分別在各采集點處進行采集。移動終端約2 s可對所有檢測到的AP進行一次RSSI數據的采集,故選擇在每個采集點處采集約90 min,可得到T=2700次數據。采集到的RSSI的取值分布在-100~-35 dbm范圍內。
采集到的數據結構如圖3所示,其中T為從AP接收到RSSI的次數,M為AP的數量。對于每個采集點均可以得到一個數據結構,共50個采集點。

圖3 采集點數據結構
在機器學習中,絕大部分圖像處理模型都需要很多數據進行訓練學習。當訓練數據不足時,會對訓練數據中的圖像做旋轉、平移、縮放、填充、左右反轉等變換。這些變化都是對同一個目標在不同角度的觀察結果,但位置指紋圖像則通過RSSI值構成,每個像素點都有著特定的含義。若使用上述方法對特征圖進行變換,會破壞RSSI中包含的信息,因此,本文使用滑動窗口法來擴展訓練集。
如圖4(a)所示,RSSI特征圖像的總測量次數為T,當測量次數為t時對數據進行分割,得到T/t個特征圖。如圖4(b)所示,當對數據使用滑動窗口進行分割時,每隔t/2次生成一個特征圖,因此每兩個相鄰的特征圖之間會有t/2的RSSI數據重合。即允許相鄰的RSSI特征圖像在時域內重疊,得到2(T/t)-1個特征圖,從而構成離線數據庫。

圖4 滑動窗口分割數據對比
通過滑動窗口分割后,部分定位點的位置指紋特征圖如圖5所示。

圖5 部分位置指紋特征
模型訓練是通過已得到的數據集及其對應的數據標簽,將其輸入到CNN-CapsNet網絡中,通過不斷提取特征、學習特征,從而尋找最優的權重參數,使得模型的準確率最大化,訓練好的模型在目標定位區域即可得到定位點。尋找最佳模型通常需要多次試驗得到最佳參數,CNN-CapsNet網絡的訓練過程是十分耗時的,每次迭代使用所有的樣本數據會使迭代速度變慢,且對計算設備的內存要求較高。因此,每次迭代時,僅使用一部分數據進行,以使學習訓練過程具有更強的穩健性。
CNN-CapsNet網絡模型架構如圖6所示。定位區域采集得到的位置指紋特征圖首先由卷積層和池化層構成的CNN進行初級特征提取,完成定位圖像到初級特征圖的轉換。然后通過CapsNet進行更深層的特征提取,完成區域定位。

圖6 CNN-CapsNet網絡架構
CNN通常由卷積層、池化層和全連接層3部分組成,本文模型中僅使用卷積層和池化層。卷積層和池化層構成特征提取器,卷積核相當于特征探測器,通過卷積核對其進行特征提取運算,提取結果為一個新的特征層。為了使模型擁有非線性表達能力,常將卷積后的運算結果通過激活函數(ReLU)作非線性映射,其中ReLU函數表達式為
(1)
通過卷積層處理后的數據是十分龐大的,常通過池化層減小原卷積層輸出張量的維度,降低計算量和時間復雜度。本文模型中CNN部分由兩個卷積層構成,其結構如圖7所示。

圖7 CNN內部結構
輸入的位置指紋特征圖大小為20×187,首先使用64個大小為2×7的卷積核提取底層信息,卷積層輸出特征圖大小為19×181×64;然后使用2×2最大池化過濾器,則第一個卷積層輸出特征圖為10×91×64。第二層與第一層同理,則第二層卷積層輸出特征圖大小為5×42×128。
CapsNet算法是采用端到端的方式提取圖像的空間信息,將輸入標量轉換為向量。使用輸出向量的長度來表征實體存在的概率,方向表示實例化的參數或圖形屬性,從而降低特征信息的丟失,提高模型的特征提取能力。本系統使用的CapsNet架構如圖8所示。

圖8 CapsNet架構
將CNN網絡處理后的特征圖再使用256個大小為2×5的卷積核進行卷積,然后連接主膠囊層。在膠囊層中,神經元是一個向量而不是標量,但卷積后的特征層為標量,因此需將卷積之后的特征層重構成向量的形式。構建向量神經元的方法是將特征層的每8個通道合并成一個新的膠囊單元,而新的膠囊單元的通道數將減少為原來通道數的1/8,膠囊單元作為膠囊層的輸入。
最后一層為數字膠囊層,用于存儲高級別特征的向量,輸出50個維度為16的向量,每個向量代表一種定位點。通過向量的模長來衡量各個類別的概率,模越值大,屬于這個類的概率越大。


圖9 CapsNet內部結構
(2)
(3)
cij為耦合系數,由動態路由算法確定,其目的是讓輸出的神經元自主選擇最好的路徑傳輸到下一層神經元,定義公式為
(4)

(5)

(6)
動態路由算法如下。
路由算法
2:對于所有l層的膠囊i和l+1層的膠囊j:bij→0
3:迭代r次
4: 對于所有l層的膠囊i:cij←Softmax(bij)

6: 對于所有l+1層的膠囊j:vj←Squash(sj)

返回vj
在模型的訓練過程中,模型的權值需要通過反向傳播算法對其進行更新或迭代,而反向傳播需要一個能度量模型輸出值與真實值之間距離的損失函數。通過損失函數,在訓練時就可以通過反向傳播算法不斷更新迭代模型的權重值。本文損失函數的表達式為
(7)

本文的試驗參數設定具體見表1。

表1 試驗參數
在圖像處理領域,數據集的大小與訓練網絡模型性能存在密不可分的關系,通常數據集越大,對特征的學習提取效果越好。CNN-CapsNet網絡中,CapsNet的主要步驟在于動態路由,使用適量的數據集有助于在一定時間、參數范圍根據空間特征訓練出合適的網絡,過大的數據集會加大路由時間和參數反而使得網絡性能降低,因此數據集大小也是網絡訓練中的重要參數之一。
本文試驗使用了3種數據集,分別為數據集1、數據集2和數據集3。3個數據集中都包含50個定位點,不同的是在數據集1中每個定位點包含25張位置指紋特征圖,共1250張位置指紋特征圖;數據集2中每個定位點包含50張位置指紋特征圖,共2500張位置指紋特征圖;數據集3中每個定位點包含100張位置指紋特征圖,共5000張位置指紋特征圖。
使用CNN-CapsNet定位模型分別對以上3種數據集進行訓練,結果見表2。不難看出,隨著數據集內位置指紋圖像數量的增加,模型訓練的損失逐漸降低,測試的準確率逐漸升高,模型整體性能呈現變好趨勢。但隨著數據集內數據數量的增加,所需的訓練時長也逐漸增加,數據集2與數據集3之間準確率雖有提升,但提升微弱。綜合考慮多種因素,數據集2即可表達各定位點數據特征,不需要使用更大的數據集,浪費更多的時間成本。
本文將主膠囊層及數字膠囊層的向量長度對系統定位精度的影響也做出了對比,見表3。可知在組合1至組合6中,模型的損失函數都是極低的。以至于在該數量級上,各個模型之間損失函數的差異性是可以忽略不計的。故損失函數的大小不是本文衡量模型性能最合適的指標。各模型之間存的差異是模型的收斂速度,當模型的穩定性相同時,模型的收斂速度越快其性能就相對越好。
圖10為6種組合模型其損失函數值隨訓練位置指紋圖像張數的變化情況。當數字膠囊層向量維度固定,隨著主膠囊向量維度的增加,模型的收斂時間也越長。當主膠囊向量維度相同時,隨著數字膠囊向量維度的增加,模型的收斂速度反而越快。由圖10可知,當主膠囊層向量維度為8,數字膠囊層向量維度為16時,收斂速度最快,模型的性能最好。

圖10 損失模型函數值隨訓練圖像張數的變化
在CapsNet中,除了向量維度,路由迭代次數也是影響模型好壞的重要因素。當迭代次數較少時,試驗結果較差,這是因為較少的路由迭代次數導致耦合系數無法得到充分學習。然而當路由迭代次數過大時,模型參數的增加導致過擬合,準確率也會隨之下降(見表4),當路由迭代次數設置為3時性能最高。

表4 路由迭代次數對定位模型性能的影響
為估計本文模型性能,將其與以下幾個模型在構建的數據集上進行對比試驗,各模型特點如下。
(1)模型1 CNN在圖像處理領域的表現是十分出色的,但CNN網絡中神經元之間傳遞的是標量,無法體現空間關系,缺少方向性。
(2)模型2 CapsNet是以向量的形式表示部分與整體之間的關系的,不僅能夠以特征響應的強度來表示圖像,還能夠表征圖像特征的方向、位置等信息。
(3)模型3、4、5是將注意力機制與CapsNet相結合,注意力機制是實現網絡自適應注意的一種方式,使網絡去關注更需要關注的地方。其中,SE為常用的通道注意力機制,可以使模型更加關注信息量最大的通道特征,而抑制那些不重要的通道特征;CBAM是表示卷積模塊的注意力機制,是一種結合了空間和通道的注意力機制模塊;ECA也是通道注意力機制模塊,是SE的改進版。
(4)模型6為本文使用的模型,使用向量與標量相結合的方式對位置指紋特征圖進行有效的特征提取。
以上模型在構建的數據集上進行對比試驗,其結果見表5,將CapsNet與CNN兩種模型的試驗數據結果對比,充分體現了使用向量代替標量表示圖像特征的優勢。為了提升CapsNet的性能,嘗試在CapsNet中融合注意力機制,通過注意力機制使CapsNet的注意力在訓練時放在圖像特征更突出的地方。當CapsNet與CEA和SE相結合時,損失函數的損失值增加了;只有與CBAM注意力機制融合時,模型的損失函數才有所降低,但3種融合方式,都增加了網絡的訓練時長。換而言之,3種融合方式均增加了原網絡的計算復雜度。當CapsNet與CNN結合時,不僅損失值有明顯的降低,訓練所需時長也比其他融合方式短。由此可見,將標量和向量相結合的方式可對位置指紋特征圖進行有效的特征提取,并降低網絡的計算復雜度,節約網絡訓練時間。

表5 不同算法的試驗結果
本文提出了一種融合CNN和CapsNet的Wi-Fi室內定位方法。針對傳統位置指紋數據存在單一性的問題,充分利用采集數據中包含的時間信息,構建成二維位置指紋圖像,通過對位置指紋圖像的特征學習實現定位區域的識別。相比于使用傳統網絡進行室內定位,本文將CNN和CapsNet相結合,將標量和向量相結合,增強網絡對特征的提取能力,降低了網絡的計算復雜度,節約了網絡訓練所需的時長。通過CapsNet的動態路由算法,不再一味地追求學習大數據集,減少了網絡對數據庫數量的依賴。試驗結果表明,使用CNN-CapsNet網絡進行室內定位,其損失可達0.009 91,并優于其他網絡模型。