曹夢(mèng)凡 李佩玲 唐軻



摘要:針對(duì)盲人的出行需求,設(shè)計(jì)并開(kāi)發(fā)了一款盲道導(dǎo)航軟件,引導(dǎo)盲人在盲道上行走,幫助盲人感知道路,保障盲人安全出行。該文首先介紹了該軟件的功能設(shè)計(jì)和數(shù)據(jù)組織方式。其次,就系統(tǒng)開(kāi)發(fā)使用的關(guān)鍵技術(shù),即Socket通信技術(shù)與基于Dijkstra算法的最短路徑規(guī)劃進(jìn)行介紹。最后,使用該軟件在徐州選定的街區(qū)進(jìn)行實(shí)地測(cè)試,探究軟件的可行性。
關(guān)鍵詞:盲道導(dǎo)航;Dijkstra算法;最短路徑規(guī)劃
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)30-0082-04
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
據(jù)相關(guān)數(shù)據(jù)統(tǒng)計(jì),截至2018年中國(guó)盲人數(shù)量已達(dá)到1700萬(wàn)人[1]。然而,我們?cè)谌粘I钪泻茈y看到盲人和視障患者的身影,出行難、出行機(jī)會(huì)少、出行范圍小已經(jīng)成為盲人群體亟待解決的問(wèn)題。
人類獲取外部信息的最主要感官為視覺(jué),因此視障人群很難判斷周圍物體的位置和相對(duì)關(guān)系,造成生活中的諸多不便[2]。如今盲人出行已有諸多無(wú)障礙設(shè)施和產(chǎn)品的幫助,但固定的無(wú)障礙設(shè)施使用場(chǎng)景限定,不足以滿足盲人的出行需求,這就需要便攜的導(dǎo)盲工具。當(dāng)前盲人大多還是借助盲杖或?qū)と鲂校忻嫔弦查_(kāi)發(fā)出了多種導(dǎo)盲產(chǎn)品,例如電子導(dǎo)盲杖、導(dǎo)盲眼鏡、導(dǎo)盲機(jī)器人等[3]。盲杖簡(jiǎn)單易使用,但功能單一,導(dǎo)盲犬靈活,但資源有限且受外界影響大,電子導(dǎo)盲產(chǎn)品設(shè)計(jì)先進(jìn)、功能齊全,但價(jià)格昂貴,不足以普及。而導(dǎo)航系統(tǒng)操作方便、普及率高、成本低,為生活出行帶來(lái)了極大的便利。
針對(duì)盲人群體特殊的空間認(rèn)知,綜合導(dǎo)航系統(tǒng)的優(yōu)點(diǎn),本文旨在基于盲道建設(shè)上,專為盲人設(shè)計(jì)一款智能語(yǔ)音化的盲道導(dǎo)航系統(tǒng),以解決盲人的出行問(wèn)題,實(shí)現(xiàn)路徑引導(dǎo),增強(qiáng)盲人的安全感與方向感。
1系統(tǒng)設(shè)計(jì)
1.1系統(tǒng)建設(shè)目標(biāo)
通過(guò)外業(yè)調(diào)查、測(cè)繪采集以及內(nèi)業(yè)處理等工作,建立盲道地理空間數(shù)據(jù)庫(kù),以該數(shù)據(jù)庫(kù)為基礎(chǔ),依托計(jì)算機(jī)科學(xué)、地理信息系統(tǒng)(GIS)、移動(dòng)互聯(lián)網(wǎng)等技術(shù),設(shè)計(jì)并開(kāi)發(fā)一套低成本、語(yǔ)音化的“基于路徑智能規(guī)劃的盲道搜索與導(dǎo)航系統(tǒng)”。該系統(tǒng)針對(duì)盲人設(shè)計(jì),可以實(shí)現(xiàn)盲道路徑規(guī)劃與導(dǎo)航,通過(guò)設(shè)置常用地址簡(jiǎn)化導(dǎo)航功能,在危險(xiǎn)情況下可通過(guò)呼叫緊急聯(lián)系人和應(yīng)急報(bào)警功能實(shí)現(xiàn)盲人初步自救。本系統(tǒng)旨在解決盲人出行難、困難多、尋求幫助不便利的問(wèn)題,為盲人出行提供便捷有力的服務(wù)。
1.2 系統(tǒng)功能設(shè)計(jì)
本盲道導(dǎo)航系統(tǒng)以百度地圖的Android地圖SDK、Android定位SDK為基礎(chǔ),百度地圖SDK是基于Android開(kāi)發(fā)語(yǔ)言編寫的應(yīng)用程序接口,在本項(xiàng)目中主要借助了地圖顯示、定位、點(diǎn)線繪制、路線規(guī)劃四項(xiàng)技術(shù)。
由于盲人對(duì)空間感知的不全面、對(duì)地理要素的認(rèn)識(shí)缺少以及較低的應(yīng)急處理能力,盲人出行除了核心的盲道導(dǎo)航功能之外,他們還需要一些輔助功能來(lái)幫助他們?cè)谕庑凶邥r(shí)能夠應(yīng)對(duì)多變的環(huán)境狀況和不可預(yù)測(cè)的突發(fā)情況。因此,我們?cè)诮Y(jié)合現(xiàn)有導(dǎo)航軟件的基礎(chǔ)上,考慮到盲人群體的特殊性,簡(jiǎn)化融合,在主菜單界面設(shè)計(jì)了以下五大主要功能:
1)發(fā)送位置信息
用戶可通過(guò)該功能向緊急聯(lián)系人以短信的形式發(fā)送實(shí)時(shí)位置信息。該功能利用Android中的SmsManager(短信管理器)管理短信操作,首先獲取收信人號(hào)碼和短信文字內(nèi)容包括時(shí)間、位置、經(jīng)度、緯度相關(guān)字符串,通過(guò)SmsManager類和sendTextMessage()方法調(diào)用系統(tǒng)的短信接口進(jìn)行短信發(fā)送,當(dāng)用戶確認(rèn)相關(guān)內(nèi)容后即發(fā)送給收信人。
2)當(dāng)前位置播報(bào)
盲人無(wú)法以視覺(jué)方式去認(rèn)識(shí)客觀世界,他們只能通過(guò)觸覺(jué)、聽(tīng)覺(jué)等其他非視覺(jué)感知方式去獲取外界信息,因而,他們所感知的地理信息也與常人不同[1]。即使是弱視力的視障人士也很難在復(fù)雜的外界環(huán)境信息中準(zhǔn)確地作出判斷,這些都極大程度地阻礙了他們?cè)谛凶咧信袛喾轿弧@取地理要素以及作出相應(yīng)反應(yīng)的能力。所以,對(duì)于盲人來(lái)說(shuō),知曉自己當(dāng)前所處位置是十分重要的。“當(dāng)前位置播報(bào)”功能調(diào)取用戶當(dāng)前GPS定位信息,通過(guò)BDLocation類的各種getLatitude()、getLongitude()等get方法獲得一系列定位相關(guān)的全部結(jié)果,并以語(yǔ)音播報(bào)形式告知用戶,包括時(shí)間、位置、經(jīng)緯度。其中,語(yǔ)音播報(bào)采用Android原生的TTS(TextToSpeech)接口,其基本使用主要通過(guò)實(shí)例并初始化TTS對(duì)象,使用textToSpeech.speak()方法進(jìn)行簡(jiǎn)單播報(bào),并可用setPitch()和setSpeechRate()方法控制音調(diào)和語(yǔ)速。
3)選擇常用地址
鑒于盲人出行的不便利,他們出行往往去向幾處固定的地點(diǎn)。在系統(tǒng)設(shè)置中,允許盲人進(jìn)行常用地址的編輯與存儲(chǔ),添加方式分為手動(dòng)輸入和設(shè)定當(dāng)前位置為常用地址兩種方式。盲人在需要導(dǎo)航時(shí)可直接通過(guò)該功能呼出常用地址列表,選擇地址進(jìn)行導(dǎo)航,提高便利性,高效完成固定路線的導(dǎo)航。
4)呼叫緊急聯(lián)系人
“呼叫緊急聯(lián)系人”功能幫助盲人在盲道導(dǎo)航中也能快速向緊急聯(lián)系人撥號(hào),完成及時(shí)便捷的通話。該功能同樣使用Android平臺(tái)TelephonyManager(電話管理器)調(diào)用撥號(hào)器撥打指定電話號(hào)碼,主要為getSystemService()獲得TelephonyManager的服務(wù)對(duì)象,將電話號(hào)碼轉(zhuǎn)為uri,實(shí)例化intent,設(shè)置ACTION_CALL和uri參數(shù)跳轉(zhuǎn)到撥號(hào)界面直接撥打電話。
5)應(yīng)急報(bào)警
考慮到盲人易遇危險(xiǎn)以及遇到危險(xiǎn)后難以尋求幫助的情況,我們?cè)O(shè)計(jì)了應(yīng)急報(bào)警的功能模塊。在該功能模塊中,盲人可向常用報(bào)警電話快速撥號(hào)。
1.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
為實(shí)現(xiàn)盲道導(dǎo)航系統(tǒng)的導(dǎo)航功能和登錄等其他基本功能,本系統(tǒng)利用SQL Server數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),主要包括地理空間數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)。為方便測(cè)試,本項(xiàng)目團(tuán)隊(duì)在江蘇省徐州市云龍湖景區(qū)東南方向的一個(gè)街區(qū)(34°13′7″N-34°13′41″N,117°9′8″E-117°10′1″E)采集盲道數(shù)據(jù),該街區(qū)地圖如圖2所示。
1.3.1 地理空間數(shù)據(jù)組織
地理數(shù)據(jù)即為試驗(yàn)區(qū)域采集所得的盲道上的點(diǎn)數(shù)據(jù)及其連成的盲道線數(shù)據(jù)。盲道上點(diǎn)數(shù)據(jù)是通過(guò)RTK(Real-time kinematic,實(shí)時(shí)動(dòng)態(tài)載波相位差分測(cè)量技術(shù))獲取的厘米級(jí)精度的數(shù)據(jù),保證了盲道位置信息的準(zhǔn)確性,從而一定程度上提高移動(dòng)終端的定位精度。點(diǎn)數(shù)據(jù)組織結(jié)構(gòu)如表1所示,為保證點(diǎn)可被檢索,將點(diǎn)號(hào)設(shè)置為主鍵且作為唯一標(biāo)識(shí)字段。
獲得的點(diǎn)數(shù)據(jù)按實(shí)際情況依順序連接得到盲道線數(shù)據(jù),對(duì)該數(shù)據(jù)進(jìn)行處理,在CAD中結(jié)合路的拐點(diǎn)和道路實(shí)際狀況將其打斷,最終在試驗(yàn)區(qū)中得到30條盲道線段;然后在ArcGIS 10.2中獲取每條線段的長(zhǎng)度。為便于后續(xù)盲道路徑規(guī)劃算法實(shí)現(xiàn),為每條線段編號(hào),并存儲(chǔ)每條線段鄰接的線號(hào)集合,線數(shù)據(jù)組織如表2所示。為避免后續(xù)算法執(zhí)行時(shí)每次都遍歷所有線,每條路段都將被存儲(chǔ)為一個(gè)獨(dú)立的表,根據(jù)起點(diǎn)和終點(diǎn)的實(shí)際情況,對(duì)需要的盲道線數(shù)據(jù)進(jìn)行數(shù)據(jù)調(diào)取,減少客戶端訪問(wèn)服務(wù)器的次數(shù),保證該系統(tǒng)的健壯性。
1.3.2用戶數(shù)據(jù)組織
用戶信息表用來(lái)存儲(chǔ)用戶注冊(cè)時(shí)提交的個(gè)人信息以及與用戶綁定的緊急聯(lián)系人的聯(lián)系方式,為每一位用戶分配唯一的用戶ID來(lái)標(biāo)識(shí)不同用戶。用戶信息的存儲(chǔ)結(jié)構(gòu)如表3所示。
2 系統(tǒng)關(guān)鍵技術(shù)
2.1 Socket通信技術(shù)
本軟件采用Socket(套接字)實(shí)現(xiàn)客戶端與服務(wù)器端雙向可靠連接的實(shí)時(shí)通信。Socket是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元[4],它是應(yīng)用層與TCP/IP協(xié)議族通信的復(fù)雜操作抽象化的一組通信接口[5],具有穩(wěn)定、傳輸數(shù)據(jù)量小的特點(diǎn),適合于客戶端與服務(wù)器端之間的信息實(shí)時(shí)交互。
在通信過(guò)程中,客戶端是主動(dòng)的,服務(wù)端是被動(dòng)的。在服務(wù)端,首先創(chuàng)建服務(wù)器Socket對(duì)象,將其與一個(gè)特定地址(IP地址+端口號(hào))綁定,服務(wù)端監(jiān)聽(tīng)器持續(xù)監(jiān)聽(tīng)該端口,等待客戶端發(fā)送連接請(qǐng)求;在客戶端,同樣創(chuàng)建Socket對(duì)象,由連接服務(wù)器的線程connectThread向服務(wù)器發(fā)送連接請(qǐng)求,從而建立起二者連接。此時(shí),客戶端可以向服務(wù)端請(qǐng)求盲道數(shù)據(jù),服務(wù)端從數(shù)據(jù)庫(kù)調(diào)出數(shù)據(jù),并將其轉(zhuǎn)換成字符串,由SendCallback()函數(shù)調(diào)起數(shù)據(jù)發(fā)送線程將字符串發(fā)送給客戶端,完成服務(wù)端與客戶端的數(shù)據(jù)傳輸。客戶端的發(fā)送數(shù)據(jù)線程sendThread、接收數(shù)據(jù)線程ReceiveThread與服務(wù)器端的發(fā)送信息線程SendData、接受信息線程ReceiveCallback相互合作完成數(shù)據(jù)的傳輸。Socket通信過(guò)程如圖3所示。
2.2基于Dijkstra算法的盲道路徑規(guī)劃
2.2.1 Dijkstra算法的基本原理
Dijkstra算法是1959年由荷蘭計(jì)算機(jī)科學(xué)家Dijkstra提出的圖論中求最短路徑的常用算法[6]。該算法可求得圖中一點(diǎn)到其他任一頂點(diǎn)的最短路徑[7]。它是求解單源最短路徑問(wèn)題所使用的最廣泛和最經(jīng)典的算法。
Dijkstra算法執(zhí)行的基本步驟是:首先建立一個(gè)用于保存已找到最短路徑的結(jié)點(diǎn)集合T和一個(gè)用于保存源結(jié)點(diǎn)[v0]到其余結(jié)點(diǎn)[vi]的最短距離的數(shù)組D,然后按以下步驟進(jìn)行:
1)初始化:遍歷所有結(jié)點(diǎn),初始化數(shù)組D,其中[v0]的最短路徑被賦值為[D0=0],對(duì)于[v0]能直接到達(dá)的點(diǎn)的最短路徑[Di]賦值為[v0]與[vi]的距離,不能直接到達(dá)的結(jié)點(diǎn)的最短路徑賦值為無(wú)窮大。集合T初始化為[T=v0]。
2)更新結(jié)點(diǎn)集合T:從數(shù)組D中選取最小值,將該值對(duì)應(yīng)的結(jié)點(diǎn)加入集合T中。
3)判斷新加入集合T的結(jié)點(diǎn)是否有其他出度,若有,判斷其最短路徑是否比數(shù)組D中的值小,如果是,就替換數(shù)組D中的值。
4)重復(fù)2)、3),直至集合T包含所有結(jié)點(diǎn)。
2.2.2盲道最短路徑規(guī)劃
在選取最短路徑算法時(shí),需要遵循以下3個(gè)原則:①算法運(yùn)行速度快;②盡可能少地占用系統(tǒng)資源;③算法具有較好的穩(wěn)定性[8]。Dijkstra算法可以得出最短路徑的最優(yōu)解,但是由于它需要遍歷計(jì)算所有結(jié)點(diǎn),將每一個(gè)結(jié)點(diǎn)作為集合中的對(duì)象參與算法運(yùn)算,所以在數(shù)據(jù)量繁多的時(shí)候運(yùn)算速度不是很理想,效率相對(duì)較低。
為了在一定程度上提高算法的計(jì)算效率,我們將算法的輸入集進(jìn)行優(yōu)化,將盲道路段抽象為結(jié)點(diǎn),路段長(zhǎng)度抽象為邊。同時(shí)需要保證每一條盲道線數(shù)據(jù)首尾相接,端點(diǎn)重合,使得抽象后的結(jié)點(diǎn)在算法空間中的數(shù)據(jù)意義保持不變。抽象后就只需遍歷線集而非點(diǎn)集,從而減少了算法運(yùn)行時(shí)所需的數(shù)據(jù)量。這樣,原本的源結(jié)點(diǎn)就轉(zhuǎn)變?yōu)槌橄蠛蟮钠瘘c(diǎn)所在路段。
為實(shí)現(xiàn)在盲道上的導(dǎo)航,需要將盲人引導(dǎo)到盲道上,因此需要將整個(gè)導(dǎo)航路徑分解成三部分:①盲人所在起點(diǎn)--盲道上起點(diǎn);②盲道上起點(diǎn)--盲道上終點(diǎn);③盲道上終點(diǎn)--目的地。其中,①和③采用百度地圖提供的找路算法,②采用本文提出的基于Dijkstra優(yōu)化的盲道尋徑算法。
盲道最短路徑規(guī)劃主要包括以下4個(gè)步驟:
1)計(jì)算垂點(diǎn)。獲取盲人所在起點(diǎn)和終點(diǎn)后,計(jì)算兩點(diǎn)到盲道線集中最鄰近的路段的垂點(diǎn)d1、d2,并確定垂點(diǎn)所在線的線號(hào)及其相鄰兩點(diǎn)在該線段上的編號(hào)。以d1、d2為分割點(diǎn)將所在路段分割為兩條路段,得到新線集SL。SL根據(jù)下一步驟尋徑路線的順逆情況而不同,本文研究區(qū)域內(nèi)該線集共計(jì)30條線段,d1、d2分別作為盲道上的初始起點(diǎn)和初始終點(diǎn)。
2)當(dāng)d1、d2在同一條路段上時(shí),由d1、d2及其間結(jié)點(diǎn)組成初始尋徑結(jié)果點(diǎn)集Rinitial。當(dāng)d1、d2不在同一條盲道路段上時(shí),執(zhí)行尋徑算法。由于線被抽象成點(diǎn),納入矩陣計(jì)算的線長(zhǎng)按線段上點(diǎn)序分為順序行走和逆序行走,兩種不同的情況會(huì)導(dǎo)致線的鄰接關(guān)系和路徑長(zhǎng)度發(fā)生改變。因此我們將依據(jù)(1)中得到的新線集SL構(gòu)建4個(gè)不同的鄰接矩陣M,分別對(duì)應(yīng)①d1所在線順序走出,d2所在線順序進(jìn)入;②d1所在線順序走出,d2所在線逆序進(jìn)入;③d1所在線逆序走出,d2所在線順序進(jìn)入;④d1所在線逆序走出,d2所在線逆序進(jìn)入四種情況。因此,N×N的鄰接矩陣M根據(jù)式(1)賦值:
[Mij=∞ ,? li、lj不鄰接|lj| ,? li、lj鄰接i,j∈1,2,…,N]? ? ? ? ? ?(1)
其中[li、lj]為任意兩條盲道路段,[|lj|]為[lj]路段的長(zhǎng)度,N為總路段數(shù)。
生成鄰接矩陣后依照傳統(tǒng)Dijkstra算法獲得最短路徑樹(shù),將初始尋徑結(jié)果點(diǎn)集Rinitial連成線即為初始導(dǎo)航路徑。
此時(shí),將該盲道導(dǎo)航路徑與盲道外的百度尋徑結(jié)果拼接,理論上拼接結(jié)果即為用戶起點(diǎn)到目的地的完整導(dǎo)航路徑。但經(jīng)測(cè)試發(fā)現(xiàn),由于百度地圖導(dǎo)航的數(shù)據(jù)源中并不包含盲道數(shù)據(jù),拼接結(jié)果可能存在路徑相交或重疊的情況,如圖4所示。因此,執(zhí)行步驟3)及步驟4),對(duì)該導(dǎo)航路徑進(jìn)行調(diào)整。
(藍(lán)色點(diǎn):用戶導(dǎo)航起點(diǎn);藍(lán)色線:百度導(dǎo)航路徑;紅色:盲道路徑)
3)計(jì)算初始導(dǎo)航路徑的頭尾分別與百度地圖的尋徑結(jié)果的第一個(gè)交點(diǎn),將兩個(gè)交點(diǎn)定義為盲道上的新起點(diǎn)[d1']和新終點(diǎn)[d2']。
4)根據(jù)[d1']、[d2'],重新生成結(jié)果集,得到更新后的尋徑結(jié)果Rupdate,將其與百度尋徑結(jié)果拼接,將最終導(dǎo)航結(jié)果點(diǎn)集Rfinal可視化。
盲道路徑規(guī)劃的流程圖如圖5所示。
對(duì)于結(jié)點(diǎn)數(shù)量為n的圖,傳統(tǒng)Dijkstra算法求解最短路徑需要迭代n-1次,在最差情況下的時(shí)間復(fù)雜度為[On2]。以本文研究區(qū)域?yàn)槔灿?jì)188個(gè)結(jié)點(diǎn),30條盲道路段。則優(yōu)化輸入集的Dijkstra算法的時(shí)間復(fù)雜度為8×[O302],而Dijkstra算法的時(shí)間復(fù)雜度為O([1882]),可見(jiàn)優(yōu)化后的算法時(shí)間復(fù)雜度更低,計(jì)算機(jī)執(zhí)行算法的工作量更小。
3 系統(tǒng)測(cè)試
基于以上研究和技術(shù)支持,我們?cè)O(shè)計(jì)開(kāi)發(fā)了一套具有語(yǔ)音功能、盲道尋找、應(yīng)急報(bào)警處理等功能的盲道搜索與導(dǎo)航系統(tǒng),并于實(shí)地進(jìn)行系統(tǒng)測(cè)試。研究范圍為江蘇省徐州市泉山區(qū)金山南路、金山東路、泰山路、三環(huán)南路之間約占1.2平方公里的區(qū)域(圖2),該區(qū)域內(nèi)有許多居民小區(qū)、社會(huì)福利院、派出所、文娛場(chǎng)所,大部分街道較為開(kāi)闊,連接道路之間有必要的斑馬線,盲道相對(duì)完整和連續(xù)。
安裝該App到手機(jī)并打開(kāi),在用戶允許相關(guān)權(quán)限后,進(jìn)入地圖顯示界面并定位到用戶當(dāng)前位置,在上方輸入框中輸入導(dǎo)航目的地,點(diǎn)擊“導(dǎo)航”按鈕即開(kāi)始路徑導(dǎo)航,在導(dǎo)航過(guò)程中,系統(tǒng)會(huì)根據(jù)用戶實(shí)時(shí)位置進(jìn)行語(yǔ)音提醒,為用戶提供基礎(chǔ)的路徑語(yǔ)音導(dǎo)航。點(diǎn)擊“菜單”呼出主菜單界面,如圖6,我們?yōu)槊總€(gè)功能按鈕分配足夠大的屏幕占比,便于盲人進(jìn)行操作。
實(shí)地系統(tǒng)測(cè)試中,在范圍內(nèi)隨機(jī)選擇兩處地點(diǎn)分別作為起點(diǎn)和終點(diǎn),進(jìn)行盲道路徑導(dǎo)航。例如,我們以金山花園小區(qū)內(nèi)某一居民樓為起點(diǎn),以龍潤(rùn)山莊為終點(diǎn),此次盲道路徑規(guī)劃的導(dǎo)航路線如圖7所示。在整個(gè)導(dǎo)航過(guò)程中,主要在基礎(chǔ)導(dǎo)航、道路變向、偏離路線、達(dá)到終點(diǎn)這些情況下對(duì)用戶進(jìn)行語(yǔ)音提示,見(jiàn)表4。
在本次測(cè)試過(guò)程中,能較好地完成用戶起點(diǎn)到盲道的引導(dǎo)、盲道上的路徑規(guī)劃和導(dǎo)航以及最后到目的地終點(diǎn)的路線,在導(dǎo)航中同時(shí)有輔助語(yǔ)音播報(bào),提醒用戶方位和距離等,進(jìn)而完成路線引導(dǎo)。
4 結(jié)束語(yǔ)
綜合利用RTK高精度定位、衛(wèi)星定位、基于Dijkstra的最短路徑規(guī)劃、Socket通信等技術(shù)開(kāi)發(fā)移動(dòng)端盲人導(dǎo)航系統(tǒng),引導(dǎo)盲人在盲道上安全行走。除基礎(chǔ)盲道導(dǎo)航功能外,還為該類特殊用戶群體提供實(shí)時(shí)位置反饋、常用地址設(shè)置、緊急聯(lián)系人呼叫、應(yīng)急報(bào)警等服務(wù),方便盲人使用并為盲人出行提供有力的安全保障。
本系統(tǒng)進(jìn)行盲道最短路徑規(guī)劃時(shí)優(yōu)化了輸入集,在經(jīng)典Dijkstra算法的基礎(chǔ)上,將線要素抽象成點(diǎn)要素,提高了算法的運(yùn)算效率,降低了求解最短路徑的時(shí)間復(fù)雜度。本系統(tǒng)可有效幫助盲人出行,降低他們的出行困擾,實(shí)現(xiàn)路徑引導(dǎo),增強(qiáng)盲人的安全感、方向感,使盲人的空間認(rèn)知更清晰,具有較好的應(yīng)用價(jià)值。可針對(duì)不同地區(qū)的城市發(fā)展情況、道路環(huán)境以及盲道的設(shè)置擴(kuò)展和調(diào)整系統(tǒng),在實(shí)踐中改進(jìn)和提高,向?qū)嵱没较蚺Α?/p>
參考文獻(xiàn):
[1] 翁寶鳳,羅秀鋒.盲人地理空間認(rèn)知的研究[J].測(cè)繪與空間地理信息,2020,43(11):15-18.
[2] Fernandes H,Concei??o N,Paredes H,et al.Providing accessibility to blind people using GIS[J].Universal Access in the Information Society,2012,11(4):399-407.
[3] 寇樹(shù)芳,武帥.無(wú)障礙設(shè)計(jì)中的盲人用戶產(chǎn)品研究[J].科教導(dǎo)刊(上旬刊),2013(13):171-172.
[4]Bo Li.Department of Computer Science,Chongqing Education College. Design and Implementation of Web-based Laboratory Management System in Colleges and Universities[C]//. IEEE、IACSIT.Proceedings of 2011 3rd International Conference on Computer Research and Development(ICCRD 2011) VOL.02.IEEE、IACSIT:IEEE BEIJING SECTION(跨國(guó)電氣電子工程師學(xué)會(huì)北京分會(huì)),2011:4.
[5] 甄泰航.基于Socket通信的社交應(yīng)用軟件[J].電子技術(shù)與軟件工程,2020(16):30-33.
[6] Dijkstra E W.A note on two problems in connexion with graphs[J].Numerische Mathematik,1959,1(1):269-271.
[7] 蘇寶莉,李寧.Dijkstra算法優(yōu)化及在GIS系統(tǒng)中求最佳路徑的應(yīng)用[J].遙感技術(shù)與應(yīng)用,2013,28(5):866-870.
[8] 李元臣,劉維群.基于Dijkstra算法的網(wǎng)絡(luò)最短路徑分析[J].微計(jì)算機(jī)應(yīng)用,2004(3):295-298,362.
【通聯(lián)編輯:代影】