發布日期:2022-07-15 點擊率:23
與大家繼續探討小樣本問題
歡迎掃描文末二維碼預約直播圍觀~
在工業生產制造中,由于生產過程是一個多因素耦合的復雜過程,生產過程中的任何異常都會導致產品缺陷產生,及時識別異常產品的缺陷模式是提高生產質量和生產效率的有效途徑,所以缺陷檢測具有十分重要的研究意義。
早期的產品缺陷模式識別主要是通過機器學習方法進行的,如支持向量機、反向傳播網絡等。這些方法與用肉眼直接對產品缺陷進行識別相比,大大降低了工作量。但是這些早期方法存在以下不足:識別準確率低且需要大量的標簽數據對模型進行訓練。近年來隨著深度學習的發展,大量基于卷積神經網絡的算法在視覺任務中大放異彩。由于卷積神經網絡具有非常強大的特征提取能力,卷積神經網絡在缺陷檢測任務中得到了廣泛的應用。
與傳統的機器學習方法相比,基于卷積神經網絡的深度學習方法在缺陷識別領域具有更高的識別準確率和工作效率。但是這種方法和機器學習方法具有同樣的缺點,首先是模型訓練需要大量的標簽數據,而具有缺陷模式標簽的圖像是不容易獲取的,因為獲取帶有產品缺陷模式標簽的圖像需要人工監督,即需要大量有經驗的專業人員進行人工標注,這是非常昂貴且耗時的。此外在某些高度自動化的生產場景中,產品的良率特別高,收集缺陷樣本非常耗時,而當前的用于缺陷檢測的深度學習方法大多是基于大量缺陷樣本建立模型,缺陷樣本的缺乏導致模型難以上線。針對某些行業比如汽車行業的多型號小批量生產場景(每種型號產品只生產幾天),在完成缺陷樣本收集前某種型號產品已經不再生產了,這種場景下大量的缺陷樣本收集是不可能的。此外,由于缺陷是由生產過程中的非受控因素產生的,缺陷的形態是多種多樣的,各種形態的樣本很難收集完整,這也限制了深度學習在工業檢測領域的應用。
為了拓展深度學習在工業檢測領域的應用范圍及提升易用性,小樣本檢測算法的研究成為必然。
解決工業檢測小樣本問題有兩種路徑,第一種是工程路徑,第二種是算法路徑。其中工程路徑常見有兩種方法,第一種是基于真實產品手動制造缺陷,第二種是基于真實圖像手動仿真缺陷。這兩種方法的優勢在于操作簡單,產生的缺陷也與真實缺陷比較接近,但劣勢也比較明顯。基于真實產品手動制造缺陷會對產品造成不可逆的破壞,對于高價值產品破壞成本較高,而且,因為缺陷均由非受控因素產生,手動制造的缺陷不一定與實際缺陷情況完成吻合,會存在一些差異。而基于圖像手動仿真缺陷則存在對操作人員要求高,產生速度慢的問題。因此,使用工程路徑解決小樣本問題可以在一些比較緊急的情況下使用,比如項目初期需要緊急上線時。
從算法路徑解決小樣本問題,基本的思路有兩種,第一種是增加樣本,第二種是減少算法對樣本的依賴。基于第一種思路的算法研究方向有數據增廣和缺陷生成,其中數據增廣在深度網絡訓練時為了防止過擬合已成為一個標準手段,站在工業檢測的視角上看,數據增廣是一種性價比比較高的擴增樣本的手段,但因為目前數據增廣的方法大多是基于一些傳統圖像處理方法,所以能仿真缺陷的位置和一些簡單紋理變化,但無法仿真缺陷的形狀和復雜紋理,所以數據增廣一般作為一個基礎手段,可以解決一部分小樣本問題,對于一些簡單場景是有幫助的。而要解決更復雜場景的樣本生成問題,需要用缺陷生成算法。我們將缺陷生成算法的研究分為三個階段,第一階段是單一產品單一型號缺陷生成,第二階段是單一產品多型號缺陷生成,第三階段是實現跨產品缺陷的生成。當前缺陷生成算法大致可以分為兩種,一種是自動生成算法,整個生成過程完全不需要人工干預,第二種是半自動生成算法,需要一些簡單的人工交互。自動生成算法的典型算法有DCGAN[1] 、WGAN[2] ,輸入一張缺陷圖像可以直接生成多張真實的缺陷圖像。半自動生成算法的典型算法有CGAN[3] 、CVAE[4] 、Pix2Pix[5] ,需要人工交互給定缺陷生成的類別或形狀,然后根據給定信息生成指定類型缺陷。但當前無論是自動生成算法還是半自動生成算法,對訓練樣本的需求量雖然比監督算法少,但還是有一定要求,而且目前還沒有一種能在所有數據上通用的解決方案,當前仍需要針對不同的場景制定不同算法版本。通用的缺陷生成算法是這個研究方向下一步的重點。
算法路徑解決小樣本問題的第二個思路是減少算法對樣本的依賴,基于這個思路衍生出兩條算法路線,第一條路線是完全不需要缺陷樣本的非監督學習算法,基于非監督算法訓練模型時僅需要OK圖像參與訓練即可。第二條路線仍基于有監督算法,對缺陷樣本的需求量大大降低。
非監督算法實現的思路大體上分為兩種,一種是基于生成模型,基本思路是訓練一個只能生成OK圖像的生成網絡,推理時針對輸入的NG圖像,找到一個與NG圖像最接近的OK圖像,然后求兩張圖的差異,根據差異大小判斷是否為NG,典型算法有AE,VAE[6] ,Ano-GAN[7] 等。另一種思路是基于特征表示,基本思路是找個一個較好的特征表示,將OK圖和NG圖分別映射到高維特征空間,OK圖對應特征點的類內距離很小,推理時一張圖對應特征點與OK圖特征簇的中心距離很遠就可以判定為NG,典型算法有SVDD[8] 、OCSVM、DeepSVDD[9] 等。
基于有監督算法減少樣本依賴的思路分為兩種,一種是對輸入數據進行歸一化,降低不同缺陷樣本之間的差異,歸一化算法基于傳統圖像處理算法實現,需要針對不同場景做不同的算法設計,很難有通用性,因此僅作為一些臨時處理手段。另一種思路是基于遷移學習,典型的算法研發方向是域適應(Domain Adaption)和域泛化(Domain Generation)。DA處理的問題要求可以獲取一部分目標域的圖像,且不能實現跨類別的遷移,因此適合用于處理跨產品型號的問題。DG在DA的基礎上,放寬了對目標域數據的要求,可以不需要目標域數據,且可以實現跨類別遷移,因此可以實現跨產品、跨型號、跨缺陷類別的遷移。DA算法當前研究的基本思路有三種,一是基于差異度量,核心思路是找一個差異度量函數,讓源域與目標域樣本的特征在這個度量函數下最小,代表算法為MMD[10] ;二是基于對抗,核心思路是通過構造對抗網絡,訓練一個分類器讓判別器無法區分數據是來自源域還是目標域,這樣就實現了源域和目標域的融合,代表算法為Dom Confusion [11] ;三是基于重構,核心思路是將構造源域和目標域的通用特征,僅利用通用特征去執行相應的任務,代表算法為Domain Separation Networks[12] 。DG算法當前的研究思路也分為三種,第一種是推理時選取一個分布最近的源域的模型直接使用,第二種是通過拆解域相關與域無關的組件并進行組合來實現對目標域數據的處理,第三種是訓練得到域不變的特征[13] 。
當前基于有監督的缺陷檢測算法,在數據量充足的場景下已經逐步成功落地,但工業場景具有一定的離散性,大部分應用場景均為小樣本檢測場景,小樣本問題的解決有助于將AI技術應用于千千萬萬工廠。雖然當前針對小樣本問題有一些初步的解決思路,但該問題的徹底解決需要更深入的研究及更大的投入。阿丘科技將AI For Every Factory作為使命,會堅定不移地持續研究小樣本問題,也希望可以和有志于研究工業AI檢測問題的工業人一起交流進步,推動小樣本問題的徹底解決。
5月31日下午2:30-3:30
直播間在線交流
吳雨培學長在線等你哦
(微信掃一掃預約直播,有直播提醒哦)
文獻引用
[1] Radford A , Metz L , Chintala S . Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks[C]// 2015.
[2] Arjovsky M , Chintala S , Bottou L . Wasserstein GAN[J]. 2017.
[3] Mirza M , Osindero S . Conditional Generative Adversarial Nets[J]. Computer Science, 2014:2672-2680.
[4] Sohn K, Lee H, Yan X. Learning structured output representation using deep conditional generative models[J]. Advances in neural information processing systems, 2015, 28: 3483-3491.
[5] Isola P, Zhu J Y, Zhou T, et al. Image-to-image translation with conditional adversarial networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1125-1134.
[6] Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013.
[7] Schlegl T, Seeb?ck P, Waldstein S M, et al. Unsupervised anomaly detection with generative adversarial networks to guide marker discovery[C]//International conference on information processing in medical imaging. Springer, Cham, 2017: 146-157.
[8] Tax, David MJ, and Robert PW Duin. "Support vector data description." Machine learning 54.1 (2004): 45-66.
[9] Ruff, Lukas, et al. "Deep one-class classification." International conference on machine learning. PMLR, 2018.
[10] Tzeng E , Hoffman J , Zhang N , et al. Deep Domain Confusion: Maximizing for Domain Invariance[J]. Computer Science, 2014.
[11] Tzeng E , Hoffman J , Darrell T , et al. Simultaneous Deep Transfer Across Domains and Tasks[J]. 2015 IEEE International Conference on Computer Vision (ICCV), 2017.
[12] Bousmalis K, Trigeorgis G, Silberman N, et al. Domain separation networks[J]. Advances in neural information processing systems, 2016, 29: 343-351.
[13] J Wang, Lan C , Liu C , et al. Generalizing to Unseen Domains: A Survey on Domain Generalization[J]. 2021.
(文章來源:吳雨培 北京阿丘科技算法總監)