国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于YOLO的鋁型材料表面小缺陷檢測

2022-07-14 01:31:48沈希忠
關(guān)鍵詞:錨框鋁型材表面

沈希忠,吳 迪

(上海應(yīng)用技術(shù)大學(xué) 電氣與電子工程學(xué)院,上海 201418)

鋁型材料通常指鋁合金材料,它是一種對表面處理要求比較高的材料。如果鋁型材料的表面沒有被處理好,或者因為某些外界原因其表面產(chǎn)生了缺陷,那么它的各種屬性將會被嚴(yán)重影響,小到外觀、形狀,大到性能、使用壽命。隨著生產(chǎn)的不斷發(fā)展,各類型鋁型材料的需求量也越來越大,鋁型材料表面的缺陷檢測也變得更加重要。早期的表面缺陷檢測任務(wù)多依賴于機(jī)器視覺的檢測方法,Yang等[1]提出一種使用平穩(wěn)小波變換的表面缺陷檢測的方法,該法采用Sobel算子分割圖像,再用索引以及非線性濾波去噪,提取出物體表面的缺陷特征。Li等[2]結(jié)合離散Curvelet變換和紋理分析提出了一種圖像裂紋缺陷的檢測方法。Xie等[3]利用Shearlet變換優(yōu)化了磁瓦表面的缺陷特征提取方法。隨著技術(shù)的發(fā)展,深度學(xué)習(xí)的檢測方法已得到了廣泛的應(yīng)用。自從Krizhevsky等[4]初步解決了激活函數(shù)以及過擬合問題,開啟了深度學(xué)習(xí)的新時代之后,卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)被應(yīng)用到各種圖像處理領(lǐng)域中,包括缺陷檢測領(lǐng)域。Park等[5]提出一種利用卷積神經(jīng)網(wǎng)絡(luò)對零件表面缺陷進(jìn)行檢測的方法,Cha[6]等利用卷積神經(jīng)網(wǎng)絡(luò)檢測混凝土表面的裂紋,這些都是比較典型的卷積神經(jīng)網(wǎng)絡(luò)在表面缺陷檢測上應(yīng)用的案例。姚明海等[7]還提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的自適應(yīng)加權(quán)池化算法,加強(qiáng)了表面特征提取工作的精密度,提高了缺陷檢測的準(zhǔn)確率以及速度。

表面缺陷檢測任務(wù)的核心是特征的提取,早期表面缺陷檢測方法的本質(zhì)是用算法進(jìn)行特征提取,這種方法能夠輕松識別種類較少、形狀固定和干擾較少的物體表面缺陷。而目前深度學(xué)習(xí)的檢測方法是通過訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型去提取缺陷特征,這就在提取精度上提升了多個檔次,它已經(jīng)能夠輕松地檢測出表面特征較為明顯、相對面積較大的缺陷,然而它在小缺陷檢測任務(wù)中的表現(xiàn)卻并不優(yōu)秀。小缺陷雖不起眼,但往往不可忽視,例如在航空業(yè)以及工業(yè)中所使用的鋁型材料表面的斑點(diǎn)、漏洞等隱蔽性小缺陷,隨著時間的推移很可能由小變大,最終釀成災(zāi)禍。因此,小缺陷檢測在物體表面缺陷檢測,尤其是鋁型材料的表面缺陷檢測任務(wù)中尤為重要。

1 缺陷檢測方法與小缺陷檢測分析

物體表面的缺陷檢測是當(dāng)今工業(yè)生產(chǎn)及檢修的重要項目,它的核心是特征提取,根據(jù)特征提取方法的不同,目前的檢測方法主要分為傳統(tǒng)檢測方法和現(xiàn)代檢測方法兩種。物體表面缺陷檢測領(lǐng)域面臨著很多困難,例如反光表面的缺陷檢測、小缺陷的檢測以及未給定缺陷的識別等,其中的小缺陷檢測就是一個重大難點(diǎn)。

1.1 傳統(tǒng)缺陷檢測方法

機(jī)器視覺檢測法是被廣泛使用的傳統(tǒng)缺陷檢測法,該方法利用邊緣檢測[8]等算法提取出物體表面的特征,再通過像素對比法選擇出缺陷特征,進(jìn)而判斷缺陷的種類。該方法雖然已發(fā)展為利用支持向量機(jī)等數(shù)學(xué)分類的方法對缺陷特征進(jìn)行選擇以及分類,但是它仍然有很大的限制性,而且可靠度較低。

傳統(tǒng)缺陷檢測方法在物體表面輪廓缺陷的檢測任務(wù)中表現(xiàn)較為優(yōu)秀,這是因為輪廓缺陷的檢測任務(wù)不需要進(jìn)行復(fù)雜的分類處理,僅僅使用一個標(biāo)準(zhǔn)的“模具輪廓”對所需檢測的樣本進(jìn)行重疊對比,通過重疊率這一數(shù)值即可表現(xiàn)出表面輪廓缺陷的大小程度,甚至再通過一些標(biāo)記比對還能夠顯示出表面輪廓缺陷的位置。然而,用傳統(tǒng)缺陷檢測方法去進(jìn)行其他表面缺陷的檢測就略顯不足,有時甚至檢測不出裂紋、凹坑等一些細(xì)節(jié)上的缺陷。因此,傳統(tǒng)缺陷檢測方法已逐漸不能滿足當(dāng)前的需求。

