胡深奇,李云鵬
(西北工業(yè)大學,陜西 西安 710072)
隨著計算機視覺技術的快速發(fā)展以及人工智能領域研究的逐步深入,有關高效解決視力障礙群體出行難的問題逐漸有了許多可行性方案。一些科技巨頭如微軟、谷歌已經(jīng)開始研制出了一批具有一定成熟的導盲產(chǎn)品,例如Doogo團隊以導盲犬為靈感,研發(fā)了電子導盲犬Doogo。Doogo擁有導航、避障等功能,盲人用戶只需要手握牽引桿跟隨Doogo電子導盲犬即可。在美國,喬治亞大學也研制了一款導盲背包,該產(chǎn)品利用先進的神經(jīng)網(wǎng)絡框架,結合Movidius圖像處理技術,不僅可以分辨出周圍物體分布情況,還能播報車輛行人的移動方位。但以上提及到的產(chǎn)品由于裝置復雜,成本高昂,大部分視力障礙群體無法承擔高昂的價格。為此本文提供了一種基于深度學習框架TensorFlow Lite的智能輔助行進系統(tǒng)的設計方案。
在本系統(tǒng)中,提供算力支持、搭載TensorFlow Lite深度學習框架的是基于ARM架構的便攜式微型電腦主板Raspberry Pi(“樹莓派”)(見圖1)。在物聯(lián)網(wǎng)領域,智能家居領域以及其他人工智能領域,樹莓派因其低功耗、高效能、小體積等諸多優(yōu)點,被業(yè)余開發(fā)者以及科技公司所青睞,已被應用在了各種項目中。
圖1 Raspberry Pi 實物圖
傳統(tǒng)的深度學習模型往往需要高性能的顯卡進行復雜的計算,這意味著高能耗且花費高昂,這顯然不適用于嵌入式輕量級開發(fā)。而借助深度學習框架TensorFlow Lite,通過對學習模型的壓縮、剪枝,將訓練模型中不重要的權重進行稀疏化處理,在保證必要精度的情況下,滿足了系統(tǒng)功能需求。在本智能輔助行進系統(tǒng)中,主要借助此框架實現(xiàn)了實時動態(tài)監(jiān)測視野前方物體,判斷前方道路平整性,并進行語音播報提示等功能。
借助3D建模軟件進行外殼部分的建模,通過3D打印技術,利用光滑細膩,環(huán)保無害的TUP熱塑性聚氨酯材料,將設計好的搭載樹莓派的輔助頭盔打印成型,裝載樹莓派及其部件,即可完成整套智能輔助行進系統(tǒng)的制作。
智能輔助行進系統(tǒng)設計目的是使視力障礙群體通過佩戴智能化頭盔,識別視野前方的物體,以語音播報的方式告知物體的名字及距離并且判斷前面道路是否平整,以滿足視力障礙群體在無人幫助的情況下獨自出門的需求。
智能輔助行進系統(tǒng)以智能頭盔外殼為主體,以基于ARM架構Raspberry Pi 4B為提供算力的主控系統(tǒng),樹莓派通過接口連接URM09-Analog超聲波測距傳感器、IMX219-200 Camera攝像頭、SG902舵機云臺、UPS-18650-Lite電源擴展板,WM8960音頻解碼擴展板。系統(tǒng)的整個系統(tǒng)設計框圖如圖2所示。
圖2 系統(tǒng)設計框圖
本智能輔助系統(tǒng)采用模塊化設計思路,主要分為影像采集模塊、數(shù)據(jù)分析及智能處理模塊、輸出模塊和外殼模塊。各模塊間軟硬件配合,聯(lián)系緊密。下面從各模塊組成及其功能實現(xiàn)原理進行論述。
影像采集模塊主要由兩部分組成。一部分是IMX219-200 Camera單目攝像頭,通過樹莓派上的CSI接口與樹莓派進行通信,將捕獲到的160°視角范圍內的實時影像以1 280×720分辨率、30幀的視頻流的形式傳到數(shù)據(jù)分析及智能處理模塊的處理程序中。
該模塊另一部分為舵機云臺,整個攝像頭由一個2自由度的SG90舵機云臺搭載,舵機云臺由GPIO串口和樹莓派連接。舵機接收到發(fā)送的PWM信號,使其內部電路產(chǎn)生一個偏置電壓,從而觸發(fā)電機通過減速齒輪帶動電位器移動;當電壓差為零時,電機停轉,從而達到伺服的效果,使得舵機旋轉到需要的角度。通過舵機云臺的轉動,可以使攝像頭在不同場合拍攝到需要的場景,從而助于系統(tǒng)進行識別并語音播報給用戶。在樹莓派中可利用Python的GPIO庫操作舵機,代碼如圖3所示,整個影像采集模塊如圖4所示。
圖3 操控舵機的代碼
圖4 影像采集模塊
數(shù)據(jù)分析及智能處理模塊為整個系統(tǒng)中最為重要的模塊,主要分為兩部分,一部分為硬件部分,即負責提供算力支持的基于ARM架構的樹莓派主控板和提供電力支持的UPS-18650-Lite電源擴展板;另一部分為軟件部分,即借助輕量級深度學習框架TensorFlow Lite實現(xiàn)的物體檢測、語音播報、道路平整性檢測功能的可運行程序。
本模塊的硬件部分是搭配Broadcom BCM2711芯片的樹莓派4B開發(fā)板,該開發(fā)板包含1.5 GBHz的四核ARM Cortex-A72 64位處理器,較上一代3B版本運行速度提高了3倍以上,LAN接口支持千兆以太網(wǎng)連接,USB接口支持USB3.0協(xié)議,IO擴展接口為擁有40個管腳的GPIO接口,在編程中通過BCM編碼或者物理位置編號可以精準定位每一個管腳,從而可以對管腳上接入的每一個電子元件進行通信。為滿足系統(tǒng)開發(fā)需要,樹莓派開發(fā)板需安裝基于Linux內核的Raspbian操作系統(tǒng)作為底層開發(fā)環(huán)境。
為樹莓派進行供電的為18650-Lite電源擴展板,該擴展板裝配了2節(jié)可循環(huán)充電的3.7 V鋰電池,為樹莓派提供智能化不間斷供電服務。電源供電規(guī)格為5 V/3 A。經(jīng)測試,該智能輔助行進系統(tǒng)可在其電力支持的情況下連續(xù)工作5 h。此外,本模塊還包括URM09-Analog超聲波測距傳感器,可以對程序檢測到的物體進行測距,以便后期語音播報距離;在平整度檢測時也用到該超聲波測距傳感器進行一定的輔助計算。
本模塊的軟件部分為基于TensorFlow Lite框架下的可運行程序。TensorFlow Lite是應用于資源受限的邊緣設備上的輕量級深度學習優(yōu)化框架。TensorFlow Lite模型較PyTorch、Caffe等面向復雜工程的人工智能框架而言,具有更快的推理時間和更少的空間消耗,可以在嵌入式設備中使用較小的二進制文件快速初始化,適用于在樹莓派上實現(xiàn)實時檢測。此框架的工作機理為:首先Converter使用TF模型生成FlatBuffer文件(.tflite),然后將FlatBuffer文件部署到客戶端設備(如本系統(tǒng)中的樹莓派主板)并使用TensorFlow Lite解釋器在本地運行。當運行實時檢測程序時,通過訓練好的模型運行并處理數(shù)據(jù)(通過影像采集模塊傳輸?shù)膶崟r視頻流),經(jīng)過解釋器(Interpreter)解析檢測物,以獲得正確的預測結果(以置信度的形式標識,并以矩形框的形式圈出檢測物)。整個框架的架構圖如圖5所示。
圖5 TensorFlow Lite架構圖
本系統(tǒng)的可運行程序主要實現(xiàn)物體檢測和道路平整性檢測兩個功能。下面將論述各功能點的實現(xiàn)原理。
物體檢測功能:物體檢測,即系統(tǒng)判定模型識別到的物體的置信度大于設定的數(shù)值閾值后,通過矩形框在實時視頻流里圈出檢測物體的輪廓,并標識置信度,后續(xù)通過語音播報的形式告知用戶前方出現(xiàn)某某物體,通過超聲波測距,告知該物體距離用戶多少米。為了訓練模型,首先,下載微軟的開源數(shù)據(jù)集MS COCO,其中包含20萬張有標注的圖片,一共標注了80余個類別,可滿足日常見到的大部分物體。通過CNN模型對數(shù)據(jù)集進行迭代訓練,在測試集上正確率達到90%后停止訓練。將訓練好的模型經(jīng)過量化處理后轉換為tflite格式,減少內存訪問中讀和存(中間臨時量)的時間和空間開銷,以便解釋器進行高效解析。最后將模型部署在樹莓派,通過接收影視采集模塊傳輸過來的視頻流,即可實時檢測前方物體,以便輸出模塊進行語音播報。本模塊物體檢測的測試效果如圖6所示。
圖6 物體檢測效果圖
道路平整性檢測:此功能依靠超聲波傳感器,傳感器安裝在輔助頭盔上。傳感器向垂直于地面方向發(fā)送超聲波獲得垂直距離h,傳感器以偏離垂直方向,傾角30°的方向朝地面發(fā)送超聲波獲得實際傾斜距離值y。根據(jù)垂直距離h,通過簡單的余弦計算,計算出理論傾斜距離值,若前方道路無隆起或凹陷,理論傾斜距離應等于實際傾斜距離y,若二者不相等,則證明前方道路不平。此時通過輸出模塊,進行語音提醒。
輸出模塊的硬件部分為WM8960音頻解碼擴展板,通過GPIO接口與樹莓派相連,板載雙通道喇叭接口,可直接驅動揚聲器進行語音播報;同時搭載標準3.5 mm耳機接口,也可通過外接耳機進行語音播報。該擴展板功耗低,且支持立體聲解碼,在本系統(tǒng)中應用效果良好。
輸出部分的軟件部分為用Python語言編寫的可運行程序,借助Python的文本語音轉換庫pyttsx3實現(xiàn)。通過pyttsx3庫中setProperty方法設置好語速、音量等聲音信息,通過say方法,以語音的方式告知用戶前方障礙物名稱以及障礙物到用戶的距離,如果前方道路不平,則通過揚聲器提醒用戶注意腳下安全。此模塊的程序需要與數(shù)據(jù)分析及智能處理模塊的程序進行交互,獲得實時監(jiān)測到的物體名稱和距離值,以及前方道路平整程度的判斷結果。該模塊每隔1 s自動接收來自數(shù)據(jù)分析及智能處理模塊傳來的數(shù)據(jù),進行處理分析后,每隔5 s實時以語音播報的形式告知用戶,幫助用戶避開前方障礙物,減少因視覺不便產(chǎn)生的困擾。
本系統(tǒng)的核心軟硬件全部裝配在外殼,即智能頭盔內,由用戶佩戴在頭部,以輔助出行。外殼整體顏色為灰白色,材質為TUP熱塑性聚氨酯材料。頭盔中間有銷,可以單獨旋轉,調整到用戶需要的角度。樹莓派及其配件安置在頭盔后部盒蓋中,攝像頭部分,舵機云臺以及超聲波測距模塊安裝在頭盔前部,各個模塊組裝完成后會對頭盔的數(shù)據(jù)線進行封閉處理,并加上柔軟的布料使佩戴者佩戴舒適。該外殼通過SolidWorks建模后交由3D打印機打印,各組件輕盈且易于安裝,方便用戶佩戴。外殼的示意圖如圖7所示。
圖7 智能頭盔示意圖
本智能輔助行進系統(tǒng)經(jīng)過測試后,效果良好。在室外常規(guī)場地測試時,可以識別出汽車、行人、樹木、貓狗寵物等80余種常見物,識別精度均在90%以上。通過識別算法,優(yōu)先識別距離小于5 m的物體;識別成功后,在0.5 s內及時進行語音播報處理。在室外道路不平的場地測試時,該系統(tǒng)可實時判斷出前方2~5 m處,是否出現(xiàn)凹陷或凸出程度±40 mm的不平路段,并進行語音提醒,避免視力障礙群體摔倒,識別準確度達到85%以上。
本文以TensorFlow Lite框架為核心,通過可運行程序處理攝像頭拍攝的視頻流數(shù)據(jù),對實時影像進行檢測分析,以語音播報的形式告知視力障礙群體前方的路況信息,道路平整性信息等,從而輔助視力障礙群體單獨出行,解決出行不便的問題。該系統(tǒng)通過樹莓派提供算力的支持,應用了基于深度學習的物體檢測算法,自主研發(fā)的道路平整性檢測算法等,并通過3D打印技術打印頭盔外殼,為視力障礙群體出行提供了一套完整可行的智能化解決方案。