張 翠,楊志清,周茂杰
(1.桂林理工大學 博文管理學院,廣西 桂林 541006;2.桂林理工大學,廣西 桂林 541004)
注射生產(chǎn)過程復(fù)雜,影響塑料產(chǎn)品的質(zhì)量因素較多,生產(chǎn)過程中任何環(huán)節(jié)出現(xiàn)問題都有可能造成成型產(chǎn)品出現(xiàn)缺陷,因此針對如何檢測塑料產(chǎn)品的質(zhì)量,查找生產(chǎn)過程中出現(xiàn)的問題,提出了針對性的機器檢修和參數(shù)調(diào)整方案。傳統(tǒng)的注射行業(yè)采用人工檢測產(chǎn)品的缺陷,由于人眼的識別能力有限,一些細節(jié)問題難以識別,導(dǎo)致缺陷檢測的精度不高。隨著人工智能的發(fā)展,計算機視覺的應(yīng)用領(lǐng)域也不斷擴展,在模具生產(chǎn)、精密儀器加工、自動駕駛、醫(yī)學病理識別等領(lǐng)域都發(fā)揮了重要作用。近年來,深度學習的應(yīng)用推動了計算機視覺的發(fā)展,通過對產(chǎn)品的外觀檢測發(fā)現(xiàn)其缺陷,推導(dǎo)生產(chǎn)工藝所存在的問題。
現(xiàn)利用機器學習的方法分析塑料產(chǎn)品的圖像,找出存在的缺陷并進行分類。采用壓縮與激勵網(wǎng)絡(luò)SENet與殘差網(wǎng)絡(luò)ResNet相結(jié)合,構(gòu)建產(chǎn)品缺陷檢測系統(tǒng)模型,利用產(chǎn)品的圖像進行學習,得到缺陷檢測圖像識別模型參數(shù),對塑料產(chǎn)品中的氣泡、燒焦、開裂、變形、收縮等5種缺陷進行檢測[1],通過檢測產(chǎn)品的準確率和召回率指標衡量模型缺陷檢測的有效性。
產(chǎn)品的缺陷檢測是指根據(jù)檢測樣品表面出現(xiàn)的斑點、痕跡、色差、形狀等特征判斷其是否存在缺陷。在模具零件加工、塑料產(chǎn)品與精密儀器鑄件生產(chǎn)中廣泛使用的方法是根據(jù)產(chǎn)品的表面特征判斷其存在的工藝問題。傳統(tǒng)的檢測是從人工識別方式發(fā)展而來,用人工方式檢測產(chǎn)品需要花費大量的人工成本,且存在標準不統(tǒng)一、識別能力有限、檢測的準確率不高等問題。現(xiàn)代工業(yè)中普遍采用超聲檢測法、X射線檢測法進行產(chǎn)品缺陷檢測[2]。
近年來,隨著計算機的計算能力、圖像處理能力的不斷增強,機器學習算法改進提升,使計算機視覺方法應(yīng)用于工業(yè)生產(chǎn)中成為可能。深度學習技術(shù)在工業(yè)、農(nóng)業(yè)的應(yīng)用中取得了較大進展,在目標檢測、智能機器人、智能車、農(nóng)業(yè)病蟲害識別中獲得了一定的研究成果。深度學習的方法是提取底層特征,經(jīng)過多個層次的參數(shù)學習、特征組合,合成了新的高層語義特征,這些特征在進行圖像識別中更具代表性。由于深度學習具有更強的學習能力和特征表達能力,被應(yīng)用于工業(yè)產(chǎn)品的缺陷檢測中,識別產(chǎn)品中的不合格品,達到提高產(chǎn)品質(zhì)量的目的[3-5]。
基于深度學習的產(chǎn)品缺陷檢測常用神經(jīng)網(wǎng)絡(luò)進行設(shè)計,包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)以及這些神經(jīng)網(wǎng)絡(luò)改進版本和組合形式。為了解決圖像識別特征的問題,采用多個卷積核提取特征,并采用多層CNN和端到端的學習方法對產(chǎn)品缺陷進行預(yù)測。為了識別多種產(chǎn)品缺陷,區(qū)別缺陷的不同之處,采用CNN與CRF(條件隨機場)相結(jié)合進行網(wǎng)絡(luò)訓練,完成產(chǎn)品的缺陷檢測[6]。為了獲得圖像的全局特征,采用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)取代卷積神經(jīng)網(wǎng)絡(luò)(CNN),不需要對特征值進行池化操作,減小了特征損失。隨著網(wǎng)絡(luò)層數(shù)的增加,在提升訓練效果的同時,也產(chǎn)生了梯度消失和梯度爆炸的問題,殘差網(wǎng)絡(luò)(ResNet)結(jié)構(gòu)在普通的神經(jīng)網(wǎng)絡(luò)的輸入和輸出層中加入了殘差因子,提升了訓練的效果[7]。圖像的特征豐富,如何選擇最具代表性的特征是神經(jīng)網(wǎng)絡(luò)要解決的一個重要問題,所以在神經(jīng)網(wǎng)絡(luò)中加入了注意力機制,SENet采用擠壓和激勵相結(jié)合的方法,學習以通道為單位的權(quán)重信息,并與原圖像結(jié)合計算,實現(xiàn)了注意力的計算。
塑料產(chǎn)品廣泛存在人們的生活中,其制作工藝復(fù)雜,產(chǎn)品在成型過程中出現(xiàn)多種問題,塑料產(chǎn)品的缺陷檢測是工業(yè)產(chǎn)品檢測的一種,現(xiàn)有機器學習方法中需要大量的標注樣本庫,但是市場上缺少通用的塑料產(chǎn)品缺陷圖像庫,為了解決訓練樣本不足的問題,遷移學習的方法用于塑料產(chǎn)品的缺陷識別工作中,取得了較好的識別效果。基于計算機視覺的檢測方法包括圖像采集和缺陷檢測2個步驟。在圖像采集過程中,因為采集設(shè)備不同和采集環(huán)境的差異,會造成圖像質(zhì)量的不同,通過圖像識別產(chǎn)品中存在的差異需要大量的預(yù)處理工序,以保證缺陷識別的準確率。
機器學習方法中,CNN網(wǎng)絡(luò)在目標檢測和語義分割中起到了重要作用。CNN網(wǎng)絡(luò)可以提取圖像的局部特征進行特征組合,然后進行圖像的識別。在現(xiàn)有的CNN網(wǎng)絡(luò)中有大量的改良模型,例如:VGG、Resnet、Inception、DenseNet等模型在工業(yè)制造中得到了廣泛應(yīng)用,并取得較好的效果[8,9]。將機器學習方法應(yīng)用于塑料產(chǎn)品的缺陷檢測工作中,既可以提高工業(yè)生產(chǎn)的自動化程度,又可以提升檢測的準確率,為工業(yè)生產(chǎn)服務(wù),提高了生產(chǎn)效率[10-13]。現(xiàn)將SENet與ResNet相結(jié)合,利用各自的優(yōu)勢,有效提取圖像特征,改進訓練效果,應(yīng)用于塑料產(chǎn)品的缺陷檢測,提升產(chǎn)品檢測的準確率。
采用雙通道卷積神經(jīng)網(wǎng)絡(luò)進行系統(tǒng)設(shè)計,模型設(shè)計如圖1所示。首先從工業(yè)生產(chǎn)現(xiàn)場獲得塑料產(chǎn)品的圖像,因為工業(yè)生產(chǎn)環(huán)境復(fù)雜,每次拍攝的圖像都存在一定的差異,需要對這些圖像進行亮度、對比度、放大縮小等處理,得到維度為254×254×3的標準圖像進行卷積計算。利用標準圖像分別作為2個卷積通道的輸入,分別進行卷積計算后,進行融合計算(Concatenate),再通過2個全連接層(FC)得到用于分類的特征值,利用Softmax函數(shù)進行缺陷分類。