1.2 現(xiàn)代缺陷檢測方法

現(xiàn)代缺陷檢測法通常指的是現(xiàn)代人工智能的檢測方法,也就是深度學(xué)習(xí)的檢測方法。物體表面缺陷的檢測屬于圖像的處理領(lǐng)域,因此普遍使用卷積神經(jīng)網(wǎng)絡(luò)及其變體的各種神經(jīng)網(wǎng)絡(luò)模型。蔣美仙等[9]提出基于Deeplab-V3模型的焊縫缺陷檢測方法,用Deeplab-V3網(wǎng)絡(luò)池化分割出焊縫特征,實現(xiàn)對焊縫缺陷的檢測。Kim等[10]通過一種基于殘差卷積自編碼器的深度學(xué)習(xí)檢測方法對印制電路板表面的缺陷進(jìn)行了檢測。胡嘉成等[11]通過一種基于卷積神經(jīng)網(wǎng)絡(luò)的方法對連鑄胚表面的缺陷進(jìn)行了高準(zhǔn)確度的檢測。

雖然現(xiàn)代檢測方法較傳統(tǒng)方法取得了明顯的進(jìn)步,識別率以及識別速度都有了很大的改善,但是對于不同的實際應(yīng)用和任務(wù)需求,還有很大的改進(jìn)和優(yōu)化空間。

1.3 小缺陷檢測分析

1.3.1 小缺陷的定義

在目標(biāo)檢測任務(wù)中,當(dāng)所要檢測目標(biāo)的尺寸相對整個原樣本圖像的尺寸較小時,將這些檢測目標(biāo)定義為小目標(biāo)。這個“較小”在不同領(lǐng)域中的定義也各不相同。例如,在交通識別領(lǐng)域中通常將自身長度在整幅圖中的占比小于20%的目標(biāo)定義為小目標(biāo);而COCO數(shù)據(jù)集則將小于32×32的目標(biāo)定義為小目標(biāo);還有國際組織SPIE,它對小目標(biāo)的定義是在256×256的原始圖像中所占面積小于80個像素的目標(biāo),從廣義的角度來說就是自身面積占比小于一幅圖像0.12%的目標(biāo)。

因此,在不同的領(lǐng)域中小目標(biāo)的定義也各不相同。在缺陷檢測領(lǐng)域中,小缺陷即是小目標(biāo),因為小缺陷不同于廣義小目標(biāo)的特殊性,結(jié)合小缺陷檢測的要求,這里將在640×640的圖像中所占面積小于50個像素的目標(biāo)(即占原樣本圖像面積小于0.012%的目標(biāo))定義為小缺陷。

1.3.2 小缺陷的特征及分類

小缺陷具有模糊度高、所占面積小、攜帶信息量少以及易與物體表面其他特征混淆等特點(diǎn)。根據(jù)特征的不同,小缺陷可以被分為3種類型:與原物體表面特征相似的小缺陷、與原物體表面特征差異較大的小缺陷以及多重小缺陷組合形成的缺陷。前兩種類型仍然屬于小目標(biāo)的范疇,第3種類型雖然本質(zhì)上是小目標(biāo)的集合,但是在檢測的時候根據(jù)情況可能會將其視為一個整體。這里所說的與原物體表面特征相似或相異的“表面特征”指的是原物體表面的各種屬性,如顏色、形狀和紋理等,圖1為3種類型的小缺陷樣例圖,分別是兩個斑點(diǎn)類型的缺陷以及一個漆泡類型的缺陷。

圖1 小缺陷的分類樣例圖Fig.1 Sample diagram of small defect classification

1.3.3 小缺陷檢測困難的原因

小缺陷的檢測被視為缺陷檢測領(lǐng)域中的一個難點(diǎn),從小缺陷的自身角度分析,小缺陷很難通過常見的特征提取算法進(jìn)行處理,因為提取困難,所以人工智能對其特征的學(xué)習(xí)也就變得困難。而且小缺陷的樣本比較難獲取,在一些常見的表面缺陷數(shù)據(jù)集中小缺陷所占的比重是最小的,數(shù)據(jù)量的缺乏也加大了人工智能學(xué)習(xí)的難度。從當(dāng)前的技術(shù)條件分析,目前沒有任何一個特征提取算法能夠完全攻克小缺陷的特征提取難關(guān)。受制于目前制式化的網(wǎng)絡(luò)模型,深度學(xué)習(xí)法對小缺陷的檢測效果也不盡如人意。對小缺陷檢測效果較好的網(wǎng)絡(luò)模型大多過于龐大,大大降低了檢測的實時性,導(dǎo)致其不具有實際的應(yīng)用性。小缺陷會給生產(chǎn)生活以及工程研究帶來不同程度的影響,特別是對精密工程以及航空工程的影響較大,因此在工程研究中往往十分重視小缺陷的檢測。

2 YOLO模型的改進(jìn)與訓(xùn)練

