馬再蓉,樓旭鋒,吳茂念,2,鄭 博,2
(1.湖州師范學(xué)院 信息工程學(xué)院,浙江 湖州 313000;2.浙江省現(xiàn)代農(nóng)業(yè)資源智慧管理與應(yīng)用研究重點實驗室,浙江 湖州 313000)
根據(jù)世衛(wèi)組織的統(tǒng)計,2006 年中國的盲人大概有500 萬;到了2010 年,這一數(shù)字攀升到了824.8 萬;而在2016 年,失明者更是增加到了1 731 萬;截至2021 年底,我國盲人數(shù)量達(dá)1 730 萬,占世界盲人總數(shù)的18%。盲人群體的生存狀況是我國政府和社會長期關(guān)注的焦點。中國盲人協(xié)會官方網(wǎng)站發(fā)布數(shù)據(jù)顯示,我國目前現(xiàn)有的盲人數(shù)量居世界第一,是不可忽視的殘疾人群體。
2017 年,山東建筑大學(xué)對省內(nèi)65 個公共場所的調(diào)查發(fā)現(xiàn),有46%的盲道被占用[1];同年,石家莊的一份調(diào)查顯示:盲道被占率約為11%[2];2018 年一份對寧波市79 個社區(qū)的調(diào)查發(fā)現(xiàn),在危險地段設(shè)置警示性、提示性盲道的合格率僅為12%,合格率甚至低于商場[3]。由于城市建設(shè)規(guī)范對自行車、電瓶車的停放考慮欠佳,導(dǎo)致人行道被大量車輛占用,設(shè)置在人行道上的盲道也被殃及。這并不是“少數(shù)人素質(zhì)低下亂停亂放”的問題,這一問題在全國都很常見。
盲人出行除了在盲道方面遇到很多問題外,在輔助盲人出行工具這一方面也存在諸多困難。幫助盲人出行的方式通常有三種:導(dǎo)盲犬、盲杖和智能導(dǎo)盲裝置[4]。導(dǎo)盲犬?dāng)?shù)量極少,在盲人群體中擁有者并不普遍;盲杖由于檢測路面范圍不全面,在使用過程中會遇到對前方障礙物認(rèn)知不清、無法察覺懸空的障礙物等問題;現(xiàn)存的智能導(dǎo)盲設(shè)備大多分為超聲波導(dǎo)盲設(shè)備、紅外導(dǎo)盲設(shè)備、引導(dǎo)式導(dǎo)盲設(shè)備。在使用超聲波導(dǎo)盲設(shè)備時,超聲波在途中會被反射或吸收,導(dǎo)致采集的信息不完整、檢測出現(xiàn)盲區(qū)等;紅外導(dǎo)盲設(shè)備在室外時太陽光會對紅外線造成影響,導(dǎo)致測距出現(xiàn)一定程度的誤差;導(dǎo)盲機(jī)器人存在開發(fā)成本高和不易攜帶維護(hù)等缺點,因此無法進(jìn)行大范圍推廣應(yīng)用。
如今,隨著計算機(jī)視覺技術(shù)的發(fā)展與深度學(xué)習(xí)在圖像識別與檢測領(lǐng)域的廣泛應(yīng)用,機(jī)器能夠自動從大量圖像數(shù)據(jù)中提取圖像或?qū)?yīng)物體的特征進(jìn)行識別與判斷,達(dá)到了極高的準(zhǔn)確率。例如,基于深度學(xué)習(xí)的目標(biāo)檢測算法利用AlexNet[5]、VGG[6]、GooleNet[7]、ResNet[8]及ResNext[9]等卷積神經(jīng)網(wǎng)絡(luò)[10]作為提取圖像特征的主干網(wǎng)絡(luò),實現(xiàn)了高精確率的檢測模型。基于深度學(xué)習(xí)的目標(biāo)檢測從早期最具代表性的Fast-RCNN[11]、SPP-Net[12]、Faster-RCNN[13]等到近三年的SNIPER[14]、NAS-FPN[15]等檢測算法,多以高表征能力的CNN(Convolutional Neural Network, CNN)為主干網(wǎng)絡(luò)實現(xiàn)了較高的檢測精度。因此可將計算機(jī)視覺技術(shù)與硬件結(jié)合,應(yīng)用于導(dǎo)盲設(shè)備中。
為了讓盲人出行更加便捷,更加安全,本項目設(shè)計了一款能夠完整采集信息,不易受環(huán)境影響,可察覺前方障礙物種類,且易攜帶的盲人專用智能眼鏡,借助圖像分類與超聲波測距等技術(shù),賦予盲人一雙“慧眼”。開發(fā)的計算機(jī)視覺技術(shù)與深度學(xué)習(xí)算法相結(jié)合的盲人專用智能眼鏡,綜合超聲波導(dǎo)盲和引導(dǎo)式導(dǎo)盲方式,將微處理器安裝在眼鏡架上,通過超聲波與云端相配合對數(shù)據(jù)進(jìn)行處理。在盲道上行走遇到障礙物時該智能眼鏡會發(fā)出聲音提醒盲人,引導(dǎo)盲人,幫助盲人在盲道上安全行走。
本項目的控制系統(tǒng)以V831 開發(fā)板為核心控制器(以下稱V831 開發(fā)板核心控制器為主控),數(shù)據(jù)處理中心(ESP-32開發(fā)板)將超聲波測距模塊采集的信息經(jīng)處理后傳輸至主控,攝像頭模塊采集的數(shù)據(jù)經(jīng)圖像識別模塊分類后,將分類結(jié)果傳輸至主控,主控將得到的數(shù)據(jù)進(jìn)行整理,根據(jù)所得結(jié)果控制語音模塊的播報信息。系統(tǒng)總框圖如圖1 所示。
圖1 智能眼鏡控制系統(tǒng)總框圖
系統(tǒng)主要包括基于深度學(xué)習(xí)算法的圖像識別模塊、超聲波測距模塊和語音模塊,系統(tǒng)整體應(yīng)用流程如圖2 所示。打開開關(guān)為設(shè)備通電,系統(tǒng)啟動后進(jìn)行模型加載,模型加載完成后超聲波模塊和攝像頭模塊開始采集數(shù)據(jù)。通過對攝像頭采集的盲人在盲道上行走時所獲取的圖像信息與超聲波測距模塊采集的當(dāng)前設(shè)備與前方路面的距離信息進(jìn)行同步分析,判斷所得數(shù)據(jù)是否在設(shè)定的正常范圍內(nèi),若數(shù)據(jù)異常表明前方遇到障礙物,系統(tǒng)將獲取圖像識別模塊檢測的障礙物種類、超聲波測距模塊檢測的當(dāng)前位置與障礙物間的距離數(shù)據(jù),將數(shù)據(jù)整理后語音播報給使用者,然后繼續(xù)檢測;若數(shù)據(jù)在正常值范圍內(nèi),系統(tǒng)將不做提醒并繼續(xù)檢測。
圖2 系統(tǒng)總體應(yīng)用流程數(shù)據(jù)采集與傳輸
本項目將VR 眼鏡作為基礎(chǔ)結(jié)構(gòu),在此基礎(chǔ)上放置所需模塊及電路,并與電池連接,大體形狀如圖3 所示。此款VR 眼鏡長度為172 mm、寬度為89 mm、高度為93 mm,完全滿足本項目模塊對空間的需求。將攝像頭模塊放置于左眼位置處,將測距模塊放置于右眼位置處;電池放在眼鏡后部,減輕面部壓力,如圖4 所示。
圖3 智能眼鏡模型
圖4 智能眼鏡電池放置位置
本眼鏡所用測距傳感器為A21 超聲波傳感器模塊,其具備高精度、盲區(qū)?。^(qū)≤0.03 m、探測量程0.02 ~5 m)、雙FOV 探測角(水平角度40°~65°,垂直角度60 ~80°)、響應(yīng)時間短、過濾同頻干擾、體積小、安裝適配性高、防塵防水、壽命長、可靠性高等優(yōu)點;此傳感器的雙角度探測有不同等級可選,根據(jù)本眼鏡應(yīng)用情況,選取水平角度25°,垂直角度40°;不同身高、不同視角對于距離的測量準(zhǔn)確度影響不大。具體測量區(qū)域如圖5 所示。
圖5 超聲波傳感器測量區(qū)域
本眼鏡采用的攝像頭模塊為與V831 開發(fā)板配套的攝像頭模塊,該模塊的攝像頭具有200 萬像素的固定焦點圖像傳感器,所拍攝的圖片分辨率為1 600×1 200,攝像頭模塊以每秒20 幀的速度抓取圖片,并傳到主控,可以較真實且迅速地拍攝環(huán)境圖片。
數(shù)據(jù)傳輸流程如圖6 所示。一方面,超聲波模塊采集前方距離信息,ESP-32 開發(fā)板將超聲波模塊采集的數(shù)據(jù)加工處理后傳給主控;另一方面,攝像頭采集當(dāng)前盲道情況的圖像數(shù)據(jù),后將圖片傳給主控。主控接收并處理數(shù)據(jù)得到結(jié)果,若遇到非正常結(jié)果,便根據(jù)當(dāng)前情況對使用者進(jìn)行語音播報提醒。
圖6 數(shù)據(jù)傳輸流程
基于數(shù)字圖像處理技術(shù)對盲道路況進(jìn)行識別分類這一課題在深度學(xué)習(xí)領(lǐng)域?qū)儆谛滦脱芯宽椖?,采用的?xùn)練集和驗證集是團(tuán)隊成員由以下方式獲得:
(1)團(tuán)隊成員實地拍攝;
(2)在百度、谷歌、必應(yīng)等大型網(wǎng)站上搜集下載,具體情況見表1 所列。
表1 數(shù)據(jù)集詳情
將每一類預(yù)留出20%作為測試集,其余作為訓(xùn)練集。具體分類實例如圖7 所示。
圖7 盲道圖片分類部分示例
現(xiàn)在較為經(jīng)典的深度學(xué)習(xí)模型是VGG 和ResNet。但這兩種網(wǎng)絡(luò)模型的參數(shù)量與計算量較大,效率較低,占用內(nèi)存較大。為提升卷積層網(wǎng)絡(luò)效率,研究人員在卷積層神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上提出了輕量化卷積神經(jīng)網(wǎng)絡(luò)。
本項目的分類模型采用基于MobilenetV1[16]的圖像分類模型。MobilenetV1 模型是Google 針對手機(jī)等嵌入式設(shè)備提出的一種輕量級深層神經(jīng)網(wǎng)絡(luò),該模型的核心思想是使用深度可分離卷積塊(Depthwise Separable Convolution)。深度可分離卷積塊是由深度可分離卷積和普通1*1 卷積組成。其中,深度可分離卷積的卷積核一般為3*3,通常用于特征提取,而普通1*1 卷積可以完成通道數(shù)調(diào)整。使用深度可分離卷積塊的目的是使用更少的參數(shù)來代替普通的3*3 卷積。深度可分離卷積塊如圖8 所示。MobilenetV1 網(wǎng)絡(luò)結(jié)構(gòu)見表2 所列。
表2 MobilenetV1 網(wǎng)絡(luò)結(jié)構(gòu)
圖8 深度可分離卷積塊
運用現(xiàn)有的數(shù)據(jù)集,訓(xùn)練并使用分類模型,將在盲道上所遇障礙物分為石墩、墻、消防栓、樹、桿、電瓶車、車七類,當(dāng)所遇環(huán)境檢測出為以上七類的其中一種,并且概率大于35%時,就認(rèn)為其所遇障礙物為該障礙物;但當(dāng)其所遇環(huán)境被分類為以上七種的其中一種,但概率低于35%,則認(rèn)為該環(huán)境為正常盲道。運用訓(xùn)練好的模型對測試集進(jìn)行測試:盲道識別算法先讀取測試集圖片,然后依次對圖片進(jìn)行檢測,并輸出障礙物具體種類。共測試10 組,每組340 張圖片,檢測結(jié)果正確率約為95.02%。表3 所列為部分測試結(jié)果的分析記錄。
表3 模型測試結(jié)果
通過對分類錯誤的圖片進(jìn)行分析,發(fā)現(xiàn)分類錯誤的圖片主要分為兩種:一種是圖片內(nèi)包含要素過多,另一種是圖片內(nèi)要素展露不充分。圖片檢測失敗的原因主要是圖片內(nèi)容影響圖片信息的讀取,由此得出,盲道路況識別算法在障礙物較少且展露充分的情況下識別穩(wěn)定并且準(zhǔn)確率較高;但在障礙物種類較多和障礙物展露不充分的情況下,系統(tǒng)識別正確率下降,偏差數(shù)值范圍為0.1%~0.9%。通過以上評估,認(rèn)為此算法已經(jīng)具備一定的盲道路況障礙物識別能力。
在模型訓(xùn)練完成后,生成onnx 深度學(xué)習(xí)網(wǎng)絡(luò)文件。調(diào)用onnx2ncnn 轉(zhuǎn)換工具,將生成的onnx 模型轉(zhuǎn)換為ncnn 模型。同時,為使得生成的ncnn 模型可以被V831 開發(fā)板直接使用,將該模型量化,轉(zhuǎn)換成V831 開發(fā)板可直接使用的awnn 模型,模型轉(zhuǎn)化、移植完成且經(jīng)過調(diào)試后,即可使用。本項目在深度學(xué)習(xí)圖像識別算法選擇上,嘗試了多種經(jīng)典的通用圖像識別算法,首先在運算服務(wù)器端對比測試了不同模型的處理識別速度,最終將效果優(yōu)良且輕量級的Mobilenet 模型移植入嵌入式設(shè)備。實踐結(jié)果見表4 所列。
表4 3 個模型結(jié)果對比
通過對實踐結(jié)果的分析,可以得知:傳統(tǒng)的VGG、ResNet 算法模型精度優(yōu)良但模型參數(shù)量過大,在嵌入式設(shè)備或移動設(shè)備上使用效果較差,MobilenetV1 模型效果優(yōu)良且參數(shù)量較少,在嵌入式設(shè)備上應(yīng)用效果極佳。因此本項目采用了目前在圖像分類領(lǐng)域較為常用及輕量級,同時針對嵌入式設(shè)備開發(fā)的MobilenetV1 網(wǎng)絡(luò)模型。
本設(shè)計經(jīng)過電路實現(xiàn)后,進(jìn)行了相應(yīng)的模擬實驗,將組裝完成的眼鏡(如圖9 所示)拿到實地現(xiàn)場做定量測試,選擇多段直線盲道作為測試路段,路途設(shè)置靜止障礙物,定義試驗者初始位置到障礙物的距離為起始距離,實際停止位置與障礙物之間的距離為終止距離,以障礙物處為起點,放置米尺。設(shè)定起始距離為5 m,指引試驗者沿盲道行走,通過記錄揚聲器播報障礙物種類及距離(即終止距離),并于設(shè)定障礙物種類及米尺上顯示距離進(jìn)行對比,若播報終止距離與實際終止距離的誤差在實際終止距離的±5%(±10%)范圍內(nèi),即為測試成功;另外,將障礙物種類和與障礙物之間的距離數(shù)據(jù)在V831 的屏幕中顯示,若語音播報功能出現(xiàn)故障,則將直接記錄V831 屏幕中的數(shù)據(jù),并將語音播報功能記為失敗。多次重復(fù)試驗后,所得結(jié)果見表5 所列。
表5 眼鏡試驗測試結(jié)果
圖9 智能眼鏡實物
試驗結(jié)果表明,在實際測試中,本眼鏡對“石墩”和“樹”這兩類障礙物識別效果較好,成功率分別約為96.67%和95%,對“桿”和“墻”這兩類障礙物識別效果較差,成功率分別約為78.33%和71.43%,識別效果較差的原因是由于模擬環(huán)境中使用的圖片較為單一,而實際環(huán)境中,環(huán)境嘈雜、圖片要素過多或光線過亮,曝光度過高導(dǎo)致識別效果較差;語音播報功能效果良好,成功率約為96.75%;在與障礙物間的距離測量方面,誤差小于5%,成功率約為93.75%,若誤差小于10%,成功率約為99.25%,可以對距離進(jìn)行較為準(zhǔn)確地測量。
本項目通過對智能眼鏡的設(shè)計,結(jié)合Python 對于V831開發(fā)板的控制、圖像分類識別算法及超聲波測距模塊的配合,實現(xiàn)了對盲人出行過程進(jìn)行實時路況識別的功能,達(dá)到較好的輔助盲人日常出行的效果。該眼鏡分類系統(tǒng)的精度還不夠高,分類種類還可以更多,模型需要進(jìn)一步優(yōu)化升級,使其更接近人眼感知效果。