圖1 系統(tǒng)模型設(shè)計
系統(tǒng)模型重點是將SENet和ResNet相結(jié)合,2個卷積通道分別進行學習,提取底層特征,并進行組合,得到高級語義特征,最后用于圖像的分類中。
殘差網(wǎng)絡(luò)是為了解決神經(jīng)網(wǎng)絡(luò)中不斷增長層數(shù)導(dǎo)致的計算復(fù)雜度增加、梯度爆炸和梯度消失問題,在CNN網(wǎng)絡(luò)的輸入和輸出層之間加入殘差計算方法,殘差網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。

圖2 殘差網(wǎng)絡(luò)結(jié)構(gòu)
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)一般是將上一層的輸出當作下一層的輸入,完成網(wǎng)絡(luò)層次的疊加,殘差網(wǎng)絡(luò)中在2個層次之間加入了殘差單元。圖2中在l層與l+1層之間有2條通道,分別用于建立X本身的映射關(guān)系和殘差學習的關(guān)系,在有參數(shù)學習的通道中用于學習兩層之間的殘差映射關(guān)系。用F(X,Wi)表示殘差映射,經(jīng)過2個通道的映射后相加得到Y(jié)=F(X,Wi)+X。
SENet網(wǎng)絡(luò)結(jié)構(gòu)是將圖像分類的top1錯誤率降低到2.5%,說明SENet網(wǎng)絡(luò)結(jié)構(gòu)可以有效提高圖像識別的準確率。SE模塊主要包括擠壓、激勵、重新標注3個層次,首先需要對利用卷積計算得到的特征圖進行Squeeze操作,得到各個通道的全局特征,然后對全局特征進行Extraction操作,得到各通道間的關(guān)系和權(quán)值,最后利用通道權(quán)重與原圖相乘,得到了特征圖的最終特征分布,如圖3所示。

