袁珍
(黎明職業(yè)大學 通識教育學院,福建 泉州362000)
手杖是為特殊群體服務的一種輔助行走工具,一般是為老年人或殘疾人使用。盲人是指視覺有障礙的人群,一般分為失明或者弱視兩種情況,通常都需要通過手杖來指導行路。常見的手杖功能較為單一,例如帶防滑功能、底端帶有活動方向輪、結合一個可折疊凳子等。但是這些并沒有為盲人增加很多便利,目前很多盲人出行還是靠家人陪伴、導盲犬牽引、盲道等輔助物,使得出行的依賴性特別強。隨著科技的發(fā)展,市場上出現(xiàn)一些專門針對盲人的手杖,但往往功能比較單一,控制復雜,可擴展性和靈活性都不強,家屬無法對盲人進行遠程監(jiān)控,造成盲人出行安全性較低。
本設計的目的在于提供一種方便盲人出行,提高盲人出行安全,可擴展性強、功能多樣、人性化、操作簡易的基于樹莓派的盲人避障手杖。
一種基于樹莓派的盲人避障導航手杖的總體結構如圖1所示,結構可以分為用戶端和遠程控制端兩大部分。用戶端主要包括手杖實體、樹莓派、攝像頭、傳感器、揚聲器、GPS(全球定位系統(tǒng))模塊等,遠程控制端包括移動客戶端終端APP(應用程序)和計算機終端(web形式)。兩部分通過服務器進行數(shù)據(jù)通信和控制。
圖1 總體設計方案框圖
系統(tǒng)硬件結構如圖2所示:
圖2 系統(tǒng)硬件結構圖
本系統(tǒng)的硬件部分采用Raspberry Pi 3 Model B+作為控制中心,此型號的樹莓派尺寸僅為:82mm*56mm*19.5mm,重量為50克,具有體積小,重量低,功能齊全的優(yōu)點。樹莓派具有40針擴展GPIO(通用輸入輸出)口和音頻輸出口,通用性和擴展性強。[1]系統(tǒng)中的傳感器和攝像頭等模塊均通過通用GPIO口與樹莓派連接,樹莓派讀取并處理傳感器的數(shù)據(jù)。此外,樹莓派還支持網(wǎng)絡功能,可以連接無線網(wǎng)卡進行網(wǎng)絡通信,從而實現(xiàn)遠程控制。
盲人避障的關鍵點在于障礙物的距離測定和報警,本系統(tǒng)使用的是超聲波測距傳感器US-015,通過通用GPIO接口與樹莓派連接。這款測距模塊可實現(xiàn)2cm~4m的非接觸測距功能,適用于盲人行路時測距。其分辨率高于1mm,重復測量一致性好,測距穩(wěn)定可靠。距離測量過程方便簡潔,可以通過Echo電平時間計算得出障礙物距離,公式如下:
另外,在US-015的下側連接有轉葉式舵機,旋轉角度可達60°,同樣通過通用GPIO接口與樹莓派連接。通過舵機調整US-015的測量方向,不僅可以測量水平方向的障礙物距離,也可測量手杖下方到地面的大致距離,當距離出現(xiàn)突變(有臺階或坑洼),可以通過語音或震動提示用戶。工作原理如圖3所示:
圖3 超聲波結合舵機測量地面坑洼
攝像頭的使用也是本設計的創(chuàng)新點之一。為了全面保障盲人安全,在手杖正前端裝有高清1080P紅外夜視廣角攝像頭,用于拍攝前方路況。攝像頭的數(shù)據(jù)輸出端直接與樹莓派的CSI(相機串行接口)相連。目前的設計是使用攝像頭進行人臉識別和路況識別:提示盲人有人靠近,并識別出是陌生人還是親友,用語言提示;識別當前是否到達路口斑馬線處,以及當前路口的紅綠燈情況,同樣語言提示。未來還可以進行功能擴展,例如識別公交站、盲道位置等。
系統(tǒng)的導航使用了高精度慣性導航傳感器,集成有三個自由度陀螺儀、三個加速度計,可以根據(jù)測得的加速度信號計算出自身速度和位置,得到各種導航參數(shù),從而實現(xiàn)定位和導航功能。[2]模塊支持串口和I2C(雙向二進制同步串行總線)輸出,方便與樹莓派相連。在樹莓派上使用Linux下的一個守護進程GPSD來監(jiān)聽來自GPS接收器的位置信息,并將位置信息轉換成一種簡化的格式。
得到位置信息之后,需要將位置在地圖上顯示出來,本系統(tǒng)的地圖由百度網(wǎng)站的開源api提供,在使用導航時必須聯(lián)網(wǎng)。將GPS的log(日志)文件使用地圖打開,就可以得到用戶的具體位置并進行導航了。
與普通的單片機不同的是,樹莓派的底層是一個完整的Linux操作系統(tǒng),所有可以在個人計算機上運行的Linux程序,幾乎都可以在樹莓派上執(zhí)行。尤其是當下流行的Python語言具有GPIO庫,能夠支持樹莓派的硬件接口,結合各種開源硬件擴展諸多應用。
本系統(tǒng)的軟件部分包括障礙物檢測和語音提示子程序、通信導航子程序、圖像識別子程序等,這里著重描述圖像識別和移動客戶端APP開發(fā)。
圖像識別流程包含四個步驟:圖像采集、圖像預處理、圖像特征提取以及匹配與識別。[3]本系統(tǒng)圖像識別包含了三種情況:人臉識別、紅綠燈識別和斑馬線識別。三種情況的圖像特征提取算法均不相同。見圖4。
圖4 人臉識別流程圖
本設計在Python平臺中安裝第三方openCV庫,使用openCV中的CascadeClassifie級聯(lián)分類器進行人臉檢測,再使用LBPH faceRecognizer進行人臉匹配。通過面部定位、雙眼定位、抽取特征點等一系列流程,對影像合成特征集群,并與存盤記錄對比,從而得出結果。
值得注意的是,受外部環(huán)境光線、人體姿勢、外部飾物等因素的影響,系統(tǒng)存在一定的誤識率和拒識率。此部分正在持續(xù)改進當中。
路況識別的步驟與人臉識別類似,首先,通過基于Haar-like級聯(lián)分類器的目標識別算法識別并定位目標,然后使用HSV色彩模型對定位區(qū)域的顏色信息進行分析,進而得出路況信息。[4-5]同樣由于實際道路環(huán)境相對復雜,在對整張圖片進行目標位置確定時,存在一定的誤判可能。
由于目前我國智能手機的持有率相當高,本系統(tǒng)在設計時考慮到另一客戶群——盲人家屬的用戶需求,在此基礎上設計了移動客戶端APP。[6]用戶可以隨時隨地下載APP,結合移動網(wǎng)絡和無線網(wǎng)絡,實時獲得盲人當前位置信息、報警信息等,全方位保障盲人的安全。移動客戶端APP的主要功能模塊有:手杖位置獲取與顯示模塊、遠程一鍵報警模塊、語音信息模塊等。
采用上述技術方案后,本設計在應用時可利用樹莓派3代B+型的強大網(wǎng)絡功能,自動連接WIFI(無線上網(wǎng))或者手機熱點,使得手杖能實現(xiàn)家屬手機的遠程連接,家屬能根據(jù)GPS模塊的定位信息隨時獲取位置,進而對盲人進行導航,避免因導航系統(tǒng)錯誤而造成盲人無法到達目的地。當盲人遇到緊急情況時,也可按下緊急按鈕,通過網(wǎng)絡遠程報警。
在盲人行路過程中,利用超聲波測距模塊實時檢測前方障礙物距離,通過語音提示給盲人。另外由舵機間歇調整超聲波測距的角度,測量下方與地面的距離是否有突變,從而提醒盲人避開坑洼和注意向下臺階。同時利用攝像頭拍攝盲人行路過程中的路面情況和行人狀況,再由圖像處理軟件分析判定,語音提示盲人,全方位地保護行走的盲人。同時,樹莓派的端口多,可安裝操作系統(tǒng),編程語言豐富,在今后使用中也可根據(jù)用戶需要,在不改變產(chǎn)品基本結構的前提下即可自主增加一些簡單的功能,可擴展性強,應用靈活。
(1)利用樹莓派強大的網(wǎng)絡通信功能,能通過WIFI或手機熱點與手機終端連接,實現(xiàn)遠程控制功能,使手杖的應用較為人性化,易于家屬監(jiān)控;
(2)利用樹莓派的體積小、管腳多、功能大及使用靈活的特性使本新型手杖操作更為簡單,不會增大手杖的體積,并能通過手機遠程控制,使用更加直觀方便;
(3)利用樹莓派的端口多、編程語言豐富、可安裝操作系統(tǒng)的特性使得在未來使用時能根據(jù)用戶具體情況,在不改變產(chǎn)品主要電路結構的情況下自主增加一些簡單的功能,可擴展性強,應用靈活;
(4)能對靜止障礙物、靠近的路人等多種情況進行監(jiān)控。遇到困難時能夠得到家人或路人的及時幫忙,功能齊全并人性化,設計針對性強,給盲人出行帶來方便。