盧乃旬,羅愷韻,王 琦,張慧蕾,胡江海,羅秀雯
(1.湖南文理學(xué)院芙蓉學(xué)院,湖南 常德 415000;2.河北工程大學(xué)科信學(xué)院,河北 邯鄲 056000)
據(jù)國家權(quán)威部門統(tǒng)計(jì),中國是世界上盲人最多的國家,約有700 多萬,占世界總數(shù)的18%[1]。盲人的視覺缺陷給他們的日常生活和出行帶來諸多不便,他們的安全和舒適問題尚未得到很好的解決。本項(xiàng)目的研究致力于創(chuàng)建一個服務(wù)于盲人出行的APP,該APP 擁有出行地圖語音及振動提示導(dǎo)航、識別人臉、尋求幫助、好友視頻和語音聊天功能等,為盲人出行提供更為便捷的服務(wù),讓他們能安全外出、隨心交友,從而豐富他們的生活。
盲人出行智能導(dǎo)航主要由兩個系統(tǒng)支持,一個是以外部識別設(shè)備為載體的硬件系統(tǒng),另一個是以智能語音導(dǎo)航為主體的導(dǎo)盲軟件系統(tǒng),如圖1 所示。
圖1 盲人出行智能導(dǎo)航系統(tǒng)功能模塊
硬件外部設(shè)備可通過佩戴特殊眼鏡來實(shí)現(xiàn)盲人所處環(huán)境相關(guān)參數(shù)的獲取,比如一定范圍內(nèi)的避障物、交通標(biāo)志等相關(guān)信息。收集相關(guān)參數(shù)并進(jìn)行分析,判斷障礙物的類型、距離、大小、危險(xiǎn)指數(shù)等,并通過藍(lán)牙連接導(dǎo)盲軟件共享分析結(jié)果。
導(dǎo)盲軟件部分主要由百度導(dǎo)航、智能語音、振動提示、通信交流四大模塊構(gòu)成,具體介紹如下:
(1)將百度導(dǎo)航與智能語音兩者結(jié)合,通過接口接入百度導(dǎo)航地圖,與硬件獲取的數(shù)據(jù)進(jìn)行交互分析,并結(jié)合智能語音提示實(shí)現(xiàn)出行路線規(guī)劃。
(2)智能語音既可以充當(dāng)系統(tǒng)的操作提示指令,也可以充當(dāng)盲人的眼睛,時(shí)刻提示他們道路上的正確行走方向,并準(zhǔn)確避開障礙物,避免危險(xiǎn)事件發(fā)生的同時(shí)給予他們真正的安全感。
(3)振動提示可以對危險(xiǎn)提前做出預(yù)警,也可以在其他方面作為提示手段,比如可以將振動強(qiáng)度作為方向判別指標(biāo)。
(4)通信交流功能,即通過語音指令實(shí)現(xiàn)交友聊天以及在遇到困難時(shí)進(jìn)行求助。
硬件設(shè)備是以導(dǎo)盲眼鏡作為載體實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)采集,并利用OpenMV 中控芯片對數(shù)據(jù)做初步的篩選,將篩選結(jié)果通過數(shù)據(jù)傳輸?shù)姆绞桨l(fā)送給軟件部分,以實(shí)現(xiàn)盲人出行過程中軟硬件數(shù)據(jù)的實(shí)時(shí)共享。
通過信息采集數(shù)字化和網(wǎng)絡(luò)化,使數(shù)據(jù)采集的覆蓋范圍擴(kuò)大,提高審核工作的及時(shí)性、準(zhǔn)確性和全面性;最終實(shí)現(xiàn)相關(guān)業(yè)務(wù)工作管理決策科學(xué)化、現(xiàn)代化、服務(wù)網(wǎng)絡(luò)化、程序規(guī)范化。主要有數(shù)據(jù)庫管理、異常處理、實(shí)時(shí)監(jiān)視、數(shù)據(jù)處理、統(tǒng)計(jì)計(jì)算及報(bào)表、運(yùn)行指導(dǎo)及性能分析等功能[2]。
此部分由紅外線超聲傳感器和攝像頭來實(shí)現(xiàn)。紅外線傳感器主要是監(jiān)測盲人周圍障礙物,如地面坑洼、欄桿等,攝像頭用于標(biāo)志物識別,比如紅綠燈、盲道、斑馬線的識別等。
采集的數(shù)據(jù)作為原材料進(jìn)行數(shù)據(jù)加工、數(shù)據(jù)建模,然后分門別類地儲存,再根據(jù)實(shí)際的業(yè)務(wù)場景,打造各類數(shù)據(jù)服務(wù),從而實(shí)現(xiàn)對業(yè)務(wù)的賦能加速。數(shù)據(jù)采集平臺是數(shù)據(jù)處理的基座,我們也可以把數(shù)據(jù)采集平臺稱為數(shù)據(jù)采集開發(fā)平臺,它需要具備與數(shù)據(jù)采集相關(guān)的開發(fā)能力,提供數(shù)據(jù)存儲、數(shù)據(jù)清洗/計(jì)算、數(shù)據(jù)查詢展示及權(quán)限管理等功能。以 Hadoop生態(tài)構(gòu)建的技術(shù)體系為主,依托各類開源組件進(jìn)行優(yōu)化改進(jìn)與二次開發(fā),數(shù)據(jù)存儲組件可以選擇HBase、Hive 等組件,數(shù)據(jù)計(jì)算引擎可以選擇Spark、Flink 等分布式計(jì)算引擎。數(shù)據(jù)采集平臺需要能為用戶提供數(shù)據(jù)建模工具,幫助用戶創(chuàng)建目標(biāo)數(shù)據(jù)(數(shù)據(jù)集),其提供的功能包括坐標(biāo)計(jì)算、自動識別、數(shù)據(jù)預(yù)處理、設(shè)置邊界參數(shù)、計(jì)算函數(shù)選擇等基本操作,以及多源異構(gòu)的JOIN/UNION 等數(shù)據(jù)處理功能[3]。
在復(fù)雜的未知環(huán)境中,單獨(dú)依靠超聲傳感器對障礙進(jìn)行精確的探測時(shí)會存在誤差。面對不同環(huán)境,采用多傳感器信息融合的方式進(jìn)行探測。利用以電荷耦合器件為核心部件的數(shù)字傳感器(Charge Coupled Device, CDD)與攝像頭結(jié)合協(xié)同工作,將CCD 攝像頭獲得的彩色圖像與超聲波傳感器提供的距離信息進(jìn)行融合處理,可以得到簡單的障礙物類型。將超聲傳感器陣列獲得的回波波形中的特征點(diǎn)信息與CCD 獲得的強(qiáng)度分布采用遺傳算法進(jìn)行融合[2],得到相應(yīng)的障礙物位置。將CCD 獲得的彩色圖像及超聲傳感器陣列測量得到的距離值使用神經(jīng)網(wǎng)絡(luò)融合算法進(jìn)行融合[2]。利用OpenMV 作為中央控制器,將在復(fù)雜環(huán)境采集的數(shù)據(jù)進(jìn)行處理,并將處理后的數(shù)據(jù)通過藍(lán)牙接口傳給軟件系統(tǒng)。
智能化數(shù)據(jù)處理是外部設(shè)備采集數(shù)據(jù)分析應(yīng)用的核心。對于實(shí)現(xiàn)硬件設(shè)備采集的數(shù)據(jù)與軟件系統(tǒng)的交互,智能化數(shù)據(jù)處理能夠起到中轉(zhuǎn)站的作用。只有根據(jù)分析處理后的數(shù)據(jù)才能對實(shí)時(shí)路況進(jìn)行判斷,并在外部設(shè)備采集到的數(shù)據(jù)基礎(chǔ)上,利用大數(shù)據(jù)分析手段,輔以人工智能對獲取的數(shù)據(jù)進(jìn)行更加準(zhǔn)確的處理,對導(dǎo)航路線進(jìn)行規(guī)劃,以提高出行的安全性。
路況數(shù)據(jù)采集是通過攝像頭及紅外線感應(yīng)設(shè)備得到的,再通過軟硬件數(shù)據(jù)銜接傳遞到智能導(dǎo)航系統(tǒng)中。在處理數(shù)據(jù)過程中,數(shù)據(jù)處理、數(shù)據(jù)分析作為智能導(dǎo)航系統(tǒng)平臺的功能,需要實(shí)時(shí)進(jìn)行環(huán)境數(shù)據(jù)采集,并且必須要在盲人經(jīng)過前完成數(shù)據(jù)的分析。因此對數(shù)據(jù)的實(shí)時(shí)性、真實(shí)性要求較高,同時(shí)也對數(shù)據(jù)的具體需求和需求種類提出了很多要求[3]。
要實(shí)現(xiàn)數(shù)據(jù)采集與應(yīng)用系統(tǒng)模塊間的數(shù)據(jù)傳輸,需確保各接口協(xié)議的可擴(kuò)展性,同時(shí)要保證通信協(xié)議的一致性。數(shù)據(jù)協(xié)議在保證系統(tǒng)穩(wěn)定的前提下具備統(tǒng)一性并讓各設(shè)備之間相互支持,可以更方便地進(jìn)行系統(tǒng)之間的銜接[4]。在此基礎(chǔ)上將處理分析后的數(shù)據(jù)傳輸?shù)綄?dǎo)航應(yīng)用中。
采集數(shù)據(jù)系統(tǒng)需完成傳感器數(shù)據(jù)采集,以及通過網(wǎng)絡(luò)控制器和設(shè)備控制箱等實(shí)現(xiàn)串口協(xié)議信號向TCP/IP 協(xié)議數(shù)據(jù)的轉(zhuǎn)換,數(shù)據(jù)通過網(wǎng)絡(luò)被傳輸至控制器、服務(wù)器的數(shù)據(jù)庫進(jìn)行處理、統(tǒng)計(jì)、分析等。數(shù)據(jù)傳輸網(wǎng)絡(luò)系統(tǒng)的主干連接應(yīng)采用負(fù)載均衡的冗余方式,設(shè)置的兩條連接均提供數(shù)據(jù)傳輸功能并互為備用,兩條線路可實(shí)時(shí)、自動進(jìn)行切換且不影響系統(tǒng)的應(yīng)用。數(shù)據(jù)采集處理模塊如圖2 所示。
圖2 數(shù)據(jù)采集處理模塊
通過設(shè)備特殊按鈕喚醒語音合成AI,盲人通過語音指令打開導(dǎo)航軟件。語音AI 播報(bào)“請輸入起點(diǎn)”,盲人語音輸入起點(diǎn)后,地圖導(dǎo)航通過百度導(dǎo)航定位確認(rèn)盲人位置與輸入起點(diǎn)相符。語音AI 播報(bào)“請輸入目的地”,盲人語音輸入目的地及出行方式,地圖導(dǎo)航規(guī)劃最優(yōu)路線。語音AI 進(jìn)入導(dǎo)航提示播報(bào)模式,通過百度導(dǎo)航及硬件設(shè)備來播報(bào)實(shí)時(shí)路況。語音提示模塊如圖3 所示。
圖3 語音提示模塊
盲人在步行導(dǎo)航時(shí),語音AI 通過識別設(shè)備傳回的圖片判斷前方路況,當(dāng)存在障礙物時(shí)AI 及時(shí)發(fā)出語音提醒躲避。當(dāng)遇到過馬路時(shí),首先提醒盲人停止行走,若有路人則發(fā)出請求幫助語音,沒有則通過AI 判斷設(shè)備傳回的紅綠燈圖片,語音提示盲人行走。語音指令模塊如圖4 所示。
圖4 語音指令模塊
調(diào)用百度地圖API,實(shí)現(xiàn)定位及導(dǎo)航路線基本功能。調(diào)用百度地圖地點(diǎn)檢索服務(wù)獲取任意位置的經(jīng)緯度坐標(biāo),關(guān)鍵代碼如下:
系統(tǒng)實(shí)現(xiàn)了路線規(guī)劃及軌跡數(shù)據(jù)分析功能。用戶通過語音指令錄入想到達(dá)的地點(diǎn),在導(dǎo)入的地圖模塊中檢索出所有路線;再通過迪杰斯特拉(Dijkstra)算法以及弗洛伊德(Floyd)算法對所有路線的優(yōu)劣性進(jìn)行排序,并存入數(shù)據(jù)庫中。在盲人出行時(shí)調(diào)用數(shù)據(jù)庫路線圖,選用最佳的路線作為出行路線,每次盲人完成行程導(dǎo)航后,會對行程軌跡數(shù)據(jù)上傳并保存,分析這次行程的耗時(shí),以及在路上遇到的障礙物數(shù)量(包括過馬路的次數(shù))等信息。根據(jù)數(shù)據(jù)分析形成更適合盲人的行走路線,并通過語音提示對本次規(guī)劃的路線進(jìn)行評分,把評分作為下次選擇路線的基礎(chǔ),使得下次出行更加順暢。
障礙物圖像獲取方法如下:
障礙物識別是圖像識別中的一個典型過程。圖像識別就是運(yùn)用現(xiàn)代信息處理與計(jì)算機(jī)技術(shù)來獲取障礙物的位置、大小、距離等環(huán)境信息,它包括成像、圖像處理、圖像識別三個步驟[5],如圖5 所示。
圖5 圖像識別基本模型
圖像識別主要是利用計(jì)算機(jī)對圖像進(jìn)行處理、分析和理解,以識別各種不同模式的目標(biāo)和對象的技術(shù)。依據(jù)輸入圖像的空域二維圖像信息f(x,y,t)根據(jù)圖像識別模型進(jìn)行相關(guān)的圖像運(yùn)算分析并提取出圖像的識別特征,然后按照圖像特征對圖像進(jìn)行分類識別運(yùn)算[5]。
語音識別是在EasyDL 語音識別平臺上創(chuàng)建了導(dǎo)航語音專屬模型,并進(jìn)行數(shù)據(jù)錄入及識別訓(xùn)練,保證語音AI 進(jìn)行正確操作及下達(dá)正確指令。
調(diào)用百度AI 語音服務(wù)實(shí)現(xiàn)將文本轉(zhuǎn)化為語音,并輸出為MP3 文件,關(guān)鍵代碼如下:
3.5.1 線上聊天、添加和刪除好友、撥打和接聽電話功能
(1)用戶可以通過語音指令調(diào)用添加、刪除和修改好友程序,通過MySQL 數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的修改。
(2)用戶可以調(diào)用手機(jī)本身內(nèi)部電話的接口接聽電話,還可以通過特定的語音指令來實(shí)現(xiàn)撥打電話,這些函數(shù)的調(diào)用主要是通過百度AI 語音技術(shù)來實(shí)現(xiàn)的,通過特定的語音指令識別關(guān)鍵字并返回參數(shù),從而調(diào)用相關(guān)程序運(yùn)行[6-7]。
(3)線上聊天時(shí)可以通過語音指令選擇聊天對象,進(jìn)入對話框發(fā)送語音條,收到回復(fù)后百度語音AI 語音播報(bào)給該用戶。
3.5.2 實(shí)時(shí)共享位置
實(shí)時(shí)共享位置功能設(shè)置的目的是防止盲人用戶走失、迷路等意外事件的發(fā)生,方便親友對盲人用戶的實(shí)時(shí)監(jiān)護(hù),它是通過使用百度地圖API 返回?cái)?shù)據(jù)來實(shí)現(xiàn)的。實(shí)現(xiàn)方式如下:
3.5.3 尋求幫助功能
尋求幫助功能是為解決盲人用戶遇到問題時(shí)在線上尋求幫助而設(shè)計(jì)的,通過大數(shù)據(jù)分析經(jīng)常出現(xiàn)的問題并做出解答,對這些問題和解答進(jìn)行數(shù)據(jù)存檔。當(dāng)用戶向應(yīng)用尋求幫助時(shí),首先在數(shù)據(jù)庫中檢索是否有類似問題的解決辦法,檢索到時(shí)可以語音提示給用戶;未檢索到時(shí)系統(tǒng)借助網(wǎng)絡(luò)中的公益平臺,通過實(shí)時(shí)視頻連接給予盲人幫助。
盲人用戶可以向公益平臺志愿者請求幫助。志愿者們將在手機(jī)上收到通知。一旦有志愿者第一時(shí)間接收了幫助請求,就會在雙方之間建立實(shí)時(shí)音視頻連接,通過盲人手機(jī)的后置攝像頭來為盲人提供幫助。
如果志愿者無法幫助到盲人,也不必?fù)?dān)心盲人用戶需要一直等待,系統(tǒng)會自動轉(zhuǎn)發(fā)請求并尋找下一位志愿者,在通話過程中需要對內(nèi)容進(jìn)行存儲備份以及加密,確保每次通話的安全性。
3.5.4 數(shù)據(jù)傳輸網(wǎng)絡(luò)設(shè)計(jì)
數(shù)據(jù)處理中心系統(tǒng)與數(shù)據(jù)采集之間的傳輸網(wǎng)絡(luò)采用局域內(nèi)網(wǎng)進(jìn)行連接,采用I/O 協(xié)議進(jìn)行傳輸。由于接入方式、接入速率、應(yīng)用方式和數(shù)據(jù)類型的多樣性,網(wǎng)絡(luò)數(shù)據(jù)流量突增而致?lián)砣遣豢杀苊獾?。為?yīng)對這一問題,網(wǎng)絡(luò)應(yīng)支持區(qū)分服務(wù)模型機(jī)制,根據(jù)應(yīng)用類型、流量大小、用戶所在網(wǎng)段等自動進(jìn)行業(yè)務(wù)分類,使業(yè)務(wù)遵守設(shè)定的接入速率約定[10],在網(wǎng)絡(luò)出現(xiàn)擁塞前能自動采取措施進(jìn)行先期擁塞控制,以避免瞬間大量“丟包”現(xiàn)象的發(fā)生。
網(wǎng)絡(luò)以無線為主、有線補(bǔ)充的方式使多終端無縫接入網(wǎng)絡(luò),實(shí)現(xiàn)訪問業(yè)務(wù)和共享數(shù)據(jù)。無線接入點(diǎn)主要采用雙星型冗余組網(wǎng)結(jié)構(gòu),將無線AP 連接至接入交換機(jī),無線控制器連接至核心交換機(jī),用戶通過無線控制器和無線網(wǎng)絡(luò)管理軟件實(shí)現(xiàn)對所有無線AP 設(shè)備的集中管理[11],而且選擇的無線接入需要支持無線轉(zhuǎn)發(fā)技術(shù),實(shí)現(xiàn)無線全覆蓋。
為了實(shí)現(xiàn)精確安全的導(dǎo)盲,我們采用軟硬件結(jié)合的方式,設(shè)計(jì)了一款智能化、實(shí)用化、簡易化、精準(zhǔn)化的輔助盲人安全出行的系統(tǒng)。本系統(tǒng)具有智能導(dǎo)航、智能語音、路線規(guī)劃、智能避障、交友聊天、位置共享等功能。此設(shè)計(jì)從盲人的角度全面考慮問題,解決了盲人出行難的問題,大大提高了他們出行的安全性。