圖3 SENet網(wǎng)絡(luò)結(jié)構(gòu)
Squeeze操作采用global average pooling將一個通道上的所有信息行平均,得到通道上的全局特征,解決了CNN網(wǎng)絡(luò)中的感受野較小問題,計算方法采用公式(1)。

其中,uc(i,j)表示圖像中的一個像素,W和H分別表示圖像的寬度和高度,Squeeze操作對所有像素值求和后取平均值。
Excitation操作需要各通道中信息的關(guān)系,如公式(2)所示,采用2個全連接的bottleneck結(jié)構(gòu),其中,r參考inception網(wǎng)絡(luò)中為系數(shù),為一個超參數(shù),σ和δ為2個激活函數(shù),經(jīng)過計算,可以提取由公式(2)壓縮后的圖像特征。

最后利用學習得到的權(quán)重參數(shù)與原卷積網(wǎng)絡(luò)計算的各通道特征相乘,計算得到SENet的輸出,如公式(3)所示。

其中,uc表示公式計算的每個通道的特征圖像,sc表示通道的權(quán)值,相乘后得到融合后的圖像信息。
將SENet模塊和ResNet殘差模塊結(jié)合,在圖像上同時捕獲全局和局部信息,避免了信息丟失。
因為沒有現(xiàn)成的樣本庫,從塑料企業(yè)獲得了10 000張成型塑料的圖像,用于驗證模型的有效性,其中有缺陷的圖像7 203張,合格產(chǎn)品(無缺陷)圖像2 797張。將所有的圖像打亂后,取80%為訓練樣本,20%為測試樣本進行試驗,缺陷圖像情況如表1所示。

表1 缺陷圖像情況
硬件條件為Intel Core i7處理器,20G內(nèi)存,NVIDIA GTX1080Ti 2G顯存,采用Tensorflow框架實現(xiàn)該模型的構(gòu)建,利用Python編程進行算法設(shè)計和分析,采用GPU進行訓練和測試。
為了驗證設(shè)計和模型的有效性,分成了2組試驗,第1組是全局訓練及測試試驗,采用通用的準確率(Precision)、召回率(Recall)和F1值3個指標對模型算法性能進行評價,針對某一實體關(guān)系類型的抽取結(jié)果,具體評價公式為:

采用工業(yè)生產(chǎn)中圖像進行試驗,試驗結(jié)果如表2所示,通過將ResNet與SENet組合的網(wǎng)絡(luò)結(jié)構(gòu)在準確率和召回率上都比單獨用一種網(wǎng)絡(luò)結(jié)構(gòu)的準確率分別提高4.8%和1.4%,召回率分別提高0.5%和1.3%,說明所采用的模型可行。但是采用工業(yè)圖像進行試驗的效果無法達到采用圖像庫中的圖像進行試驗的精度,主要是工業(yè)生產(chǎn)中的圖像采集標準和圖像特征不明顯造成的。

表2 試驗結(jié)果
第2組是分類試驗比較,將不同種類的數(shù)據(jù)分別與正常產(chǎn)品數(shù)據(jù)放在一起進行測試,比較算法在不同類型的缺陷檢測中發(fā)揮的作用,試驗結(jié)果如表3所示。經(jīng)過比較開裂缺陷和氣泡缺陷識別效果較高,分別達到89.3%和87%,變形和收縮兩類缺陷的檢測效果最差,識別率大約為70%。

表3 分類試驗結(jié)果
主要研究基于機器學習的塑料產(chǎn)品缺陷檢測方法,利用工業(yè)生產(chǎn)中的圖像經(jīng)過預(yù)處理后,輸入機器學習模型中,得到模型的參數(shù),然后利用模型進行圖像分類,識別圖像中具有缺陷的部分和缺陷的種類。通過將ResNet與SENet網(wǎng)絡(luò)相結(jié)合,解決網(wǎng)絡(luò)中的特征通道注意力和梯度爆炸、梯度消失問題,在圖像識別中取得較好的效果。通過2種試驗證明,模型可以有效提高分類的精度,但是不同的缺陷識別表現(xiàn)不一,由于工業(yè)生產(chǎn)環(huán)境復(fù)雜,需要更多的預(yù)處理過程,以達到更佳的識別效果。