何仁杰,郭秀娟
吉林建筑大學 電氣與計算機學院,長春 130118
由于工業(yè)化的發(fā)展,各種類的噴漆產品層出不窮,給人類社會添加了更為豐富的物質材料,極大地提升了人們的生活質量.噴漆產品的應用非常廣泛,例如:汽車、航天飛機、軍事裝備、醫(yī)療器件等等.傳統(tǒng)工業(yè)中為了保證產品的質量,需要依賴各種高精度的設備、對環(huán)境要求十分高的噴漆房和一整套的相關技術.然而在判別工業(yè)產品的優(yōu)劣方面,大多數(shù)卻依靠人工檢測,這就在一定程度上影響了產品的絕對合格率.
世界經濟的飛速發(fā)展,離不開堅實的科學技術支持.5G時代的來臨,人工智能必將成為科學技術發(fā)展的領頭羊,而卷積神經網絡在人工智能領域也必將舉足輕重.從20世紀初,由LeCun等人主導設計的LeNet神經網絡[1](現(xiàn)代卷積神經網絡的雛形)到現(xiàn)如今各種卷積模型的誕生.如:AlexNet,VGGNet,R-CNN等一系列衍生網絡模型,彰顯了卷積神經網絡不可阻擋的發(fā)展趨勢.神經網絡在誕生之初就在圖片分析處理的應用上,展現(xiàn)出不俗的能力.卷積神經網絡的誕生,更是對這一能力極大的加強.但是卷積神經網絡在工廠噴漆產品的應用上,還處于匱乏階段.
本文提出利用簡單的卷積神經網絡(Convolution Neural Network,簡稱:CNN)[2].對噴漆產品進行優(yōu)劣分類,在大幅度提高判斷精確度的同時,也極大地降低了生產成本.
卷積神經網絡(Convolution neural network,英文縮為CNN)是一種前饋神經網絡或特殊的多層感知器[3].標準的卷積神經網路一般是由輸入層(Inputlayer)、交替的卷積層(Convolution layer)和池化層(Pooling layer)、全連接層(Softmax layer)構成.卷積神經網絡作為計算機視覺領域最成功的一種深度學習模型,在圖片處理上表現(xiàn)得尤為出色,圖1是一個標準的卷積神經網絡模型.
圖1 卷積神經網絡模型Fig.1 Convolution neural network model
模型中交替的卷積層(Convolution layer)和池化層(Pooling layer)被稱為隱藏層,是整個CNN的核心.各種重要的卷積計算以及各種算法就是在這些隱藏層中實現(xiàn)的.隱藏層中各層的卷積核權重與偏置是根據多次實驗預測和梯度算法最后驗證得到的.實驗預測過程中采集的實驗數(shù)據集越大,檢測的目標越多,隱藏層中蘊含的權重、偏置等參數(shù)也就更加精確,因此整個網絡的性能也就越好[4].
圖2 內飾板樣本Fig.2 Interior panel sample
因為噴漆產品的種類繁多,顏色、形狀等特征也不盡相同,
所以在這篇論文中,采用汽車內飾板的一種單一產品如圖2所示,以驗證使用CNN為核心技術手段檢測產品合格率的可行性.
在圖2中,可以看到產品兩邊的色彩沉淀寬度不一樣,上下亮度也有一定差距.所以,把圖片分成上、中、下3個部分,分別標記為上邊緣、表面和下邊緣3個特征,用這3個特征來鑒別產品的優(yōu)劣性.為了建立這個數(shù)據集,采用TOPSUN托新精密公司的汽車內飾裝飾板中的300張單一產品,其中包括100張訓練數(shù)據集、100張測試數(shù)據集,100張驗證集,經過批量裁剪把每一張圖片裁剪成3張600×200的圖片,這樣訓練集、測試集、驗證集都有300張圖片.
考慮到產品檢測中算法對精確度和速度的要求,本文采用輕量級卷積神經網絡—全卷積網絡FCN[5],結構如表1所示,利用全卷積網絡的語義分割和實例分割這兩大特性,可以處理更精細的噴漆產品.
對數(shù)據集進行均值處理是卷積神經網絡常用的處理方法,為了更好地利用數(shù)據集,采用批標準化Batch Normalize(BN)網絡對數(shù)據集的圖片進行歸一化處理[6],并通過網絡學習實現(xiàn)適度微調.相對于其他的歸一化算法,BN的優(yōu)點在于它擁有防止“梯度彌散”、加速網絡收斂速度、可以使用較大的學習率等優(yōu)點[7].公式如下:
(1)
(2)
(3)
(4)
式中,μB與σB2是mini-batch的m個輸入數(shù)據的集合B={x1,x2,…,xm}的均值和方差.公式(2)是將輸入數(shù)據變換為均值為0、方差為1的數(shù)據.式(3)中,ε是一個微小值,它是為了避免分母為0的情況.通過這樣正規(guī)化處理插入到激活函數(shù)的前面,可以減少數(shù)據分布的偏向[8].公式(4)yi是BN層對正規(guī)化后的數(shù)據進行縮放和平移交換的一個輸出,其中γ和β是參數(shù).初始值分別為1和0,通過學習調整到合適的值.
表1 CNN網絡結構Table 1 CNN network structure
由表1結構可以看出,在卷積層首層,采用了5×5的卷積核,且步長2×2.填充選擇了可以在前向傳播的過程中讓特征圖的大小保持不變的模式(簡稱:SAME模式).在池化層中就是下采樣,選擇了2×2與2×2的組合,根據公式推算輸出.最后一個卷積層選擇3×3與1×1的配合,是想將圖片輸出大小進一步縮小.在最后加上全連接層,輸出為4×1×2其實就是利用softmax函數(shù)將最后一層卷積層的輸出正規(guī)化,從而得到概率性數(shù)據,進而達到一個分類功能的目的.計算公式如下:
(5)
(6)
式中,輸入大小(H,W);特征提取器(Filtle)大小(FH,FW);輸出大小(OH,OW);步長S;填充P.
在每一層的激活函數(shù)選擇上,選擇了ReLu函數(shù),相比較于sigmoid激活函數(shù),ReLu函數(shù)不存在梯度消失的問題,使得模型的收斂速度維持在一個穩(wěn)定狀態(tài)[9].
圖片經過BN網絡歸一化處理之后輸入到第一個卷積層,最后得到32×32×16的結果.因為第一層設置了16個特征提取器(Filtle)進行上采樣,經過第一層的卷積得到如圖3所示的上邊緣卷積圖像.
圖3 上邊緣卷積圖像Fig.3 Upper edge curly image
由圖3可以清楚地看到邊緣部分顏色較深,說明油漆在晾干過程中邊緣沉淀較厚.這就體現(xiàn)出機器噴頭參數(shù)過大的問題,導致油漆噴量多,在表面多余的油漆會向邊緣沉淀.
使用網絡模型對訓練集測試得到的實驗結果如表2所示.
表2 訓練集產品各部位檢測結果Table 2 Test results for each part of trainingset product
由表2可知,上下邊緣準確率略小于表面,這是由于邊緣部位有外界對比色和邊緣結構較為復雜等因素影響,而中間表面的結構平滑、結構單一,所以準確率誤差較小.因此,為防止過擬合,需要在數(shù)據集上增加大量圖片數(shù)據集,模型結構上添加Dropout層[10],其主要功能是在訓練時,每一次傳遞數(shù)據就會隨機的選擇一些需要刪除隱藏的神經元,等到在測試時,雖然所有的神經元信號都是傳遞,但是它會將每個神經元的輸出與訓練時刪除比例相乘后輸出.訓練損失值如圖4所示,訓練集與測試集結果如圖5所示.
圖4 損失值曲線Fig.4 Loss value curve
圖5 訓練集與測試集準確率Fig.5 Training set and test set accuracy
從圖4中可以明顯看到,在訓練集測試之前,損失值特別大,一旦開始訓練損失值則立即減少,迅速降到0.5左右.從圖5中看出,測試準確率在測試之前也是0.5左右,這就是模型盲猜.隨著訓練步數(shù)的增加,訓練與測試準確率也逐漸升高,最后穩(wěn)定在80 %以上.測試集甚至可以達到90 %以上,倘若實驗允許,當實驗步數(shù)增加到10 000以上,準確率會穩(wěn)定在95 %左右.但是因為本次實驗使用的設備是win 10+i 5+GTX 950 M,受設備運算能力影響不能進行大量數(shù)據集的訓練與檢測.
利用CNN檢測噴漆產品是否合格是具有可行性的,并且有一定的準確率與參考價值,如果條件允許可以在兩個方面進一步完善檢測模型.
(1) 數(shù)據集的建立可以增加大量的數(shù)據集,這樣不但可以防止欠擬合,還可以使實驗結論更具有說服力.
(2) 計算機計算能力,本次使用是CPU版本的計算機,搭建的tensorflow+keras的卷積神經網絡框架.如果有機會使用GPU算力更強勁的計算機,增加訓練步驟,降低學習率,使得模型具有更高的可靠性,更符合市場需求.