彭琳鈺,劉宇紅,馬治楠,戴晨亮
(貴州大學 大數(shù)據(jù)與信息工程學院,貴州 貴陽 550025)
據(jù)英國《The Lancet Global Health》刊載的一篇研究報告顯示:到2050年,全球失明病例將從3600萬增加到1.15億。中國是世界上視力障礙人數(shù)最多的國家之一,2016年底視力障礙人數(shù)統(tǒng)計約1731萬人,其中盲人占500多萬,每年約新增盲人45萬,低視力者135萬。盲人作為視聽障礙群體,信息接收上的障礙嚴重影響了其生活、社交。
目前,盲人普遍采用手杖或導盲犬的傳統(tǒng)導盲方式,而普通手杖探測范圍較窄,導盲犬訓練不易,成本較高。近年也出現(xiàn)了許多對于新型導盲設備的研究。曾婧婧等[1]將能力風暴機器人設計為機器導盲犬,機器人裝置有碰撞、紅外等傳感器,通過控制機器導盲犬的行動來實現(xiàn)導盲,但該機器人控制不便,且不利于在復雜環(huán)境中使用(例如臺階、水坑等)。方仁杰等[2]設計了一種基于GPS與超聲波的導盲手杖,用超聲波技術探測障礙,但該手杖僅能探測正前方的路況,檢測盲區(qū)較大。朱愛斌等[3]研究了一種可穿戴式的導盲機器人,由上下身皆裝置超聲波模塊的兩部分組成,其中還結合了雙目、紅外測距功能,但該設計僅能探測障礙物的距離,且穿戴繁瑣、功耗較大,不便攜帶。
上述導盲方式均不能使盲人擁有直觀的“視覺”體驗,針對已有導盲技術存在的問題,本文設計了一種基于深層卷積神經網絡[4]的智能導盲終端,旨在幫助盲人群體在外出過程中準確、安全地對障礙物進行“認知”避讓,該系統(tǒng)功能使用穩(wěn)定,設計人性化,具有開闊的市場前景。
導盲終端的控制系統(tǒng)主要由兩個主從控制的中央處理器構成。系統(tǒng)以Cortex-A9架構的I.MX6Q處理器為主控制模塊,負責控制各硬件模塊,并與從處理器進行交互。以Cortex-A53架構的Raspberry PI 3 Model B為從處理器,作為深層神經網絡專用處理器,利用其GPU加速以提高計算效率。兩個處理器皆搭載Linux系統(tǒng),通過數(shù)據(jù)總線,以一個三態(tài)緩沖器控制存儲單元的讀寫,當讀寫控制線處于低電位時,主控制器向從控制器的存儲器里寫入;處于高電位時,則由主控制器讀出;無需傳輸時,端口處于高阻態(tài)。
主控制器搭建雙目圖像采集、4G通信、GPS定位系統(tǒng)、語音播報、報警等核心功能模塊,以保證導盲終端功能的完整性及實用性。為了協(xié)調各功能,系統(tǒng)主控制器采用多線程處理,終端由五個觸發(fā)按鍵切換控制,按鍵功能分別為:識別障礙物、標志并測距;識別場景;GPS定位并播報;傳送求助報警信息和時間播報。這種主從結構的中央處理器并行計算方式,可直接在前端搭建深度學習[5]框架及雙目測距算法,并協(xié)同其他功能模塊完成導盲任務,大大減少了系統(tǒng)反應時間,提高了實時性。此外,針對盲人的監(jiān)護者,本系統(tǒng)設計了對應的APP,通過APP,監(jiān)護人不僅能夠實時查看盲人的位置,還能夠接收到盲人的求助信息。系統(tǒng)的總體設計框圖如圖1所示。
圖1 系統(tǒng)的總體設計框圖Fig.1 Overall design block diagram of the system
圖像采集模塊采用兩個300萬像素的Logitech C270高清攝像頭,固定攝像頭使其視軸平行且角度一致以便于定標。該模塊主要用于采集當前環(huán)境信息及目標的深度信息。
本文采用4G通信技術,主要供搭載的Linux系統(tǒng)聯(lián)網校時,以及前端與移動客戶端之間的通信。一方面通過4G網絡將GPS模塊獲取的經緯度信息發(fā)送至移動客戶端,再調用百度API接口進行經緯度解析和定位顯示。另一方面,當盲人遇到困難需要緊急聯(lián)系家人時,由4G網絡向移動客戶端發(fā)送警報信息。系統(tǒng)選用SIM7100C作為通信模塊。
GPS系統(tǒng)能在全球范圍內進行全天候、高效率、高精度的實時定位[6]。本系統(tǒng)采用的GPS型號為U-blox公司的NEO-7N,定位精度最高能達2.5 m。
智能語音模塊的合成芯片采用SYN6658,該模塊的系統(tǒng)結構如圖2所示。主控制器與SYN6658通過UART或SPI接口連接,向語音芯片發(fā)送控制命令和識別文本,經過切分詞匯等處理,SYN6658將文本合成為語音輸出,通過功放和喇叭播報結果。該模塊主要用于播報障礙物和標志的距離、種類及方位,并根據(jù)需求播報所處場景、定位和時間,以引導盲人安全出行。
圖2 語音合成模塊的系統(tǒng)結構圖Fig.2 System structure diagram of speech synthesis module
智能導盲終端的系統(tǒng)軟件設計主要包括:主控制模塊,負責調度和控制整個系統(tǒng)的數(shù)據(jù)傳輸、運行流程;圖像采集模塊,負責采集當前環(huán)境的圖像信息,圖片采集頻率為2幀/s;計算模塊,采用C++/Python等編程語言實現(xiàn)雙目測距算法及深度學習算法;語音播報模塊,負責把識別的結果、實時定位信息、當前時間等播報出來;定位模塊,負責獲取使用者所在經緯度信息,對于終端,通過IPC傳輸給解析程序,解析程序使用Qt的WebBrowser加載解析程序,再調用百度地圖API接口完成位置糾偏和解析;對于監(jiān)護者,在手機端直接解析后顯示定位。圖3是導盲終端的軟件設計圖。
人類大腦的活動是神經元之間的彼此聯(lián)系,深度學習模仿人腦的神經元之間傳遞和處理信息的方式,不斷增加網絡隱藏層層數(shù)和神經元數(shù)目,以一種類似人腦分層模型的結構,從輸入的數(shù)據(jù)中學習隱含的高層表示[7]。圖4為一個典型的多隱藏層卷積神經網絡模型。
圖3 導盲終端的軟件設計圖Fig.3 Software design diagram of the guide terminal
圖4 卷積神經網絡典型網絡結構Fig.4 Convolutional neural network typical network structure
深度學習中的卷積神經網絡(CNN)是計算機視覺領域最流行、廣泛的一種算法,其基本架構為:局部互聯(lián),共享權重,池化,多層卷積[8]。網絡初始主要由卷積層和下采樣層組成,卷積層檢測前一層的局部連接特征后,下采樣層進行局部平均,降低表示維度,這種結構在整個網絡中多次交替分布,再接入更多的卷積層或全連接層。卷積神經網絡具有內存占用小,參數(shù)量小,泛化能力強,計算速度快及訓練簡單等優(yōu)點[9]。
4.2.1數(shù)據(jù)集介紹
本文的智能導盲系統(tǒng)有常見障礙物、交通/警示標志、場景共三大類圖像識別對象。其中常見障礙物采用改進的Pascal VOC數(shù)據(jù)集,在原始的Pascal VOC數(shù)據(jù)集中共有自行車、小汽車等20類。場景集采用改進的NUS-WIDE-SCENE數(shù)據(jù)集,原始的NUS數(shù)據(jù)集數(shù)據(jù)質量高,但每類數(shù)據(jù)數(shù)目不均且雜亂。為了增加系統(tǒng)的實用性,結合日常實際情況,本文對Pascal VOC數(shù)據(jù)集進行改進,新增減速帶、斑馬線、臺階、樹、路燈、門、電梯等共40類常見障礙物數(shù)據(jù),對NUS-WIDE-SCENE也進行了整理和擴充,分為辦公室、超市、建筑群、草地/草坪、海/湖/河流、馬路、人群共七大場景。另外,為了使盲人在出行中更安全便捷,本文對國內常見的交通/警告標志、男/女洗手間等共30類標志進行了訓練。上述數(shù)據(jù)集中訓練集為6000張/類,測試集為4000張/類。
訓練樣本數(shù)據(jù)前,圖像統(tǒng)一縮減為224*224的彩色圖像,由于數(shù)據(jù)量規(guī)模較小,故采用仿射變換法、平移變換法及模糊處理進行數(shù)據(jù)增強,以防訓練陷入過擬合。
4.2.2網絡結構設計
對比測試了AlexNet[10]、VGG[11]等常見深度學習模型后,選用ILSVRC2015比賽中獲得冠軍的ResNet[12]為基礎網絡結構,該模型一共有152層之深,主要結構為多層堆疊的殘差學習單元,通過學習輸入、輸出的差別來簡化學習目標和難度,這種結構能優(yōu)化訓練速度和識別效果,解決退化問題。
本文所用模型設計為46層,主要結構如下:輸入層,主要加載數(shù)據(jù)集,載入的數(shù)據(jù)向量為 [32,3,224,224],此處32為批處理量(batch size),即一次讀取32張3維的圖片。卷積層,主要從圖片中學習隱含的特征,第一個卷積層的卷積核大小為7*7,stride設為2,pad設為3。之后的殘差層采用3層的殘差網絡結構,為了緩解由網絡較深引起的梯度消失現(xiàn)象,以1*1-3*3-1*1大小的卷積核交替搭建,如圖5所示,stride依據(jù)具體情況設為:1~2,pad設為:0~1,使用ReLU激活函數(shù)提高網絡收斂速度。池化層,用于擴大感受野,對卷積層輸出的特征圖做聚合統(tǒng)計,本模型中一共2層,第一層緊跟在首層卷積層后面,采用最大值下采樣法,下采樣窗口尺寸設為3*3,stride為2,對每個不重疊的3*3的區(qū)域進行降采樣,減少參數(shù)量。第二層后接全連接層,采用平均池化法,下采樣窗口尺寸為7*7,stride設為1。整個網絡隨著層數(shù)加深,抽取的特征也由邊緣信息提升為高層表示。最后輸入一個神經元數(shù)量為40(以障礙物數(shù)據(jù)集為例)的全連接層,通過SoftmaxWithLoss層計算測試樣本分別在40個類別上的概率,SoftmaxWithLoss層實際上包含交叉熵代價函數(shù)及Softmax分類器,Softmax分類器常用于解決多分類問題,對于給定的輸入M,可以得到n分類的概率,公式如下,此處n=40:
(1)
圖5 三層殘差網絡結構圖Fig.5 Three-layer residual network structure
4.2.3實驗工具及訓練機制
本文模型訓練所使用的實驗工具參數(shù)如表1所示,訓練耗時總計約7小時40分鐘。
表1 實驗工具參數(shù)Tab.1 Experimental tool parameters
采用監(jiān)督訓練的方式,將初始階段學習率設置為0.01,學習策略采用multistep模式,從底層逐層地向頂層訓練,分別獲取各層參數(shù),再由此進一步調整整個模型的參數(shù),通過帶標簽的數(shù)據(jù)去訓練。在訓練迭代300000次后,用序列化存儲學習到的權值對網絡進行微調,以增強模型的泛化性和魯棒性。
本文訓練的模型準確率如圖6所示,訓練及測試時的loss變化如圖7所示。為檢驗模型性能,在Pascal VOC數(shù)據(jù)集上對各類主流方法進行了橫向比較,訓練迭代50000次,對比結果如圖8所示。由于人在行進狀態(tài)中,攝像頭采集的圖像存在模糊、變形的情況,為驗證模型的魯棒性及實時性,隨機加入了經壓縮、旋轉、加噪等方式處理的圖像數(shù)據(jù)進行系統(tǒng)實測,F(xiàn)PS測試為12幀/s。本文采用SGBM算法進行測距,使用OpenCV對兩個參數(shù)一致的攝像頭進行標定和立體校正,然后從不同視點圖中進行特征匹配,生成包含距離信息的深度圖,在樹莓派上的系統(tǒng)運行可視化如圖9所示。
圖6 本文模型的準確率Fig.6 Accuracy of the model
圖7 訓練和測試時的loss變化Fig.7 Loss changes during training and testing
圖8 在Pascal VOC數(shù)據(jù)集上與其他算法的準確率比較Fig.8 Comparison of accuracy with other algorithms on Pascal VOC datasets
圖9 系統(tǒng)識別與測距結果Fig.9 System identification and ranging results
本文針對7個類測試模型的準確率,準確率詳細情況如表2所示。
表2 系統(tǒng)實測的準確率Tab.2 The measured accuracy of the system
上述實驗證明,采用主從并行計算的處理方式,不僅能實現(xiàn)將深度學習框架移植在硬件上,還有效提高了系統(tǒng)運行效率。采用預訓練與遷移學習結合的深層卷積神經網絡訓練策略,模型的平均準確率為98.77%,與傳統(tǒng)的機器學習算法相比,提高了近30%,而且訓練速度更快,避免了訓練出現(xiàn)過擬合的現(xiàn)象。
針對盲人監(jiān)護者需求,結合導盲終端GPS及報警功能進行系統(tǒng)調試。為安全起見,每個終端對應一個賬戶,以防信息泄露。用戶登錄移動客戶端后可跟蹤使用者的位置。當在終端按下報警求助按鍵時,手機在數(shù)秒內即通過振動/響鈴的方式提示并輸出信息。實驗證明,監(jiān)護者能通過登錄APP,隨時定位盲人的位置,為盲人的安全出行提供了多重保護。
本文所設計的基于深層卷積神經網絡的導盲終端,以主從并行計算的結構,將系統(tǒng)主控制模塊與計算模塊配置在兩個獨立的處理器上,并協(xié)同圖像采集、GPS定位、報警報時、語音播報、無線通訊模塊,完成了導盲終端的軟、硬件設計。經系統(tǒng)實測,訓練的模型能順利移植到前端硬件上,實現(xiàn)了深度學習框架在硬件上的移植,控制器并行處理的結構提高了實時運行效率。該智能導盲終端不僅能對室外常見障礙物、標志、場景做出較為準確的識別,且各功能切換流暢。供監(jiān)護者使用的移動客戶端定位實時精確,人性化的設計使盲人的出行更加便捷。該設計能給盲人朋友帶來直觀的“視覺”福音,使其生活更加便捷,在科技高速發(fā)展的今天,對于較大基數(shù)的盲人群體來說顯得尤為迫切,也具有一定的社會意義。