在工業(yè)生產(chǎn)制造中,由于生產(chǎn)過程是一個多因素耦合的復雜過程,生產(chǎn)過程中的任何異常都會導致產(chǎn)品缺陷產(chǎn)生,及時識別異常產(chǎn)品的缺陷模式是提高生產(chǎn)質量和生產(chǎn)效率的有效途徑,所以缺陷檢測具有十分重要的研究意義。
早期的產(chǎn)品缺陷模式識別主要是通過機器學習方法進行的,如支持向量機、反向傳播網(wǎng)絡等。這些方法與用肉眼直接對產(chǎn)品缺陷進行識別相比,大大降低了工作量。但是這些早期方法存在以下不足:識別準確率低且需要大量的標簽數(shù)據(jù)對模型進行訓練。近年來隨著深度學習的發(fā)展,大量基于卷積神經(jīng)網(wǎng)絡的算法在視覺任務中大放異彩。由于卷積神經(jīng)網(wǎng)絡具有非常強大的特征提取能力,卷積神經(jīng)網(wǎng)絡在缺陷檢測任務中得到了廣泛的應用。
與傳統(tǒng)的機器學習方法相比,基于卷積神經(jīng)網(wǎng)絡的深度學習方法在缺陷識別領域具有更高的識別準確率和工作效率。但是這種方法和機器學習方法具有同樣的缺點,首先是模型訓練需要大量的標簽數(shù)據(jù),而具有缺陷模式標簽的圖像是不容易獲取的,因為獲取帶有產(chǎn)品缺陷模式標簽的圖像需要人工監(jiān)督,即需要大量有經(jīng)驗的專業(yè)人員進行人工標注,這是非常昂貴且耗時的。
此外在某些高度自動化的生產(chǎn)場景中,產(chǎn)品的良率特別高,收集缺陷樣本非常耗時,而當前的用于缺陷檢測的深度學習方法大多是基于大量缺陷樣本建立模型,缺陷樣本的缺乏導致模型難以上線。針對某些行業(yè)比如汽車行業(yè)的多型號小批量生產(chǎn)場景(每種型號產(chǎn)品只生產(chǎn)幾天),在完成缺陷樣本收集前某種型號產(chǎn)品已經(jīng)不再生產(chǎn)了,這種場景下大量的缺陷樣本收集是不可能的。此外,由于缺陷是由生產(chǎn)過程中的非受控因素產(chǎn)生的,缺陷的形態(tài)是多種多樣的,各種形態(tài)的樣本很難收集完整,這也限制了深度學習在工業(yè)檢測領域的應用。
01 小樣本檢測算法
為了拓展深度學習在工業(yè)檢測領域的應用范圍及提升易用性,小樣本檢測算法的研究成為必然。
解決工業(yè)檢測小樣本問題有兩種路徑,第一種是工程路徑,第二種是算法路徑。其中工程路徑常見有兩種方法,第一種是基于真實產(chǎn)品手動制造缺陷,第二種是基于真實圖像手動仿真缺陷。
這兩種方法的優(yōu)勢在于操作簡單,產(chǎn)生的缺陷也與真實缺陷比較接近,但劣勢也比較明顯;谡鎸嵁a(chǎn)品手動制造缺陷會對產(chǎn)品造成不可逆的破壞,對于高價值產(chǎn)品破壞成本較高,而且,因為缺陷均由非受控因素產(chǎn)生,手動制造的缺陷不一定與實際缺陷情況完成吻合,會存在一些差異。而基于圖像手動仿真缺陷則存在對操作人員要求高,產(chǎn)生速度慢的問題。
因此,使用工程路徑解決小樣本問題可以在一些比較緊急的情況下使用,比如項目初期需要緊急上線時。
02 算法路徑基本思路
從算法路徑解決小樣本問題,基本的思路有兩種,第一種是增加樣本,第二種是減少算法對樣本的依賴。
1、增加樣本
基于第一種思路的算法研究方向有數(shù)據(jù)增廣和缺陷生成,其中數(shù)據(jù)增廣在深度網(wǎng)絡訓練時為了防止過擬合已成為一個標準手段,站在工業(yè)檢測的視角上看,數(shù)據(jù)增廣是一種性價比比較高的擴增樣本的手段,但因為目前數(shù)據(jù)增廣的方法大多是基于一些傳統(tǒng)圖像處理方法,所以能仿真缺陷的位置和一些簡單紋理變化,但無法仿真缺陷的形狀和復雜紋理,所以數(shù)據(jù)增廣一般作為一個基礎手段,可以解決一部分小樣本問題,對于一些簡單場景是有幫助的。而要解決更復雜場景的樣本生成問題,需要用缺陷生成算法。
我們將缺陷生成算法的研究分為三個階段:第一階段是單一產(chǎn)品單一型號缺陷生成;第二階段是單一產(chǎn)品多型號缺陷生成;第三階段是實現(xiàn)跨產(chǎn)品缺陷的生成。
當前缺陷生成算法大致可以分為兩種:一種是自動生成算法,整個生成過程完全不需要人工干預,第二種是半自動生成算法,需要一些簡單的人工交互。
自動生成算法的典型算法有DCGAN[1] 、WGAN[2] ,輸入一張缺陷圖像可以直接生成多張真實的缺陷圖像。半自動生成算法的典型算法有CGAN[3] 、CVAE[4] 、Pix2Pix[5] ,需要人工交互給定缺陷生成的類別或形狀,然后根據(jù)給定信息生成指定類型缺陷。但當前無論是自動生成算法還是半自動生成算法,對訓練樣本的需求量雖然比監(jiān)督算法少,但還是有一定要求,而且目前還沒有一種能在所有數(shù)據(jù)上通用的解決方案,當前仍需要針對不同的場景制定不同算法版本。通用的缺陷生成算法會這個研究方向下一步的重點。
2、減少算法對樣本的依賴
算法路徑解決小樣本問題的第二個思路是減少算法對樣本的依賴,基于這個思路衍生出兩條算法路線:
第一條路線是完全不需要缺陷樣本的非監(jiān)督學習算法,基于非監(jiān)督算法訓練模型時僅需要OK圖像參與訓練即可。
第二條路線仍基于有監(jiān)督算法,對缺陷樣本的需求量大大降低。
非監(jiān)督算法實現(xiàn)的思路大體上分為兩種:
一種是基于生成模型,基本思路是訓練一個只能生成OK圖像的生成網(wǎng)絡,推理時針對輸入的NG圖像,找到一個與NG圖像最接近的OK圖像,然后求兩張圖的差異,根據(jù)差異大小判斷是否為NG,典型算法有AE,VAE[6] ,Ano-GAN[7] 等。
另一種思路是基于特征表示,基本思路是找個一個較好的特征表示,將OK圖和NG圖分別映射到高維特征空間,OK圖對應特征點的類內(nèi)距離很小,推理時一張圖對應特征點與OK圖特征簇的中心距離很遠就可以判定為NG,典型算法有SVDD[8] 、OCSVM、DeepSVDD[9] 等。
基于有監(jiān)督算法減少樣本依賴的思路分為兩種:
一種是對輸入數(shù)據(jù)進行歸一化,降低不同缺陷樣本之間的差異,歸一化算法基于傳統(tǒng)圖像處理算法實現(xiàn),需要針對不同場景做不同的算法設計,很難有通用性,因此僅作為一些臨時處理手段。
另一種思路是基于遷移學習,典型的算法研發(fā)方向是域適應(Domain Adaption,DA)和域泛化(Domain Generation,DG)。
DA處理的問題要求可以獲取一部分目標域的圖像,且不能實現(xiàn)跨類別的遷移,因此適合用于處理跨產(chǎn)品型號的問題。DG在DA的基礎上,放寬了對目標域數(shù)據(jù)的要求,可以不需要目標域數(shù)據(jù),且可以實現(xiàn)跨類別遷移,因此可以實現(xiàn)跨產(chǎn)品、跨型號、跨缺陷類別的遷移。
DA算法當前研究的基本思路有三種,一是基于差異度量,核心思路是找一個差異度量函數(shù),讓源域與目標域樣本的特征在這個度量函數(shù)下最小,代表算法為MMD[10] ;二是基于對抗,核心思路是通過構造對抗網(wǎng)絡,訓練一個分類器讓判別器無法區(qū)分數(shù)據(jù)是來自源域還是目標域,這樣就實現(xiàn)了源域和目標域的融合,代表算法為Dom Confusion[11] ;三是基于重構,核心思路是將構造源域和目標域的通用特征,僅利用通用特征去執(zhí)行相應的任務,代表算法為Domain Separation Networks[12] 。
DG算法當前的研究思路也分為三種,第一種是推理時選取一個分布最近的源域的模型直接使用,第二種是通過拆解域相關與域無關的組件并進行組合來實現(xiàn)對目標域數(shù)據(jù)的處理,第三種是訓練得到域不變的特征[13] 。
03 總結
當前基于有監(jiān)督的缺陷檢測算法,在數(shù)據(jù)量充足的場景下已經(jīng)逐步成功落地,但工業(yè)場景具有一定的離散性,大部分應用場景均為小樣本檢測場景,小樣本問題的解決有助于將AI技術應用于千千萬萬工廠。
雖然當前針對小樣本問題有一些初步的解決思路,但該問題的徹底解決需要更深入的研究及更大的投入。阿丘科技將AI For Every Factory作為使命,會堅定不移地持續(xù)研究小樣本問題,也希望可以和有志于研究工業(yè)AI檢測問題的工業(yè)人一起交流進步,推動小樣本問題的徹底解決。