根據(jù)缺陷檢測的方法與難點(diǎn),筆者使用YOLO模型作為基礎(chǔ)網(wǎng)絡(luò)對其進(jìn)行改進(jìn)。YOLO是目標(biāo)檢測任務(wù)中使用較廣泛的網(wǎng)絡(luò)模型之一,它在缺陷檢測任務(wù)中的表現(xiàn)也比較優(yōu)秀。YOLO的最新一代網(wǎng)絡(luò)模型是YOLO-v5[12],相較于前幾代網(wǎng)絡(luò)YOLO-v4[13]和YOLO-v3[14],YOLO-v5有了很大的改進(jìn)。

YOLO-v5根據(jù)深度和寬度分成了4個網(wǎng)絡(luò)結(jié)構(gòu):YOLO-v5s,YOLO-v5m,YOLO-v5l,YOLO-v5x。第1個YOLO-v5s是其中深度、寬度以及網(wǎng)絡(luò)體積最小的網(wǎng)絡(luò),后面3個網(wǎng)絡(luò)結(jié)構(gòu)都以此為基礎(chǔ)加深、加寬和加大規(guī)模,這就保證了YOLO-v5在應(yīng)用方面的靈活度。YOLO-v5加入了自適應(yīng)初始錨框(Anchor box)的計算,不同于YOLO-v3以及YOLO-v4根據(jù)訓(xùn)練集的不同還要使用獨(dú)立的程序去計算初始錨框,YOLO-v5將其嵌入到了基本框架的代碼中。每當(dāng)訓(xùn)練開始進(jìn)行,YOLO-v5就可以直接通過這一嵌入代碼計算出所使用的各種數(shù)據(jù)集的最佳錨框值,如果自動計算出的結(jié)果不理想,可以直接關(guān)閉其功能,使用另外的獨(dú)立程序進(jìn)行計算。正確的錨框設(shè)定是目標(biāo)檢測任務(wù)的關(guān)鍵所在,在錨框上的改進(jìn)減少了捕捉目標(biāo)所需的時間,增加了目標(biāo)檢測任務(wù)成功的概率。自適應(yīng)圖片縮放也是YOLO-v5的一個重要改進(jìn)功能,通常在目標(biāo)檢測算法中,不同分辨率的圖片會被統(tǒng)一縮放并且填充黑邊,變成同一個標(biāo)準(zhǔn)尺度后再被送到檢測網(wǎng)絡(luò)中,YOLO-v5對其進(jìn)行了改進(jìn),實現(xiàn)了自適應(yīng)填充黑邊的功能,這種自適應(yīng)圖片縮放能夠根據(jù)圖片的屬性不同,計算出填充黑邊最少的縮放尺度,間接地提升了網(wǎng)絡(luò)的檢測速度。在YOLO-v5的主干(Backbone)中,還增加了切片卷積(Focus)結(jié)構(gòu),這是前兩代所沒有的結(jié)構(gòu),它的作用是將樣本圖像進(jìn)行切片操作,切成1/4大小的特征圖后再進(jìn)行卷積操作,得到最終的特征圖,這讓所獲得的特征圖的特征損失變少。

總體來說,YOLO-v5雖然在性能上并不是最好的,但是它在靈活度、檢測速度以及模型的尺寸上具有明顯的優(yōu)勢,最小的YOLO-v5s模型尺寸僅有14.8 M,證明其具有較高的可移植性,讓以后在通訊受阻的場景或條件下用機(jī)器人攜帶移動設(shè)備進(jìn)行缺陷檢測并整修的設(shè)想成為可能。

根據(jù)YOLO-v5的這些優(yōu)點(diǎn),筆者提出了一種基于YOLO-v5的尺度擴(kuò)張網(wǎng)絡(luò)模型,并將該模型用于物體表面缺陷的檢測任務(wù),主要貢獻(xiàn)如下:1) 提出一種新的基于YOLO-v5的多尺度物體表面缺陷檢測模型,該模型在原有YOLO-v5模型上擴(kuò)張了一個特征提取以及檢測尺度,使其能夠提取并檢測更小的缺陷,彌補(bǔ)缺陷檢測尺度的不足,同時為了進(jìn)一步解決小缺陷檢測的難點(diǎn),該模型還優(yōu)化了錨框的計算方法;2) 運(yùn)用Net2Net[15]以及遷移學(xué)習(xí)的方法,對訓(xùn)練網(wǎng)絡(luò)的權(quán)重及其他參數(shù)進(jìn)行多重遷移化處理,使得短期訓(xùn)練的程度更加充分;3) 在鋁型材料表面缺陷數(shù)據(jù)集上的實驗表明,所提出的模型在小缺陷檢測上的P—R曲線,在各種缺陷檢測上的AP、mAP以及檢測速度評價指標(biāo)上均達(dá)到了較好的效果。

2.1 改進(jìn)的YOLO模型

為了設(shè)計預(yù)測結(jié)果更精確、檢測范圍更廣的缺陷檢測模型,經(jīng)過試改進(jìn),最終敲定通過增加提取和識別尺度以及改進(jìn)自適應(yīng)錨框的計算來擴(kuò)大原本網(wǎng)絡(luò)的檢測范圍,提升網(wǎng)絡(luò)對小缺陷的檢測效果,網(wǎng)絡(luò)改進(jìn)之后的整體結(jié)構(gòu)如圖2所示。

