牛 恒,陳智利,張文婧,宋庚庚
(西安工業(yè)大學(xué) 光電工程學(xué)院,西安710021)
據(jù)2018年世界衛(wèi)生組織數(shù)據(jù)顯示,目前我國(guó)有至少1400 萬(wàn)盲人,在出行方面有著極大的挑戰(zhàn)[1]。傳統(tǒng)的導(dǎo)盲手杖探測(cè)范圍小且安全性差;導(dǎo)盲犬訓(xùn)練難度大且價(jià)格昂貴無(wú)法普及。隨著科技的發(fā)展,科研人員開(kāi)始著力于設(shè)計(jì)一種更加可靠、方便、廉價(jià)的導(dǎo)盲設(shè)備。當(dāng)前導(dǎo)盲設(shè)備的研究主要集中于圖像導(dǎo)盲或者傳感器導(dǎo)盲,功能單一,安全性不高[2-6]。文獻(xiàn)[7]利用超聲波測(cè)量障礙物距離并采用光敏模塊在夜間自動(dòng)照明,給其他行人及車(chē)輛提示以避開(kāi)盲人;文獻(xiàn)[8]設(shè)計(jì)了一種基于多傳感器信息融合并利用人工勢(shì)場(chǎng)法進(jìn)行路徑規(guī)劃的導(dǎo)盲系統(tǒng);文獻(xiàn)[9]利用超聲波進(jìn)行探障,結(jié)合GPS 實(shí)現(xiàn)定位;文獻(xiàn)[10]在傳感器測(cè)距及GPS 定位外還提出了一種具有檢測(cè)路面及臺(tái)階功能的導(dǎo)盲系統(tǒng)。盲人出行主要需求是避障和引導(dǎo)其前往目的地,上述導(dǎo)盲系統(tǒng)均是在某一個(gè)或某幾個(gè)功能上進(jìn)行改進(jìn),當(dāng)前導(dǎo)盲系統(tǒng)對(duì)于盲人出行的整體需求并沒(méi)有考慮全面,功能實(shí)現(xiàn)上無(wú)法滿(mǎn)足盲人出行需要進(jìn)而保證盲人安全。
通過(guò)上述分析,目前在盲人導(dǎo)盲領(lǐng)域急需一種可實(shí)現(xiàn)導(dǎo)航和避障的多功能的導(dǎo)盲系統(tǒng)。鑒于此,本文結(jié)合盲人實(shí)際需求,設(shè)計(jì)了并實(shí)現(xiàn)一種基于樹(shù)莓派3B+的多功能智能導(dǎo)盲系統(tǒng),實(shí)現(xiàn)了傳感器及攝像頭組合探障、避障路徑規(guī)劃、實(shí)時(shí)導(dǎo)航、語(yǔ)音交互功能,為盲人出行保駕護(hù)航。
通過(guò)調(diào)查發(fā)現(xiàn),盲人的出行需求主要有4 個(gè)方面:避障、導(dǎo)航、語(yǔ)音交互、導(dǎo)盲安全性。
結(jié)合以上引入的盲人在出行方面的大致需求進(jìn)行具體分析。由于前提是出行需要,所以導(dǎo)引盲人前往目的地是一個(gè)必要的需求,盲人視覺(jué)缺失,故需自動(dòng)檢測(cè)起點(diǎn)、語(yǔ)音輸入終點(diǎn)并自動(dòng)規(guī)劃合理步行路徑,將導(dǎo)航信息語(yǔ)音輸出。本系統(tǒng)是導(dǎo)盲系統(tǒng),單純導(dǎo)航不足以滿(mǎn)足盲人的出行需要,對(duì)于導(dǎo)航路徑上的障礙物無(wú)法進(jìn)行合理避讓?zhuān)藭r(shí)需要采取避障措施,由于盲人是不斷行走的,故需提前對(duì)路徑做出規(guī)劃,至少要探測(cè)前方20 m 內(nèi)的障礙。利用圖像法可探測(cè)較大范圍內(nèi)障礙并規(guī)劃避讓路徑,保證盲人安全,對(duì)于更小范圍內(nèi)的障礙,攝像頭無(wú)法探測(cè)到時(shí),再結(jié)合超聲波、紅外探測(cè)盲人前方4 m、側(cè)方80 cm 內(nèi)的障礙,避免盲人與其相撞,更進(jìn)一步保證盲人安全。
結(jié)合實(shí)際導(dǎo)盲需求,本系統(tǒng)主要實(shí)現(xiàn)超聲波、紅外、圖像組合探障、避障路徑規(guī)劃、GPS 定位導(dǎo)航、語(yǔ)音交互功能。綜合分析后,設(shè)計(jì)了總體實(shí)現(xiàn)方案,如圖1所示。
圖1 系統(tǒng)總體方案Fig.1 Overall scheme of system
本系統(tǒng)的核心部件是樹(shù)莓派3B+控制芯片,可以進(jìn)行較大規(guī)模的數(shù)據(jù)處理且處理速度快。探障模塊分為傳感器探障和圖像探障,傳感器探障由超聲波探測(cè)器和紅外探測(cè)器組成,主要探測(cè)盲人前方及兩側(cè)障礙物;圖像處理模塊通過(guò)一個(gè)攝像頭采集環(huán)境信息并實(shí)現(xiàn)測(cè)距,再通過(guò)YOLOv3 算法進(jìn)行識(shí)別,判斷出場(chǎng)景中障礙物的大致距離、類(lèi)型、大小以及交通信號(hào);避障模塊主要是利用A* 算法將圖像獲取到的障礙物信息導(dǎo)入數(shù)據(jù)地圖,根據(jù)算法自動(dòng)生成最優(yōu)的避讓路徑;GPS 定位導(dǎo)航模塊主要用于實(shí)時(shí)導(dǎo)航,當(dāng)盲人輸入終點(diǎn)信息后,結(jié)合GPS定位利用軟件爬取導(dǎo)航路徑信息并進(jìn)行處理反饋;語(yǔ)音模塊功能一是實(shí)現(xiàn)語(yǔ)音錄制與識(shí)別,二是實(shí)現(xiàn)語(yǔ)音合成與播報(bào),由于盲人無(wú)法利用視覺(jué)信息,在系統(tǒng)工作前需要進(jìn)行目的地信息獲取,此時(shí)盲人可以語(yǔ)音輸入目的地,且系統(tǒng)所有提示信息均以語(yǔ)音形式通過(guò)耳機(jī)提示給盲人,以此達(dá)到導(dǎo)盲效果。
該系統(tǒng)硬件電路主要由基礎(chǔ)電路、探測(cè)電路、定位導(dǎo)航電路、語(yǔ)音轉(zhuǎn)換電路構(gòu)成:①基礎(chǔ)電路:最小處理系統(tǒng)、串口通信;②探測(cè)電路:超聲波測(cè)距、紅外測(cè)距、攝像頭、A/D 轉(zhuǎn)換;③定位導(dǎo)航電路:定位模塊、天線;④語(yǔ)音轉(zhuǎn)換電路:3.5 mm 接口耳機(jī)、USB麥克風(fēng)。
本設(shè)計(jì)采用樹(shù)莓派3B+型控制板為主控系統(tǒng)??蛇M(jìn)行無(wú)線和有線兩種方式的網(wǎng)絡(luò)連接,外部可接USB 攝像頭或排線攝像頭,且有外部存儲(chǔ)卡,容量大,運(yùn)行速度快(GHz 量級(jí)),有獨(dú)立的linux 操作系統(tǒng),能進(jìn)行復(fù)雜硬件連接及軟件編程。
探障模塊主要實(shí)現(xiàn)測(cè)距及障礙物識(shí)別,其中測(cè)距模塊對(duì)盲人前方和側(cè)方障礙物進(jìn)行探測(cè),HCSR04 超聲波測(cè)距傳感器探測(cè)前方障礙,通過(guò)探測(cè)返回高電平的時(shí)間來(lái)反映位置信息,測(cè)量范圍2~400 cm,張角為15°,探測(cè)精度2 cm,GP2Y0A0216YK0F 紅外測(cè)距傳感器探測(cè)左右兩側(cè)障礙,利用PSD(position sensitive detector)三角法測(cè)量障礙距離,測(cè)量范圍20~150 cm,張角為5°,測(cè)量精度1 cm,紅外信號(hào)獲取后,通過(guò)MCP3008 8 通道10 位A/D 轉(zhuǎn)換電路進(jìn)行信號(hào)轉(zhuǎn)換;障礙識(shí)別部分的采集攝像頭采用樹(shù)莓派專(zhuān)用的DSI 單目排線攝像頭,接口方便,信息傳遞速率快,用于盲人前方場(chǎng)景信息的探測(cè)。
導(dǎo)航模塊主要利用GPS/BD 定位和百度地圖平臺(tái)聯(lián)合的方式實(shí)現(xiàn)[11],其中定位部分利用ATKS1216F8-BD GPS/BD 定位模塊,該模塊的核心器件采用SkyTraq 公司的S1216F8-BD 模組,共有167 個(gè)通道,靈敏度為-165 dBm,測(cè)量輸出頻率20 Hz,具有系統(tǒng)斷電不丟失數(shù)據(jù)的功能。GPS/BD 雙模天線具有較高定位精度。
超聲波測(cè)距模塊、紅外測(cè)距模塊、定位模塊均采用串口通信模式,其中紅外數(shù)據(jù)需進(jìn)行A/D 轉(zhuǎn)換后傳入系統(tǒng),麥克風(fēng)通過(guò)USB 接口與主控系統(tǒng)進(jìn)行通信,耳機(jī)采用3.5 mm 耳機(jī)接口進(jìn)行語(yǔ)音輸出,攝像頭模塊通過(guò)DSI 排線進(jìn)行連接達(dá)到通信目的,5 V/2.5 A 移動(dòng)電源為整個(gè)系統(tǒng)供電。
在完成硬件設(shè)計(jì)后,需要利用軟件來(lái)實(shí)現(xiàn)導(dǎo)盲系統(tǒng)的所有功能,使其能夠自動(dòng)運(yùn)行。分析各部分具體功能及編程條件,設(shè)計(jì)的導(dǎo)盲系統(tǒng)總體軟件流程如圖2所示。為使各模塊運(yùn)行不受其他模塊影響,采用多線程方式對(duì)各模塊功能進(jìn)行聯(lián)合設(shè)計(jì),極大地增強(qiáng)了系統(tǒng)的運(yùn)行效率。
圖2 總體軟件設(shè)計(jì)流程Fig.2 Overall software design of flow chart
避障部分軟件設(shè)計(jì)主要由障礙物識(shí)別和路徑規(guī)劃組成,其中利用YOLOv3 算法識(shí)別環(huán)境中常見(jiàn)障礙物(如車(chē)、人等)[12-14],識(shí)別障礙物并結(jié)合攝像頭測(cè)距得到障礙物具體信息,填充至數(shù)據(jù)地圖之中進(jìn)行避障規(guī)劃,避障使用A*算法(啟發(fā)式搜索算法,避免大量無(wú)效路徑、尋路快且可得到最優(yōu)路徑[15-16])。避障軟件設(shè)計(jì)流程如圖3所示,其中F 為啟發(fā)函數(shù)值,具體指路徑代價(jià)。最終得到代價(jià)最小路徑,即最優(yōu)路徑。
圖3 避障軟件設(shè)計(jì)流程Fig.3 Obstacle avoidance software design of flow chart
GPS 電路與百度平臺(tái)信息交互匹配,生成導(dǎo)航指令。其軟件設(shè)計(jì)流程如圖4所示。
圖4 定位導(dǎo)航軟件設(shè)計(jì)流程Fig.4 Positioning and navigation software design of flow chart
測(cè)試A* 算法進(jìn)行路徑規(guī)劃,結(jié)果如圖5所示,矩形框表示障礙物位置,直線表示避開(kāi)障礙的具體路線,并生成的避障指令。
圖5 A*算法規(guī)劃路徑Fig.5 A* algorithm planning path
生成的避障指令為:向前行走1.0 m,向左前行走0.7 m,向前行走0.5 m,向右前行走0.7 m,向前行走1.5 m,向右前行走1.4 m,向前行走3.0 m,向右前行走1.4 m,向前行走3.0 m,向左前行走2.8 m,向前行走6.5 m。
進(jìn)行避障整體調(diào)試,可據(jù)識(shí)別的障礙物情況生成數(shù)據(jù)地圖并規(guī)劃出合理的避讓路徑,障礙物識(shí)別及路徑規(guī)劃如圖6所示。
圖6 障礙物識(shí)別及路徑規(guī)劃Fig.6 Obstacle recognition and path planning
圖6中對(duì)應(yīng)生成的避障指令為:向前行走1.0 m,向左前行走0.7 m,向前行走0.5 m,向右前行走0.7 m,向前行走18.0 m。
導(dǎo)航模塊采用實(shí)時(shí)定位,不間斷匹配的方式對(duì)路徑拐點(diǎn)進(jìn)行及時(shí)探測(cè)并播報(bào)相對(duì)應(yīng)的導(dǎo)航信息。測(cè)試時(shí),語(yǔ)音輸入某一位置,通過(guò)運(yùn)行內(nèi)部程序,得到了相應(yīng)的路徑信息,測(cè)試路徑導(dǎo)航指令及拐點(diǎn)坐標(biāo)如表1所示。
表1 測(cè)試路徑導(dǎo)航指令及拐點(diǎn)坐標(biāo)Tab.1 Test path navigation instructions and inflection point coordinates
本文結(jié)合盲人需求設(shè)計(jì)了一種基于樹(shù)莓派3B+的多功能導(dǎo)盲系統(tǒng),完成了導(dǎo)盲系統(tǒng)硬件及軟件設(shè)計(jì),實(shí)現(xiàn)了探避障及導(dǎo)航功能。使用超聲波、紅外、圖像3 種方式聯(lián)合探障并結(jié)合A* 算法規(guī)劃避障路徑,其中超聲波可檢測(cè)到盲人前方2~400 cm 障礙,紅外可檢測(cè)到盲人側(cè)方15~80 cm 障礙,進(jìn)一步保證了盲人的安全。利用GPS/BD 模塊對(duì)盲人全程進(jìn)行導(dǎo)航,充分考慮了在遠(yuǎn)程和近程情況下盲人的整體需求,改變了以往導(dǎo)盲系統(tǒng)功能單一、安全性差的問(wèn)題。在后期設(shè)計(jì)中可以加入位置共享和一鍵呼叫模塊,方便家人了解盲人位置并使盲人在遇到危險(xiǎn)能及時(shí)與家人聯(lián)系。相信在不久的將來(lái),多功能導(dǎo)盲系統(tǒng)一定可以在盲人出行方面作出巨大貢獻(xiàn)。