鄧樂武,成金濤,曾蘇凡
(航空工業(yè)成都飛機工業(yè)(集團)有限責(zé)任公司,四川 成都 610091)
目前,飛機進(jìn)行飛行前檢查時通常采用唱檢的方式,依據(jù)檢查單內(nèi)容,檢查飛機座艙開關(guān)、關(guān)鍵部位保險銷、起落架等是否符合放飛要求。以座艙開關(guān)為例,機務(wù)人員需確認(rèn)座艙上所有開關(guān)的狀態(tài)是否正確。由于開關(guān)較小、數(shù)目過多,部分外觀又大體相同,且排列較為緊密(如圖1所示),人為檢查非常容易出現(xiàn)錯、漏檢的情況,進(jìn)而引發(fā)飛行安全問題。所以,用機器來代替人工進(jìn)行檢查是必然趨勢,能有效降低人為出錯率,保障飛機放飛的安全性。
圖1 典型飛機座艙開關(guān)
目前常見的基于深度學(xué)習(xí)的目標(biāo)檢測方法有 CNN(Convolutional Neural Networks)、R-CNN(Region-CNN)、Fast R-CNN、Faster R-CNN、YOLO算法(You Only Look Once:Unified,Real-Time Object Detection)等。典型算法Faster R-CNN雖然在目標(biāo)檢測應(yīng)用領(lǐng)域(如行人、車輛識別[1]等)具有不錯的識別準(zhǔn)確率。但座艙開關(guān)圖像中開關(guān)具有目標(biāo)較小、數(shù)量多、背景復(fù)雜且存在部分遮擋等特點,若直接應(yīng)用Faster R-CNN算法識別座艙開關(guān)狀態(tài),識別效果不穩(wěn)定,易出現(xiàn)部分遮擋開關(guān)漏檢或開關(guān)狀態(tài)誤檢等情況。
針對提取的特征網(wǎng)絡(luò)可能影響開關(guān)檢測及狀態(tài)識別準(zhǔn)確率問題,以Faster R-CNN算法為基礎(chǔ),以座艙開關(guān)為具體檢測對象,針對座艙開關(guān)狀態(tài)識別的特殊環(huán)境和需求,對Faster R-CNN算法相關(guān)部分進(jìn)行改進(jìn),并設(shè)計相關(guān)的實驗驗證改進(jìn)后的Faster R-CNN算法的可行性和準(zhǔn)確率。
傳統(tǒng)機器視覺的目標(biāo)檢測方法一般先從圖片中提取候選區(qū)域,然后用方向梯度直方圖(Histogram of Oriented Gradient,HOG)[2]等提取特征,最后用支持向量機(Support Vector Machines,SVM)[3]、Adaboost[4]等分類器進(jìn)行分類。這些檢測方法雖然省去了大量重復(fù)性的人工檢查,但準(zhǔn)確率并不高。近年來,隨著深度學(xué)習(xí)的興起及其在圖像分類中的優(yōu)異表現(xiàn),出現(xiàn)了很多基于深度學(xué)習(xí)的目標(biāo)檢測算法,其精度與傳統(tǒng)方法相比有了質(zhì)的飛躍。其基本思想是:假設(shè)邊界框,并對每個框的像素或特征進(jìn)行重新采樣,最后用高質(zhì)量分類器進(jìn)行分類,代表性算法有Faster R-CNN[5]。為減少計算量,YOLO[6]只設(shè)計單個網(wǎng)絡(luò),用網(wǎng)格將候選區(qū)域縮小,直接在輸出層進(jìn)行多目標(biāo)的矩形框回歸和類別判定,該方法雖然精度不如Faster R-CNN,但計算量較前者大大降低。SSD(Single Shot MultiBox Detector)[7]針對YOLO缺點,使用小卷積核來預(yù)測目標(biāo)類別的目標(biāo)矩形框的偏移,且網(wǎng)絡(luò)設(shè)計結(jié)合了CNN中不同分辨率的多個特征層來解決不同尺寸目標(biāo)的檢測問題,因此該模型在相對低分辨率的輸入下也能夠獲得比較高的準(zhǔn)確率。雖然對于一般物體的檢測而言,SSD能夠勝任,但由于SSD沒有用到比較低層的特征,而這些低層的特征對于檢測小物體是非常重要的,所以SSD對小物體的檢測效果并不理想。
為了提高物體檢測識別的精度,VGG(Visual Geometry Group)、Inception等網(wǎng)絡(luò)都在增深或增寬網(wǎng)絡(luò),雖然深度和寬度是衡量模型的重要指標(biāo),但隨著網(wǎng)絡(luò)深度的增加,可能會導(dǎo)致梯度彌散等情況發(fā)生,最終使訓(xùn)練困難,精度也無法提高。故一般選用深度殘差神經(jīng)網(wǎng)絡(luò)(Deep Residual Network,ResNet)[8]來提升所提取特征的表征力。
傳統(tǒng)的Faster R-CNN算法其網(wǎng)絡(luò)結(jié)構(gòu)是將特征提取、候選區(qū)域提取、邊框回歸和分類全部整合到一個網(wǎng)絡(luò)中,該算法提出了區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN),代替了之前 R-CNN 和 Fast R-CNN 中的選擇性搜索方法,使得其目標(biāo)檢測的綜合性能有了較大提高。Faster R-CNN 網(wǎng)絡(luò)結(jié)構(gòu)[9]如圖2所示。
圖2 Faster-R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
針對飛機飛行前檢查的主要檢測場景,例如飛機座艙開關(guān)、斷路器開關(guān)的目標(biāo)檢測,其主要特點是待檢測開關(guān)尺度較小,分布也較為密集,并且同一開關(guān)有多種狀態(tài)需要進(jìn)行區(qū)分。傳統(tǒng)的Faster R-CNN算法在進(jìn)行目標(biāo)檢測時,雖能較好地識別開關(guān),但是開關(guān)位置的識別比較粗略。這主要是因為Faster R-CNN僅采用頂層特征做預(yù)測,雖然通過在高層特征圖上提取語義信息豐富的特征有利于目標(biāo)識別,但卻不利于目標(biāo)定位,尤其不利于小目標(biāo)定位。
而在飛機座艙場景中,待檢測的開關(guān)普遍較小,如果只用頂層特征進(jìn)行預(yù)測,就會導(dǎo)致檢測結(jié)果不理想。所以這里既要利用高層的強語義特征,同時也要利用低層的高分辨率特征,這樣才能有效提升開關(guān)檢測率。
為保證檢測精度,先對基礎(chǔ)網(wǎng)絡(luò)從低到高抽取不同尺度的特征層,經(jīng)過多次上采樣融合特征到最后一層,用最后生成的特征做預(yù)測,如圖3所示。這樣便能夠?qū)⒌头直媛省娬Z義的特征和高分辨率、弱語義特征結(jié)合在一起,繼而盡可能體現(xiàn)不同尺度特征圖的價值。
圖3 特征融合方式
基于特征融合的改進(jìn) Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)(Faster R-CNN*)如圖4所示。在原 Faster R-CNN 網(wǎng)絡(luò)的基礎(chǔ)上,以 VGG16 網(wǎng)絡(luò)作為基礎(chǔ)特征提取網(wǎng)絡(luò)[10],并針對座艙開關(guān)的特點,融合了4個卷積層提取出的特征,形成新的特征;接著將融合后的特征送入 RPN中生成候選區(qū)域,為了避免候選區(qū)域建議框之間的重疊或覆蓋,使用軟化非極大值抑制(Soft Non-Maximun Suppression,Soft-NMS)算法代替非極大抑制(Non-Maximun Suppression,NMS)算法,減少假陽性樣本的數(shù)量。ROI(Region of Interest)池化層將 RPN獲取的區(qū)域候選框與卷積特征圖整合起來,提取建議特征圖,送入后續(xù)全連接層判定目標(biāo)類別和獲取檢測框位置。
圖4 基于特征融合的改進(jìn) Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
基于特征融合的改進(jìn) Faster R-CNN網(wǎng)絡(luò)的特征融合如圖5所示,這里抽取基礎(chǔ)網(wǎng)絡(luò)的4層特征進(jìn)行融合,這4層特征圖大小分別為56×56,28×28,14×14和7×7;之后對4層特征圖分別用1×1卷積都統(tǒng)一降維到128,并用上采樣卷積將其3層較小尺寸的特征圖分別擴大到與被選擇融合的最低層特征圖一樣的尺寸大小(即56×56),然后將維度和尺寸統(tǒng)一后的4層特征圖進(jìn)行Concat連接生成新的特征圖送入RPN。
圖5 基于特征融合的改進(jìn) Faster R-CNN網(wǎng)絡(luò)的特征融合
表1為Faster R-CNN和Faster R-CNN*的對比實驗,基礎(chǔ)網(wǎng)絡(luò)為VGG16,實驗數(shù)據(jù)為大約2300張座艙開關(guān)樣本,其中1900張用于訓(xùn)練,其余用于測試。由表1可知,對于座艙開關(guān)這一小目標(biāo)的檢測場景而言,F(xiàn)aster R-CNN*的方法明顯要比Faster R-CNN的檢測效果好,這主要得益于其融合了低層高分辨率的特征。
表1 Faster R-CNN和Faster R-CNN*座艙開關(guān)檢測效果對比
在圖5中,選擇了4層特征進(jìn)行融合,同時選取5層(112×112,56×56,28×28,14×14和7×7)和3層(56×56,28×28和14×14)特征進(jìn)行融合,并針對座艙開關(guān)檢測場景進(jìn)行對比實驗,對比效果如表2所示。由表2可知,當(dāng)融合的特征層數(shù)變多(5層,增加112×112特征層),性能卻并沒有提升,這是因為層數(shù)雖然變多且包含分辨率更大的低層特征信息,但其語義信息較弱,所以即便定位精度有所提升,而其識別精度卻會有所降低;當(dāng)層數(shù)減少(只有3層特征進(jìn)行融合)時,檢測性能也隨之下降。綜上所述,確定用4層特征進(jìn)行融合。
表2 3~5層特征融合識別效果對比
對開關(guān)類小目標(biāo)的檢測進(jìn)行了網(wǎng)絡(luò)算法構(gòu)造,但這種特征融合雖然對小物體檢測提升較為明顯,但同時又輕微降低了對一般大小目標(biāo)的檢測效果,并且犧牲了不同尺度下的特征一致性。針對該問題,重新對物體的感受野進(jìn)行思考,一般對于檢測而言,除了基礎(chǔ)網(wǎng)絡(luò)的深度和寬度,感受野也會影響最終檢測性能。這里認(rèn)為感受野體現(xiàn)在卷積核的尺度上,用卷積核的膨脹系數(shù)(空洞卷積[11])控制感受野的區(qū)域。
在設(shè)計網(wǎng)絡(luò)時既要考慮一般大小物體的同時又要考慮小物體的檢測,所以通過改變基礎(chǔ)特征提取網(wǎng)絡(luò)VGG16中第2~5段卷積層的3×3卷積的膨脹系數(shù)來生成兩個分支[12],其結(jié)構(gòu)如表3所示。
表3 VGG16結(jié)構(gòu)
在表3中第2~5段卷積層共有11個卷積層,每段結(jié)尾連接一個最大池化層用于縮小圖片尺寸。改變這11個3×3卷積的膨脹系數(shù),生成兩個分支,分別對應(yīng)小目標(biāo)和一般大小目標(biāo),這兩個分支的膨脹系數(shù)分別設(shè)為1和2。兩個分支對應(yīng)不同大小的感受野,因為較大的感受野對大目標(biāo)較為敏感,反之小感受野與小目標(biāo)相關(guān)性更好。
基于特征融合的多分支Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)(Faster R-CNN**)如圖6所示?;A(chǔ)特征提取網(wǎng)絡(luò)分為感受野不同的兩個分支,再分別進(jìn)行特征融合,分別送入RPN進(jìn)行預(yù)測,再用Soft-NMS結(jié)合兩個分支的區(qū)域建議,送入后續(xù)的ROI池化層和全連接層。這兩個分支除了卷積核的膨脹系數(shù)不同外,共享其他的參數(shù)權(quán)重。需要注意的是,多分支所用的卷積膨脹系數(shù)也包括特征融合時的上采樣階段。
圖6 基于特征融合的多分支Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
表4為Faster R-CNN*和Faster R-CNN**的對比實驗結(jié)果。由表3可知,多分支結(jié)構(gòu)對檢測性能的提升是明顯有效的。原因在于對卷積核進(jìn)行不同程度的膨脹,使不同尺度下特征表達(dá)能力比較一致,兼顧了小目標(biāo)和一般大小目標(biāo)的檢測效果。
表4 Faster R-CNN*和Faster R-CNN**座艙開關(guān)檢測效果對比
本文就飛機放飛前檢查存在的一系列問題做了簡要分析,將現(xiàn)有的基于深度學(xué)習(xí)目標(biāo)檢測算法進(jìn)行梳理,再結(jié)合實際場景進(jìn)行應(yīng)用。針對飛機放飛前座艙開關(guān)狀態(tài)檢測這一實際場景,在現(xiàn)有算法基礎(chǔ)上做了一些改進(jìn)和構(gòu)造,改進(jìn)后的算法在實驗中表現(xiàn)良好,開關(guān)狀態(tài)檢測效果較原算法有了明顯提高。
實驗證明,將深度學(xué)習(xí)方法應(yīng)用在飛機維護(hù)領(lǐng)域是有效的,其精度和速度都較傳統(tǒng)的人工檢查有大幅提升。限于時間和資源,算法改進(jìn)尚有不足,例如對于微小物體的檢出(放飛前保險絲檢查)和一般大小物體同時檢出(放飛前檢查場景多、目標(biāo)大小不一)等情況,還待改進(jìn)和研究。這也將是以后針對飛機裝配過程中使用人工智能技術(shù)進(jìn)一步提高裝配效率、保證裝配質(zhì)量的重要研究方向。針對網(wǎng)絡(luò)過深或者模型參數(shù)量過大的問題,為了減小存儲計算開銷和拓展CNN在某些低功耗領(lǐng)域的應(yīng)用,今后會考慮MobileNet系列等其他算法。