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