圖2 改進(jìn)的YOLO-v5結(jié)構(gòu)圖Fig.2 Improved YOLO-v5 structure diagram

2.1.1 主干網(wǎng)絡(luò)

如圖2所示,改進(jìn)的YOLO-v5模型結(jié)構(gòu)主要分成Backbone,Neck和Head 3部分。其中主干網(wǎng)絡(luò)Backbone中包括了新增的Focus結(jié)構(gòu)、CSPNet、CBL和SPP[16](圖3,4)。

圖3 模型模塊介紹1Fig.3 Model module introduction 1

圖4 模型模塊介紹2Fig.4 Model module introduction 2

切片卷積結(jié)構(gòu)(Focus)先對輸入其中的640×640×3對象圖片進(jìn)行切片操作,讓其成為320×320×12的特征圖,然后再將其進(jìn)行一次卷積,使其變?yōu)?20×320×32的特征圖。該結(jié)構(gòu)減少了特征提取的損失,降低了計算量,提升了速度。

CSPNet(Cross stage partial network)全稱是跨階段局部網(wǎng)絡(luò),它將梯度變化集成到了特征圖之中,其中包含有殘差組件[17],在保證速度以及準(zhǔn)確率的前提下減少了模型的參數(shù)量,解決了梯度重復(fù)問題,減小了模型的尺寸。

CBL原本指Conv-BN-Leaky Relu,因為YOLO-v5的網(wǎng)絡(luò)模型仍在不斷更新整改中,原本在這一結(jié)構(gòu)中被使用的Leaky Relu激活函數(shù)因為YOLO-v5版本的變換被多次替換成其他激活函數(shù),為了方便繪圖,仍使用CBL指代這一結(jié)構(gòu)卷積層+BN層+激活函數(shù),這是YOLO中的一個基本下采樣組件。

最后的SPP(Spatial pyramid pooling)空間金字塔池化通過不同內(nèi)核大小的池化(Pooling)層提取出不同尺度的特征,然后將這些特征疊加融合,這就使得多尺度特征提取得到了進(jìn)一步的融合。

為了提高模型的訓(xùn)練速度,提升模型的檢測精度,筆者在模型的主干網(wǎng)絡(luò)中加入一系列預(yù)先處理模塊,這些模塊位于模型的輸入之前,其功能是對將要輸入模型的數(shù)據(jù)圖片進(jìn)行預(yù)先處理,例如進(jìn)行圖像增強(qiáng)[18]、濾波去噪和形態(tài)學(xué)變換等操作。

2.1.2 特征金字塔多尺度預(yù)測層

頸部(Neck)以及最后的頭部(Head)組合成了特征金字塔多尺度預(yù)測層。頸部中使用了改進(jìn)的路徑聚合網(wǎng)絡(luò)(PANet)結(jié)構(gòu),使用張量拼接代替了原本的疊加,讓特征進(jìn)行堆疊。頸部的作用是特征融合,它通過形成特征金字塔結(jié)構(gòu),使得模型可以進(jìn)行多尺度的目標(biāo)檢測。在最后的頭部檢測層進(jìn)行最終的檢測工作。頭部檢測層的功能是在模型所獲取的最后的特征圖中使用預(yù)設(shè)的錨框(Anchor box)將類別、框(Box)坐標(biāo)以及置信度都整合到最終的輸出結(jié)果中去,從而生成帶有類別、置信度以及框的輸出結(jié)果,每個尺度不同的頭部用于檢測大小不同的物體。

2.1.3 多尺度擴(kuò)張

原本的YOLO-v5基礎(chǔ)模型能夠在3個尺度上進(jìn)行檢測,檢測尺度比較均衡。如果輸入640×640的圖片,最后所得到的檢測尺度就是80×80,40×40,20×20,即圖2中的y2,y3,y4,也就是說對于一張待檢測的圖片,最小能夠檢測出其中的1/(80×80),1/(40×40)以及1/(20×20)的目標(biāo)。

因為在缺陷中存在極小目標(biāo),表面缺陷檢測任務(wù)對小目標(biāo)的檢測有需求,所以筆者在頸部中讓模型多進(jìn)行了一次上采樣和張量拼接,也就是多提取了一層特征和多進(jìn)行了一次張量拼接,這就擴(kuò)充了特征維的數(shù)據(jù)量,進(jìn)一步加強(qiáng)了模型對小目標(biāo)檢測的準(zhǔn)確度。

經(jīng)過改進(jìn)后的模型增加了一個檢測尺度,即如圖2所示的y1,檢測尺度為160×160,對于一張待檢測的圖片,最小能夠檢測出其中的1/(160×160)的目標(biāo)。

2.1.4 改進(jìn)自適應(yīng)錨框計算

目標(biāo)檢測任務(wù)通常使用邊界框(Bounding box)來表達(dá)所檢測目標(biāo)的位置。邊界框通常是矩形,其位置通過對角兩點(diǎn)的坐標(biāo)確定。而錨框(Anchor box)就是判斷待檢測圖像中的某片區(qū)域內(nèi)是否含有目標(biāo)的工具,它可以被理解為一種“網(wǎng)”,不同類型的目標(biāo)能夠被不同形狀大小的“網(wǎng)”所捕捉。

