牛 恒,陳智利,張文婧,宋庚庚
(西安工業大學 光電工程學院,西安710021)
據2018年世界衛生組織數據顯示,目前我國有至少1400 萬盲人,在出行方面有著極大的挑戰[1]。傳統的導盲手杖探測范圍小且安全性差;導盲犬訓練難度大且價格昂貴無法普及。隨著科技的發展,科研人員開始著力于設計一種更加可靠、方便、廉價的導盲設備。當前導盲設備的研究主要集中于圖像導盲或者傳感器導盲,功能單一,安全性不高[2-6]。文獻[7]利用超聲波測量障礙物距離并采用光敏模塊在夜間自動照明,給其他行人及車輛提示以避開盲人;文獻[8]設計了一種基于多傳感器信息融合并利用人工勢場法進行路徑規劃的導盲系統;文獻[9]利用超聲波進行探障,結合GPS 實現定位;文獻[10]在傳感器測距及GPS 定位外還提出了一種具有檢測路面及臺階功能的導盲系統。盲人出行主要需求是避障和引導其前往目的地,上述導盲系統均是在某一個或某幾個功能上進行改進,當前導盲系統對于盲人出行的整體需求并沒有考慮全面,功能實現上無法滿足盲人出行需要進而保證盲人安全。
通過上述分析,目前在盲人導盲領域急需一種可實現導航和避障的多功能的導盲系統。鑒于此,本文結合盲人實際需求,設計了并實現一種基于樹莓派3B+的多功能智能導盲系統,實現了傳感器及攝像頭組合探障、避障路徑規劃、實時導航、語音交互功能,為盲人出行保駕護航。
通過調查發現,盲人的出行需求主要有4 個方面:避障、導航、語音交互、導盲安全性。
結合以上引入的盲人在出行方面的大致需求進行具體分析。由于前提是出行需要,所以導引盲人前往目的地是一個必要的需求,盲人視覺缺失,故需自動檢測起點、語音輸入終點并自動規劃合理步行路徑,將導航信息語音輸出。本系統是導盲系統,單純導航不足以滿足盲人的出行需要,對于導航路徑上的障礙物無法進行合理避讓,此時需要采取避障措施,由于盲人是不斷行走的,故需提前對路徑做出規劃,至少要探測前方20 m 內的障礙。利用圖像法可探測較大范圍內障礙并規劃避讓路徑,保證盲人安全,對于更小范圍內的障礙,攝像頭無法探測到時,再結合超聲波、紅外探測盲人前方4 m、側方80 cm 內的障礙,避免盲人與其相撞,更進一步保證盲人安全。
結合實際導盲需求,本系統主要實現超聲波、紅外、圖像組合探障、避障路徑規劃、GPS 定位導航、語音交互功能。綜合分析后,設計了總體實現方案,如圖1所示。

