申思涵,洪 濤,吳楷文,張瑩瑩,翟 容,孫子文
(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122)
目前,借閱者借閱圖書時(shí),通常需按照?qǐng)D書索引號(hào)在特定區(qū)域?qū)ふ?,但大多借閱者缺少專業(yè)的圖書檢索知識(shí),要想在眾多書籍中找到目標(biāo)圖書費(fèi)時(shí)費(fèi)力。同時(shí),圖書亂放現(xiàn)象時(shí)有發(fā)生,更增加了尋找目標(biāo)圖書的難度。因此,研究設(shè)計(jì)一種能借助現(xiàn)代科學(xué)技術(shù),讓缺乏圖書管理專業(yè)知識(shí)的借閱者快速、高效地找到所需書籍的圖書識(shí)別定位管理系統(tǒng)尤為重要。
圖書定位問題的實(shí)質(zhì)是室內(nèi)定位問題,在能夠?qū)崿F(xiàn)室內(nèi)定位的多種技術(shù)中[1],射頻識(shí)別(Radio Frequency Identification,RFID)技術(shù)優(yōu)勢(shì)突出[2]。在自動(dòng)識(shí)別方面,RFID技術(shù)通過無線電信號(hào)識(shí)別特定目標(biāo)并讀寫相關(guān)數(shù)據(jù),而無需識(shí)別系統(tǒng)與特定目標(biāo)之間建立機(jī)械或光學(xué)接觸,此功能在校園一卡通、門禁系統(tǒng)以及電子不停車收費(fèi)等應(yīng)用中得到了廣泛應(yīng)用。在室內(nèi)定位方面,RFID技術(shù)主要利用非接觸式雙向射頻通信實(shí)現(xiàn)定位功能。由于RFID技術(shù)具有抗干擾及穿透能力強(qiáng)、定位范圍廣等優(yōu)勢(shì),相比紅外線、超聲波、GPS等技術(shù)具有更好的適應(yīng)性與優(yōu)越性。
目前已有基于RFID技術(shù)的定位算法的研究。文獻(xiàn)[3]提出了一種基于空間信息分析和梯度下降法的RFID三維空間定位算法,適用于倉庫管理等室內(nèi)定位系統(tǒng)的三維空間定位。該算法通過逐漸逼近并不斷修正的方式實(shí)現(xiàn),但在圖書館標(biāo)簽密集的環(huán)境下,標(biāo)簽間的互相干擾使算法不再適用。文獻(xiàn)[4]提出了一種閾值改進(jìn)型邊界虛擬參考標(biāo)簽定位算法,將邊界處的實(shí)體參考標(biāo)簽改為虛擬參考標(biāo)簽,與實(shí)體參考相比,提高了定位精度。此算法解決了實(shí)際參考標(biāo)簽信號(hào)易碰撞、部署不便的問題,但相對(duì)經(jīng)典LANDMARC算法[5]精度提升并不明顯。文獻(xiàn)[6]提出了基于RFID的虛擬參考三維定位算法,在用八個(gè)實(shí)體參考標(biāo)簽通過歐氏距離方法確定的六面體內(nèi),按RSSI(Received Signal Strength Indicator,RSSI)分割空間并引入八個(gè)虛擬標(biāo)簽確定一個(gè)面積更小的六面體,由此確定待定位標(biāo)簽的位置。在面積較大的圖書館中,由于圖書排列緊密,貼于圖書上的實(shí)體參考標(biāo)簽數(shù)量較多,若按六面體為單位二次分割空間,必然存在較大誤差,增加了快速定位目標(biāo)圖書的難度。
針對(duì)圖書館環(huán)境的特殊性,即藏書面積較大,圖書排列緊密的特點(diǎn),本文設(shè)計(jì)了一種智能圖書定位系統(tǒng)。通過改進(jìn)的基于RFID的三維定位算法[7],將二維層面的定位算法拓展到三維空間;在靜態(tài)模式定位的基礎(chǔ)上,將電子標(biāo)簽附于圖書上[8-9];通過電子標(biāo)簽發(fā)出的RSSI信號(hào)值在后臺(tái)進(jìn)行定位算法處理,定位算法引入虛擬參考標(biāo)簽,采用牛頓插值算法計(jì)算虛擬參考標(biāo)簽RSSI值。
由于在相同傳輸距離和環(huán)境下測(cè)量不同位置的信號(hào)存在誤差,因此引入對(duì)數(shù)路徑損耗模型[10]:
式中:PL(d)為路徑損耗;d0為近地參考距離;Xσ為服從均值為0,標(biāo)準(zhǔn)差為σ的高斯隨機(jī)變量,與所處的環(huán)境有關(guān)。利用式(1)可獲得標(biāo)簽的RSSI信號(hào)。
LANDMARC 算法通過參考標(biāo)簽定位參考點(diǎn)校準(zhǔn)目標(biāo)位置以實(shí)現(xiàn)定位,即采用統(tǒng)計(jì)學(xué)中“最近鄰居”思想。當(dāng)某個(gè)待測(cè)標(biāo)簽與參考標(biāo)簽的空間距離相近時(shí),它們對(duì)同一個(gè)RFID讀寫器的信號(hào)強(qiáng)度值相近,因此由系統(tǒng)選擇若干RSSI值與待測(cè)標(biāo)簽相近的參考標(biāo)簽作為定位時(shí)的參考標(biāo)簽[6]。
假設(shè)有M個(gè)讀寫器,A個(gè)參考標(biāo)簽,B個(gè)待測(cè)標(biāo)簽。設(shè)第i個(gè)參考標(biāo)簽、第j個(gè)待定位標(biāo)簽的RSSI矢量分別如式(2),式(3):
式中:Sim表示第m個(gè)讀寫器接收到的第i(1,2,…,A)個(gè)參考標(biāo)簽的RSSI值;Sjm表示第m個(gè)讀寫器接收到的第j(1,2,…,B)個(gè)待測(cè)標(biāo)簽的RSSI值。
第j個(gè)待測(cè)標(biāo)簽與第i個(gè)參考標(biāo)簽之間的信號(hào)強(qiáng)度歐氏距離[11]為:
Eij越小代表參考標(biāo)簽與待測(cè)標(biāo)簽之間的距離越近。矢量表示待測(cè)標(biāo)簽j與所有A個(gè)參考標(biāo)簽的RSSI歐氏距離矢量。
計(jì)算得出與待測(cè)標(biāo)簽j距離最近的k個(gè)參考標(biāo)簽,由最近臨法可計(jì)算待測(cè)標(biāo)簽j的位置坐標(biāo)[11],如式(5):
式中,ωi為第i個(gè)參考標(biāo)簽權(quán)重,由經(jīng)驗(yàn)公式可知:
定義單個(gè)標(biāo)簽的定位誤差為:
式中:(xj,yj)為由理論公式計(jì)算所得的待測(cè)標(biāo)簽j的坐標(biāo)值;(x,y)為待測(cè)標(biāo)簽j的實(shí)際坐標(biāo)。σ越小,表明定位誤差越小,定位精度越高。
LANDMARC算法通過選擇幾個(gè)信號(hào)強(qiáng)度值與待定位標(biāo)簽相近的參考標(biāo)簽,并對(duì)這些參考標(biāo)簽分配權(quán)值,從而計(jì)算待定位標(biāo)簽的坐標(biāo)。為提高定位精度,需布置大量實(shí)體參考標(biāo)簽,此舉不僅會(huì)增加成本,還會(huì)引入?yún)⒖紭?biāo)簽之間的射頻干擾。
與LANDMARC算法僅僅采用實(shí)體參考標(biāo)簽不同,VIRE算法提出了近似地圖的概念,將待測(cè)區(qū)域劃分為若干個(gè)網(wǎng)格,在這些網(wǎng)格的中心設(shè)一個(gè)虛擬參考標(biāo)簽。VIRE算法通過在定位區(qū)域中設(shè)置虛擬參考標(biāo)簽代替實(shí)體參考標(biāo)簽進(jìn)行定位,在降低定位系統(tǒng)成本的同時(shí)增加了定位精度。
每一個(gè)讀寫器都有自己的近似地圖,區(qū)域中心的虛擬參考標(biāo)簽數(shù)量為C。通過檢測(cè)標(biāo)簽發(fā)送射頻信號(hào),各讀寫器將讀取同一個(gè)待定位標(biāo)簽的信號(hào)強(qiáng)度值,生成待定位標(biāo)簽RSSI強(qiáng)度矩陣:
式中,Sjm為讀寫器m檢測(cè)到的標(biāo)簽j的RSSI值。
生成虛擬參考標(biāo)簽RSSI強(qiáng)度矩陣:
式中,θhm為讀寫器m檢測(cè)到虛擬參考標(biāo)簽h的RSSI值。
待定位標(biāo)簽j與區(qū)域中心虛擬參考標(biāo)簽h被同一讀寫器m檢測(cè)到的RSSI的差值為:
根據(jù)式(10)設(shè)置一個(gè)閾值,若虛擬參考標(biāo)簽的坐標(biāo)位置小于該閾值則記錄,大于該閾值的點(diǎn)舍去,這些被記錄下來的點(diǎn)將構(gòu)成一個(gè)集合[12]。如圖1所示有4個(gè)讀寫器,各讀寫器通過讀取RSSI值,在閾值限制下選取符合要求的可能的網(wǎng)格,再對(duì)4個(gè)讀寫器在閾值限定下選取的網(wǎng)格做交集運(yùn)算,篩選出可能性大的網(wǎng)格,則可得到虛擬參考標(biāo)簽所在的大致位置。
傳統(tǒng)定位算法適用于二維層面,而為適合圖書館三維環(huán)境,擬在經(jīng)典二維定位算法LANDMARC與VIRE的基礎(chǔ)上,構(gòu)建一個(gè)三維算法。鑒于圖書館室內(nèi)環(huán)境的特殊性,定位算法改進(jìn)的策略分如下兩步進(jìn)行:
(1)通過LANDMARC算法找到待定位標(biāo)簽所在書架;
圖1 VIRE算法中鄰近地圖思想圖解
(2)進(jìn)一步通過VIRE算法確定待定位標(biāo)簽的精確位置。
假設(shè)系統(tǒng)中共有M個(gè)讀寫器,A個(gè)實(shí)體參考標(biāo)簽,B個(gè)待定位標(biāo)簽,C個(gè)虛擬參考標(biāo)簽。定位模型如圖2所示。
通過用戶搜索激發(fā)定位系統(tǒng)工作。在數(shù)據(jù)庫中檢索,觸發(fā)讀寫器發(fā)送RSSI信號(hào)給待定位標(biāo)簽,待定位標(biāo)簽再將RSSI信號(hào)反饋給讀寫器,在參考標(biāo)簽的協(xié)助下,系統(tǒng)運(yùn)行定位算法,得到待定位標(biāo)簽的位置,并結(jié)合數(shù)據(jù)庫中的信息,將用戶搜集書籍的位置信息傳送到網(wǎng)頁,提供給用戶。
各讀寫器將讀取同一個(gè)待定位標(biāo)簽的信號(hào)強(qiáng)度值,通過比較每個(gè)參考標(biāo)簽到待定位標(biāo)簽的距離矢量,找到最接近待定位標(biāo)簽的臨近參考標(biāo)簽,即可確定待定位標(biāo)簽所在書架。
M個(gè)讀寫器讀取同一個(gè)待定位標(biāo)簽的RSSI,定義待定位標(biāo)簽j的信號(hào)強(qiáng)度矢量,即:
圖2 定位模型
B個(gè)待定位標(biāo)簽的強(qiáng)度矩陣為:
各讀寫器將讀取同一個(gè)實(shí)體參考標(biāo)簽的信號(hào)強(qiáng)度值,定義屬于實(shí)體參考的信號(hào)強(qiáng)度矢量公式,即:
A個(gè)實(shí)體參考標(biāo)簽的信號(hào)強(qiáng)度矩陣為:
對(duì)于待定位標(biāo)簽j,定義待定位標(biāo)簽與實(shí)體參考標(biāo)簽之間RSSI值的歐氏距離為[8]:
根據(jù)式(13)計(jì)算j=1,2,…,B時(shí)各個(gè)Eij的值,并比較其大小。Eij值最小時(shí)的實(shí)體參考標(biāo)簽便是距離待定位標(biāo)簽最近的參考標(biāo)簽,由此實(shí)體參考標(biāo)簽所在書架的位置便可得到待定位標(biāo)簽所在書架。
如圖3所示,在確定待定位標(biāo)簽所在書架后,對(duì)待定位標(biāo)簽臨近的兩個(gè)參考標(biāo)簽之間不斷取中點(diǎn),并在中點(diǎn)處設(shè)置虛擬參考標(biāo)簽。
圖3 虛擬參考標(biāo)簽示意圖
2.3.1 虛擬參考標(biāo)簽及其RSSI信號(hào)強(qiáng)度
虛擬參考標(biāo)簽非真實(shí)存在,只是在VIRE算法的近似地圖中假設(shè)各網(wǎng)格中均有一個(gè)虛擬標(biāo)簽,并通過線性插值法求出虛擬參考標(biāo)簽的信號(hào)強(qiáng)度值。插值法在某區(qū)間中根據(jù)若干點(diǎn)已知值為輸入變量,利用插值函數(shù)作為目標(biāo)點(diǎn)的近似值[6]。由于室內(nèi)環(huán)境存在較大干擾,標(biāo)簽RSSI值與距離為非線性關(guān)系,常規(guī)線性差值難以逼近虛擬標(biāo)簽的RSSI,本文采用牛頓插值法求解虛擬參考標(biāo)簽的RSSI值[10]。
在圖書館的三維定位算法中,通過尋找n個(gè)插值節(jié)點(diǎn)處標(biāo)簽RSSI值構(gòu)造的插值函數(shù)與n+1個(gè)插值節(jié)點(diǎn)處標(biāo)簽RSSI值構(gòu)造的插值函數(shù)之間的關(guān)系,求解區(qū)域某個(gè)待測(cè)點(diǎn)的值,得到虛擬標(biāo)簽RSSI,其中自變量是標(biāo)簽的信號(hào)強(qiáng)度值。
牛頓插值表達(dá)式為:
式中:ci(i=0,1,2,…,n)為多項(xiàng)式系數(shù);x為虛擬參考標(biāo)簽。
f(·)為對(duì)應(yīng)函數(shù)值,即:
基于牛頓插值法思想,采用分段方法對(duì)虛擬參考標(biāo)簽RSSI進(jìn)行計(jì)算。首先,將每個(gè)參考標(biāo)簽之間劃分為更小的網(wǎng)格,將參考標(biāo)簽的RSSI建模為標(biāo)簽與讀寫器之間的距離函數(shù),并將所有參考標(biāo)簽與讀寫器的距離進(jìn)行排序、分組。假設(shè)將所有參考標(biāo)簽的距離排序后分為n組,利用牛頓插值算法求得虛擬標(biāo)簽RSSI。
式中:S(l)為信號(hào)強(qiáng)度值;S0為初始信號(hào)強(qiáng)度值;l為總距離;lk為第k個(gè)分組的兩標(biāo)簽間的距離;為牛頓插值函數(shù);ωk=lk-lk-1。
2.3.2 精確定位標(biāo)簽位置
采用VIRE算法的相近地圖原理,求出待定位標(biāo)簽的坐標(biāo)。
各讀寫器將讀取同一個(gè)虛擬參考標(biāo)簽的信號(hào)強(qiáng)度值,定義屬于虛擬參考標(biāo)簽的信號(hào)強(qiáng)度矢量為:
設(shè)C個(gè)虛擬參考標(biāo)簽的強(qiáng)度矩陣:
定義待定位標(biāo)簽與虛擬參考標(biāo)簽之間RSSI值的歐氏距離為:
式(13)和(20)分別表示了待定位標(biāo)簽與實(shí)體參考標(biāo)簽或虛擬參考標(biāo)簽的距離。為得到待定位參考標(biāo)簽的位置,預(yù)先設(shè)定一個(gè)閾值,若待定位標(biāo)簽與參考標(biāo)簽之間的RSSI值的歐氏距離Eij或Ehj小于或等于閾值,則近似認(rèn)為該定位標(biāo)簽為對(duì)應(yīng)的參考標(biāo)簽處的位置。
采用二分法定位標(biāo)簽的位置:
(1)根據(jù)式(15)得到待定位標(biāo)簽X與實(shí)體參考標(biāo)簽之間的RSSI的歐氏距離Eij,比較i=1,2,…,A時(shí)的歐氏距離,最小時(shí)即可得到距離待定位標(biāo)簽最近的實(shí)體參考標(biāo)簽,由此確定待定位標(biāo)簽所在書架。
(2)比較待定位標(biāo)簽與所在書架兩端實(shí)體參考標(biāo)簽P1,P2的歐氏距離,若EP1X,EP2X均大于設(shè)定閾值,且EP1X<EP2X,則取P1,P2中點(diǎn)Q1,設(shè)置Q1處為虛擬參考標(biāo)簽。
(3)根據(jù)式(17)計(jì)算Q1處虛擬參考標(biāo)簽的RSSI,根據(jù)式(13)、式(20)計(jì)算待定位標(biāo)簽與P1,Q1的歐氏距離。若EP1X,EQ1X均大于設(shè)定閾值,且 EQ1X<EP1X,則取 P1,Q1中點(diǎn)Q2,設(shè)置Q2處為虛擬參考標(biāo)簽。
(4)根據(jù)式(17)計(jì)算Q2處虛擬參考標(biāo)簽信號(hào)強(qiáng)度,根據(jù)式(13)、式(20)計(jì)算待定位標(biāo)簽與Q1,Q2的歐氏距離EQ1X,EQ2X。若 EQ1X,EQ2X均大于設(shè)定閾值,且 EQ1X<EQ2X,則取 Q1,Q2中點(diǎn) Q3。
(5)反復(fù)迭代循環(huán)步驟(2)~(4),直到所得實(shí)體或虛擬參考標(biāo)簽與待定位標(biāo)簽的歐氏距離小于閾值,則此參考標(biāo)簽的位置即為待定位標(biāo)簽的位置。
為驗(yàn)證三維改進(jìn)算法相對(duì)二維算法的適用性和加入虛擬參考標(biāo)簽后的準(zhǔn)確性,使用Matlab仿真軟件分別對(duì)LANDMAEC,VIRE以及改進(jìn)的三維定位算法的定位性能進(jìn)行仿真實(shí)驗(yàn),其中三維定位算法分別在有虛擬參考標(biāo)簽和無虛擬參考標(biāo)簽的情況下進(jìn)行仿真實(shí)驗(yàn)。
初始設(shè)置:網(wǎng)格數(shù)a=8,路徑損耗指數(shù)N=2,高斯噪聲標(biāo)準(zhǔn)差σ=2。
仿真環(huán)境:圖4和圖5中,在8 m×8 m的室內(nèi)環(huán)境設(shè)置4個(gè)RFID讀寫器,9個(gè)參考標(biāo)簽,標(biāo)簽均勻間距為2 m;在圖5中增加16個(gè)虛擬參考標(biāo)簽,間距為2 m。
仿真環(huán)境:圖6和圖7中,在8 m×8 m×8 m的室內(nèi)環(huán)境設(shè)置8個(gè)RFID讀寫器,32個(gè)參考標(biāo)簽;圖7中增加16個(gè)虛擬參考標(biāo)簽,間距為2 m。
圖4所示為LANDMARC算法仿真實(shí)驗(yàn)結(jié)果。6枚待定位標(biāo)簽的定位誤差分別為0.78 m,0.99 m,1.30 m,0.50 m,0.54 m,0.70 m。最大誤差約為1.30 m,最小誤差約為0.50 m,LANDMARC算法測(cè)得的平均誤差為0.8 m。
圖5所示為VIRE算法仿真實(shí)驗(yàn)結(jié)果。6枚待定位標(biāo)簽的定位誤差分別為0.81 m,0.32 m,0.36 m,0.71 m,0.51 m,0.86 m。最大誤差約為0.86 m,最小誤差約為0.32 m,VIRE算法測(cè)得的平均誤差為0.59 m。
圖4 LANDMARC算法定位性能
圖6所示為三維改進(jìn)算法不加入虛擬參考標(biāo)簽的仿真實(shí)驗(yàn)結(jié)果。6枚待定位標(biāo)簽的定位誤差分別為1.68 m,0.69 m,1.83 m,1.67 m,1.78 m,1.11 m。最大誤差約為1.83 m,最小誤差約為0.69 m,測(cè)得的平均誤差為1.56 m。
圖7所示為三維改進(jìn)算法加入虛擬參考標(biāo)簽的仿真實(shí)驗(yàn)結(jié)果。6枚待定位標(biāo)簽的定位誤差分別為0.63 m,1.00 m,1.52 m,1.10 m,0.89 m,0.95 m。最大誤差約為1.52 m,最小誤差約為0.63 m,測(cè)得的平均誤差為1.02 m。
圖5 VIRE算法仿真結(jié)果
圖6 三維改進(jìn)算法仿真(無虛擬標(biāo)簽)
圖7 三維改進(jìn)算法仿真(有虛擬標(biāo)簽)
為更清晰、科學(xué)地對(duì)比各算法對(duì)待定位標(biāo)簽的預(yù)測(cè)精度,各算法最大誤差、最小誤差及平均誤差見表1所列。
表1 各算法的定位誤差對(duì)比
由表1可知,VIRE算法的定位誤差相比LANDMARC算法明顯減小,定位精度更優(yōu)。但LANDMARC算法和VIRE算法均停留在二維層面,不能用于實(shí)際的圖書定位場(chǎng)景。三維定位算法在LANDMARC和VIRE基礎(chǔ)上進(jìn)行了擴(kuò)展,雖然誤差對(duì)比二維定位較大,但可實(shí)現(xiàn)三維室內(nèi)圖書定位。
此外,由表1可見,加入虛擬標(biāo)簽后,定位精度比不加虛擬標(biāo)簽時(shí)的定位精度有所提高。
本文在研究傳統(tǒng)LANDMRAC算法和VIRE算法的基礎(chǔ)上,將二維層面的定位算法拓展到三維空間,提出了基于RFID的圖書三維定位算法。主要通過引入虛擬參考標(biāo)簽,并在牛頓插值算法的基礎(chǔ)上改進(jìn)虛擬參考標(biāo)簽RSSI計(jì)算方法。最后應(yīng)用Matlab完成了對(duì)算法的仿真,并分析了其相比于傳統(tǒng)算法的定位效果,結(jié)果表明所提算法提高了定位精度,能夠更好地適應(yīng)圖書館環(huán)境。