通常情況下缺陷檢測任務(wù)是在大的特征圖中去檢測小缺陷,因此在大的特征圖中通常將錨框設(shè)置得比較小,然而這卻又增加了檢測時間,所以錨框的設(shè)置是缺陷檢測任務(wù)的一個重點(diǎn)。

YOLO-v5具有自適應(yīng)錨框計算的功能,在訓(xùn)練還未開始時,模型會對目標(biāo)數(shù)據(jù)集中所有標(biāo)注的信息進(jìn)行確認(rèn),并且計算內(nèi)置的9種預(yù)設(shè)錨框?qū)@些信息的BPR(Best possible recall),當(dāng)計算出來的BPR小于0.98時,就會通過K均值聚類算法(K-means)算法[19]以及遺傳學(xué)習(xí)算法[20]對這些信息進(jìn)行分析,然后重新計算適合于目標(biāo)數(shù)據(jù)集的錨框。

為了解決小缺陷檢測難的問題,除了擴(kuò)張模型的檢測尺度,在錨框的計算上也進(jìn)行了改進(jìn)。對于小缺陷,在所計算出的所有錨框中很可能只有很少部分與小缺陷的真實大小相匹配,這就導(dǎo)致了正負(fù)樣本的不平衡,并且與小缺陷尺寸相近的錨框較少也大大降低了網(wǎng)絡(luò)的檢測性能,從而造成小缺陷特征的丟失。因為初始中心點(diǎn)的選取很容易影響K-means算法的聚類效果,所以引入了K-means++算法對初始聚類中心進(jìn)行計算,以此來彌補(bǔ)自適應(yīng)錨框計算的不足,然而這樣的改進(jìn)還不完全,因為不管是K-means算法還是K-means++算法,它們的聚類對于小目標(biāo)的效果是很差的,其計算出的錨框往往會比最適合的錨框更大一些。通過實驗發(fā)現(xiàn):在進(jìn)行小目標(biāo)的檢測任務(wù)時,可以通過對計算出的錨框加入尺度放縮的方法來減小這一問題帶來的影響。具體的操作是對計算出的所有錨框的尺寸進(jìn)行放縮,將最小的錨框放縮到和標(biāo)注信息中最小的真實框相近的大小,其余的錨框根據(jù)這一放縮比例進(jìn)行線性放縮,這樣就可以在一定程度上減小聚類所產(chǎn)生的錨框大小與最適錨框大小相差過大所產(chǎn)生的一系列影響。

2.2 遷移訓(xùn)練

深度神經(jīng)網(wǎng)絡(luò)通常情況下是建立在大量樣本訓(xùn)練以及“深度”訓(xùn)練的基礎(chǔ)上的,因為這樣所得到的模型的各項指標(biāo)會更加優(yōu)秀。由于沒有大量的樣本以及時間進(jìn)行訓(xùn)練,為了縮短實驗周期,提高短期訓(xùn)練網(wǎng)絡(luò)所得預(yù)測結(jié)果的準(zhǔn)確度,提升短期訓(xùn)練所得模型的性能,筆者在模型訓(xùn)練的過程中使用了遷移學(xué)習(xí)以及Net2Net的訓(xùn)練方法,為了方便敘述將這兩種方法統(tǒng)稱為遷移訓(xùn)練的方法。

遷移學(xué)習(xí)其實就是知識遷移,在機(jī)器學(xué)習(xí)中,它指的是將一個預(yù)訓(xùn)練的模型重新使用在另一個任務(wù)中。在深度學(xué)習(xí)領(lǐng)域?qū)?shù)據(jù)的標(biāo)注通常會耗費(fèi)大量的人力以及時間成本,因此遷移學(xué)習(xí)的方法廣受歡迎。

遷移學(xué)習(xí)包括基于實例的遷移、基于特征的遷移以及基于共享參數(shù)的遷移?;趯嵗倪w移就是從大數(shù)據(jù)的預(yù)訓(xùn)練模型中尋找和目標(biāo)任務(wù)模型相接近的預(yù)訓(xùn)練模型,進(jìn)而進(jìn)行更有效的權(quán)重分配,建立更可靠的模型;基于特征的遷移就是將預(yù)訓(xùn)練模型的特征空間映射到目標(biāo)任務(wù)模型的特征空間中去,利用這些特征進(jìn)行知識遷移;基于共享參數(shù)的遷移是找到預(yù)訓(xùn)練模型和目標(biāo)任務(wù)模型之間的共同參數(shù)或者先驗分布,將之處理之后再進(jìn)行知識遷移。

筆者所用到的遷移學(xué)習(xí)流程:1) 選擇預(yù)訓(xùn)練源模型,選用開發(fā)者們在大型數(shù)據(jù)集上訓(xùn)練過的預(yù)訓(xùn)練模型;2) 重新使用模型,將第1步的預(yù)訓(xùn)練模型作為下一個深度學(xué)習(xí)任務(wù)的起點(diǎn),直接取其相應(yīng)的結(jié)構(gòu)參數(shù)以及權(quán)重進(jìn)行下一個任務(wù)的訓(xùn)練;3) 調(diào)整模型,根據(jù)目標(biāo)數(shù)據(jù)集的具體屬性對模型進(jìn)行微調(diào),讓模型適應(yīng)新的目標(biāo)檢測任務(wù)。

