本發(fā)明涉及持續(xù)工業(yè)異常檢測,尤其是一種基于持續(xù)擴(kuò)散模型的異常檢測方法。
背景技術(shù):
::1、異常檢測(anomaly?detection,?ad)在醫(yī)療和工業(yè)領(lǐng)域都有廣泛的應(yīng)用。傳統(tǒng)方法通常采用一對一的范式,為特定類別或一種工業(yè)產(chǎn)品訓(xùn)練一個定制模型。一對一模式嚴(yán)重限制了模型的泛化能力。相反,一對多的范式提出,訓(xùn)練一個單一模型可以在所有類別中執(zhí)行異常檢測。然而,在現(xiàn)實場景中,模式增量是不可預(yù)測的,需要模型具備持續(xù)學(xué)習(xí)的能力,稱之為持續(xù)異常檢測范式。2、擴(kuò)散模型(dif?fusion?model,?dm)在異常檢測中被廣泛使用。當(dāng)前基于dm的方法通過圖像到圖像機制生成條件于異常圖像的正常圖像。擴(kuò)散模型的輸入與輸出之間的差異被用作異常檢測的分?jǐn)?shù),這需要擴(kuò)散模型重建輸入圖像中的異常區(qū)域。然而,圖像到圖像的擴(kuò)散模型在持續(xù)生成多樣化樣本時會遭受“災(zāi)難性遺忘”。以controlnet?為例,其在基任務(wù)上的性能(mvtec中的10個類別)非常出色,但隨著模型在新任務(wù)(新類別)上繼續(xù)訓(xùn)練,性能嚴(yán)重下降。此外,經(jīng)過最新類別訓(xùn)練的controlnet會遭受“忠實性幻覺”。具體來說,模型的輸出變得與之前訓(xùn)練的樣本不一致,導(dǎo)致異常檢測失敗。此外,經(jīng)典的基于擴(kuò)散模型(diffusion?model,dm)的異常檢測方法傾向于“過度擬合”正常樣本,而不是專注于“重建”異常區(qū)域,這削弱了圖像到圖像條件機制的作用,并加劇了連續(xù)學(xué)習(xí)中的幻覺問題。技術(shù)實現(xiàn)思路1、本發(fā)明的目的是提出一種基于持續(xù)擴(kuò)散模型的異常檢測方法,該方法將新任務(wù)的更新梯度投影到與先前任務(wù)的重要表示正交的子空間中,從而消除更新梯度對先前特征空間的影響。由于列基矩陣是通過中間特征展開的矩陣進(jìn)行奇異值分解(svd)計算得出的,因此梯度投影操作需要大量的內(nèi)存。然而,基于馬爾可夫的擴(kuò)散過程顯著增加了內(nèi)存開銷。以stable?diffusion的u-net為例,計算10張圖像的列基矩陣消耗了幾乎額外的157?gb內(nèi)存,更多的圖像需要更多的內(nèi)存。為了解決這個問題,本方法提出了基于線性傳遞性質(zhì)的迭代奇異值分解(isvd)方法。通過在線迭代操作,isvd只需要大約17?gb的內(nèi)存消耗來計算任意數(shù)量圖像的列基矩陣。2、此外,本方法提出了異常掩碼網(wǎng)絡(luò)。在使用cnn編碼輸入圖像,并將其大小與u-net的輸入匹配,本發(fā)明還設(shè)計了一個使用transformer結(jié)構(gòu)的非局部編碼器來感知全局信息。鄰居掩碼自注意力和異常掩碼損失用于屏蔽異常特征,從而保留局部編碼器輸出的正常特征,使擴(kuò)散模型更關(guān)注異常區(qū)域的重建,而不是過度擬合生成正常圖像。3、本發(fā)明從兩個方面緩解現(xiàn)有技術(shù)問題:1)使用穩(wěn)定的參數(shù)更新策略,2)加強圖像到圖像生成的條件機制。4、實現(xiàn)本發(fā)明目的的具體技術(shù)方案是:5、一種基于持續(xù)擴(kuò)散模型的異常檢測方法,該方法利用異常掩碼網(wǎng)絡(luò)來控制擴(kuò)散模型對異常區(qū)域進(jìn)行重構(gòu),得到的重構(gòu)后的圖像與原始圖像做像素級距離度量來感知異常區(qū)域,同時通過梯度投影策略來緩解擴(kuò)散模型在持續(xù)異常檢測中的災(zāi)難性遺忘,最后提出了迭代奇異值分解技術(shù)節(jié)省了梯度投影90%以上的內(nèi)存消耗,使網(wǎng)絡(luò)模型具有更好適應(yīng)持續(xù)異常檢測任務(wù),所述方法包括下述具體步驟:6、步驟1:數(shù)據(jù)集的準(zhǔn)備與預(yù)處理7、1-1:收集待檢測物體的圖片,包含不同種類的圖像,將其作為數(shù)據(jù)集中的訓(xùn)練集和測試集,所述訓(xùn)練集使用的圖片為正常圖像,即不包含任何異常;所述測試集使用的圖片既包含正常圖像,也包含帶有異常的異常圖像,以及異常區(qū)域的標(biāo)注信息;共15種類別;模型的持續(xù)訓(xùn)練包含14?-?1,3??5,10?-?5和10?–?1??5四種設(shè)定,其分別代表初始訓(xùn)練14個類然后增量1個類;初始訓(xùn)練3個類然后增量4次,每次3個類;初始訓(xùn)練10個類然后增量5個類;初始訓(xùn)練10個類然后增量5次,每次1個類;8、1-2:圖像和標(biāo)簽預(yù)處理,將訓(xùn)練集和測試集中的圖像調(diào)整為256×256的大小,并將測試集的標(biāo)簽掩碼也一并調(diào)整為256×256的大小,并進(jìn)行歸一化處理;9、步驟2:視覺特征編碼處理10、2-1:在訓(xùn)練過程中對于每一批訓(xùn)練數(shù)據(jù),將訓(xùn)練圖像輸入到vae中進(jìn)行編碼,提取圖像的潛空間特征?;11、2-2:將淺空間特征添加隨機步的高斯噪音得到12、2-3:將原始圖像進(jìn)行隨機的補丁級別像素打亂,得到擾動后的圖像;13、2-4將原始圖像和擾動后的圖像輸入到異常掩碼網(wǎng)絡(luò)分別提取得到原始特征和擾動特征;14、步驟3:擴(kuò)散模型和異常掩碼網(wǎng)絡(luò)訓(xùn)練15、3-1:將隨機進(jìn)行步加噪的特征輸入到u-net,使用作為u-net的條件控制同時使用作為監(jiān)督信號進(jìn)行噪聲的預(yù)測,使u-net()來學(xué)習(xí)每個時刻的注入的噪聲,具體損失函數(shù)如下:16、17、其中表示輸入的圖像,表示擾動后的圖像,表示vae編碼后的潛空間特征,表示步加噪后的潛空間特征,表示標(biāo)準(zhǔn)正態(tài)分布,表示u-net,表示異常掩碼網(wǎng)絡(luò)。18、3-2:通過均方誤差損失來對齊原始特征和擾動特征來訓(xùn)練異常掩碼網(wǎng)絡(luò),從而使模型能夠?qū)W習(xí)屏蔽掉存在擾動的異常區(qū)域,具體的損失函數(shù)如下:19、20、其中擾動后的圖像特征,是原始的圖像特征。21、步驟4:異常檢測與定位預(yù)測22、4-1:將待檢測的物體圖像輸入到vae編碼器獲得潛空間特征;23、4-2:然后通過t步的加噪處理得到加噪后的特征;24、4-3:將待檢測物體圖像輸入到訓(xùn)練好異常掩碼網(wǎng)絡(luò),提取得到特征;25、4-4:使用特征作為條件,使用訓(xùn)練好的u-net來預(yù)測的噪音,并通過t步預(yù)測最終得到重構(gòu)后的潛空間特征;26、4-5:最后將通過vae解碼器重構(gòu)為無異常圖像;27、4-6:將原始圖像和重構(gòu)后的圖像同時輸入到預(yù)訓(xùn)練的resnet50網(wǎng)絡(luò),提取特征圖,分別記為和;28、4-7:計算特征圖和每個位置特征之間的歐式距離作為該位置的像素級異常分?jǐn)?shù),即距離越大代表異常程度越大,此外將每張圖像所有位置中異常分?jǐn)?shù)最大值作為圖像級異常分?jǐn)?shù);29、30、其中表示在位置的異常分?jǐn)?shù),分別表示原始圖像和擴(kuò)散模型重構(gòu)圖像的特征圖。31、步驟5:持續(xù)學(xué)習(xí)32、5-1:根據(jù)步驟1的設(shè)定劃分持續(xù)學(xué)習(xí)的初始訓(xùn)練集和增量訓(xùn)練集,并完成預(yù)處理操作。33、5-2:按照步驟3和步驟4對u-net和異常掩碼網(wǎng)絡(luò)在訓(xùn)練并測試完之后,對當(dāng)前訓(xùn)練集提取整體的中間層特征保留;34、5-3:將所有的中間層特征展開為矩陣形式,并在列方向進(jìn)行分塊劃分;35、5-4:通過提出的迭代奇異值分解技術(shù),首先對第一塊子矩陣進(jìn)行奇異值分解得到酉矩陣,保留特征值最大的前97%特征向量與下一個子矩陣融合,然后依次迭代進(jìn)行奇異值分解,最終得到中間層特征的列基矩陣;36、5-5:在新的增量訓(xùn)練集訓(xùn)練時,將訓(xùn)練梯度投投影到矩陣的正交方向,從而實現(xiàn)新任務(wù)的訓(xùn)練不會影響到舊有的特征空間。37、38、其中,表示第層原始的訓(xùn)練梯度,表示第層中間特征的列基矩陣,表示第層投影完之后的訓(xùn)練梯度。39、5-6:回到步驟5-2直到所有增量訓(xùn)練集訓(xùn)練完畢。40、本發(fā)明與現(xiàn)有技術(shù)相比具有更好的持續(xù)學(xué)習(xí)能力,可以更好的適應(yīng)檢測物體類別的變化,并且防止遺忘問題的發(fā)生,大大增強了模型在動態(tài)變化的工業(yè)場景下的魯邦性,進(jìn)一步賦能工業(yè)智能質(zhì)檢。當(dāng)前第1頁12當(dāng)前第1頁12