本發(fā)明屬于圖像缺陷檢測(cè)方法,涉及記憶模塊、圖像視覺處理、計(jì)算機(jī)視覺工業(yè)缺陷檢測(cè)的。
背景技術(shù):
1、隨著工業(yè)領(lǐng)域和計(jì)算機(jī)領(lǐng)域的發(fā)展,工業(yè)領(lǐng)域的圖像檢測(cè)技術(shù)逐漸成熟。圖像缺陷檢測(cè)是指在大量的正常圖像當(dāng)中識(shí)別的圖像缺陷部位的一項(xiàng)計(jì)算機(jī)視覺任務(wù)。圖像缺陷檢測(cè)主要包括三個(gè)層次:圖像是否有缺陷、圖像的缺陷部位在哪里、圖像的缺陷大小是多少。當(dāng)前主流的圖像缺陷檢測(cè)技術(shù)包括圖像恢復(fù)和圖像重建兩類方法。圖像恢復(fù)是指在網(wǎng)絡(luò)中以噪聲為輸入對(duì)缺陷進(jìn)行模擬,將圖像缺陷檢測(cè)任務(wù)轉(zhuǎn)化為圖像去噪任務(wù),以圖像去噪為目標(biāo)完成圖像缺陷檢測(cè),但是近年來(lái)研究表明噪聲對(duì)缺陷的模擬能力是有限的,因此圖像恢復(fù)的方法限制了其進(jìn)一步發(fā)展?;趫D像重建的方法以學(xué)習(xí)正常圖像的行為模式為訓(xùn)練目標(biāo),避免模型被異常信息干擾,從而在圖像缺陷檢測(cè)時(shí)可以保證即使輸入了缺陷圖像,仍然可以將其重建為正常圖像,在輸入圖像與輸出圖像之間的像素進(jìn)行判別,從而判斷圖像是否含有缺陷,如果重建效果好,甚至可以判斷圖像缺陷的部位和大小,完成圖像缺陷檢測(cè)的多級(jí)任務(wù)。
2、然而,當(dāng)前基于重建圖像生成的方法面臨兩大問題:一是異常信息容易流入圖像的特征空間,導(dǎo)致缺陷圖像難以被正常性恢復(fù)。pidhorskyi、perera等人針對(duì)潛在空間進(jìn)行約束,試圖從潛在空間中抑制異常信息的表達(dá),然而自編碼器強(qiáng)大的泛化能力導(dǎo)致嚴(yán)格的空間約束難以實(shí)現(xiàn)。隨后,memoryae提出了記憶機(jī)制,嘗試憑借建立內(nèi)存池對(duì)圖像特征進(jìn)行重組,此類方法將記憶機(jī)制融合到異常檢測(cè)中,在特征映射初期對(duì)特征加以限制。二是圖像塊內(nèi)特征和塊間關(guān)系丟失。為此,ganomaly嘗試對(duì)重建圖像進(jìn)行編碼,實(shí)現(xiàn)特征輔助圖像重建。zhou等人引入預(yù)訓(xùn)練的模塊加強(qiáng)了輸入數(shù)據(jù)和圖像的結(jié)構(gòu)特征關(guān)聯(lián),試圖捕獲圖像的結(jié)構(gòu)信息。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是為了解決在基于重建圖像生成任務(wù)中面臨的異常信息容易流入圖像的特征空間,導(dǎo)致缺陷圖像難以被正常性恢復(fù)和圖像塊內(nèi)特征和塊間關(guān)系丟失的問題。通過(guò)解決上述兩個(gè)問題,以實(shí)現(xiàn)正常信息的高效表達(dá)和圖像塊內(nèi)信息與塊間關(guān)系的連接,從而增強(qiáng)重建圖像的重建效果。
2、本發(fā)明為解決上述技術(shù)問題采取的技術(shù)方案是:
3、s1.構(gòu)建記憶樹結(jié)構(gòu)編碼網(wǎng)絡(luò),用于圖像的編碼表示和潛在向量生成;
4、s2.構(gòu)建潛在向量解碼網(wǎng)絡(luò),用于潛在向量解碼、重建過(guò)程圖像信息收集和重建圖像生成;
5、s3.構(gòu)建特征重建網(wǎng)絡(luò),用于重建圖像的塊內(nèi)和塊間信息融合;
6、s4.結(jié)合s1中的記憶樹結(jié)構(gòu)編碼網(wǎng)絡(luò)、s2中的潛在向量解碼網(wǎng)絡(luò)和s3中的特征重建網(wǎng)絡(luò)構(gòu)建基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法架構(gòu);
7、s5.基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法架構(gòu)的訓(xùn)練和缺陷圖像測(cè)試。
8、1.根據(jù)權(quán)利要求1所述的基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法,其特征在于,所述s1的具體過(guò)程為:
9、記憶樹結(jié)構(gòu)編碼網(wǎng)絡(luò)由四層卷積塊組合的結(jié)構(gòu)對(duì)輸入圖像進(jìn)行初步壓縮。通過(guò)卷積和leakyrelu激活函數(shù)的組合,將通道數(shù)為3的輸入圖像壓縮為輸入圖像的初步壓縮表示,其特征維度為h×w×c,該表示被記作q。在記憶樹結(jié)構(gòu)中,包含了po個(gè)記憶池,每個(gè)記憶池中設(shè)置it個(gè)記憶項(xiàng)。通過(guò)q對(duì)記憶池中的記憶項(xiàng)的進(jìn)行樹型結(jié)構(gòu)的讀取,會(huì)生成相應(yīng)記憶池的后置壓縮表示,同時(shí)在每次讀取完成后記憶池都會(huì)根據(jù)上一個(gè)查詢進(jìn)行更新。由于設(shè)置了po個(gè)記憶池,因此會(huì)產(chǎn)生po個(gè)以q為根結(jié)點(diǎn)的后置壓縮表示,記憶樹的展開方式如下所示,首先是以q為讀取單位,經(jīng)過(guò)記憶池mp1和mp2讀取得到記憶樹中高度為2的和
10、
11、隨后,和這兩個(gè)分支節(jié)點(diǎn)分別作為讀取單位,經(jīng)過(guò)相應(yīng)的記憶池分別讀取記憶樹結(jié)構(gòu)中高度為3的兩個(gè)后置表示:
12、
13、然后,作為讀取單位,經(jīng)過(guò)四個(gè)不同的記憶池查詢記憶樹結(jié)構(gòu)中末端的記憶葉子節(jié)點(diǎn):
14、
15、由于po個(gè)記憶池的讀取方式是一致的,只是輸入有所不同,因此下面以q為例詳細(xì)介紹記憶樹結(jié)構(gòu)中的讀取方式和更新方式。
16、讀取:在讀取之前,首先要對(duì)q沿著通道方向進(jìn)行通道分離,使其從原本尺寸h×w×c的變?yōu)閗=h×w個(gè)c維向量,每個(gè)向量記為queryk。讀取過(guò)程中,q中的每個(gè)queryk依次讀取記憶池mp1中的it個(gè)記憶項(xiàng)items。通過(guò)q與items的相關(guān)性計(jì)算獲得尺寸為it×k的相關(guān)性圖,隨后應(yīng)用softmax函數(shù)來(lái)將相關(guān)性數(shù)值轉(zhuǎn)化成匹配概率。
17、
18、隨后采用匹配概率作為權(quán)重系數(shù)對(duì)q進(jìn)行重新表示,具體而言其每個(gè)向量被轉(zhuǎn)換為:
19、
20、經(jīng)過(guò)公式(12),每個(gè)queryk都被記憶池mp1中的it個(gè)記憶項(xiàng)items進(jìn)行重新的表示,從而完成了q的讀取操作。
21、更新:根據(jù)softmax計(jì)算得到的匹配概率,可以衡量queryk與所有記憶項(xiàng)的相關(guān)程度,根據(jù)相關(guān)程度可以對(duì)其進(jìn)行排序,建立索引index來(lái)進(jìn)行指示。隨后挑選與每個(gè)記憶項(xiàng)最接近的queryk對(duì)每個(gè)記憶項(xiàng)進(jìn)行更新。在更新操作中,繼續(xù)沿用之前的尺寸為it×k的相關(guān)性圖,對(duì)其水平方向進(jìn)行歸一化操作。
22、
23、最后將初步壓縮表示q與po個(gè)后置壓縮表示通過(guò)卷積進(jìn)行融合,融合結(jié)果為維度為100的潛在向量z,即完成輸入圖像的記憶樹結(jié)構(gòu)編碼。
24、2.根據(jù)權(quán)利要求1所述的基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法,其特征在于,所述s2的具體過(guò)程為:
25、構(gòu)建了潛在向量解碼網(wǎng)絡(luò),用于對(duì)記憶樹結(jié)構(gòu)編碼器壓縮的潛在向量進(jìn)行解碼成重建圖像,同時(shí)收集向量解碼過(guò)程的重建信息用于鑒別器的鑒別。
26、首先將潛在向量z輸入到潛在向量解碼網(wǎng)絡(luò),經(jīng)過(guò)四塊反卷積堆疊的上采樣結(jié)構(gòu)將潛在向量z解碼為重建圖像。在解碼過(guò)程中,解碼網(wǎng)絡(luò)會(huì)在反卷積堆疊塊中分別產(chǎn)生256×4×4、128×8×8,64×16×16的解碼過(guò)程特征,分別記為decoder256,decoder128,decoder64。
27、decoder256=convtrans(bn(relu(z)))????(16)
28、decoder128=convtrans(bn(relu(decoder256)))????(17)
29、decoder64=convtrans(bn(relu(decoder128)))????(18)
30、隨后,decoder64被送入第四個(gè)反卷積塊,在該處潛在向量z最終被重建為重建圖像。
31、recons=convtrans(tanh(decoder64))????(19)
32、在潛在向量解碼網(wǎng)絡(luò)中,decoder256,decoder128,decoder64會(huì)被收集起來(lái)單獨(dú)存儲(chǔ)完成特征對(duì)齊,將解碼特征統(tǒng)一調(diào)整為64×16×16的尺寸,原本該尺寸的decoder64不做調(diào)整。
33、decoder256to64=convtrans(upsample(decoder256))????(20)
34、decoder128to64=convtrans(decoder128)????(21)
35、將特征對(duì)齊以后,decoder64、decoder256to64、decoder128to64與鑒別器的相應(yīng)位置沿著通道方向進(jìn)行拼接,融合到鑒別器網(wǎng)絡(luò)中,使得鑒別器學(xué)習(xí)相應(yīng)的重建過(guò)程信息。
36、3.根據(jù)權(quán)利要求1所述的基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法,其特征在于,所述s3的具體過(guò)程為:
37、在搭建s1記憶樹結(jié)構(gòu)編碼網(wǎng)絡(luò)和s2潛在向量解碼網(wǎng)絡(luò)后,構(gòu)建特征重建網(wǎng)絡(luò)用于重建圖像的特征提取,參照潛在向量維度,融合重建圖像的塊內(nèi)和塊間信息,對(duì)重建圖像進(jìn)行編碼表示。
38、特征重建網(wǎng)絡(luò)采用雙路特征提取方式對(duì)重建圖像recons進(jìn)行特征提取,一路特征是采用傳統(tǒng)的卷積塊,將重建圖像recons分割成3×3的圖像塊,對(duì)圖像塊內(nèi)的信息進(jìn)行建模,記作fin_blo。另一路特征是混合卷積塊mcb提取的塊間信息特征,記作fout_blo。混合卷積塊中主要包含三層特征用來(lái)完成對(duì)重建圖像recons的建模:池化收放信息fpool用來(lái)減少重建圖像圖像塊的無(wú)效信息,1×1的卷積信息fconv用來(lái)融合重建圖像不同通道間的信息,3×3的空洞卷積信息fdilation用來(lái)建模不同圖像塊之間的關(guān)系信息。最終,混合卷積塊的三層特征通過(guò)卷積融合,融合方式如下:
39、fout_blo=conv1×1conv3×3(concat(fpool,fconv,fdilation))????(22)
40、當(dāng)傳統(tǒng)卷積塊的塊內(nèi)特征和混合卷積塊的塊間特征提取完成后,將雙路特征進(jìn)行通道融合,生成特征重建結(jié)果
41、4.根據(jù)權(quán)利要求1所述的基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法,其特征在于,所述s4的具體過(guò)程為:
42、s1,s2,s3分別構(gòu)建了記憶樹結(jié)構(gòu)編碼網(wǎng)絡(luò)、潛在向量解碼網(wǎng)絡(luò)和特征重建網(wǎng)絡(luò)。結(jié)合這三個(gè)模塊網(wǎng)絡(luò),構(gòu)建了基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法。
43、本發(fā)明以gan為基本架構(gòu),記憶樹結(jié)構(gòu)編碼網(wǎng)絡(luò)、潛在向量解碼網(wǎng)絡(luò)共同構(gòu)建生成器網(wǎng)絡(luò),用于完成輸入圖像的壓縮編碼和壓縮解碼,恢復(fù)輸入圖像的正常形態(tài)。特征重建網(wǎng)絡(luò)用于重建壓縮特征,作為生成器的特征補(bǔ)充。同時(shí)構(gòu)建了一個(gè)卷積結(jié)構(gòu)的鑒別器用于完成輸入圖像和記憶樹結(jié)構(gòu)生成網(wǎng)絡(luò)的生成模式判別,促進(jìn)網(wǎng)絡(luò)訓(xùn)練。
44、具體而言基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法的訓(xùn)練主要包括三個(gè)損失函數(shù)。
45、特征匹配損失:完成生成器g與鑒別器d的對(duì)抗訓(xùn)練,其中x是輸入圖像,f(·)將輸入圖像x映射為鑒別器的中間特征表示。
46、
47、生成器重建圖像損失:捕獲輸入圖像的上下文信息,完成輸入圖像的重建。
48、
49、特征重建損失:捕獲輸入圖像的壓縮特征z與重建圖像的壓縮特征的上下文信息,利用特征距離對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化訓(xùn)練。
50、
51、最終定義基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法的訓(xùn)練目標(biāo),每個(gè)損失函數(shù)分別由調(diào)控因子w進(jìn)行調(diào)控:
52、l=wadvladv+wg-reconlg-recon+wf-reconlf-recon????(26)
53、5.根據(jù)權(quán)利要求1所述的基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法,其特征在于,所述s5的具體過(guò)程為:
54、基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法的訓(xùn)練方法如下:
55、該方法是圖像缺陷檢測(cè)中的無(wú)監(jiān)督檢測(cè)方法,在訓(xùn)練階段只輸入正常的圖像。輸入圖像的維度設(shè)置為32×32。輸入圖像經(jīng)過(guò)記憶樹結(jié)構(gòu)的編碼器網(wǎng)絡(luò)會(huì)被壓縮為維度為100的潛在向量,隨后潛在向量被輸入到潛在向量解碼網(wǎng)絡(luò)進(jìn)行解碼,使得維度為100的潛在向量恢復(fù)為32×32的重建圖像。32×32的重建圖像會(huì)輸入到特征重建網(wǎng)絡(luò)進(jìn)行再壓縮,再壓縮以后壓縮的維度也是100維。在訓(xùn)練過(guò)程中,輸入圖像和重建圖像會(huì)交替被用于鑒別器的鑒別,從而促進(jìn)生成器生成更加逼真的圖像。訓(xùn)練中,采用pytorch?1.0進(jìn)行網(wǎng)絡(luò)的搭建和實(shí)現(xiàn),采用adam優(yōu)化器來(lái)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。訓(xùn)練過(guò)程中的主要參數(shù)設(shè)置如下:
56、學(xué)習(xí)率設(shè)置為0.002;訓(xùn)練批次設(shè)置為15;潛在向量維度設(shè)置為100;訓(xùn)練批量大小設(shè)置為64;記憶池個(gè)數(shù)設(shè)置為10;記憶池中的記憶項(xiàng)設(shè)置為10;訓(xùn)練目標(biāo)的權(quán)重系數(shù)以wg-recon作為主要優(yōu)化目標(biāo),設(shè)置為50,其他系數(shù)均設(shè)置為1。
57、與現(xiàn)有的技術(shù)相比,本發(fā)明的有益效果是:
58、1.本發(fā)明提出了一種新的基于記憶樹結(jié)構(gòu)的圖像缺陷檢測(cè)方法,該網(wǎng)絡(luò)采用記憶樹結(jié)構(gòu),利用多層次的記憶壓縮特征來(lái)對(duì)輸入信息進(jìn)行融合,實(shí)現(xiàn)了多級(jí)原型模式對(duì)圖像進(jìn)行重新表示,限制異常信息的流入。
59、2.本發(fā)明提出了一種潛在向量解碼網(wǎng)絡(luò)和特征重建網(wǎng)絡(luò),前者通過(guò)對(duì)潛在向量解碼并收集圖像解碼過(guò)程的層次信息來(lái)增強(qiáng)鑒別器的鑒別能力;后者通過(guò)融合重建圖像的塊內(nèi)信息和塊間信息來(lái)輔助圖像重建。