通過遷移學(xué)習(xí)的方法可以將預(yù)訓(xùn)練模型“遷移”到當(dāng)前的訓(xùn)練問題中,將已經(jīng)獲取的模型參數(shù)(也可理解為模型學(xué)到的“知識”)通過某種方式分享給新模型,即讓自己的模型學(xué)習(xí)到新的“知識”,從而優(yōu)化模型的學(xué)習(xí)效率,不用像訓(xùn)練大多數(shù)網(wǎng)絡(luò)那樣從零學(xué)習(xí)。

除了運(yùn)用遷移學(xué)習(xí)的訓(xùn)練方法,筆者還使用了Net2Net的訓(xùn)練方法,該方法是Chen等[15]提出的,其目的是加速訓(xùn)練出一個更大的網(wǎng)絡(luò),其基本思想是以小網(wǎng)絡(luò)的訓(xùn)練為基礎(chǔ)去訓(xùn)練更大的網(wǎng)絡(luò),這就使得在小網(wǎng)絡(luò)中訓(xùn)練完成的權(quán)重能夠被運(yùn)用到后續(xù)所要訓(xùn)練的更大的網(wǎng)絡(luò)中去,從而達(dá)到加速訓(xùn)練更大的網(wǎng)絡(luò)的目的。

Net2Net主要分為Net2WiderNet和Net2DeeperNet兩種轉(zhuǎn)換模式,前者通過等效模型去拓寬網(wǎng)絡(luò),后者則通過等效模型去加深網(wǎng)絡(luò)。利用Net2Net的方法去訓(xùn)練一個更大的神經(jīng)網(wǎng)絡(luò),可以更快速地訓(xùn)練網(wǎng)絡(luò)并且提升網(wǎng)絡(luò)的識別性能。

YOLO-v5的4個網(wǎng)絡(luò)結(jié)構(gòu)YOLO-v5s,YOLO-vm,YOLO-v5l和YOLO-v5x具有不斷加深加寬,不斷遞進(jìn)的關(guān)系,使得Net2Net在YOLO-v5的訓(xùn)練中能夠達(dá)到到很好的效果。

運(yùn)用遷移訓(xùn)練的方法能夠降低模型對訓(xùn)練數(shù)據(jù)量的需求,減輕訓(xùn)練過程中硬件設(shè)備的劣勢所帶來的影響,減少訓(xùn)練大網(wǎng)絡(luò)所需的時間,極大地縮短實驗周期,圖5為遷移訓(xùn)練過程示意圖。

圖5 遷移訓(xùn)練過程Fig.5 Migration training process

3 鋁型材料的表面缺陷檢測實驗

3.1 實驗環(huán)境

實驗平臺在Win10系統(tǒng)上進(jìn)行,CPU為Intel core i5-10400F,GPU為NVIDIA GeForce RTX3070,深度學(xué)習(xí)環(huán)境安裝CUDA及cuDNN圖形加速,深度學(xué)習(xí)框架PyTorch,編譯語言為Python 3.8集成工具opencv等擴(kuò)展庫。

3.2 鋁型材料表面缺陷數(shù)據(jù)集制作

3.2.1 數(shù)據(jù)說明

鋁型材料圖像數(shù)據(jù)的原樣本來自阿里云,原樣本一共有5 000張未被處理過的60系列鋁型材料原始樣本圖片,這些原始樣本圖片分辨率大多為1 000~2 000,包含了有缺陷、多缺陷以及無缺陷的鋁型材料圖片,其中單缺陷的樣本有4 000張,多缺陷的樣本有400張,無缺陷的樣本有600張。

3.2.2 缺陷分類

對原樣本的單缺陷數(shù)據(jù)進(jìn)行分類篩選,根據(jù)缺陷類型的不同將其分為8部分,去掉其中不常見的3種缺陷,最終得到了5種類型的缺陷圖片,分別是斑點(diǎn)(Spot)、擦花(Scratch)、碰傷(Bruise)、漆泡(Bubble)和噴流(Jet)缺陷,圖6為每種缺陷的具體樣式。分類篩選過后,每種類型的缺陷圖片各有500張,根據(jù)缺陷的大小再進(jìn)行檢測類別分類,斑點(diǎn)類型的缺陷屬于小缺陷,其余的缺陷類型中,碰傷以及漆泡根據(jù)其自身的大小以及形態(tài)分類成近似小缺陷和普通缺陷,而擦花和噴流則屬于普通缺陷。

圖6 缺陷分類Fig.6 Defect classification

3.2.3 數(shù)據(jù)集的制作

