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