陳雷博 陳智利
1(北京信息科技大學(xué)經(jīng)濟管理學(xué)院 北京100101)
2(西安工業(yè)大學(xué)光電工程學(xué)院 陜西 西安 710021)
截至2016年中國視障人數(shù)的數(shù)量已超過1 700萬,也就是說,每80人就有一名失明人士,據(jù)統(tǒng)計在視障人士中30%基本不外出,約24%外出不需要家人或朋友陪同,且其中大部分一周外出1至3次,視力障礙給盲人出行帶來諸多不便[1-2]。盲人普遍的導(dǎo)盲方式還是傳統(tǒng)的導(dǎo)盲手杖,出行安全很難保障[3-4]。為了解決盲人的出行問題,出現(xiàn)了多種裝配在盲人外套、眼鏡、背包、鞋子等的穿戴式導(dǎo)盲系統(tǒng),解放盲人的雙手,讓盲人可以更自由地步行在大街上[5-9]。新一代移動式導(dǎo)盲機器人,讓盲人出行更安全[10-12]。
現(xiàn)有的導(dǎo)盲系統(tǒng)大都致力于利用計算機視覺或傳感器對障礙物進行探測、規(guī)劃障礙物避讓路徑等,但對于盲人如何到達目的地很少有涉及,如何到達目的地多數(shù)依賴于盲人的經(jīng)驗。當(dāng)前GPS定位導(dǎo)航技術(shù)已經(jīng)非常成熟,廣泛應(yīng)用于社會的各個方面,但對于導(dǎo)盲領(lǐng)域的使用還相對較少,文獻[4]介紹了一種基于GPS定位的導(dǎo)盲系統(tǒng),其在路徑規(guī)劃與實時匹配及合理的語音交互方面沒有考慮,為了解決導(dǎo)盲設(shè)備的導(dǎo)航問題,本文設(shè)計一種適用于盲人的帶有定位、導(dǎo)航功能的多傳感器導(dǎo)盲系統(tǒng),在系統(tǒng)工作前語音輸入目的地,導(dǎo)航模塊結(jié)合GPS及目的地信息規(guī)劃行進路徑,全程語音指導(dǎo)盲人,行進過程中傳感器探障模塊實時探測盲人周圍障礙物,提高行進過程中的安全性,使盲人安全到達目的地。
本系統(tǒng)需要實現(xiàn)多傳感器的探障以及GPS定位導(dǎo)航功能,主控芯片采用樹莓派3B+,其具有獨立操作系統(tǒng),編程運行更加方便,處理速度快。根據(jù)實際需要,通過GPS/BD雙模定位模塊獲取當(dāng)前位置信息,結(jié)合盲人語音輸入轉(zhuǎn)換獲得的目的地定位坐標(biāo),利用Python爬蟲技術(shù)爬取百度地圖路徑規(guī)劃信息,獲得盲人使用者的步行導(dǎo)航路徑,并通過語音分段提示給盲人,指導(dǎo)其行進。盲人行進中超聲波測距模塊探測盲人前方2~400 cm以內(nèi)的障礙物,紅外測距模塊探測盲人兩側(cè)15~80 cm內(nèi)的障礙物,攝像頭進行環(huán)境信息獲取,使盲人能有效避開障礙,保障其安全。系統(tǒng)與盲人信息交互通過語音形式進行。本系統(tǒng)方案如圖1所示。
圖1 系統(tǒng)設(shè)計方案
GPS定位選用ATK-S1216F8-BD GPS/BD模塊,該模塊的核心器件采用SkyTraq公司的S1216F8-BD模組,有167個通道,靈敏度為-165 dBm,測量輸出頻率20 Hz,體積小,GPS/BD雙模天線定位精度高[6]。
利用minicom工具獲取GPS串口數(shù)據(jù),安裝相關(guān)軟件和庫(gpsd、gpsd-clients、python-gps),通過minicom即可獲取GPS數(shù)據(jù),通過Python程序控制GPS模塊接收當(dāng)前定位信息。
以GPS硬件系統(tǒng)采集的坐標(biāo)信息和由百度地圖開放平臺爬取的導(dǎo)航信息為基礎(chǔ),通過軟件的加工處理,形成導(dǎo)航指令,由語音交互系統(tǒng)傳遞給盲人,以達到引導(dǎo)其安全行進的目的。其軟件整體設(shè)計框圖如圖2所示。
圖2 路徑規(guī)劃及導(dǎo)航整體設(shè)計
(1) 起終點位置獲取。起點位置直接由GPS模塊定位給出,在起點坐標(biāo)位置獲取時首先設(shè)置接口,進行接口初始化,再啟動接口通信,讀取GPS原始數(shù)據(jù)。由于國家測繪局規(guī)定商用GPS坐標(biāo)有需要進行加密,所以還需要將原始數(shù)據(jù)(wgs84坐標(biāo)系)通過坐標(biāo)轉(zhuǎn)換接口轉(zhuǎn)換為百度坐標(biāo)系下的經(jīng)緯度值。
終點位置由使用者自行確定,本系統(tǒng)采用語音輸入方式,百度AI平臺轉(zhuǎn)換為字符串,轉(zhuǎn)換后通過url請求發(fā)送到百度地圖開放平臺服務(wù)器,服務(wù)器返回目的地的經(jīng)緯度值,此方法無須進行坐標(biāo)系轉(zhuǎn)換。
(2) 路徑規(guī)劃。將起終點位置通過url請求發(fā)送至百度地圖服務(wù)器,爬取起點與終點之間的步行導(dǎo)航路徑規(guī)劃信息,將信息解析后輸出為json格式,便于理解和交互。
(3) 分段導(dǎo)航。路徑爬取成功后,需要實時播報導(dǎo)航信息,此處采用實時定位,匹配輸出的方式,程序建立循環(huán),循環(huán)進行當(dāng)前位置定位,通過與導(dǎo)航路徑拐點匹配,實現(xiàn)分段實時播報,準(zhǔn)確引導(dǎo)盲人前往目的地,程序設(shè)計流程如圖3所示。
圖3 分段匹配導(dǎo)航流程
(4) 終點檢測。終點檢測是導(dǎo)航模塊最后一個內(nèi)容,當(dāng)中間路徑都已匹配成功后,此時系統(tǒng)將終點定位坐標(biāo)拿出進行匹配,成功后系統(tǒng)語音提示“到達終點,導(dǎo)航結(jié)束”。
導(dǎo)航模塊可以指導(dǎo)盲人前往目的地,由于導(dǎo)航功能針對可以通過的道路而言,至于道路上的一些障礙物卻無法避免,容易使盲人撞上受傷,所以本系統(tǒng)在導(dǎo)航的基礎(chǔ)上還增加了圖像和傳感器探障模塊,探測盲人在行進過程中前方和兩側(cè)一定范圍內(nèi)的障礙物,增加其出行的安全性。探障避障處理框圖如圖4所示。
圖4 探障避障處理框圖
傳感器探障模塊利用紅外測距傳感器和超聲波測距傳感器來探測障礙。超聲波測距傳感器利用時間差法探測前方2~400 cm內(nèi)的障礙,紅外測距傳感器利用三角法測量兩側(cè)15~80 cm以內(nèi)的障礙物。利用圖像處理技術(shù)對盲道、斑馬線等基本出行環(huán)境進行檢測識別,利用YOLO算法對紅綠燈及常見障礙物的類型、大小進行識別。硬件均連接在樹莓派3B+主控模塊上。
由于紅外測距模塊返回電壓為模擬電壓,需要在導(dǎo)入樹莓派芯片前將其轉(zhuǎn)換為數(shù)字電壓,本模塊應(yīng)用MCP 3008 8通道10位模數(shù)轉(zhuǎn)換器進行模數(shù)轉(zhuǎn)換。
本系統(tǒng)導(dǎo)航模塊終點獲取利用語音識別方式,信息探測處理后以語音形式反饋給盲人,所以本系統(tǒng)中語音模塊需要實現(xiàn)兩大功能,其一為語音錄制與識別,其二為語音合成與播報。
(1) 語音錄制與識別。采用USB麥克風(fēng),自帶聲卡,錄制音頻采樣率為44.1 kHz,需要在錄制結(jié)束后將采樣率轉(zhuǎn)換為16 kHz以方便識別,在線通過url請求百度AI平臺,將轉(zhuǎn)換后的音頻文件導(dǎo)入啟動識別,程序控制需要安裝Python的pyaudio庫進行錄音,利用pydub及相應(yīng)庫ffmpeg進行語音轉(zhuǎn)碼,最后通過baidu-aip庫進行識別。語音識別程序流程如圖5所示。
圖5 語音識別程序流程
(2) 語音合成與播報。語音合成同樣利用百度AI平臺的方法,利用baidu-aip庫進行語音合成,使用pygame庫進行語音文件的直接播報,通過3.5 mm音頻輸出接口連接耳機輸出音頻。
根據(jù)系統(tǒng)方案對本系統(tǒng)硬件部分進行搭建,利用軟件編程實現(xiàn)了上述所涉及功能,采用多線程方式,讓導(dǎo)航與探障模塊互不影響,使系統(tǒng)的探測效率大大提高。
系統(tǒng)開始時,首先語音提示“請輸入導(dǎo)航終點”,此時開始進行語音錄制,使用者說出目的地,程序自動識別,識別后傳入導(dǎo)航模塊進行坐標(biāo)獲取從而規(guī)劃路徑,將全程需要的時間及距離語音輸入,其后進行坐標(biāo)點的匹配,將導(dǎo)航信息分段以語音形式提示給使用者,此外,在整個導(dǎo)航過程中,圖像、超聲波和紅外測距模塊實時探測使用者前方以及側(cè)方的障礙物,系統(tǒng)判斷為危險距離后語音提示盲人進行避讓,安全性增強。
(1) 定位導(dǎo)航。開啟定位功能,可獲取當(dāng)前定位點,通過程序?qū)⒆詣荧@取當(dāng)前位置經(jīng)緯度坐標(biāo),系統(tǒng)在開始工作前利用語音錄制及識別模塊獲取目的地并反查目的地位置信息,利用百度地圖規(guī)劃步行導(dǎo)航路徑,總體測試時起終點設(shè)置為某兩高校,程序運行后,具體導(dǎo)航路徑信息如表1所示。根據(jù)路徑信息在地圖上繪制了本系統(tǒng)提供的路徑如圖6所示,經(jīng)過實際測試,該模塊能夠進行精準(zhǔn)導(dǎo)航(誤差小于2 m),使盲人能正確地到達目的地。
表1 具體導(dǎo)航路徑分段表
圖6 導(dǎo)航路徑地圖
(2) 傳感器探障及誤差。超聲波測距模塊、紅外測距模塊分別實現(xiàn)了前方3 m和兩側(cè)1.2 m以內(nèi)的障礙物探測。樹莓派系統(tǒng)啟動后,利用開辟的獨立線程不間斷探測盲人前方和兩側(cè)的障礙物信息,考慮到盲人的行進速度,設(shè)定閾值范圍,將障礙物分為危險、警告和安全三個級別,根據(jù)級別采用不同的播報方式,避免頻繁播報占用系統(tǒng)資源給盲人造成安全隱患。表2和表3給出了探障模塊多次測量的結(jié)果,在超聲導(dǎo)盲0.6~4 m范圍內(nèi)誤差小于±0.5%,在紅外導(dǎo)盲0.3~1.2 m范圍內(nèi)誤差小于±3.5%,滿足盲人使用要求。
表2 超聲波測距誤差
表3 紅外測距誤差
本文設(shè)計一種基于GPS定位導(dǎo)航的多傳感器導(dǎo)盲系統(tǒng),在實現(xiàn)盲人出行導(dǎo)航的基礎(chǔ)上進一步利用了多傳感器探障對近距離的障礙物進行探測,確保了盲人在導(dǎo)航行進過程中不會撞向障礙物,保證了盲人的出行安全。開始工作時系統(tǒng)語音提示輸入目的地,而后進行語音錄制及識別,將識別結(jié)果導(dǎo)入導(dǎo)航模塊進行路徑規(guī)劃,結(jié)合GPS定位信息進行路徑的分段播報,經(jīng)測試,GPS定位精度高,路徑規(guī)劃合理,語音識別準(zhǔn)確,語音播報清晰;行進過程中利用超聲波及紅外測距模塊對前方2~400 cm以及側(cè)方15~80 cm障物進行探測,探測準(zhǔn)確率高,在超聲導(dǎo)盲60~400 cm范圍內(nèi)誤差小于±0.5%,在紅外導(dǎo)盲30~80 cm范圍內(nèi)誤差小于±3.5%,滿足系統(tǒng)需要。