首先,將分類好的5種類型的缺陷圖片進(jìn)行處理,通過旋轉(zhuǎn)、裁剪和拼接等圖像處理方法,將原始的樣本圖片進(jìn)行優(yōu)化并且擴(kuò)充樣本的數(shù)量,將每種樣本擴(kuò)充至700張;然后,對屬于小缺陷以及可能屬于近似小缺陷的3種類型的缺陷(斑點(diǎn)、碰傷和漆泡)進(jìn)行額外的擴(kuò)充,使用無缺陷的相似樣本進(jìn)一步對其進(jìn)行裁剪、旋轉(zhuǎn)和拼接,將其擴(kuò)充至每種類型800張,提高了數(shù)據(jù)的魯棒性;最后,使用labelImg標(biāo)注軟件標(biāo)注好缺陷的位置以及種類,形成自制的鋁型材料表面缺陷數(shù)據(jù)集。

3.3 訓(xùn)練參數(shù)及數(shù)據(jù)預(yù)處理

基本參數(shù)采用余弦退火策略動態(tài)調(diào)整學(xué)習(xí)率,初始學(xué)習(xí)率設(shè)定為0.01,衰減設(shè)定為0.000 5,最大迭代數(shù)設(shè)置為4 000次。在訓(xùn)練之前,模型會對圖像進(jìn)行預(yù)處理,首先通過歸一化將圖像變成640×640×3,然后通過色彩增強(qiáng)、對比度增強(qiáng)等圖像增強(qiáng)方法以及空間形態(tài)學(xué)操作、空間濾波等濾波方法對圖像進(jìn)行進(jìn)一步處理,提高了圖像的魯棒性,保證了訓(xùn)練的效率。

3.4 LOSS分析

YOLO-v5使用GIOU Loss作為邊界框(Bounding box)的損失函數(shù)。GIOU Loss較其他方法具有更快的收斂和更好的性能,它提高了預(yù)測框的描繪速度以及精度,并且加入了Box相交尺度的度量,避免了其他方法有時會產(chǎn)生兩個Box不相交的情況。損失函數(shù)值越小,說明此時的檢測效果越好。LGIOU和IIOU的計算式分別為

(1)

(2)

式中:A表示預(yù)測框(Prediction box);B表示真實框(Ground truth box);C表示含有預(yù)測框A與真實框B的最小區(qū)域;IIOU表示預(yù)測框A與真實框B的交并比。

圖7為模型在訓(xùn)練時的損失曲線圖,由圖7可知:在前400次迭代中損失函數(shù)值較大,并且下降迅速;當(dāng)?shù)鷶?shù)達(dá)到800次以后,雖然損失值仍在明顯下降,但是下降的速度變緩;直到迭代數(shù)達(dá)到1 800次以后,損失值開始緩慢下降;當(dāng)?shù)鷶?shù)達(dá)到3 500次時,損失值很小并趨于平穩(wěn),此時模型達(dá)到了較好的識別效果。

圖7 損失曲線圖Fig.7 Loss curve

3.5 評價指標(biāo)

采用被廣泛認(rèn)可使用的P—R曲線、AP、mAP以及FPS評價指標(biāo)作為模型性能評價的量化指標(biāo)。P—R曲線就是以精確率(Precision)作為縱坐標(biāo),召回率(Recall)作為橫坐標(biāo)的二維曲線。P—R曲線所圍成的面積就是AP(Average precision),AP越高表示網(wǎng)絡(luò)對這一目標(biāo)的檢測效果越好。mAP(Mean average precision)即平均AP,它是對多個驗證集所求的平均AP,反映了網(wǎng)絡(luò)對任務(wù)總體的檢測效果。FPS(Frame per second)是檢測速度評價指標(biāo),表示每秒內(nèi)模型可以檢測的樣本圖片數(shù)量。

針對每一種鋁型材料缺陷,計算精確度P和召回率R,畫出P—R曲線,計算P—R曲線的面積可以得到平均精度AP。mAP是指所有鋁型材料缺陷的平均精度。具體計算式分別為

(3)

(4)

(5)

(6)

式中:TP表示檢測出的鋁型材料缺陷中判斷正確的數(shù)目;FP表示判斷錯誤數(shù)目;FN表示沒有檢測出的鋁型材料缺陷的數(shù)目。

3.6 結(jié)果分析

根據(jù)3.5節(jié)所提到的評價指標(biāo),對改進(jìn)模型進(jìn)行評價。精確率與召回率反映了目標(biāo)檢測模型正確檢測目標(biāo)的能力。圖8為筆者改進(jìn)模型對斑點(diǎn)(小缺陷)進(jìn)行檢測的P—R曲線,由圖8可知:訓(xùn)練完的鋁型材料表面缺陷檢測模型對小缺陷的精確率和召回率都比較高。

圖8 小缺陷目標(biāo)檢測的P—R曲線Fig.8 P-R curve of dirty spot small target detection

