蔡劍鋒,柏俊杰,向洪成,胡 林,周濤琪,高 帥
(重慶科技學院 電氣工程學院,重慶 401331)
中國是世界上的工業大國,具有全世界最大板材消費市場,在冶金板材生產過程中,由于多方面原因導致板材表面呈現劃痕、夾雜、裂紋、邊浪等缺陷,降低后續生產中板材的質量,從而影響企業的經濟效益。
為此,國內外眾多科研機構和學者展開了對板材表面缺陷檢測的研究,魏智鋒等構建SSDMobileNet算法模型針對人造板表面粗刨花、水印、砂痕、雜物、膠斑缺陷的分類檢測,mAP達到93.76%[1]。蔡漢明等以Inception-V3模型為主的遷移學習算法實現對金屬板材凹凸表面、邊緣面等特殊部位的缺陷識別準確率達到90.6%[2]。Gao等人提出了一種利用卷積神經網絡(CNN)的半監督學習方法進行鋼表面缺陷識別,達到90.7%的精度[3]。雖然不少相關學者對表面缺陷檢測做出了研究,但很少有人針對金屬板最容易出現的表面劃痕缺陷進行研究。
在真實的金屬板材工業環境中,由于技術環境等限制,導致所能提供的金屬板表面缺陷樣本太少,使得深度學習方法難以直接應用在表面缺陷檢測。針對工業表面缺陷檢測中的小樣本問題,目前有4種不同的解決方式:數據擴增、合成與生成[4];網絡預訓練或遷移學習[5];合理的網絡結構設計[6];采用無監督與半監督模型方法[7]。通過上述四種方式解決了小樣本的部分問題,但還存在一定的局限性。
在不同工業行業和領域中相關的表面缺陷數據是非常多的,一些缺陷種類也是共同的[8]。目前不同檢測領域之間的數據并沒有有效結合和利用,如果將這些數據有效地運用起來,可以作為解決目前小樣本問題的新途徑。因此,基于異域數據的聯邦學習將會成為一個趨勢,它能夠打破不同應用場景之間的壁壘,充分學習不同領域之間數據來提升網絡性能。
針對樣本太少的問題,提出基于異域數據聯邦學習的板材表面劃痕檢測模型,Labview與Python相結合,采用輕量級網絡MobileNet-YOLOv3,利用多種板材劃痕數據以不同的權重來聯合訓練解決金屬板材樣本太少的問題,打破不同應用場景之間的壁壘,并將其應用于缺陷檢測系統,客戶端用戶可以針對不同場景實現單獨訓練,以提高目標檢測的準確性。
本文提出基于異域數據聯邦學習的劃痕檢測模型,如圖1所示。在模型中,結合木板、金屬板、塑料板等不同板材的表面劃痕數據作為公共數據集,根據其劃痕的相似匹配度來設置權重W進行聯合訓練,構建初始的表面劃痕通用神經網絡模型布置于服務器中[9]。客戶端只需將表面劃痕通用神經網絡模型下載到本地,利用客戶端的數據訓練本地模型用于劃痕檢測。

圖1 基于異域數據聯邦學習的劃痕檢測模
為保證在應用中其在線檢測的速度,本文選用端到端的基于卷積神經網絡的目標檢測算法YOLOv3。為考慮使其在計算能力受限的邊緣設備上也能快速運行,利用MobileNet將標準卷積分解為深度卷積和逐點卷積以減少參數量的特點,替換YOLOv3目標檢測算法的主干網絡框架,并保留多尺度預測,形成基于MobileNet的目標檢測算法[10]。
MobileNet-YOLOv3神經網絡結構主要分為3個部分:輸入層、主網絡框架、多尺度檢測模塊,如圖2所示。

圖2 MobileNet-YOLOv3 網絡結構
主網絡框架使用MobileNet代替原本的backbone,采用Depth-wise(3*3深度)卷積搭配Point-wise(1*1逐點)卷積的方式來提取特征,從而降低了神經網絡的浮點數運算量,圖3為標準卷積與深度可分離卷積的結構對比圖。

圖3 深度可分離卷積結構圖
深度卷積的卷積核尺寸DK×DK×M,逐點卷積的卷積核尺寸為1×1×M,有N個,要做DW×DH次乘加運算。圖4為深度可分離卷積和標準卷積的參數量和計算量的對比,參數數量和乘加操作的運算量會下降到原本3×3卷積的九分之一到八分之一。

