趙澤,高源,2,崔莉
(1. 中國科學(xué)院計(jì)算技術(shù)研究所,北京 100190;2. 中國科學(xué)院大學(xué)計(jì)算與控制學(xué)院,北京 100049)
定位問題一直是物聯(lián)網(wǎng)研究領(lǐng)域的一個(gè)重點(diǎn)研究內(nèi)容,自物聯(lián)網(wǎng)技術(shù)誕生以來就一直受到相關(guān)研究人員的重點(diǎn)關(guān)注。基于位置的服務(wù)(LBS,location based service)是物聯(lián)網(wǎng)技術(shù)的重要應(yīng)用,定位方法的研究是 LBS的基礎(chǔ)問題。對于室外情況,使用GPS定位的方法已經(jīng)取得較好的成果,但非室外空間由于無法接收到GPS信號,實(shí)現(xiàn)精準(zhǔn)定位的難度比較大。然而近年來室內(nèi)定位和車內(nèi)定位受到了越來越多的關(guān)注,在車內(nèi)實(shí)現(xiàn)精準(zhǔn)定位,對于處于不同位置的乘客可以提供更多差異化的智能服務(wù),例如,可以針對車內(nèi)不同位置的人員進(jìn)行個(gè)性化的溫濕度調(diào)節(jié)、空間調(diào)整、信息推送和多媒體服務(wù);可以根據(jù)某輛車長期的乘客分布和用戶用車習(xí)慣,推測出該車輛用途(家用/商用)和常使用該車輛的乘客數(shù)目以及人員座位習(xí)慣等,從而進(jìn)一步提供智能化的服務(wù)。
目前,在室內(nèi)定位方面的研究已經(jīng)取得了許多進(jìn)展。但和室內(nèi)相比,車內(nèi)空間更加封閉,資源更加有限,且車輛經(jīng)常處于不同的運(yùn)動(dòng)狀態(tài),因此基于手機(jī)傳感器[1]、加速度傳感器、陀螺儀和上下文信息等定位方法不適用于車內(nèi)定位。大部分室內(nèi)定位方法是利用無線信號的相關(guān)特征來進(jìn)行定位,根據(jù)利用無線信號的方法不同,大體可以分為基于功率、基于時(shí)間和基于角度3種定位方法。RSSI值就是一種基于功率的定位方法。近年來,除了使用RSSI值外,基于功率的方法還有使用 Wi-Fi的CSI(channel state information)定位方法[2],其精度為40 cm 左右,比單純使用 RSSI(精度為 1~3 m 或room-level[3])要高,但車內(nèi)空間狹小,電源供給有限,不適合利用多個(gè)Wi-Fi的AP(access point)實(shí)現(xiàn)定位。基于時(shí)間的定位方法,如 ToA(time of arrival)[4],通過信號到達(dá)的時(shí)間來測距,但無線信號作為電磁波是以光速傳播的,導(dǎo)致ToA方法對時(shí)間精度要求較高;TDoA(time difference of arrival)也是目前經(jīng)常使用的定位方法[5],常用于多個(gè)接收端接收一個(gè)固定的 RFID(radio frequency identification)或WLAN(wireless local area network)熱點(diǎn)的信號,TDoA需要接收端有準(zhǔn)確的振蕩器來保證時(shí)間同步,顯然也不適用于車內(nèi)[6]。基于角度的定位方法,如最常見的AoA(angle of arrival)[7],需要多個(gè)發(fā)送和接收天線組成天線陣,由于部署起來比較繁雜,實(shí)際應(yīng)用的場合比較少。從定位精度上分析,傳統(tǒng)RSSI精度為2~4 m,基于指紋庫的方法準(zhǔn)確度通常為1~3 m,比基于Cell-ID的方法要好一些[8],目前的CSI精度在40 cm[2]左右,在本研究中車內(nèi)的座位寬度為60~80 cm,因此上述定位方法的精度都不適用于此應(yīng)用場景。
在專門針對車內(nèi)人員定位的方法研究中,文獻(xiàn)[9]使用聲波的方式對車內(nèi)的位置進(jìn)行判定并取得了良好的結(jié)果,但是需要對車內(nèi)的揚(yáng)聲器系統(tǒng)進(jìn)行改造,使之發(fā)出一定頻率的聲波,并且需要在車內(nèi)加裝一些揚(yáng)聲器。一般來說,車輛在出廠之后設(shè)備、布線基本固定,不能做過多改動(dòng),并且從安全的角度考慮,不宜采用對車輛進(jìn)行改裝的方法。同時(shí),定位系統(tǒng)應(yīng)該具備普適性強(qiáng)、可開展、結(jié)果準(zhǔn)確這3個(gè)特點(diǎn)[2]。而文獻(xiàn)[9]定位系統(tǒng)成本高,且部署時(shí)必須對揚(yáng)聲器進(jìn)行一定的改造,不滿足普適性強(qiáng)、可開展,不能完全適用于本文研究的車內(nèi)定位場景。
從實(shí)用角度考慮,使用藍(lán)牙信號是較好的選擇。其優(yōu)勢主要體現(xiàn)在以下幾方面:體積小,包裝體積在幾立方厘米內(nèi),不會(huì)影響駕駛員駕駛和乘客的活動(dòng);在車內(nèi)空間較小、移動(dòng)的環(huán)境中,藍(lán)牙可以發(fā)揮其短距離、低功耗的特征,更好地提供服務(wù);不需要對車輛進(jìn)行改造,使用方便。
為了能更好、更方便地解決提高車內(nèi)定位精度的問題,讓人們能夠更好地獲取車內(nèi)準(zhǔn)確定位帶來的相關(guān)服務(wù),本文提出了一種基于BLE的多信道多RSSI值的定位方法VehLoc,該方法通過采集分析多個(gè)信標(biāo)在不同信道下的多個(gè) RSSI值來實(shí)現(xiàn)。在進(jìn)行缺失值和濾波處理之后,先使用粗分類器對前后排位置進(jìn)行區(qū)分,再使用函數(shù)擬合進(jìn)行位置概率計(jì)算,最后使用細(xì)分類器進(jìn)行位置校正。
不同于傳統(tǒng)藍(lán)牙定位,本文使用了區(qū)分信道的方法,將藍(lán)牙的3個(gè)廣播信道當(dāng)作不同的特征,分開計(jì)算。
藍(lán)牙工作在2.4 GHz頻段,使用這個(gè)頻段的無線信號包括ZigBee、Wi-Fi等,沖突相對比較嚴(yán)重。為了保證通信質(zhì)量,藍(lán)牙協(xié)議采用了 AFH(adaptive frequency hopping)、LBT(listen before talk)、功率控制等抗干擾措施,進(jìn)行跳頻傳輸,選擇信道質(zhì)量最好的信道進(jìn)行數(shù)據(jù)傳輸;而在接收端接收時(shí),通過主機(jī)設(shè)備對信道做出選擇,進(jìn)行跳頻傳輸[10]。
BLE4.0是第 4代藍(lán)牙標(biāo)準(zhǔn),具有功耗低等特點(diǎn),與之前的藍(lán)牙標(biāo)準(zhǔn)相比,其帶寬變寬,通信距離變大,數(shù)據(jù)容量也有所提升。BLE4.0工作頻率范圍為 2 400~2 480 MHz,一共有 40個(gè)信道(0~39),每個(gè)信道帶寬為 2 MHz。在廣播時(shí),使用 37、38和39共3個(gè)信道。藍(lán)牙的設(shè)計(jì)者在設(shè)計(jì)信道時(shí),為了避免廣播信道之間的干擾,將它們的頻率分隔開,而不是使用連續(xù)的3個(gè)信道。這使得3個(gè)廣播信道間存在頻率差,37信道的頻率為2 402 MHz,38信道為2 426 MHz,39信道為2 480 MHz[11],表1為BLE信道的分布情況。
從表1可以看出,藍(lán)牙中不同的廣播信道之間存在頻率差。在藍(lán)牙進(jìn)行廣播時(shí),如果沒有對廣播信道進(jìn)行特殊限制,發(fā)送端會(huì)同時(shí)使用 37、38和39這3個(gè)廣播信道進(jìn)行廣播發(fā)送,每次發(fā)送稱為一個(gè)廣播事件;而對于接收端,可能接收來自3個(gè)信道中任意一個(gè)或多個(gè)信道的廣播數(shù)據(jù)(具體信道個(gè)數(shù)取決于接收端)。
表1 BLE信道分布情況
已經(jīng)有文獻(xiàn)[12-13]確定,RSSI的衰減和多徑效應(yīng)都會(huì)受到頻率的影響,而 RSSI就是基于接收信號的功率來計(jì)算的,如式(1)所示。
文獻(xiàn)[13]中,給出了在無干擾的自由空間模型下接收端的功率估計(jì)式,如式(2)所示。
其中,tP和Pr分別表示發(fā)射功率和接收功率,l表示發(fā)射節(jié)點(diǎn)和接收節(jié)點(diǎn)間的距離,c為光速,f為無線信號的頻率。
文獻(xiàn)[13]中,給出了多反射條件下接收端的功率估計(jì)式,如式(3)所示。
其中,L表示由于發(fā)射節(jié)點(diǎn)和接收節(jié)點(diǎn)的阻抗不匹配導(dǎo)致的損失,表示信號的波長,γ是路徑損耗系數(shù),表示在視距方向上發(fā)射和接收天線場的輻射模式,r和rΓ表示信號發(fā)射和反射經(jīng)過的路徑長度,則表示在分別在r和rΓ方向上發(fā)射和接收天線場的輻射模式的乘積,是接收到的2個(gè)信號的相位差,如果多徑效應(yīng)更加明顯,則相位差更大。
在發(fā)射功率為0 dBm時(shí),使用式(2)計(jì)算得出3個(gè)信道在距離發(fā)射位置1 m處接收到的理論功率值分別為:0.009 93 mW(37信道),0.009 84mW(38信道),0.009 626 mW(39信道)。車內(nèi)空間狹小,多徑效應(yīng)造成的后果更加嚴(yán)重,導(dǎo)致在這3個(gè)信道上接收到的信號差更加明顯,對于不同信道的RSSI值,如果不加以區(qū)分,會(huì)導(dǎo)致接收到的RSSI值變化嚴(yán)重,不利于后續(xù)處理。
在同一位置分別使用區(qū)分信道的方法和不區(qū)分信道方法接收信號,圖1展示了這2種方法接收到的RSSI值。圖1(a)為使用區(qū)分信道方法,接收端在接收信號時(shí),將同一數(shù)據(jù)分組中的 3個(gè)廣播信道值分開記錄,圖 1(b)為普通的接收方法,只記錄接收到的RSSI值,而不對信道進(jìn)行區(qū)分。
圖1 在相同條件下區(qū)分與不區(qū)分信道時(shí)終端所接收到的RSSI值
由于不同接收終端對藍(lán)牙底層數(shù)據(jù)的過濾規(guī)則不同,使得對于同一個(gè)廣播事件,不同接收端接收到的數(shù)據(jù)量也不相同。例如某些接收終端在nms內(nèi)只接收一次,這可能導(dǎo)致對同一個(gè)廣播事件接收不完整,n值不同會(huì)導(dǎo)致每個(gè)廣播事件接收的數(shù)據(jù)量不同。為了與區(qū)分信道的方法進(jìn)行對比,保證數(shù)據(jù)量的公平性,本文認(rèn)為接收終端可以接收到廣播事件的3個(gè)信道的數(shù)據(jù)分組。
從圖1中可以看出,相對于沒有區(qū)分信道方法的RSSI值,使用區(qū)分信道方法在每個(gè)信道內(nèi)獲取的值RSSI更加穩(wěn)定,波動(dòng)也相對較小,不同信道的RSSI值存在明顯的差異。
在定位過程中,使用區(qū)分信道的方式會(huì)有以下優(yōu)勢。1)不同的信道由于頻率不同,接收功率上會(huì)有差異,而這種差異會(huì)因?yàn)槎鄰叫?yīng)而變得更加明顯。相比于普通的不區(qū)分信道的BLE接收方式,使用區(qū)分信道的信號接收方式可以更完整地保留藍(lán)牙的信號信息,并且根據(jù)多徑效應(yīng)對不同頻率的信號干擾而造成的RSSI值差異分析,能夠有效得到不同接收位置的RSSI特征信息。2)實(shí)驗(yàn)證明,使用不區(qū)分信道的方法,在車內(nèi)不同位置接收到的RSSI值可能相同,而使用區(qū)分信道的方法,每個(gè)數(shù)據(jù)分組的信息量增加到3倍,使在不同位置收到相同RSSI值的概率下降,根據(jù)接收到的數(shù)據(jù)分析,不同位置收到完全相同RSSI數(shù)據(jù)分組的概率可以控制在1%之內(nèi)。3)從數(shù)據(jù)處理的角度來看,使用區(qū)分信道的方式使每個(gè)數(shù)據(jù)分組的信息維度增加,可以提高分類的精確度,更利于分類器的分類,并且接收端在不同信道的RSSI值之間的差異本身也是判斷接收端位置的一個(gè)重要因素。4)從圖1可以看出,同一數(shù)據(jù)分組內(nèi)不同信道的RSSI值是存在差異的,如果不對此進(jìn)行區(qū)分,會(huì)使特征集中在同一位置、同一信標(biāo)、不同信道之間的RSSI值差異,而不是不同位置的RSSI值差異,掩蓋了許多有用信息。
基于以上分析,本文提出了采用區(qū)分多信道的RSSI值來定位數(shù)據(jù)源的方法,從而得到包含完整的利于定位的RSSI數(shù)據(jù)的信道信息,達(dá)到對車內(nèi)進(jìn)行高精度定位的目的。
為了更好地區(qū)分接收設(shè)備在車內(nèi)的位置,分別使用多個(gè)信標(biāo)在不同信道的RSSI值作為采集的數(shù)據(jù),并將其進(jìn)一步用于車內(nèi)的位置區(qū)分。為了保證不干擾駕駛員駕駛和乘客的正常使用,需要在車輛空閑位置安裝藍(lán)牙節(jié)點(diǎn)。在實(shí)驗(yàn)系統(tǒng)中使用3個(gè)信標(biāo)分別為beacon1、beacon2、beacon3,進(jìn)行 BLE數(shù)據(jù)的廣播,信標(biāo)的廣播數(shù)據(jù)遵從iBeacon協(xié)議。
整體定位方法分為模型建立和實(shí)際定位2個(gè)階段。在模型建立階段,對采集到的數(shù)據(jù)進(jìn)行濾波、粗分類、擬合及細(xì)分類等一系列建模處理,為每個(gè)位置都建立一個(gè)標(biāo)準(zhǔn)模型庫。在實(shí)際定位階段,對采集到的數(shù)據(jù)使用同樣的方法進(jìn)行處理,并與每個(gè)位置的標(biāo)準(zhǔn)庫相匹配,計(jì)算處于各個(gè)位置的概率,取概率最大的位置作為定位結(jié)果返回給用戶。
圖2為實(shí)現(xiàn)車內(nèi)定位的整體流程,其中,分隔線上方為模型建立階段,分隔線下方為實(shí)際定位階段。在實(shí)際定位階段,使用的粗分類器、擬合參數(shù)和細(xì)分類器都是在模型建立階段計(jì)算得出的,圖 2中的虛線表示了模型在定位階段的重新使用。在實(shí)際應(yīng)用場合,模型建立階段只需進(jìn)行一次,得到標(biāo)準(zhǔn)庫后可以用于后續(xù)定位。
整個(gè)定位過程可分成以下三部分:數(shù)據(jù)預(yù)處理部分(如圖2(a)所示),分類部分(如圖2(b)所示)和結(jié)果整合部分(如圖2(c)所示)。
3.1.1 丟失值的填充
在收集數(shù)據(jù)時(shí),由于信道被占用,接收端的差異或接收延遲等,很容易出現(xiàn)數(shù)據(jù)丟失,如果不對丟失值進(jìn)行補(bǔ)充,會(huì)造成數(shù)據(jù)浪費(fèi)和接收信息不完整。在處理丟失值時(shí),假定正確的相鄰RSSI差距不應(yīng)該太大。為了補(bǔ)全丟失數(shù)據(jù),采集數(shù)據(jù)時(shí)保留該數(shù)據(jù)分組的編號,可以根據(jù)編號查看數(shù)據(jù)分組到來的先后順序。經(jīng)過實(shí)驗(yàn)統(tǒng)計(jì),在普通情況下,數(shù)據(jù)的丟失率小于7%,相鄰數(shù)據(jù)分組之間的RSSI值方差大部分小于3,方差大于3的不超過3%。對于每組數(shù)據(jù)每個(gè)信道的值,如果存在數(shù)據(jù)分組丟失的情況,采用以下方法對缺失值進(jìn)行補(bǔ)充。首先計(jì)算編號最近相鄰3個(gè)RSSI的方差,如果方差小于4,則將這3個(gè)RSSI的平均值作為缺失值;否則,將差距較小的2個(gè)RSSI的平均值作為缺失值,如式(4)所示,其中vn表示第n個(gè)RSSI的值。
3.1.2 數(shù)據(jù)濾波
圖2 車內(nèi)定位整體流程
影響RSSI的因素主要有3個(gè):路徑衰減、遮擋、多徑效應(yīng)[2]。車內(nèi)空間狹小、遮擋物多,采集到的信號干擾較重,并且會(huì)經(jīng)常出現(xiàn)異常值,為了減少異常信號對數(shù)據(jù)的影響,對采集到的數(shù)據(jù)進(jìn)行了濾波處理??紤]到數(shù)據(jù)在產(chǎn)生、采集和處理過程都會(huì)產(chǎn)生誤差,使用了卡爾曼濾波法??柭鼮V波是一種常見的濾波手段,常用于信號處理和控制系統(tǒng)中,如機(jī)器人控制系統(tǒng)等,近年來逐漸用于傳感數(shù)據(jù)融合與微觀經(jīng)濟(jì)學(xué)等領(lǐng)域[14]??柭鼮V波要求系統(tǒng)噪聲和測量噪聲都滿足高斯分布。在無線信號上,系統(tǒng)噪聲和測量噪聲都為高斯分布[15],一個(gè)典型實(shí)例是從一組有限的、包含噪聲的、對物體某個(gè)特征的觀察序列,通過該特征的測量值預(yù)測出物體的下一個(gè)時(shí)段的特征[16],在濾波過程中,卡爾曼濾波方法結(jié)合了第k-1次的預(yù)測值、第k次的預(yù)測值和第k次的測量值來預(yù)測第k次的準(zhǔn)確值,從而減少由系統(tǒng)和測量帶來的誤差,最大程度地還原出準(zhǔn)確值。整個(gè)計(jì)算過程如下。
在初始時(shí),真實(shí)值和測量值的首次賦值都為首次測量值,在收到第k個(gè)數(shù)據(jù)分組時(shí)(第k個(gè)數(shù)據(jù)分組的測量值),會(huì)結(jié)合第k-1次數(shù)據(jù)分組的最優(yōu)值,進(jìn)行第k次的預(yù)測。
在定位工作中,基于指紋方法的正確率往往比基于距離的方法要高,但如果單一記錄在某位置接收到的RSSI值,由于多徑效應(yīng)和信號的折射、反射,勢必會(huì)造成接收值和指紋庫中的值不匹配而導(dǎo)致定位結(jié)果不準(zhǔn)確。為了解決此問題,本文在采集到各位置的數(shù)據(jù)后,使用了函數(shù)擬合與機(jī)器學(xué)習(xí)算法相結(jié)合的方法。對采集到的數(shù)據(jù)進(jìn)行濾波后,首先使用粗分類器進(jìn)行前后排分類訓(xùn)練,得到用于區(qū)分前后排的分類模型,在實(shí)際計(jì)算中發(fā)現(xiàn),增加前后排的預(yù)分類,可以增加預(yù)測的分類準(zhǔn)確度;然后對數(shù)據(jù)的各個(gè)位置每個(gè)信標(biāo)每個(gè)信道的值進(jìn)行函數(shù)擬合,得到相應(yīng)擬合參數(shù);最后使用細(xì)分類器對數(shù)據(jù)進(jìn)行再次訓(xùn)練,得到細(xì)分類模型。由以上過程中得到的粗分類模型、函數(shù)擬合參數(shù)和細(xì)分類模型作為標(biāo)準(zhǔn)模型,在定位過程中,將收到的信號依次與每個(gè)位置的標(biāo)準(zhǔn)庫相匹配。首先使用粗分類模型得出前后排位置,再使用函數(shù)擬合模型分別計(jì)算處于該排各個(gè)位置的概率,采取概率最大的作為第一次分類的結(jié)果;為了防止由于粗分類模型導(dǎo)致的錯(cuò)誤,使用細(xì)分類模型對分類結(jié)果進(jìn)行校正,得到的結(jié)果作為第二次分類的結(jié)果。這兩次的結(jié)果都將被記錄并用于結(jié)果整合。
3.2.1 粗分類器
粗分類器用于數(shù)據(jù)進(jìn)行前后排預(yù)分類處理,以提高后續(xù)函數(shù)擬合的準(zhǔn)確度。
通過使用adaboost分類器,可以得到一個(gè)能分辨出前后排位置的分類器。adaboost是結(jié)果較好的分類器之一,其思想是使用多個(gè)弱化的分類器進(jìn)行多次訓(xùn)練。在初始狀態(tài),所有訓(xùn)練數(shù)據(jù)的權(quán)重都相同,在弱分類器分類之后,對于分類錯(cuò)的數(shù)據(jù),權(quán)重會(huì)加重,目的是使下一個(gè)分類器更專注于不易于分類的數(shù)據(jù),以獲得更好的結(jié)果,在最終的結(jié)果輸出時(shí),會(huì)對所有弱分類器使用投票算法,對所有弱分類器的結(jié)果進(jìn)行綜合。在本文使用這個(gè)算法時(shí),利用的特征為每個(gè)位置采集的3個(gè)信標(biāo)的3個(gè)信道的RSSI值的9維特征,分類標(biāo)簽為前排(標(biāo)記為1)或后排(標(biāo)記為-1)。
在本文中,采用的弱分類器為“決策樹樁”[17],即一個(gè)只有一層的決策樹,通過在數(shù)據(jù)集上的所有特征遍歷,找到一個(gè)具有最低錯(cuò)誤率的單層決策樹,并使用此樹作為當(dāng)前決策的弱分類器。
3.2.2 位置概率計(jì)算
由圖1可以看出,雖然是在同一位置,幾乎相同的時(shí)間來測量信號,理論上RSSI曲線應(yīng)該近似于直線,但實(shí)際曲線卻發(fā)生了較大的變化,為了實(shí)現(xiàn)精確定位,不能單純使用RSSI值創(chuàng)建一個(gè)完整的指紋體系,但可以根據(jù)RSSI的分布情況計(jì)算出在同一位置的RSSI值的概率。對于位置iP,在某一時(shí)刻收到的處于3個(gè)位置的3個(gè)信道的RSSI值可以表示為
其中,rbicj代表收到的beaconi在信道j的RSSI值,其中bi代表beaconi,cj代表信道36+j,對于每一個(gè)位置,都能收到一組RSSI值,利用這組RSSI值,可以對該位置的各個(gè) beacon的各個(gè)信道的值進(jìn)行整體的分布擬合。從底層信號傳播的角度來說,信號在經(jīng)過折射、反射和多徑之后,得到的值會(huì)比原始值小,這就導(dǎo)致了偏小的值要多于偏大的值,得到的結(jié)果基本是一種負(fù)偏分布。
為了對收到的信號進(jìn)行擬合,計(jì)算在各個(gè)位置的概率,使用了伽馬分布進(jìn)行擬合。伽馬分布常用于多徑衰落信號建模和船舶檢測[18],或有偏分布的擬合。同時(shí),使用Matlab對數(shù)據(jù)分布進(jìn)行測試,結(jié)果表明得到的信號可以用伽馬分布進(jìn)行擬合。伽馬分布的密度函數(shù)如式(5)所示。
每個(gè)伽馬分布有2個(gè)參數(shù):α為形狀參數(shù)也稱為尺度參數(shù);β為率參數(shù)。使用這2個(gè)參數(shù)可以確定一個(gè)伽馬分布,伽馬分布的概率密度函數(shù)如式(6)所示,式(6)也是判斷某一信號值處于某一位置的概率計(jì)算式。
其中,rn表示在狀態(tài)n(包括信道、beacon編號)下收到的單一值即的第n個(gè)分量,而ijα和ijβ表示對應(yīng)的第i個(gè)beacon第j個(gè)信道的伽馬分布參數(shù),通過式(6)可以計(jì)算出該值處于某位置的概率。
建立模型階段,在采集到每個(gè)位置的 3個(gè)beacon 3個(gè)信道上的RSSI數(shù)據(jù)后,可以在每個(gè)位置為每個(gè)beacon的每個(gè)信道的RSSI值都使用一個(gè)伽馬函數(shù)進(jìn)行擬合作為標(biāo)準(zhǔn)分布,計(jì)算各個(gè)位置的α和β參數(shù)。在定位階段,可以計(jì)算接收到的處于各個(gè)位置的概率,為了方便表示,記可以認(rèn)定不同位置不同信道的RSSI之間沒有相關(guān)性,根據(jù)樸素貝葉斯理論和之前得到的伽馬分布,分別計(jì)算處于5個(gè)位置的概率。
可以認(rèn)定接收終端處于不同位置的概率是相同的,即P(pi)為一個(gè)常數(shù)[19],同樣,每組RSSI值表示接收到的RSSI值的分布,也可以看成是一個(gè)定值,故式(7)可以簡化為
由于之前已經(jīng)使用 adaboost對收集到的RSSI值進(jìn)行預(yù)分類,可以確定該值處于前排或是后排,所以在比較時(shí),可以取該排3個(gè)位置的最大值作為定位的位置。
同時(shí)為了防止某個(gè)RSSI值在某個(gè)伽馬函數(shù)內(nèi)的概率為0而導(dǎo)致整個(gè)計(jì)算結(jié)果為0,在實(shí)際計(jì)算時(shí),對結(jié)果使用指數(shù)函數(shù)進(jìn)行處理,得到式(10)。
3.2.3 細(xì)分類器
為了防止在adaboost分類時(shí)的錯(cuò)誤導(dǎo)致伽馬擬合結(jié)果不正確,本文使用了細(xì)分類器對結(jié)果進(jìn)行校正。
支持向量機(jī)(SVM, support vector machine)是機(jī)器學(xué)習(xí)領(lǐng)域一種常用的、發(fā)展較為成熟的分類方法。傳統(tǒng)的SVM用于解決二分類的問題,其基本模型是定義在特征空間上的間隔最大的線性分類器[20]。對于線性可分的數(shù)據(jù),可以使用解決相應(yīng)的凸二次規(guī)劃問題來得到最大化間隔的分類函數(shù);而對于線性不可分的數(shù)據(jù),則需要使用核函數(shù)將數(shù)據(jù)映射到高維空間,在高維空間中解決線性問題[20]。分類所使用的特征與adaboost相同,是在每個(gè)位置收集到的3個(gè)藍(lán)牙信標(biāo)的3個(gè)信道的RSSI值,與adaboost不同的是,這里使用的分類并不僅僅是前后排的二分類,而是對所有位置的5分類。
傳統(tǒng)的SVM是二分類器,為了使SVM能夠適用于5分類,需要使用10個(gè)二分類器,在每兩類之間進(jìn)行一次分類,最終將結(jié)果整合,統(tǒng)計(jì)每個(gè)分類器的結(jié)果,選取得到分類結(jié)果最多的那個(gè)類作為最終分類結(jié)果。
在建立模型階段,使用訓(xùn)練數(shù)據(jù)建立出來一個(gè)模型;在定位階段,通過此模型計(jì)算接收終端處于不同位置的概率。
本文的研究中使用adaboost分類方法對前后排進(jìn)行分類,使用伽馬分布來計(jì)算接收到的R處于各個(gè)位置的概率,使用SVM方法來對接收終端的位置進(jìn)行校正。其中,使用adaboost分類方法和伽馬分布會(huì)得到第一次分類結(jié)果,使用SVM時(shí)會(huì)得到第2次的分類結(jié)果,所以在每收到一組數(shù)據(jù)時(shí),可以得到2個(gè)結(jié)果。
在實(shí)際應(yīng)用時(shí),需要綜合這3種方法來對位置進(jìn)行判斷,使用的方法為投票算法。如果第i次分類的結(jié)果為位置j,則位置j的票數(shù)+1;每收到一組n個(gè)數(shù)據(jù)時(shí),會(huì)得到2n個(gè)結(jié)果,分別統(tǒng)計(jì)各個(gè)位置得到的票數(shù),最后將票數(shù)最多的結(jié)果作為這次定位的最終結(jié)果。即每收到n個(gè)數(shù)據(jù)分組作為一輪,每輪結(jié)束時(shí),會(huì)對這n次的結(jié)果進(jìn)行統(tǒng)計(jì),分類次數(shù)最多的那個(gè)位置作為最終的位置,本過程的偽代碼如下。
在實(shí)際性能測試中,使用一輛5座轎車(車輛一)和一輛5座電動(dòng)車(車輛二)進(jìn)行測試。使用可以進(jìn)行信道區(qū)分的接收軟件進(jìn)行數(shù)據(jù)采集并按上述方法對數(shù)據(jù)進(jìn)行處理和分類,最終結(jié)果顯示,主駕駛、二排左位置和二排右位置正確率可以達(dá)到97%,副駕駛達(dá)到95%左右,二排中間位置正確率在90%左右。
在實(shí)驗(yàn)中,采用的藍(lán)牙信標(biāo)為自行開發(fā)的遵循iBeacon協(xié)議的BLE信標(biāo),如圖3所示。
圖3 BLE信標(biāo)
每輛車內(nèi)部都有兩排座位,BLE信標(biāo)部署的位置和接收終端的位置如圖 4所示。3個(gè) BLE信標(biāo)beacon1、beacon2和 beacon3,分別位于主駕駛的左上方、副駕駛的右上方和后排車頂中間車燈的位置,采集主駕駛、副駕駛、后排左側(cè)、后排右側(cè)和后排中間5個(gè)位置的數(shù)據(jù)。
圖4 車內(nèi)藍(lán)牙節(jié)點(diǎn)分布示意
將BLE信標(biāo)設(shè)定為500 ms發(fā)送一個(gè)數(shù)據(jù)分組,為了保證實(shí)驗(yàn)的準(zhǔn)確性,使用2種車,每種車進(jìn)行2次數(shù)據(jù)采集。采集過程中在每個(gè)位置的各個(gè)朝向都進(jìn)行了數(shù)據(jù)采集以保證數(shù)據(jù)的完整性。在2輛車的5個(gè)位置一共采集了4 559組數(shù)據(jù),每組數(shù)據(jù)包含在該位置收集到的3個(gè)beacon在3個(gè)廣播信道上的RSSI值(9個(gè)維度),按4:1的比例劃分訓(xùn)練集和測試集,分別用于建立模型和測試模型,得到了3 647組訓(xùn)練數(shù)據(jù)和912組測試數(shù)據(jù),為了獲得較好的應(yīng)用體驗(yàn),設(shè)定每收到6個(gè)數(shù)據(jù)分組(即采集時(shí)間3 s)輸出一個(gè)結(jié)果。
得到了訓(xùn)練數(shù)據(jù)后,對數(shù)據(jù)進(jìn)行處理。在卡爾曼濾波過程中,使用的數(shù)據(jù)誤差為 0.5,測量誤差為 1,標(biāo)準(zhǔn)值為收集到的第一個(gè)數(shù)據(jù)分組,使用這些參數(shù)進(jìn)行濾波,以第一排中間信標(biāo)beacon1的38信道收集的信號為例,圖5顯示了此處的信號濾波前后的對比圖像??梢钥闯?,濾波后的圖像與原始圖像相比較為平滑,且保存了原有的曲線走勢,濾波前RSSI值的平均數(shù)為-81.23,方差為20.53,濾波后平均數(shù)為-81.33,方差為7.10,可以認(rèn)為此濾波方法消除了特殊值的影響。
圖5 卡爾曼濾波前后對比
預(yù)分類過程。使用訓(xùn)練集中每個(gè)位置收到的3×3組數(shù)據(jù)作為訓(xùn)練特征,進(jìn)行前后排的分類,使用弱分類器進(jìn)行了 1~30次的訓(xùn)練,得到的正確率如圖 6所示。雖然已經(jīng)有研究表明,迭代次數(shù)越多,在訓(xùn)練集上得到的預(yù)測準(zhǔn)確率越高[20],但更多迭代次數(shù)對精度的提高并不明顯,同時(shí)為了防止過擬合,保證結(jié)果的準(zhǔn)確性和計(jì)算速度,在對測試集訓(xùn)練時(shí)使用了26次迭代。
圖6 adaboost不同迭代次數(shù)的正確率
伽馬函數(shù)擬合。使用每個(gè)位置訓(xùn)練集中的數(shù)據(jù)進(jìn)行伽馬分布擬合,分別計(jì)算每個(gè)位置、每個(gè)beacon每個(gè)信道的RSSI值擬合出來的伽馬分布函數(shù),用此函數(shù)作為標(biāo)準(zhǔn)分布函數(shù),對測試集進(jìn)行計(jì)算。
在5個(gè)位置3個(gè)beacon3個(gè)信道分別計(jì)算出α和β的值如表2所示。
表2 在5個(gè)位置3個(gè)beacon 3個(gè)信道使用伽馬擬合分別計(jì)算出的α和β值(部分)
取在不同位置某個(gè) beacon某個(gè)信道的原始分布和伽馬分布擬合的結(jié)果,如圖7所示,測試的原始數(shù)據(jù)分布情況是符合所設(shè)定的伽馬分布的。
采用SVM分類對缺失值補(bǔ)充、濾波處理后的數(shù)據(jù)進(jìn)行再次分類。通過采集到的數(shù)據(jù)發(fā)現(xiàn)數(shù)據(jù)是線性不可分的,為了更好地進(jìn)行分類,需要使用核函數(shù)將數(shù)據(jù)映射到高維空間,通過測試發(fā)現(xiàn)使用高斯核函數(shù)(RBF,radial basis function),把原始特征映射到無窮維核函數(shù)時(shí)的效果最優(yōu)。
結(jié)果整合。每收到6個(gè)數(shù)據(jù)分組時(shí),對得到的12個(gè)分類結(jié)果進(jìn)行整合,計(jì)算每個(gè)位置收到的分類器“投票”的票數(shù),并取票數(shù)最高的作為最終定位結(jié)果。
按照圖2中的流程,模型建立階段只需執(zhí)行一次,定位階段可以多次執(zhí)行。以第二種車的兩組數(shù)據(jù)為例,分別使用了第一組數(shù)據(jù)與第二組數(shù)據(jù)進(jìn)行模型建立,在正常的定位過程中,獲得了標(biāo)準(zhǔn)模型之后,后續(xù)的定位都應(yīng)該根據(jù)首次的標(biāo)準(zhǔn)模型進(jìn)行定位,故在下文中,使用第一組數(shù)據(jù)得到的模型稱為標(biāo)準(zhǔn)模型,以第二組中的數(shù)據(jù)為訓(xùn)練集得到的數(shù)據(jù)模型稱為二組模型。使用上述兩種模型對第二組數(shù)據(jù)進(jìn)行定位處理,得到的兩組準(zhǔn)確率如圖8所示。
圖7 不同位置原始分布與伽馬分布擬合圖像(部分)
圖8 通過標(biāo)準(zhǔn)模型和二組模型得到的準(zhǔn)確率
在第二輛車的5個(gè)位置中,通過標(biāo)準(zhǔn)模型計(jì)算出的準(zhǔn)確率平均值為 94.11%,通過二組模型計(jì)算出的準(zhǔn)確率平均值為 94.48%。2種模型從準(zhǔn)確率來看,差別并不大;從計(jì)算參數(shù)上看,粗分類器和細(xì)分類器的參數(shù)完全相同;主要差別體現(xiàn)在擬合參數(shù),表3和表4為2種模型獲得的擬合參數(shù)。
表3 標(biāo)準(zhǔn)模型擬合參數(shù)
為了直觀地表現(xiàn)2組參數(shù)的差異,繪制了幾組不同參數(shù)的伽馬分布如圖 9所示,其橫軸表示在式(6)中r的取值,縱軸為根據(jù)式(6)和α、β值計(jì)算出的對應(yīng)概率。
圖9(a)為主駕駛位beacon1 信道38的2種模型參數(shù)擬合,標(biāo)準(zhǔn)模型參數(shù)的α為 16.287 462 45,β為1.510 071 822,二組模型參數(shù)的α為14.823 689 52,β為1.604 142 498。圖9(b)為二排右beacon3信道39,標(biāo)準(zhǔn)模型參數(shù)的α為5.281 609 857,β為0.516 007 844,二組模型參數(shù)的α為5.052 166 039,β為0.529 292 595。
表4 二組模型擬合參數(shù)
圖9 不同位置標(biāo)準(zhǔn)模型參數(shù)和二組模型參數(shù)的擬合曲線
通過計(jì)算,這2種模型在同一取值下的概率之差不超過0.1,拐點(diǎn)和最值對應(yīng)的x值不超過3。通過以上分析可知,在同一輛車內(nèi)可以使用同一模型進(jìn)行定位。
4.4.1 準(zhǔn)確度分析
為了進(jìn)一步驗(yàn)證該算法的有效性,使用這兩輛車的數(shù)據(jù)分別進(jìn)行了4組實(shí)驗(yàn)。
第1組使用VehLoc方法,采集多信道多RSSI值并使用圖 2中的分類方法進(jìn)行分類處理。
第2組在同一環(huán)境下使用不區(qū)分信息的方法對數(shù)據(jù)進(jìn)行采集(即傳統(tǒng)方法,只記錄RSSI值,而不關(guān)心該RSSI值來自于哪個(gè)信道),分類方法同樣使用圖 2中的分類方法進(jìn)行分類處理。
第3組單獨(dú)使用37信道進(jìn)行定位,其余的數(shù)據(jù)不使用,分類方法同樣使用圖 2中的分類方法進(jìn)行分類處理。
第4組使用區(qū)分信道的方法接收數(shù)據(jù),但只使用37信道的數(shù)據(jù),并使用改進(jìn)的傳統(tǒng)3點(diǎn)定位方法[21]進(jìn)行分類處理,即在3點(diǎn)定位的基礎(chǔ)上,添加分類過程。
為了方便計(jì)算,為5個(gè)位置和3個(gè)beacon分別設(shè)置了坐標(biāo)如下:主駕駛(-90,0),副駕駛(90,0),二排左位置(-90, -100),二排中位置(0,-100),二排右位置(90, -100),beacon1(-100,0),beacon2(100,0),beacon3(0, -70)。
首先根據(jù)收到的RSSI值和傳統(tǒng)的RSSI距離式[22]分別計(jì)算當(dāng)前位置到3個(gè)beacon的距離
其中,A表示發(fā)射端和接收端相距1 m時(shí)的信號強(qiáng)度,這里取49;n為環(huán)境衰減因子,這里取4.5;d為計(jì)算出來的發(fā)射端和接收端的距離。在得到終端與3個(gè)beacon的距離之后,通過3點(diǎn)定位算法(如圖10所示)得到理論定位位置p,在5個(gè)車內(nèi)位置中,與p距離最近(歐幾里得距離)的點(diǎn)即為定位位置;準(zhǔn)確率計(jì)算為定位正確次數(shù)與定位次數(shù)的比值。
圖10 三點(diǎn)定位方法
圖10中3個(gè)圓的圓心分別為beacon1(坐標(biāo)設(shè)為-100,0),beacon2(坐標(biāo)設(shè)為 100,0)和beacon3所在位置(坐標(biāo)設(shè)為 0,-70),通過式(11)計(jì)算出當(dāng)前位置到3個(gè)圓心的距離分別為r1,r2,r3,由r1,r2,r3為半徑構(gòu)成的3個(gè)圓交點(diǎn)為p1,p2,p3,最終的定位位置p的坐標(biāo)為p1,p2,p3坐標(biāo)的均值
使用這4種方法最終得到的正確率如圖11(車輛1)和圖12(車輛2)所示。
從圖 11和圖 12可以看出,本文提出的方法(VehLoc)可以區(qū)分出車內(nèi)的5個(gè)位置,其中主駕駛位和二排左的準(zhǔn)確率可以達(dá)到97%,二排右和副駕駛位準(zhǔn)確率也能達(dá)到95%左右,二排中的預(yù)測準(zhǔn)確率相比其他4個(gè)位置較低,主要原因應(yīng)該是人員手持手機(jī)的方式或是座位的朝向?qū)y試造成影響,但這個(gè)位置基本不會(huì)影響對車內(nèi)人員主要位置的判斷。使用3點(diǎn)定位計(jì)算出來的分類精確度普遍比使用上文提到的分類方法準(zhǔn)確率低,這也說明了上文提到的分類方法可以提高定位的精確度。通過上述實(shí)驗(yàn)可以得出如下結(jié)論:使用區(qū)分信道方法的準(zhǔn)確率要高于不區(qū)分信道、使用單一信道的方法與使用傳統(tǒng)3點(diǎn)定位的方法,說明使用區(qū)分信道的方法可以提高車內(nèi)定位的精度。
與使用聲波的定位方法相比,本文提出的方法不需要用戶參與,同時(shí)沒有對車輛內(nèi)部過多地改造,使方法更容易移植和使用;與使用角速度定位的方法相比,本文提出的方法能夠在較短時(shí)間(3 s)內(nèi)返回定位結(jié)果,更加高效。
4.4.2 復(fù)雜度分析
本文在定位時(shí)分為線下模型建立與線上模型匹配2個(gè)階段。在進(jìn)行線上模型匹配的過程中,需要進(jìn)行卡爾曼濾波、粗粒度模型匹配、伽馬分布概率計(jì)算及粗粒度模型匹配,具體過程如下。
1) 卡爾曼濾波,如前文所述,可以通過一維濾波來實(shí)現(xiàn),對數(shù)據(jù)分組內(nèi)的各個(gè)維度分別處理以減少時(shí)間復(fù)雜度。
2) 粗粒度模型匹配需要利用決策樹,根據(jù)選取的特征進(jìn)行值判斷,得到二分類結(jié)果。
3) 分布擬合,通過計(jì)算伽馬函數(shù)來進(jìn)行概率計(jì)算,并選取排內(nèi)概率最大的作為定位位置。
4) 細(xì)粒度模型匹配則使用libsvm實(shí)現(xiàn),通過調(diào)用predict函數(shù),使用建立好的模型進(jìn)行5個(gè)位置的分類,為了方便計(jì)算,本文對libsvm的源代碼進(jìn)行了部分修改,將原本以文件形式傳輸?shù)臄?shù)據(jù)改為使用數(shù)組,以便于進(jìn)行定位處理,加快定位速度。
5) 結(jié)果整合,對每6個(gè)數(shù)據(jù)分組進(jìn)行次結(jié)果整合,分別計(jì)算各個(gè)位置被定位的次數(shù)一。
圖11 車輛1使用區(qū)分信道、不區(qū)分信道、單一信道和基于3點(diǎn)定位分類法的正確率對比
圖12 車輛2使用區(qū)分信道、不區(qū)分信道、單一信道和基于3點(diǎn)定位分類法的正確率對比
在實(shí)際定位時(shí),只需要進(jìn)行模型的匹配過程,所以時(shí)間復(fù)雜度并不高。本文使用了聯(lián)想PC機(jī),8 GB內(nèi)存、Win7系統(tǒng)對168條(28組)數(shù)據(jù)進(jìn)行定位處理,處理時(shí)間為1.26 s,準(zhǔn)確度為92.8%。設(shè)定500 ms進(jìn)行一次數(shù)據(jù)廣播,即在3 s內(nèi)可收到6個(gè)完整的數(shù)據(jù)分組,定位時(shí)間可以控制在5 s內(nèi)。由此可知,本文提出的方法可以在短時(shí)間內(nèi)對車內(nèi)人員的位置進(jìn)行判斷。
為了提高車輛的智能程度,為車內(nèi)乘客提供一個(gè)更加良好、智能的車內(nèi)環(huán)境,本文提出了一種基于多信道藍(lán)牙RSSI的車內(nèi)定位方法VehLoc。該方法可以充分利用不同信道頻率下 RSSI值的差異,結(jié)合卡爾曼濾波方法、伽馬函數(shù)擬合和相關(guān)分類方法進(jìn)行車內(nèi)定位。在車內(nèi)進(jìn)行大量數(shù)據(jù)采集并建立標(biāo)準(zhǔn)模型,在定位時(shí)使用標(biāo)準(zhǔn)模型進(jìn)行位置判斷。為了對本文提出的方法進(jìn)行評估與判斷,將兩次采集到的數(shù)據(jù)劃分為模型建立集與測試集,結(jié)果顯示,本文提出的VehLoc方法在車內(nèi)5個(gè)位置的準(zhǔn)確率都可達(dá)到90%,可以判斷用戶在車內(nèi)的位置。相對于目前已有的車內(nèi)定位方法,本文提出的方法能夠判斷所有乘客在車內(nèi)的位置,在定位過程中基本不需要用戶參與,對車內(nèi)駕駛員和乘客不會(huì)產(chǎn)生干擾,依靠現(xiàn)有的車內(nèi)電路即可進(jìn)行位置判斷,對車內(nèi)的影響也較小。
下一步的工作將研發(fā)更實(shí)用、高效的數(shù)據(jù)采集、訓(xùn)練方法,并采用多種智能終端作為接收終端,從而進(jìn)一步提高本文所述系統(tǒng)與方法的實(shí)用性與便利性。此外,本文提出的方法目前只適用于5座車,對于7座車或其他類型的車,還需要進(jìn)一步實(shí)驗(yàn)驗(yàn)證。