陳亮希,張燕龍,陳興玉,田富君,郭 磊,周金文,查珊珊,黃 健,孫丙宇
(1.中國(guó)電子科技集團(tuán)公司第三十八研究所,安徽 合肥 230088;2.安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽合肥 230601;3.中國(guó)科學(xué)院合肥智能機(jī)械研究所,安徽 合肥 230031)
主纜繩是浮空器系統(tǒng)的必要裝備,在長(zhǎng)期使用過(guò)程中由于交變載荷、放電、磨損等因素導(dǎo)致其易產(chǎn)生破裂、擊穿等缺陷,這對(duì)浮空器系統(tǒng)的安全穩(wěn)定運(yùn)行造成隱患[1-2]。對(duì)主纜繩進(jìn)行360°全方位、無(wú)死角的人工巡檢極為不便,拍攝圖片也比較困難,加之檢測(cè)工作枯燥、重復(fù),巡檢人員易出現(xiàn)疲憊勞累,容易導(dǎo)致漏檢誤檢[3-4]。因此,通過(guò)機(jī)器視覺(jué)技術(shù)實(shí)現(xiàn)對(duì)浮空器主纜繩表面缺陷的自動(dòng)檢測(cè)具有重要意義。
隨著機(jī)器視覺(jué)技術(shù)的發(fā)展,缺陷檢測(cè)技術(shù)在鋼軌[4]、農(nóng)產(chǎn)品[5-6]、半導(dǎo)體[7]等領(lǐng)域得到廣泛應(yīng)用。彭方進(jìn)[8]提出基于灰度標(biāo)準(zhǔn)差與投影積分的鋼軌表面區(qū)域定位算法和基于多尺度灰度對(duì)比度的增強(qiáng)算法,可檢測(cè)高速有砟軌道無(wú)縫鋼軌表面細(xì)小斑點(diǎn)和瑕疵;龔中良等[9]根據(jù)柑橘的顏色與形狀特征,在HSV(hue saturation value)顏色模型下利用V分量灰度圖邊緣檢測(cè)與形態(tài)學(xué)處理的方法可快速有效識(shí)別柑橘表面缺陷;Song等[10]提出一種基于圖像特征分類(lèi)的輸電線斷股檢測(cè)方法,基于斷股故障的梯度分布與正常線路存在的差異,采用支持向量機(jī)(support vector machines,SVM)完成線路斷股檢測(cè);孫實(shí)超等[11]基于直線增強(qiáng)和兩次Hough變換,根據(jù)輸電線簇參數(shù)關(guān)系提取輸電導(dǎo)線圖形信息;王萬(wàn)國(guó)等[12]通過(guò)分析導(dǎo)線表面灰度圖像的光滑性、一致性以及導(dǎo)線寬度變化來(lái)檢測(cè)斷股或異物缺陷;黃新波等[13]提出一種基于徑向基概率神經(jīng)網(wǎng)絡(luò)和紋理特征分割的輸電導(dǎo)線缺陷狀態(tài)識(shí)別方法。目前,越來(lái)越多的深度學(xué)習(xí)方法如VGG,ResNet 等用于缺陷檢測(cè)領(lǐng)域。Saiz等[4]提出采用一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的分類(lèi)方法對(duì)鋼鐵表面缺陷進(jìn)行分類(lèi),得到了良好的測(cè)試效果;Lien 等[15]使用多路并行的CNN 實(shí)現(xiàn)對(duì)產(chǎn)品表面的缺陷檢測(cè),相較于單路網(wǎng)絡(luò),多路網(wǎng)絡(luò)可進(jìn)一步提升網(wǎng)絡(luò)的檢測(cè)準(zhǔn)確率?;贑NN的方法在缺陷檢測(cè)逐漸成為主流,然而經(jīng)典的深度學(xué)習(xí)方法需大量樣本學(xué)習(xí)。鑒于此,結(jié)合主纜繩的檢測(cè)需求,提出一種小樣本度量學(xué)習(xí)方法,使用小樣本學(xué)習(xí)中的原型網(wǎng)絡(luò)[3]方法實(shí)現(xiàn)對(duì)纜繩缺陷種類(lèi)的區(qū)分,實(shí)驗(yàn)結(jié)果表明,本方法能夠?qū)崿F(xiàn)纜繩表面缺陷的自動(dòng)檢測(cè)。
小樣本度量學(xué)習(xí)主要由特征編碼模塊和度量模塊兩部分組成,整體流程如圖1。由圖1 可知,特征編碼模塊采用CNN來(lái)提取樣本的特征,將這些特征通過(guò)度量模塊以度量樣本與哪個(gè)類(lèi)別的樣本最相似。圖中支持集表示數(shù)據(jù)集中的樣本類(lèi)別是已知的,用來(lái)訓(xùn)練CNN;查詢(xún)集表示數(shù)據(jù)集中的樣本屬于待檢測(cè)樣本,用來(lái)測(cè)試方法的有效性。
圖1 小樣本度量學(xué)習(xí)的流程示意圖Fig.1 Flowchart of few-shot metric learning
小樣本度量學(xué)習(xí)方法的學(xué)習(xí)策略是,需確定一個(gè)擁有大量不同類(lèi)別樣本的輔助數(shù)據(jù)集,在學(xué)習(xí)過(guò)程中,隨機(jī)從輔助數(shù)據(jù)集中選擇C個(gè)類(lèi)別,每個(gè)類(lèi)別K個(gè)樣本,作為模型的支持集輸入,支持集中樣本的類(lèi)別是已知的,共有C×K個(gè)數(shù)據(jù)樣本;從C個(gè)類(lèi)別剩余的數(shù)據(jù)中隨機(jī)抽取每一類(lèi)別M個(gè)樣本作為模型的預(yù)測(cè)對(duì)象,稱(chēng)為查詢(xún)集,查詢(xún)集中的樣本一般認(rèn)為是未知的,需采用相應(yīng)的模型來(lái)預(yù)測(cè)其所屬類(lèi)別,這樣的任務(wù)被稱(chēng)為C-wayK-shot分類(lèi)問(wèn)題。
通過(guò)計(jì)算查詢(xún)集中每個(gè)樣本與支持集中每個(gè)類(lèi)別樣本的相似度對(duì)查詢(xún)集進(jìn)行分類(lèi),每次訓(xùn)練過(guò)程中都構(gòu)建支持集和查詢(xún)集。通過(guò)這種方式不斷學(xué)習(xí),讓查詢(xún)集中的樣本與支持集中同類(lèi)樣本的相似度更高而不同類(lèi)別的樣本相似度更低,由此完成小樣本缺陷的遷移學(xué)習(xí)和分類(lèi)。測(cè)試未知小樣本的方式與模型訓(xùn)練的方式一致,需隨機(jī)從測(cè)試集中抽取每個(gè)類(lèi)別K個(gè)樣本,從剩下的樣本中抽取每個(gè)類(lèi)別M個(gè)樣本作為查詢(xún)集,查詢(xún)集是需測(cè)試的數(shù)據(jù)。在模型測(cè)試過(guò)程中,構(gòu)建測(cè)試用的支持集和查詢(xún)集。
小樣本學(xué)習(xí)中經(jīng)典的編碼器結(jié)構(gòu)如圖2。該編碼器由4層卷積層組成,卷積層的尺寸大小為3×3,卷積核的數(shù)量為64。卷積層的主要作用是將圖片映射到相同的特征空間中,在這個(gè)特征空間中同一類(lèi)別圖像提取的特征上會(huì)更相似。
圖2 編碼器的網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of encoding machine
文獻(xiàn)[3]的結(jié)果顯示,使用平方歐氏距離作為圖片距離的度量非常有效。故文中采用這種度量距離,其度量方式可表示如下:
其中:fθ為編碼器;Sc={(x1,y1),(x2,y2),…,(xNc,yNc)};Nc為c類(lèi)樣本的數(shù)量;xNc為支持集中c類(lèi)別的圖像樣本;ωc為支持集中所有類(lèi)別c的圖像平均特征,代表類(lèi)別c的原型特征;euc(x,ωc)為查詢(xún)集圖像x與類(lèi)別c之間的平方歐式距離。利用式(3)將式(2)獲得的平方歐氏距離取反將其轉(zhuǎn)換為相似度值,然后使用softmax 得到每個(gè)類(lèi)別的分類(lèi)分?jǐn)?shù)p,若p最大,則將其歸屬于相應(yīng)類(lèi)別。
采用交叉熵?fù)p失函數(shù)訓(xùn)練網(wǎng)絡(luò)模型,交叉熵?fù)p失函數(shù)可表示如下
其中:yi為樣本i的標(biāo)簽;pic為樣本i是類(lèi)別c的概率。
2.1.1 樣本數(shù)據(jù)集的獲取
用360相機(jī)獲取主纜繩表面缺陷圖像與正常圖像樣本,對(duì)每個(gè)圖像樣本進(jìn)行中值濾波,去除拍攝時(shí)的噪聲干擾,最終獲取雷擊穿孔、裂紋和正常三類(lèi)圖像數(shù)據(jù)樣本集,分別為22,15,23 張,共60 張。圖3 為三類(lèi)數(shù)據(jù)集中的部分樣本。
圖3 樣本圖像展示Fig.3 Illustration of sample images
2.1.2 參數(shù)和指標(biāo)的設(shè)定
選用miniImageNet[16]為輔助數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,稱(chēng)為訓(xùn)練集。miniImageNet 數(shù)據(jù)集包含100 個(gè)類(lèi)別的數(shù)據(jù),每類(lèi)別包含600張圖像。將數(shù)據(jù)集隨機(jī)劃分80個(gè)類(lèi)別作為訓(xùn)練集,剩下的20個(gè)類(lèi)別作為驗(yàn)證集,用來(lái)選擇訓(xùn)練過(guò)程在新類(lèi)中泛化性能最好的參數(shù)。實(shí)驗(yàn)過(guò)程中,在訓(xùn)練集上約訓(xùn)練400 000 批次,每批次隨機(jī)抽取3個(gè)類(lèi)別,每類(lèi)別抽取5個(gè)樣本作為支持集、10個(gè)樣本作為查詢(xún)集。因此,支持集中共15個(gè)樣本、查詢(xún)集中共30 個(gè)樣本。測(cè)試時(shí)采用和訓(xùn)練時(shí)同樣的采樣方式,為排除特殊情況的干擾,共測(cè)試600 次,取平均測(cè)試結(jié)果為最終結(jié)果,以準(zhǔn)確率A作為最終評(píng)價(jià)標(biāo)準(zhǔn),A=T/N,T為正確預(yù)測(cè)的樣本數(shù)量;N為樣本總量,每次測(cè)試時(shí)N為30。本文模型的訓(xùn)練和測(cè)試均基于Ubuntu 20.04.3 LTS 操作系統(tǒng)的實(shí)驗(yàn)環(huán)境,中央處理器為Intel(R) Core (TM) i9-10900X CPU @ 3.70 GHz,采用NVIDIA GeForce GTX 3090Ti 的圖形處理器,模型基于Pytorch的深度學(xué)習(xí)框架。
2.2.1 小樣本度量學(xué)習(xí)方法
傳統(tǒng)機(jī)器學(xué)習(xí)方法如KNN(最近鄰算法)、SVM(支持向量機(jī))、Decision Tree(決策樹(shù))及深度學(xué)習(xí)方法如VGG16 模型、AlexNet 模型、ResNet50 模型等均表現(xiàn)出優(yōu)異的檢測(cè)性能。為比較本文方法的檢測(cè)性能,選取傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法同時(shí)開(kāi)展實(shí)驗(yàn)。為與本文方法保持一致,對(duì)每種方法分別進(jìn)行600 次重復(fù)實(shí)驗(yàn),每次實(shí)驗(yàn)時(shí)在主纜繩數(shù)據(jù)集上每類(lèi)別樣本隨機(jī)抽取5 個(gè)樣本,作為已知類(lèi)別的圖像對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,再?gòu)拿款?lèi)別剩下的樣本中抽取10個(gè)樣本進(jìn)行測(cè)試。
本文方法與其他方法的測(cè)試結(jié)果如表1。由表1 可知,相較于KNN,SVM,Decision Tree,VGG16,AlexNet,ResNet5 等方法,基于輔助數(shù)據(jù)集的小樣本度量學(xué)習(xí)方法有明顯優(yōu)勢(shì),準(zhǔn)確率最高,為89.38%。原因在于,數(shù)據(jù)集中包含少量數(shù)據(jù)的情況下,每次可用于學(xué)習(xí)的樣本少,其他方法易出現(xiàn)過(guò)擬合的現(xiàn)象;小樣本度量學(xué)習(xí)方法沒(méi)有直接學(xué)習(xí)分類(lèi)器,而是利用輔助數(shù)據(jù)進(jìn)行訓(xùn)練,將圖像映射到一個(gè)特征空間,這個(gè)特征空間中同類(lèi)別數(shù)據(jù)的距離更近,這種方式在已知類(lèi)別樣本較少的情況下有更好的性能。
表1 本文方法與其他方法的測(cè)試結(jié)果Tab.1 Test results of this paper and other methods
為檢測(cè)本文方法訓(xùn)練過(guò)程對(duì)最終結(jié)果的影響,改變訓(xùn)練過(guò)程中輔助數(shù)據(jù)集中的類(lèi)別數(shù),隨機(jī)抽取輔助數(shù)據(jù)集中的類(lèi)別,類(lèi)別從3 個(gè)依次擴(kuò)大到6 個(gè),本文方法的檢測(cè)準(zhǔn)確率如表2。從表2可看出,網(wǎng)絡(luò)模型的準(zhǔn)確率比原模型有進(jìn)一步的提高。從性能的變化趨勢(shì)看,采用本文方法進(jìn)行缺陷檢測(cè)是有效的且有較大潛力。
表2 不同類(lèi)別數(shù)目訓(xùn)練時(shí)本文方法的檢測(cè)準(zhǔn)確率Tab.2 Detection accuracy of this method at the numberof different categories for trainings
2.2.2 微調(diào)后的小樣本度量學(xué)習(xí)方法
由上文可知,小樣本學(xué)習(xí)方法是把輔助訓(xùn)練集訓(xùn)練好的參數(shù)直接用于待檢測(cè)數(shù)據(jù)集上,一般認(rèn)為這種方式粗糙。為充分利用少量已知樣本的支持集來(lái)提升網(wǎng)絡(luò)性能,測(cè)試時(shí)將支持集重新劃分,即將支持集中每類(lèi)別的5個(gè)樣本再次隨機(jī)抽取3個(gè)樣本作為新的支持集,剩下的2個(gè)樣本作為查詢(xún)集。利用這種方式重新對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并在訓(xùn)練過(guò)程中抽取不同類(lèi)別數(shù)分別進(jìn)行實(shí)驗(yàn)驗(yàn)證;測(cè)試時(shí),對(duì)網(wǎng)絡(luò)分別進(jìn)行100,200,300 次的訓(xùn)練調(diào)整。如圖2所示,只調(diào)整第4個(gè)卷積層,保留其他卷積塊不動(dòng),最終實(shí)驗(yàn)結(jié)果如表3。由表3可知:微調(diào)能夠有效提升本文方法的網(wǎng)絡(luò)性能,這是由于輔助數(shù)據(jù)集與主纜繩樣本數(shù)據(jù)差異較大,對(duì)網(wǎng)絡(luò)的最終性能造成一定影響,微調(diào)后網(wǎng)絡(luò)經(jīng)過(guò)領(lǐng)域轉(zhuǎn)換,輸出特征更適合纜繩的分類(lèi)任務(wù);微調(diào)至300 次,網(wǎng)絡(luò)總體性能呈下降趨勢(shì),這是因?yàn)槲⒄{(diào)次數(shù)增多,網(wǎng)絡(luò)的泛化性能下降;抽取類(lèi)別為6 時(shí)網(wǎng)絡(luò)性能較好,但抽取3 個(gè)類(lèi)別微調(diào)時(shí)的網(wǎng)絡(luò)性能較好。
表3 微調(diào)后本文方法的網(wǎng)絡(luò)性能Tab.3 Network performance of this method after fine-tuning
為比較驗(yàn)證本文方法微調(diào)后的性能,將深度學(xué)習(xí) 方 法AlexNet 和VGG16 及ResNet50 放 在mini ImageNet 數(shù)據(jù)集上預(yù)訓(xùn)練獲得一個(gè)良好的參數(shù)后,凍結(jié)所有的卷積層參數(shù)僅在纜繩數(shù)據(jù)集上重新訓(xùn)練全連接層。與上文同,進(jìn)行600 次實(shí)驗(yàn)取平均結(jié)果作為最終結(jié)果,如表4。由表4 可知,微調(diào)后所有方法的網(wǎng)絡(luò)性能均有提升,其中本文方法的網(wǎng)絡(luò)性能最好,準(zhǔn)確率最高,達(dá)93.85%。這是因?yàn)樾颖緦W(xué)習(xí)使用參數(shù)更少的網(wǎng)絡(luò)結(jié)構(gòu)及使用無(wú)參的度量方式取代全連接層,提高了模型的泛化能力。
表4 微調(diào)后不同方法的網(wǎng)絡(luò)性能Tab.4 Network performance of different methods after fine-tuning
為測(cè)試本文方法在其他缺陷檢測(cè)領(lǐng)域能否達(dá)到良好的性能,在鋼材缺陷分類(lèi)數(shù)據(jù)集NEU[17]上進(jìn)行實(shí)驗(yàn)。NEU 數(shù)據(jù)集每類(lèi)缺陷有300 個(gè)樣本,共6個(gè)類(lèi)別。訓(xùn)練時(shí),在輔助數(shù)據(jù)集上隨機(jī)抽取6個(gè)類(lèi)別。為研究支持集中每類(lèi)別樣本的數(shù)量,即已知類(lèi)別樣本數(shù)對(duì)方法性能的影響,同時(shí)針對(duì)每類(lèi)抽取10個(gè)樣本進(jìn)行實(shí)驗(yàn)。每類(lèi)別僅5 個(gè)樣本時(shí),微調(diào)方式與前文保持一致;每類(lèi)10 個(gè)樣本時(shí),取6 個(gè)樣本作為新的支持集、4個(gè)作為新的查詢(xún)集。微調(diào)100次時(shí)的實(shí)驗(yàn)結(jié)果如表5。由表5可知:本文方法在鋼材缺陷數(shù)據(jù)集上也有良好的表現(xiàn),5 類(lèi)別樣本的準(zhǔn)確率達(dá)83.74%,10 類(lèi)別樣本的準(zhǔn)確率達(dá)88.85%;微調(diào)后網(wǎng)絡(luò)模型的準(zhǔn)確率也有明顯提升,5 類(lèi)別樣本的準(zhǔn)確率達(dá)86.08%,10 類(lèi)別樣本的準(zhǔn)確率達(dá)91.22%。由此表明本文方法在其他缺陷領(lǐng)域也有良好的性能,發(fā)展空間較大。
表5 在NEU數(shù)據(jù)集上不同方法的網(wǎng)絡(luò)性能Tab.5 Network performance of different methods on NEU database
針對(duì)主纜繩樣本獲取困難,將小樣本度量學(xué)習(xí)方法引入到纜繩表面缺陷的檢測(cè)任務(wù)中,實(shí)驗(yàn)證明:利用輔助數(shù)據(jù)集的小樣本度量學(xué)習(xí)方法對(duì)纜繩表面缺陷檢測(cè)有一定優(yōu)勢(shì),準(zhǔn)確率達(dá)到了91.48%;將微調(diào)策略引入到小樣本度量學(xué)習(xí)方法可進(jìn)一步提升纜繩表面缺陷檢測(cè)性能,準(zhǔn)確率提升至93.85%,這種方式可有效避免大規(guī)模收集纜繩的缺陷樣本;本文方法在鋼材缺陷分類(lèi)數(shù)據(jù)集上也有良好表現(xiàn),可獲得91.22%的檢測(cè)準(zhǔn)確率。本文方法在缺陷檢測(cè)領(lǐng)域應(yīng)用潛力大,可有效減少人力物力在缺陷檢測(cè)方面的消耗。