圖4 深度可分離卷積和標準卷積的參數量和計算量的對比
MobileNet-YOLOv3的損失函數如式(1)所示,由中心坐標損失losscenter、邊界框大小損失lossscale、置信度損失lossconf以及分類損失lossclass這4個部分組成。其中和采用和方差的計算方式,如式(2)和式(3)所示;lossconf和lossclass采用交叉熵的計算方式,如式(4)和式(5)所示。

其中,Iij∈{0, 1}為判斷第個方格的第j個邊界框是否包含待檢測物體;(xfi, yfi)為真實物體的中心點坐標;(wfi, hfi)為真實物體邊界框的寬和高;Cfi為真實物體的置信度;Pfi為真實物體的類別置信度;分別為它們的預估值。
在Tensorflow環境下,使用Labview作為系統界面,用作本地數據集訓練,界面包括左上角的操作按鍵、數據集文件目錄、訓練次數、訓練批次、預訓練模型、已訓練模型、存儲目錄和圖像顯示。按鍵功能數據操作中的標注圖片為調用LabelImg應用程序,其余所有按鍵功能均以Python實現。使用Labview的Actor Framework編程框架搭建系統平臺,編寫有多個VI獨立運行且相互間可通信的應用程序執行獨立的系統任務,整體框架和部分程序如圖5所示。

圖5 灰度變換和濾波處理后的結果
實驗通過不同板材現場采樣的方式,但由于受現場工業條件影響,導致采集到的樣本部分存在光照不均的問題,所以需要對光照不均的圖片進行處理。主要采用Gamma校正,以對圖像進行非線性色調編輯的方法,檢出圖像信號中的深色部分和淺色部分,并使兩者比例增大,從而提高圖像對比度效果,如圖6所示。結合不同的板材劃痕檢測數據集,利用ORB算法進行金屬板同種劃痕的數據篩選,ORB基于FAST和BRIEF特征提出的二值特征匹配實現,在時間上比SIFT快100倍,比SURF快10倍,并且匹配效果也很好。篩選后制作了4 632張的劃痕通用數據集,然后根據其匹配度,進行不同權重的設置,用于訓練通用神經網絡,如圖7所示。


圖6 原圖和Gamma(1.5,3)的校正圖像

圖7 基于ORB算法的不同板材之間的劃痕匹配
本地服務器下載預訓練的MobileNet-YOLOv3和YOLOv3通用神經網絡模型,訓練本地只有116張的金屬板數據集,并對金屬板數據集單獨采用了鏡像、旋轉、尺度變換等數據增廣方法,將金屬板的數據量增廣到4 748張,用于對照實驗。測試準確率如表1所示。

表1 數據增廣與聯邦學習的準確率對比
針對小樣本問題,采用異域數據聯邦學習的方法對比傳統的數據增廣方法準確率提高了約5%。實驗通過遷移學習的方式驗證金屬板材的劃痕檢測準確度。圖8為MobileNet-YOLOv3與YOLOv3遍歷100次完成模型訓練時,聯邦學習和數據增廣方法的mAP和損失函數。

圖8 MobileNet-YOLOv3與MobileNet-SSD損失值與平均精度均值
通過遷移學習的方式分場景訓練,由于本地數據集數據量較少,神經網絡的訓練時間可以大大減少,實際檢測效果如圖9所示。客戶端在完成神經網絡模型的訓練后可以直接使用電腦調用攝像頭進行檢測,也可考慮將其部署在可兼容的邊緣設備上。

圖9 金屬板的檢測實際效果
本文在金屬板材表面劃痕的檢測中,針對深度學習的表面劃痕檢測技術中所存在的小樣本問題,在4種不同的解決方式外,提出了新的小樣本問題的解決方法,構建基于異域數據聯邦學習的表面劃痕檢測系統,利用跨領域的表面劃痕數據集,構建通用的表面劃痕深度學習神經網絡模型,在解決工業現場劃痕樣本集不足問題的同時,進行異域數據聯合使用,實現跨領域的表面劃痕檢測。但針對復雜環境下的劃痕檢測還有待進一步改進,將訓練好的檢測模型移植到嵌入式設備中進行工業現場應用是下一步研究方向。