為了驗證改進(jìn)模型的可行性,將其與原模型以及未經(jīng)過遷移訓(xùn)練的改進(jìn)模型進(jìn)行實驗對比。圖9為近似小缺陷的實際檢測效果對比圖,由圖9可知:改進(jìn)模型優(yōu)于原模型,原模型將某些較明顯的近似小缺陷(漆泡)視為整體缺陷,沒有對其進(jìn)行分開檢測,并且檢測準(zhǔn)確率也較低。圖10為小缺陷檢測的實際檢測效果對比圖,由圖10可知:改進(jìn)模型的優(yōu)勢更加明顯,原模型除了準(zhǔn)確率較低以外甚至還漏檢了一個斑點(diǎn)小缺陷,這就證明了改進(jìn)模型在小目標(biāo)檢測上的可行性。表1,2為經(jīng)過遷移訓(xùn)練的原模型、改進(jìn)模型以及未經(jīng)過遷移訓(xùn)練的改進(jìn)模型在同一個檢測任務(wù)下的AP、mAP以及FPS的對比。根據(jù)對比可知:針對正常缺陷的識別率,改進(jìn)模型基本不比原模型差,僅在對噴流缺陷的檢測上比原模型略差,這是因為改進(jìn)模型的重點(diǎn)偏向了小缺陷的檢測,從而降低了對大面積缺陷檢測的識別率。改進(jìn)模型的mAP比原模型高8.08%,進(jìn)行遷移訓(xùn)練的mAP比未進(jìn)行遷移訓(xùn)練的mAP高2.49%,這就說明了改進(jìn)模型及其訓(xùn)練方法在檢測精度上達(dá)到了較好的效果,進(jìn)一步證明了改進(jìn)模型的可行性。改進(jìn)模型檢測速度略低,這是因為改進(jìn)模型擴(kuò)張了特征提取和檢測的尺度,從而導(dǎo)致計算量增加。

表1 不同模型的AP對比Table 1 Comparison of AP value under different models

表2 不同模型的mAP與FPS對比Table 2 Comparison of mAP and FPS valueunder different models

圖9 近似小缺陷檢測效果對比Fig.9 Comparison of approximate small defect detection effect

圖10 小缺陷檢測效果對比Fig.10 Comparison of dirty spot defect detection effect

4 結(jié) 論

在物體表面缺陷檢測的任務(wù)中普遍存在小缺陷識別不清甚至檢測不出的問題。為解決這些問題,筆者提出了一種基于YOLO-v5的多尺度物體表面缺陷檢測模型。該模型不僅擴(kuò)張了原本模型的特征提取和檢測尺度,而且改進(jìn)了自適應(yīng)錨框的計算方法,很大程度上提升了網(wǎng)絡(luò)對小目標(biāo)的檢測性能。此外,筆者還引入了遷移學(xué)習(xí)以及Net2Net的訓(xùn)練思路,通過對預(yù)訓(xùn)練權(quán)重以及訓(xùn)練參數(shù)進(jìn)行知識遷移,再通過將小網(wǎng)絡(luò)遷移訓(xùn)練到大網(wǎng)絡(luò)進(jìn)行知識繼承,不僅縮短了實驗周期,而且提升了短期訓(xùn)練所得到的模型性能。實驗結(jié)果表明:筆者所提出的改進(jìn)模型對鋁型材料表面的小缺陷檢測效果以及評價指標(biāo)較好;改進(jìn)模型僅在對噴流缺陷的檢測效果上略差于改進(jìn)之前;改進(jìn)模型的檢測速度較改進(jìn)之前也沒有特別明顯的下降。因此,筆者所提出的改進(jìn)方案以及訓(xùn)練方法對小目標(biāo)檢測以及短期訓(xùn)練具有一定的借鑒意義。實驗也反映了改進(jìn)模型的不足,比如在擦花(Scratch)缺陷的檢測上AP較低,后續(xù)會進(jìn)一步優(yōu)化網(wǎng)絡(luò)模型的結(jié)構(gòu),增強(qiáng)特征的提取,加強(qiáng)模型對大面積輕度缺陷的檢測。

猜你喜歡
錨框鋁型材表面
基于YOLOv3錨框優(yōu)化的側(cè)掃聲吶圖像目標(biāo)檢測
信號處理(2022年11期)2022-12-26 13:22:06
錨框策略匹配的SSD飛機(jī)遙感圖像目標(biāo)檢測
基于SSD算法的輕量化儀器表盤檢測算法*
基于GA-RoI Transformer的遙感圖像任意方向目標(biāo)檢測
太陽表面平靜嗎
一種嵌入式半空心鋁型材分流模結(jié)構(gòu)
一種新的大方管鋁型材擠壓模結(jié)構(gòu)
一種鋁型材上模整體鑲嵌式分流模結(jié)構(gòu)
3.《黑洞表面》(英/美)等
新青年(2015年2期)2015-05-26 00:08:47
光伏鋁型材檁條機(jī)械有限元分析
太陽能(2015年6期)2015-02-28 17:09:26
顺平县| 湟源县| 金寨县| 兴安盟| 哈尔滨市| 铜山县| 桐梓县| 襄垣县| 柘荣县| 瑞丽市| 大港区| 柳州市| 长宁区| 溆浦县| 勐海县| 永仁县| 扶绥县| 蕉岭县| 会泽县| 贡觉县| 宣恩县| 娄烦县| 宜川县| 姜堰市| 卓尼县| 丹江口市| 松江区| 阿拉尔市| 嵩明县| 东乡县| 湟中县| 凌海市| 和政县| 宁武县| 南丹县| 石嘴山市| 莆田市| 巴林左旗| 灌云县| 塔城市| 齐河县|