圖1 系統總體方案Fig.1 Overall scheme of system
本系統的核心部件是樹莓派3B+控制芯片,可以進行較大規模的數據處理且處理速度快。探障模塊分為傳感器探障和圖像探障,傳感器探障由超聲波探測器和紅外探測器組成,主要探測盲人前方及兩側障礙物;圖像處理模塊通過一個攝像頭采集環境信息并實現測距,再通過YOLOv3 算法進行識別,判斷出場景中障礙物的大致距離、類型、大小以及交通信號;避障模塊主要是利用A* 算法將圖像獲取到的障礙物信息導入數據地圖,根據算法自動生成最優的避讓路徑;GPS 定位導航模塊主要用于實時導航,當盲人輸入終點信息后,結合GPS定位利用軟件爬取導航路徑信息并進行處理反饋;語音模塊功能一是實現語音錄制與識別,二是實現語音合成與播報,由于盲人無法利用視覺信息,在系統工作前需要進行目的地信息獲取,此時盲人可以語音輸入目的地,且系統所有提示信息均以語音形式通過耳機提示給盲人,以此達到導盲效果。
該系統硬件電路主要由基礎電路、探測電路、定位導航電路、語音轉換電路構成:①基礎電路:最小處理系統、串口通信;②探測電路:超聲波測距、紅外測距、攝像頭、A/D 轉換;③定位導航電路:定位模塊、天線;④語音轉換電路:3.5 mm 接口耳機、USB麥克風。
本設計采用樹莓派3B+型控制板為主控系統。可進行無線和有線兩種方式的網絡連接,外部可接USB 攝像頭或排線攝像頭,且有外部存儲卡,容量大,運行速度快(GHz 量級),有獨立的linux 操作系統,能進行復雜硬件連接及軟件編程。
探障模塊主要實現測距及障礙物識別,其中測距模塊對盲人前方和側方障礙物進行探測,HCSR04 超聲波測距傳感器探測前方障礙,通過探測返回高電平的時間來反映位置信息,測量范圍2~400 cm,張角為15°,探測精度2 cm,GP2Y0A0216YK0F 紅外測距傳感器探測左右兩側障礙,利用PSD(position sensitive detector)三角法測量障礙距離,測量范圍20~150 cm,張角為5°,測量精度1 cm,紅外信號獲取后,通過MCP3008 8 通道10 位A/D 轉換電路進行信號轉換;障礙識別部分的采集攝像頭采用樹莓派專用的DSI 單目排線攝像頭,接口方便,信息傳遞速率快,用于盲人前方場景信息的探測。
導航模塊主要利用GPS/BD 定位和百度地圖平臺聯合的方式實現[11],其中定位部分利用ATKS1216F8-BD GPS/BD 定位模塊,該模塊的核心器件采用SkyTraq 公司的S1216F8-BD 模組,共有167 個通道,靈敏度為-165 dBm,測量輸出頻率20 Hz,具有系統斷電不丟失數據的功能。GPS/BD 雙模天線具有較高定位精度。
超聲波測距模塊、紅外測距模塊、定位模塊均采用串口通信模式,其中紅外數據需進行A/D 轉換后傳入系統,麥克風通過USB 接口與主控系統進行通信,耳機采用3.5 mm 耳機接口進行語音輸出,攝像頭模塊通過DSI 排線進行連接達到通信目的,5 V/2.5 A 移動電源為整個系統供電。
在完成硬件設計后,需要利用軟件來實現導盲系統的所有功能,使其能夠自動運行。分析各部分具體功能及編程條件,設計的導盲系統總體軟件流程如圖2所示。為使各模塊運行不受其他模塊影響,采用多線程方式對各模塊功能進行聯合設計,極大地增強了系統的運行效率。

圖2 總體軟件設計流程Fig.2 Overall software design of flow chart
避障部分軟件設計主要由障礙物識別和路徑規劃組成,其中利用YOLOv3 算法識別環境中常見障礙物(如車、人等)[12-14],識別障礙物并結合攝像頭測距得到障礙物具體信息,填充至數據地圖之中進行避障規劃,避障使用A*算法(啟發式搜索算法,避免大量無效路徑、尋路快且可得到最優路徑[15-16])。避障軟件設計流程如圖3所示,其中F 為啟發函數值,具體指路徑代價。最終得到代價最小路徑,即最優路徑。

圖3 避障軟件設計流程Fig.3 Obstacle avoidance software design of flow chart
GPS 電路與百度平臺信息交互匹配,生成導航指令。其軟件設計流程如圖4所示。

圖4 定位導航軟件設計流程Fig.4 Positioning and navigation software design of flow chart
測試A* 算法進行路徑規劃,結果如圖5所示,矩形框表示障礙物位置,直線表示避開障礙的具體路線,并生成的避障指令。

圖5 A*算法規劃路徑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。
進行避障整體調試,可據識別的障礙物情況生成數據地圖并規劃出合理的避讓路徑,障礙物識別及路徑規劃如圖6所示。

圖6 障礙物識別及路徑規劃Fig.6 Obstacle recognition and path planning
圖6中對應生成的避障指令為:向前行走1.0 m,向左前行走0.7 m,向前行走0.5 m,向右前行走0.7 m,向前行走18.0 m。
導航模塊采用實時定位,不間斷匹配的方式對路徑拐點進行及時探測并播報相對應的導航信息。測試時,語音輸入某一位置,通過運行內部程序,得到了相應的路徑信息,測試路徑導航指令及拐點坐標如表1所示。

表1 測試路徑導航指令及拐點坐標Tab.1 Test path navigation instructions and inflection point coordinates
本文結合盲人需求設計了一種基于樹莓派3B+的多功能導盲系統,完成了導盲系統硬件及軟件設計,實現了探避障及導航功能。使用超聲波、紅外、圖像3 種方式聯合探障并結合A* 算法規劃避障路徑,其中超聲波可檢測到盲人前方2~400 cm 障礙,紅外可檢測到盲人側方15~80 cm 障礙,進一步保證了盲人的安全。利用GPS/BD 模塊對盲人全程進行導航,充分考慮了在遠程和近程情況下盲人的整體需求,改變了以往導盲系統功能單一、安全性差的問題。在后期設計中可以加入位置共享和一鍵呼叫模塊,方便家人了解盲人位置并使盲人在遇到危險能及時與家人聯系。相信在不久的將來,多功能導盲系統一定可以在盲人出行方面作出巨大貢獻。