王 偉,余厚云
(1.南京航空航天大學(xué)機(jī)電學(xué)院,江蘇 南京 210016; 2.南京航空航天大學(xué)無錫研究院,江蘇 無錫 214187)
產(chǎn)品質(zhì)量檢測是工業(yè)生產(chǎn)中必不可少的一環(huán),而大部分缺陷集中在產(chǎn)品表面,因此表面缺陷檢測對于保證產(chǎn)品質(zhì)量而言至關(guān)重要。近年來,很多國內(nèi)外企業(yè)開始將基于機(jī)器視覺的表面缺陷檢測系統(tǒng)引入到生產(chǎn)線上,替代人工進(jìn)行產(chǎn)品表面質(zhì)量檢測。
對于結(jié)構(gòu)和類型復(fù)雜的缺陷,常規(guī)圖像識別方法的準(zhǔn)確率很低,這時就需要通過神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)算法來檢測缺陷。然而,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法需要借助大量標(biāo)注樣本來對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,無法適用于小批量、多品種的產(chǎn)品。因此,針對少量標(biāo)注樣本的小樣本學(xué)習(xí)[1-2](few-shot learning)算法研究顯得尤為迫切。
Aytar等[3]早在2011年就提出了基于遷移學(xué)習(xí)(transfer learning)的小樣本學(xué)習(xí)方法,該方法認(rèn)為相似任務(wù)之間的學(xué)習(xí)是有相同規(guī)律可循的,并且學(xué)習(xí)第n個任務(wù)比第一個任務(wù)要更為簡單[4]。Koch等[5]于2015年提出了針對字符識別的深度卷積孿生網(wǎng)絡(luò)(Siamese Network),此算法訓(xùn)練一個孿生網(wǎng)絡(luò)對樣本進(jìn)行相似性判定;Finn等[6]于2017年提出了一種與模型無關(guān)的元學(xué)習(xí)算法(Model-Agnostic Meta-Learning, MAML),能夠使用少量的迭代步驟將模型遷移到新的任務(wù)上。此外,針對小樣本學(xué)習(xí)的研究還有對偶學(xué)習(xí)[7](Dual Learning)、貝葉斯學(xué)習(xí)[8](Bayes Learning)等方法。
但是,缺陷檢測任務(wù)有其自身的特點:無缺陷樣本的特征相似,而有缺陷樣本的缺陷種類較多,即便是同一種缺陷類型,其缺陷特征尺寸、形狀也不盡相同。由于樣本數(shù)量少,有缺陷樣本的特征無法覆蓋各種缺陷類型,導(dǎo)致在應(yīng)用上述小樣本學(xué)習(xí)算法時的檢測準(zhǔn)確率偏低。為此,本文在深度度量學(xué)習(xí)算法(Deep Metric Learning, DML)的基礎(chǔ)上,針對產(chǎn)品缺陷檢測任務(wù)的特點進(jìn)行了算法改進(jìn),以提高檢測準(zhǔn)確率。
深度度量學(xué)習(xí)是在度量學(xué)習(xí)(Metric Learning)的基礎(chǔ)上發(fā)展而來的。度量學(xué)習(xí)的核心是距離(Distance),其思想是尋找數(shù)據(jù)之間的相似性與距離的關(guān)系,即相似數(shù)據(jù)之間的距離應(yīng)盡可能小,相似度較低的數(shù)據(jù)之間的距離應(yīng)盡可能大[9-10]。這種思想在機(jī)器學(xué)習(xí)領(lǐng)域最著名的應(yīng)用是最近鄰算法[11](Nearest Neighbors, NN),該算法將待測樣本歸類為距離其最近的訓(xùn)練樣本的類別。上述度量學(xué)習(xí)算法主要應(yīng)用于維度較低且特征較為簡單的數(shù)據(jù)上,對于圖像這種維度高、特征復(fù)雜的數(shù)據(jù),普通度量學(xué)習(xí)的分類準(zhǔn)確率低。因此,Chopra等[12]與Hadsell等[13]分別于2005年與2006年提出了將深度神經(jīng)網(wǎng)絡(luò)引入度量學(xué)習(xí),以便將高維度數(shù)據(jù)進(jìn)行非線性的特征降維[14]。
深度度量學(xué)習(xí)的工作流程如圖1所示。首先需要定義一個深度神經(jīng)網(wǎng)絡(luò)模型,網(wǎng)絡(luò)的輸入為待分類的高維數(shù)據(jù),網(wǎng)絡(luò)的輸出為經(jīng)過降維后的n維向量,此向量所在的空間稱為隱空間(Latent Space)。在訓(xùn)練階段,將帶標(biāo)注的訓(xùn)練數(shù)據(jù)通過神經(jīng)網(wǎng)絡(luò)映射到n維空間,每一個數(shù)據(jù)即為n維空間中的一個點。訓(xùn)練的目的是結(jié)合損失函數(shù)與梯度下降法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以使得同一類別數(shù)據(jù)之間的距離盡可能小,而不同類別數(shù)據(jù)之間的距離盡可能大。在做推斷時,將已訓(xùn)練好的網(wǎng)絡(luò)參數(shù)固定,同時將待分類數(shù)據(jù)作為網(wǎng)絡(luò)的輸入映射為n維空間中的一個點,然后通過最近鄰算法進(jìn)行歸類。
(a) 訓(xùn)練
(b) 推斷圖1 深度度量學(xué)習(xí)訓(xùn)練與推斷過程
除此之外,深度度量學(xué)習(xí)還可以用于開集(open-set)分類[15],如人臉識別、指紋識別等。開集分類的特點是待分類樣本不屬于參與訓(xùn)練階段的樣本類別之一,此時深度度量學(xué)習(xí)的推斷過程如圖2所示,圖中灰色神經(jīng)元表示參數(shù)固定。將待分類的標(biāo)注樣本經(jīng)過神經(jīng)網(wǎng)絡(luò)映射到n維空間,然后以此樣本為基礎(chǔ)使用最近鄰算法進(jìn)行數(shù)據(jù)分類。在開集分類的應(yīng)用場景下,深度度量學(xué)習(xí)算法為元學(xué)習(xí)(learning to learn)[16]算法的一種,因此本文將參與神經(jīng)網(wǎng)絡(luò)參數(shù)訓(xùn)練的數(shù)據(jù)集稱為元訓(xùn)練集(meta-training set),將推斷時提供的帶標(biāo)注樣本稱為支持集(support set),測試樣本稱為查詢集(query set)。
圖2 開集分類推斷流程
小批量、多品種工業(yè)產(chǎn)品的缺陷檢測任務(wù)屬于開集分類。本文根據(jù)缺陷檢測任務(wù)本身的特性,對傳統(tǒng)深度度量學(xué)習(xí)算法的損失函數(shù)、歸類算法進(jìn)行優(yōu)化改進(jìn),并且在支持集上進(jìn)行網(wǎng)絡(luò)參數(shù)的微調(diào),以使得其算法更適合缺陷檢測任務(wù)。
深度度量學(xué)習(xí)的目標(biāo)是使同一類別的數(shù)據(jù)之間的距離盡可能小,而不同類別的數(shù)據(jù)之間的距離盡可能大,這一目標(biāo)體現(xiàn)在作為網(wǎng)絡(luò)質(zhì)量評判角色的損失函數(shù)上。根據(jù)分類任務(wù)不同,常用的損失函數(shù)有對比損失函數(shù)[13](contrastive loss)、中心損失函數(shù)[17](center loss)和三元組損失函數(shù)[18](triplet loss)等。
上述3種傳統(tǒng)的損失函數(shù)的目標(biāo)是使類內(nèi)樣本的距離最小化,而類間樣本的距離最大化。但對于產(chǎn)品表面缺陷檢測來說,無缺陷表面的圖像特征較為一致,而有缺陷表面的缺陷種類較多,如大多數(shù)產(chǎn)品可能會出現(xiàn)形狀不完整、劃痕、顏色污染等,并且由于缺陷的嚴(yán)重程度不一樣,導(dǎo)致即使是同一類型的缺陷,其圖像特征也多種多樣。因此,若按照傳統(tǒng)損失函數(shù)進(jìn)行訓(xùn)練,無缺陷樣本的特征基本相同,經(jīng)訓(xùn)練后樣本的類內(nèi)距離較小,不會影響分類。但特征多樣的有缺陷樣本訓(xùn)練后類內(nèi)距離較大,若強(qiáng)行將其縮小,會導(dǎo)致模型擬合能力不足,降低缺陷檢測準(zhǔn)確率。同時,與對比損失函數(shù)和中心損失函數(shù)相比,三元組損失函數(shù)考慮了類內(nèi)數(shù)據(jù)對與類間數(shù)據(jù)對的相互關(guān)系,保留了更多的訓(xùn)練集數(shù)據(jù)特征,因此在輸入數(shù)據(jù)特征較為復(fù)雜時表現(xiàn)出更好的效果。為此,本文在傳統(tǒng)的三元組損失函數(shù)的基礎(chǔ)上進(jìn)行改進(jìn),以便更加適應(yīng)表面缺陷檢測任務(wù)。
元訓(xùn)練集是由不同種類的有缺陷產(chǎn)品和無缺陷產(chǎn)品組成的。本文提出的條件三元組損失函數(shù)要求對于元訓(xùn)練集中相同種類產(chǎn)品的無缺陷樣本和有缺陷樣本分別分配相鄰的偶數(shù)和奇數(shù)作為其類別標(biāo)識。對于不同種類產(chǎn)品,分配不同的相鄰整數(shù)對作為類別標(biāo)識。并且需要在元訓(xùn)練集中任意選取樣本作為錨點樣本(anchor)Xa、與錨點樣本同類的正樣本(positive)Xp,以及與錨點樣本不同類別的負(fù)樣本(negative)Xn,共同組成公式(1)所示的條件三元組損失函數(shù)。
loss(Xa,Xp,Xn)=
(1)
公式(1)表明,若錨點選取的樣本為無缺陷樣本,則按照傳統(tǒng)的三元組損失函數(shù)進(jìn)行計算;若錨點選取的樣本為有缺陷樣本,則損失值忽略錨點與正樣本間的距離。
條件三元組損失函數(shù)通過調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方向以完成網(wǎng)絡(luò)參數(shù)的更新。在參數(shù)更新過程中,三元組視窗內(nèi)樣本間的距離變化如圖3(a)所示。在元訓(xùn)練集視窗內(nèi),訓(xùn)練完畢后,不同的類別在隱空間中的分布狀態(tài)應(yīng)當(dāng)如圖3(b)所示。
(a) 三元組視窗
(b) 元訓(xùn)練集視窗圖3 條件損失函數(shù)對網(wǎng)絡(luò)訓(xùn)練過程的指導(dǎo)
最終的損失值為所有三元組損失的累加,如公式(2)所示:
(2)
式中,T表示訓(xùn)練數(shù)據(jù)集。此時,損失值的計算需要Ο(N3)的內(nèi)存空間,N為元訓(xùn)練集數(shù)據(jù)量。此數(shù)量一般非常龐大,訓(xùn)練時的運算速度將大大降低,并且模型收斂緩慢。所以在上述條件三元組損失函數(shù)的基礎(chǔ)上,使用難例挖掘(batch hard mining)[19]技術(shù)加快模型的收斂速度。難例挖掘在計算網(wǎng)絡(luò)總體損失值的時候,不是累加全部的三元組損失,而是僅考慮讓模型收斂最困難的三元組,基于難例挖掘的條件三元組損失函數(shù)計算由公式(3)給出:
Loss={da1,p|label(a1) and 2=0,label(a1)=label(p)}max-
{da2,n|label(a2)≠label(n)}min+m
(3)
在公式(3)中,第一項表示以無缺陷樣本為錨點時,錨點與正樣本的距離的最大值;第二項表示錨點樣本與負(fù)樣本的距離的最小值,m為類間距。
在原始的深度度量學(xué)習(xí)算法中,圖像類別劃分采用的是K最近鄰算法(K-Nearest Neighbor, KNN)[20],它是最近鄰算法的擴(kuò)展。但如圖4所示,在采用條件三元組損失函數(shù)對網(wǎng)絡(luò)參數(shù)進(jìn)行訓(xùn)練后,神經(jīng)網(wǎng)絡(luò)未能將有缺陷紐扣在隱空間中進(jìn)行聚類,并且由于支持集樣本較少,無法較好地擬合有缺陷紐扣在隱空間內(nèi)的分布,從而導(dǎo)致KNN歸類算法失效。
圖4 KNN算法失效原因
另一方面,無缺陷樣本是通過損失函數(shù)的指導(dǎo)進(jìn)行聚類操作的,因此可以使用已有的支持集數(shù)據(jù)中的無缺陷樣本對其分布進(jìn)行擬合。然后在查詢集當(dāng)中,可根據(jù)數(shù)據(jù)在隱空間內(nèi)屬于無缺陷樣本分布的概率來判斷該數(shù)據(jù)的分類。當(dāng)概率大于某個閾值時,將數(shù)據(jù)歸類為無缺陷類別,否則認(rèn)為是有缺陷類別。
現(xiàn)已知支持集中無缺陷樣本在隱空間內(nèi)的位置向量,假設(shè)滿足高維高斯分布,其概率密度函數(shù)可由公式(4)給出:
(4)
式中,x為支持集樣本在隱空間中的位置向量,μ與Σ為待估計參數(shù),分別為總體均值向量與總體協(xié)差陣。本文使用極大似然估計法來計算這2個參數(shù),計算公式為:
(5)
(6)
其中,Xi為支持集中的一個無缺陷樣本在隱空間中的位置向量。為了使協(xié)差陣Σ滿足正定矩陣的條件,在對Σ做估計時,將估計結(jié)果的主對角線元素加上一個很小的值,E表示與隱空間維度相同的單位矩陣。
對于查詢集中的未知標(biāo)簽數(shù)據(jù),定義公式(7)作為判斷它符合此高維高斯分布的概率:
(7)
式中,X為待測數(shù)據(jù)在隱空間中的位置向量。
求得概率密度函數(shù)后,接下來根據(jù)公式(8)計算2個類別的分割閾值:
(8)
式中,P為支持集上所有無缺陷樣本的集合,N為支持集上所有缺陷樣本的集合。
綜上所述,深度度量學(xué)習(xí)算法用于開集分類的步驟是:使用元訓(xùn)練集對網(wǎng)絡(luò)參數(shù)進(jìn)行訓(xùn)練,之后將支持集數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò),并投影到隱空間中,最后對查詢集上的數(shù)據(jù)使用基于高斯分布概率的歸類算法進(jìn)行分類。在此過程中,真正需要識別的對象支持集并沒有參與網(wǎng)絡(luò)的訓(xùn)練過程,而是使用與其特征相似的元訓(xùn)練集對網(wǎng)絡(luò)參數(shù)進(jìn)行訓(xùn)練,訓(xùn)練好的網(wǎng)絡(luò)在支持集上的聚類效果并不好。因此,本文將元訓(xùn)練集上訓(xùn)練好的模型在支持集上進(jìn)行參數(shù)微調(diào)(fine-tune)[21]。
執(zhí)行缺陷檢測任務(wù)的深度度量學(xué)習(xí)算法需要將原圖像投影到隱空間,因此神經(jīng)網(wǎng)絡(luò)通常將較淺的層設(shè)置為卷積層,用來提取圖像特征,而將較深的層設(shè)置為全連接層,用于對特征進(jìn)行隱空間的映射。同時,卷積層較淺的部分可以對較為粗大的、共性的特征進(jìn)行提取,而較深的部分可以提取到一些細(xì)微的特征。
神經(jīng)網(wǎng)絡(luò)總體結(jié)構(gòu)如圖5所示。元訓(xùn)練集與支持集上數(shù)據(jù)所對應(yīng)產(chǎn)品的種類是一致的,型號或批次有所不同,因此它們的相互差別主要在于一些細(xì)微的特征??梢詫矸e層的最后幾層進(jìn)行網(wǎng)絡(luò)參數(shù)微調(diào),而其它層的參數(shù)固定,在支持集上使用小學(xué)習(xí)率對網(wǎng)絡(luò)參數(shù)進(jìn)行訓(xùn)練。
圖5 神經(jīng)網(wǎng)絡(luò)總體結(jié)構(gòu)
針對實際工程應(yīng)用中的紐扣缺陷檢測任務(wù),采集5種不同類型紐扣的圖像并制作成數(shù)據(jù)集,各數(shù)據(jù)集中無缺陷樣本和有缺陷樣本的數(shù)量均為500個,圖像尺寸均為64×128像素。5種不同類型紐扣的數(shù)據(jù)集編號分別記為Btn1~Btn5,其示例圖像如圖6所示。
在網(wǎng)絡(luò)訓(xùn)練過程中,一般會將訓(xùn)練集進(jìn)行數(shù)據(jù)增強(qiáng),以提高網(wǎng)絡(luò)模型的泛化能力,減輕因數(shù)據(jù)量少引起的網(wǎng)絡(luò)過擬合現(xiàn)象。
紐扣缺陷數(shù)據(jù)集采用的數(shù)據(jù)增強(qiáng)方法是隨機(jī)旋轉(zhuǎn)變換、水平翻轉(zhuǎn)以及隨機(jī)對比度調(diào)整。如圖6所示,每個樣本圖像由左、右2個部分組成,分別為紐扣的正、反面。隨機(jī)旋轉(zhuǎn)變換是將圖像正反面分別繞其中心旋轉(zhuǎn)相同隨機(jī)角度θ,結(jié)果如圖7(a)所示。水平翻轉(zhuǎn)則用來模擬紐扣采集過程中正反顛倒的情況,如圖7(b)所示。隨機(jī)對比度調(diào)整是將原圖像由RGB色彩空間映射到HSV色彩空間,然后隨機(jī)微調(diào)S平面與V平面的參數(shù),最后再將圖像轉(zhuǎn)換回RGB空間,如圖7(c)所示。
圖6 數(shù)據(jù)集樣本示例
為了驗證改進(jìn)深度度量學(xué)習(xí)算法的表面缺陷檢測精度,進(jìn)行3組實驗并將實驗數(shù)據(jù)做了對比。3組實驗分別為:傳統(tǒng)深度度量學(xué)習(xí)算法、改進(jìn)深度度量學(xué)習(xí)算法(無微調(diào))、改進(jìn)深度度量學(xué)習(xí)算法(支持集上微調(diào))。
如表1所示,根據(jù)訓(xùn)練需要,將數(shù)據(jù)集劃分為元訓(xùn)練集、支持集與查詢集。
采用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是基于VGG16模型[22]的改進(jìn),它保留了VGG16的卷積層,而將全連接層改為2層,2層的輸出維度分別為256維與128維,激活函數(shù)為ReLU。
(a) 隨機(jī)旋轉(zhuǎn)變換
(b) 水平翻轉(zhuǎn)
(c) 隨機(jī)對比度調(diào)整圖7 數(shù)據(jù)增強(qiáng)方法
實驗一使用的是傳統(tǒng)深度度量學(xué)習(xí)算法,網(wǎng)絡(luò)訓(xùn)練時的學(xué)習(xí)率(Learning Rate)設(shè)置為1×10-5,批大小(Batch Size)設(shè)置為16,三元組損失函數(shù)的類間距(Margin)設(shè)為0.5,近鄰數(shù)為3,且在損失值連續(xù)30個迭代周期不下降時停止訓(xùn)練。訓(xùn)練過程中元訓(xùn)練集上的損失值與查詢集上的準(zhǔn)確率隨迭代次數(shù)的變化如圖8所示。從圖8可以看出,損失值呈穩(wěn)定下降,最終達(dá)到0.0026。分類準(zhǔn)確率在第一個迭代周期由55%上升至83.44%,在第9個迭代周期達(dá)到最大值89.56%。隨后,網(wǎng)絡(luò)產(chǎn)生輕微過擬合,在網(wǎng)絡(luò)訓(xùn)練結(jié)束后的分類準(zhǔn)確率為78.78%。訓(xùn)練完成后,將支持集圖像投影到隱空間并使用KNN算法進(jìn)行分類,檢測結(jié)果如表2所示。
表1 數(shù)據(jù)集劃分
表2 實驗一近鄰數(shù)及其測試結(jié)果
實驗二是在實驗一的基礎(chǔ)上,將損失函數(shù)改為條件三元組函數(shù),并采用基于高斯分布概率的歸類算法,網(wǎng)絡(luò)訓(xùn)練時學(xué)習(xí)率為1×10-5,批大小設(shè)置為16,條件損失函數(shù)的類間距為0.5,當(dāng)損失值連續(xù)30個迭代周期不下降時停止訓(xùn)練,訓(xùn)練過程如圖9所示。表3給出了實驗結(jié)果,可以看出,更換了損失函數(shù)和歸類算法以后,由于沒有學(xué)習(xí)到支持集上的數(shù)據(jù)特征,網(wǎng)絡(luò)在查詢集上的準(zhǔn)確率最終只有63.78%。
圖8 實驗一損失值和準(zhǔn)確率隨迭代次數(shù)的變化曲線
圖9 實驗二損失值和準(zhǔn)確率隨迭代次數(shù)的變化曲線
表3 實驗二測試結(jié)果
實驗三則是在實驗二的基礎(chǔ)上,使用本文提出的基于支持集的微調(diào)算法對最后3層卷積層的參數(shù)進(jìn)行微調(diào)。微調(diào)時的學(xué)習(xí)率為1×10-5,并且損失值連續(xù)20個迭代周期不下降時微調(diào)過程停止。支持集微調(diào)迭代過程如圖10所示,通過迭代曲線可以看出,網(wǎng)絡(luò)訓(xùn)練過程穩(wěn)定,收斂速度快,訓(xùn)練完成后在查詢集上的測試結(jié)果由表4給出,分類準(zhǔn)確率可達(dá)到92.89%。
此外,為了進(jìn)一步驗證本文算法的魯棒性,使用K-Fold交叉驗證做了5組實驗,每組實驗重復(fù)3次。并且在每一組實驗中,神經(jīng)網(wǎng)絡(luò)初始化不同的參數(shù)來進(jìn)行訓(xùn)練,實驗結(jié)果如表5所示。每一組實驗數(shù)據(jù)的支持集與查詢集的切分比例與表1相同。從實驗結(jié)果可以看出,所有實驗的檢測準(zhǔn)確率均在90%以上,且各組實驗具有很好的重復(fù)性,說明本文算法的整體魯棒性較好。
圖10 實驗三損失值和準(zhǔn)確率隨迭代次數(shù)的變化曲線
表4 實驗三測試結(jié)果
表5 K-Fold交叉驗證結(jié)果 單位/%
基于改進(jìn)深度度量學(xué)習(xí)的產(chǎn)品表面缺陷檢測實質(zhì)上是關(guān)于圖像的二分類算法,通常使用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1值(F1-score)這4個指標(biāo)來對模型進(jìn)行評估。這里,將有缺陷樣本定義為正類,無缺陷樣本定義為負(fù)類,使用混淆矩陣[23]描述的TP、TN、FP、FN的定義如圖11所示。
圖11 混淆矩陣
由混淆矩陣所示,TP表示有缺陷紐扣被識別正確的樣本數(shù),TN表示無缺陷紐扣被識別正確的樣本數(shù),F(xiàn)P表示無缺陷紐扣被識別為有缺陷紐扣的樣本數(shù),F(xiàn)N表示有缺陷紐扣被識別為無缺陷紐扣的樣本數(shù)。
準(zhǔn)確率為所有預(yù)測結(jié)果正確的樣本數(shù)占總樣本數(shù)的比例:
(9)
精確率為正確預(yù)測的正類樣本數(shù)占全部預(yù)測為正類樣本的比例,反映模型預(yù)測缺陷樣本的準(zhǔn)確程度:
(10)
召回率為正確預(yù)測的正類樣本占全部正類樣本的比例,反映缺陷樣本預(yù)測完備的程度:
(11)
F1值是結(jié)合了精確率和召回率的調(diào)和平均的指標(biāo),通常用來綜合評估網(wǎng)絡(luò)模型的性能:
(12)
由實驗數(shù)據(jù)得到的上述指標(biāo)的數(shù)值如表6所示。從表6數(shù)據(jù)可以看出,傳統(tǒng)算法與無微調(diào)時改進(jìn)算法的準(zhǔn)確率較低,而在支持集上微調(diào)的改進(jìn)算法準(zhǔn)確率高達(dá)92.89%,且其精確率與F1值均較其他算法有明顯優(yōu)勢。另外,在工業(yè)生產(chǎn)中通常希望通過缺陷檢測降低產(chǎn)品的次品率,因此更關(guān)注模型的召回率,召回率越高,則漏檢率越低。從實驗結(jié)果來看,改進(jìn)算法召回率達(dá)到90%,即在測試集中有10%左右的缺陷樣本被誤判成了正常樣本,但是考慮到在實際的產(chǎn)品中,缺陷產(chǎn)品只占總產(chǎn)品數(shù)量的1%~2%,因此實際的漏檢率在0.2%以內(nèi),能夠滿足工業(yè)檢測要求。
表6 模型評價結(jié)果
綜上,本文提出的改進(jìn)深度度量學(xué)習(xí)算法大幅度地提高了小樣本情況下紐扣缺陷檢測的準(zhǔn)確率,并且具有較好的魯棒性,可以實現(xiàn)對缺陷產(chǎn)品的快速智能檢測。
1)針對小批量、多品種的工業(yè)產(chǎn)品表面缺陷檢測,本文提出了一種改進(jìn)深度度量學(xué)習(xí)的缺陷檢測算法。算法在傳統(tǒng)深度度量學(xué)習(xí)的基礎(chǔ)上,修改了網(wǎng)絡(luò)模型結(jié)構(gòu),創(chuàng)新性地提出條件三元組損失函數(shù),并且使用基于高斯分布概率的歸類算法對圖像進(jìn)行分類,同時,為了提高準(zhǔn)確率,還在支持集上進(jìn)行了神經(jīng)網(wǎng)絡(luò)參數(shù)的微調(diào)。
2)通過實驗驗證,該方法在紐扣缺陷數(shù)據(jù)集上的檢測準(zhǔn)確率高于傳統(tǒng)深度度量學(xué)習(xí)方法,能夠滿足工業(yè)現(xiàn)場的檢測需求。同時,該方法經(jīng)過K-Fold交叉驗證體現(xiàn)出較好的魯棒性,并且對輸入圖像的敏感度較低,在支持集上網(wǎng)絡(luò)訓(xùn)練速度與查詢集上的推斷速度快,可以實現(xiàn)對缺陷產(chǎn)品的快速智能檢測。