郭潤蘭, 史方青, 范雅瓊, 何 智
(蘭州理工大學(xué) 機(jī)電工程學(xué)院, 甘肅 蘭州 730050)
近年來,玻璃幕墻以其便于維護(hù)、自重輕等優(yōu)勢被廣泛應(yīng)用,而傳統(tǒng)的人工清潔方式存在高風(fēng)險(xiǎn)、勞動(dòng)強(qiáng)度大等弊端,因此利用壁面清洗機(jī)器人代替人工實(shí)現(xiàn)智能化清洗,具有迫切的現(xiàn)實(shí)意義.目前壁面清洗機(jī)器人的研究主要在機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)[1-2]以及控制方法[3]等方面,缺少對現(xiàn)有的機(jī)器人進(jìn)行升級(jí),而借助人工智能技術(shù)和機(jī)器視覺方法有助于實(shí)現(xiàn)壁面的智能化清洗.
現(xiàn)階段的障礙物識(shí)別常采用機(jī)器視覺的方法進(jìn)行檢測.曹文明等[4]針對除冰機(jī)器人的環(huán)境特點(diǎn),綜合利用圖像處理方法得到障礙物邊緣圖像,并以圖像聯(lián)合不變矩為識(shí)別特征,最終用小波神經(jīng)網(wǎng)絡(luò)以及SVM技術(shù)進(jìn)行障礙物圖像的分類識(shí)別,結(jié)果表明該方法有良好的識(shí)別精度及可靠度.萬磊等[5]針對水下機(jī)器人采集到圖像低對比度以及低信噪比的缺陷,利用前視聲吶和距離選通激光成像設(shè)備,以小波矩為識(shí)別特征,使用廣義神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)異的自動(dòng)采集及識(shí)別圖像.唐宏偉等[6]提出一種自適應(yīng)閾值的小波變換邊緣提取算法,并設(shè)計(jì)了一種粒子群優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)進(jìn)行障礙物的識(shí)別分類,實(shí)驗(yàn)結(jié)果表明該方法識(shí)別準(zhǔn)確率較高.
隨著深度學(xué)習(xí)的發(fā)展,不同場景的樣本分類識(shí)別常使用深度學(xué)習(xí)算法,取得了良好的成效.薛金林等[7]針對農(nóng)田作業(yè)場景中的動(dòng)態(tài)障礙物,設(shè)計(jì)了一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的障礙物分類識(shí)別方法,結(jié)果表明該模型識(shí)別率能達(dá)94.2%.劉小剛等[8]針對目前草莓識(shí)別定位大多在簡單環(huán)境下且識(shí)別效率較低的問題,利用改進(jìn)的YOLOv3模型識(shí)別,識(shí)別準(zhǔn)確率能達(dá)97.14%.Kouzehgar等[9]利用機(jī)器視覺采集圖像,并搭建卷積神經(jīng)網(wǎng)絡(luò)識(shí)別幕墻玻璃裂紋,識(shí)別準(zhǔn)確率可達(dá)90%左右.郭光宇等[10]利用卷積神經(jīng)網(wǎng)絡(luò)對分段后的環(huán)境進(jìn)行識(shí)別,以此來實(shí)現(xiàn)移動(dòng)機(jī)器人的避障,并在圖像處理的像素中引入體積元的概念,結(jié)果表明該網(wǎng)絡(luò)有較好的識(shí)別避障能力.Singh等[11]使用卷積神經(jīng)網(wǎng)絡(luò)識(shí)別新生兒的各種表情,提出一種新的N-N算法,識(shí)別準(zhǔn)確率提高了4.58%;張?jiān)频萚12]提出了一種級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)對人臉特征點(diǎn)進(jìn)行識(shí)別,得到了較高的識(shí)別率.
目前的研究結(jié)果表明,傳統(tǒng)的識(shí)別方法識(shí)別準(zhǔn)確度相對不高,主要在于不同狀態(tài)下采集的輪廓邊緣存在差別,特征提取及選取依賴經(jīng)驗(yàn),從而影響識(shí)別的辨識(shí)度;而深度學(xué)習(xí)及視覺檢測方法以其信息量大、準(zhǔn)確率高等優(yōu)點(diǎn)被廣泛用于各種場景的對象識(shí)別,主要在于深度學(xué)習(xí)覆蓋范圍廣,學(xué)習(xí)能力強(qiáng),能高度適應(yīng)不同對象的特征,進(jìn)而影響識(shí)別過程中的準(zhǔn)確度.因此,為了有效識(shí)別壁面清洗機(jī)器人工作中遇到的障礙物,本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的壁面清洗機(jī)器人障礙物檢測識(shí)別算法,利用深度相機(jī)采集壁面障礙物圖像,搭建卷積神經(jīng)網(wǎng)絡(luò)對三類障礙物識(shí)別分類,探究壁面清洗機(jī)器人在高空復(fù)雜環(huán)境下的障礙物識(shí)別能力.
本文沿用本課題組的壁面清洗機(jī)器人,工作原理如圖1所示,機(jī)器人本體配合卷揚(yáng)機(jī)、水箱和廢水回收裝置完成玻璃幕墻的清洗工作.壁面清洗機(jī)器人采集圖像使用的深度相機(jī)如圖2所示,它可以直接根據(jù)環(huán)境光采集圖像,通過采集的RGB圖像或者灰度圖像計(jì)算深度.機(jī)器人本體結(jié)構(gòu)如圖3所示,壁面清洗機(jī)器人由行走機(jī)構(gòu)、清掃裝置、負(fù)壓吸附裝置和旋翼機(jī)構(gòu)組成.行走機(jī)構(gòu)采用具有越障能力的多邊形履帶.針對壁面污垢的特點(diǎn),清掃機(jī)構(gòu)采用高壓沖洗、滾刷、刮洗相結(jié)合的方式完成清洗工作.針對機(jī)器人在越障過程中負(fù)壓吸附裝置存在泄漏現(xiàn)象,采用旋翼產(chǎn)生的推力的方式來補(bǔ)償泄露.因此障礙物的快速準(zhǔn)確識(shí)別在機(jī)器人避障過程中至關(guān)重要.
圖1 工作原理圖Fig.1 Working principle
圖2 深度相機(jī)
圖3 壁面清洗機(jī)器人
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一類特殊的人工神經(jīng)網(wǎng)絡(luò),主要包括輸入層、卷積層、池化層、全連接層以及輸出層.首先通過卷積、池化以及非線性激活函數(shù)映射等操作,從原始數(shù)據(jù)輸入層提取出高層語義信息.然后利用最后一層的運(yùn)算將目標(biāo)任務(wù)變換為目標(biāo)函數(shù),接著采用反向傳播算法,通過最后一層向前反饋誤差或損失,從而更新網(wǎng)絡(luò)各層參數(shù),多次反饋,重復(fù)操作直至找到最優(yōu)解使模型收斂.
目前,常規(guī)圖像分類網(wǎng)絡(luò)常含有多個(gè)卷積層,訓(xùn)練時(shí)間較長且訓(xùn)練樣本較大,如VGG、Alexnet等.因此本文設(shè)計(jì)了VGG-16的簡化網(wǎng)絡(luò),如圖4所示,它包含輸入層、3層卷積層(3×3的卷積核,步長為2)、2層池化層(2×2的池化域,步長為2)、1層全連接層以及輸出層,網(wǎng)絡(luò)初始參數(shù)如表1所列.
圖4 障礙物識(shí)別檢測網(wǎng)絡(luò)模型Fig.4 Network model for obstacle recognition and detection
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,每層均會(huì)使用激活函數(shù),使神經(jīng)網(wǎng)絡(luò)具有分層的非線性映射學(xué)習(xí)能力.目前常見的激活函數(shù)有分段線性和具有指數(shù)形狀的非線性函數(shù),不同激活函數(shù)在定義域上的函數(shù)圖像如圖5所示,Sigmoid函數(shù)用在特征相差不明顯的的場合,而Tanh函數(shù)則相反.使用以上激活函數(shù)需輸入規(guī)范化,否則激活后的值會(huì)全部進(jìn)入平坦區(qū),隱層的輸出全部趨同,丟失原有的表達(dá).但ReLU函數(shù)不會(huì)出現(xiàn)以上問題,因此它是最常用的現(xiàn)代激活函數(shù)之一.在本文模型中,卷積層及池化層均使用ReLU函數(shù),ReLU函數(shù)能夠?qū)崿F(xiàn)較高效率的梯度下降以及反向傳播,主要以監(jiān)督的方式訓(xùn)練網(wǎng)絡(luò),不需要依賴無監(jiān)督的逐層預(yù)訓(xùn)練,從而避免了梯度爆炸和梯度消失這兩個(gè)問題,ReLU函數(shù)的數(shù)學(xué)表達(dá)為
(1)
圖5 不同激活函數(shù)圖像
目前常通過梯度下降法迭代求解,從而得到損失函數(shù)的最小值以及模型的參數(shù)值,假設(shè)第τ次迭代于某個(gè)位置wτ,以下式更新權(quán)重:
wτ+1=wτ-ητe′(wτ)
(2)
式中:e為目標(biāo)函數(shù);η為學(xué)習(xí)速率.
學(xué)習(xí)率在各種算法中起著至關(guān)重要的作用,目的在于控制梯度下降的速度.通常,當(dāng)學(xué)習(xí)率η較小時(shí),學(xué)習(xí)算法便會(huì)以緩慢的速度在參數(shù)空間中移動(dòng);相反,當(dāng)學(xué)習(xí)率η較大時(shí),參數(shù)空間中每一步跨度會(huì)很大,而當(dāng)前進(jìn)的方向不確定是否正常時(shí),需選擇相對小的步長來實(shí)驗(yàn).本文比較了四種不同學(xué)習(xí)率對訓(xùn)練過程的影響,如圖6所示,網(wǎng)絡(luò)在學(xué)習(xí)率為10-3時(shí)收斂速度最快也最穩(wěn)定,因此本文選擇10-3來訓(xùn)練.
圖6 不同學(xué)習(xí)率對訓(xùn)練的影響Fig.6 The impact of different learning rates on training
為降低壁面清洗機(jī)器人在清潔過程中的誤識(shí)別率,將識(shí)別對象分為窗框、玻璃固定架以及打開狀態(tài)的窗戶三類,并建立樣本數(shù)據(jù)庫,包括訓(xùn)練集和檢測集.本文中數(shù)據(jù)集使用深度相機(jī)采集,挑選并使用數(shù)據(jù)增廣的方法,通過隨機(jī)旋轉(zhuǎn),指定隨機(jī)水平,或者豎直方向移動(dòng)的程度、剪切變換,放大或者縮小等一系列方法進(jìn)一步使樣本提升,最終得到數(shù)據(jù)集共1 020張圖片,其中訓(xùn)練集共810張,每組270張,檢測集共210張,每組70張.數(shù)據(jù)集中部分樣本集如圖7所示.為了便于訓(xùn)練,對所有的樣本歸一化處理,將所有的圖片轉(zhuǎn)化為jpg格式,將窗框、玻璃固定架以及打開狀態(tài)的窗戶這三類的圖片集分別使用不同前綴命名,為后續(xù)測試集的檢測作準(zhǔn)備.且為了后續(xù)搭建的網(wǎng)絡(luò)能方便地處理圖片,將所有的樣本修剪為100×100像素大小.
圖7 數(shù)據(jù)集部分樣本
其中,圖像處理算法是基于OpenCV3.0,卷積神經(jīng)網(wǎng)絡(luò)搭建基于Python 3.6以及深度學(xué)習(xí)庫Tensorflow 2.0.0.運(yùn)行環(huán)境為Intel(R)Xeon(R)Silver4110CPU@2.10 GHz、64 GB運(yùn)行內(nèi)存、Windows 10操作系統(tǒng).
當(dāng)使用深度相機(jī)采集圖片,得到的圖像不免會(huì)出現(xiàn)噪聲等干擾因素;而采集到的障礙物信息既沒有豐富的紋理特征也沒有鮮明的顏色特征,這在很大程度上影響障礙物的識(shí)別結(jié)果,但可利用障礙物之間的形狀與輪廓相差較大這一點(diǎn)來優(yōu)化識(shí)別效果,因此對圖像預(yù)處理可采用OpenCV的圖像處理算法有效去除圖像中的噪聲.本文采用方框?yàn)V波、均值濾波、高斯濾波、中值濾波以及雙邊濾波這五種圖像濾波方法對圖片降噪處理,如圖8所示為玻璃固定架用不同方式處理后的圖片,經(jīng)對比,使用雙邊濾波算法能夠較好地對圖片平滑處理.三種障礙物均通過雙邊濾波算法處理,預(yù)處理結(jié)果如圖9所示.
圖8 不同圖像濾波方法結(jié)果Fig.8 Results of different image filtering methods
圖9 預(yù)處理圖像Fig.9 Preprocessed image
卷積神經(jīng)網(wǎng)絡(luò)在很大程度上能學(xué)習(xí)由輸入到輸出的映射關(guān)系,不需精確的輸入與輸出之間的函數(shù)關(guān)系而僅根據(jù)已有的模式多次訓(xùn)練,就能得到相應(yīng)的映射關(guān)系.而多次訓(xùn)練的目的在于提高網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率,從而完成壁面清洗工作.卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程為:首先使用前向傳播得到網(wǎng)絡(luò)的預(yù)測值;然后使用反向傳播算法鏈?zhǔn)角髮?dǎo),計(jì)算損失函數(shù)對每個(gè)權(quán)重的偏導(dǎo)數(shù);最后使用梯度下降法使權(quán)重更新.
3.3.1卷積神經(jīng)網(wǎng)絡(luò)的前向傳播
對于卷積神經(jīng)網(wǎng)絡(luò)的前向傳播,首先是卷積層的前向傳播,設(shè)神經(jīng)網(wǎng)絡(luò)總層數(shù)為l,用*表示卷積運(yùn)算,當(dāng)卷積到第l層時(shí)計(jì)算如下:
同樣,池化層的前向傳播主要是為了將輸入成倍縮小,不需要訓(xùn)練參數(shù),當(dāng)池化操作至第l層時(shí),有如下計(jì)算:
3.3.2卷積神經(jīng)網(wǎng)絡(luò)的反向傳播
對于卷積神經(jīng)網(wǎng)絡(luò)的反向傳播,需要對卷積層、池化層以及激活函數(shù)求導(dǎo).此處定義損失函數(shù)的形式為平方差函數(shù):
(7)
式中:En表示n個(gè)數(shù)據(jù)樣本訓(xùn)練形成過程的誤差;c表示全連接層最終輸出個(gè)數(shù),即分類類別數(shù);t表示數(shù)據(jù)樣本實(shí)際值;y表示所有樣本訓(xùn)練后結(jié)果的輸出值.
其中可將權(quán)重調(diào)整方向示為
(8)
為了進(jìn)一步說明,有如下表示:
式中:xl表示第l層輸出;Wl表示當(dāng)前權(quán)值;ul表示第l層輸入;η表示學(xué)習(xí)率;δ表示殘差.
在卷積神經(jīng)網(wǎng)絡(luò)中,不同層的殘差可表示為
(11)
全連接層L的殘差可表示為
(12)
當(dāng)?shù)趌層為卷積層,第l+1層為池化層時(shí),由反向傳播算法可知,第l層某個(gè)像素的敏感度為第l+1層與其相關(guān)全部像素敏感度與其權(quán)值的積的和,之后再乘以當(dāng)前層激活函數(shù)的導(dǎo)數(shù).因此,為方便計(jì)算,將第l+1層的特征圖下采樣,得到大小與第l層特征層一樣的結(jié)果再敏感度計(jì)算,表示為
(13)
式中:β表示權(quán)值W的取值;up(·)表示克羅內(nèi)克積.
當(dāng)?shù)趌層為池化層,第l+1層為卷積層時(shí),由反向傳播算法可知,若要求第l層某個(gè)像素的敏感度,需利用第l+1層與其相關(guān)的全部像素的敏感度.此時(shí)不涉及權(quán)值更新,只是在反向傳導(dǎo)求殘差時(shí)將相應(yīng)維度擴(kuò)展回去,可表示為
(14)
式中:K表示卷積核;g表示卷積操作結(jié)果.
本文使用簡化的VGG-16網(wǎng)絡(luò)來識(shí)別壁面清洗機(jī)器人在幕墻上工作時(shí)遇到的三類障礙物.采用不同的網(wǎng)絡(luò),其性能也會(huì)不同,且多次的迭代容易產(chǎn)生過擬合,使模型變得復(fù)雜,容易產(chǎn)生容錯(cuò)的數(shù)據(jù).因此將網(wǎng)絡(luò)模型訓(xùn)練次數(shù)設(shè)置為50次,每次41次迭代,學(xué)習(xí)率為10-3.簡化VGG-16網(wǎng)絡(luò)與改進(jìn)LeCun小卷積神經(jīng)網(wǎng)絡(luò)的對比結(jié)果如圖10所示.其中,改進(jìn)的LeCun小卷積神經(jīng)網(wǎng)絡(luò)是基于LeCun在1990年提出的圖像分類器的基礎(chǔ)上修改Relu以及模型層數(shù)得到的.由圖10可以看出,簡化的VGG-16模型中,當(dāng)?shù)?xùn)練到第40批次時(shí)準(zhǔn)確率趨于穩(wěn)定,訓(xùn)練集的準(zhǔn)確率能夠達(dá)到99.5%,且損失值也處于較低且平穩(wěn)的狀態(tài),因此此時(shí)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)可以達(dá)到良好的識(shí)別效果;而使用相同的數(shù)據(jù)集在改進(jìn)LeCun小卷積神經(jīng)網(wǎng)絡(luò)上訓(xùn)練時(shí),訓(xùn)練準(zhǔn)確率在一定程度波動(dòng)之后也趨于穩(wěn)定,訓(xùn)練集的準(zhǔn)確率能夠達(dá)到99.2%,但該網(wǎng)絡(luò)損失值波動(dòng)比較明顯且處于跳躍不穩(wěn)定狀態(tài),雖然此時(shí)的模型可以達(dá)到較好的識(shí)別效果,但相比于簡化的VGG-16模型較為波動(dòng).兩種網(wǎng)絡(luò)模型的性能比較如表2所列.以模型性能表征參數(shù)(訓(xùn)練準(zhǔn)確率、訓(xùn)練時(shí)間和測試準(zhǔn)確率)為目標(biāo)參數(shù).其中,改進(jìn)的LeCun小卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練準(zhǔn)確率與本文的簡化VGG-16網(wǎng)絡(luò)模型相差無幾,但訓(xùn)練的時(shí)間長達(dá)4.32 h,是本文模型訓(xùn)練時(shí)間的4倍左右,且測試準(zhǔn)確率也比本文的網(wǎng)絡(luò)模型低2.1%.
圖10 訓(xùn)練結(jié)果曲線
另外,本文將常規(guī)方法與卷積神經(jīng)網(wǎng)絡(luò)的性能進(jìn)行了比較,使用同樣的樣本集分別在BP神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)(support vector machine,SVM)上識(shí)別,結(jié)果如表3所列.通過基于BP神經(jīng)網(wǎng)絡(luò)的不變矩方法識(shí)別障礙物時(shí),三種障礙物的識(shí)別效果較低,尤其對玻璃固定架的識(shí)別,僅有72.5%;通過小波矩方法識(shí)別障礙物時(shí),由于SVM是一種利用統(tǒng)計(jì)學(xué)習(xí)理論的機(jī)器學(xué)習(xí)方法,能較大程度地克服機(jī)器學(xué)習(xí)中的“過學(xué)習(xí)”問題,因此將小波矩與SVM結(jié)合識(shí)別障礙物能得到較高的識(shí)別效率,達(dá)到90%以上.通過以上比較發(fā)現(xiàn),簡化的VGG-16網(wǎng)絡(luò)訓(xùn)練后得到三種障礙物的平均識(shí)別率達(dá)99.0%,更適合于壁面清洗機(jī)器人對障礙物的識(shí)別.
本文針對壁面清洗機(jī)器人在高空作業(yè)時(shí)障礙物識(shí)別準(zhǔn)確度低的問題,以壁面清洗機(jī)器人實(shí)際工作場景為研究背景,利用在實(shí)際工作場景中采集到的圖片建立數(shù)據(jù)集,進(jìn)行分類預(yù)處理后,通過搭建卷積神經(jīng)網(wǎng)絡(luò)來完成障礙物的識(shí)別.本文的主要工作和結(jié)論如下:
1) 使用深度相機(jī)采集RGB圖像,并設(shè)計(jì)了一種旋翼負(fù)壓混合吸附工作的多邊形履帶清洗機(jī)器人,通過深度相機(jī)采集清洗機(jī)器人在幕墻上工作時(shí)的障礙物圖像,對采集到的圖像平移、翻轉(zhuǎn)、裁剪后建立數(shù)據(jù)集,然后使用雙邊濾波方法對三類障礙物圖像集進(jìn)行降噪預(yù)處理得到試驗(yàn)圖像集.
2) 設(shè)計(jì)了VGG-16的簡化網(wǎng)絡(luò)模型,試驗(yàn)結(jié)果表明本文所設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)以及參數(shù)設(shè)定是合理的.當(dāng)完成訓(xùn)練樣本的多次訓(xùn)練后,模型能夠識(shí)別玻璃固定架、窗框以及窗戶打開的狀態(tài)這三種障礙物,準(zhǔn)確率可達(dá)到99.0%,實(shí)現(xiàn)了較好的識(shí)別.且通過基于BP神經(jīng)網(wǎng)絡(luò)的不變矩、基于SVM的小波矩以及改進(jìn)的LeCun小卷積神經(jīng)網(wǎng)絡(luò)這三種方法的對比,簡化的VGG-16網(wǎng)絡(luò)模型得到的識(shí)別準(zhǔn)確率明顯更優(yōu).