鄭祥盤,宋國進
(閩江學院物理與電子信息工程學院,福州 350108)
隨著經濟的不斷發(fā)展,貨物的流通量越來越大,對大型起重機的運作時長要求也越來越高,這對起重機運行造成了潛在的安全隱患.因此,對起重機定期進行檢測、維護與保養(yǎng)是十分必要的.
相比于眾多的安全隱患,金屬結構裂縫、變形、腐蝕等缺陷的出現(xiàn)往往會給生產造成重大的損失.因此,高空位置金屬結構的缺陷檢測是大型起重機安全檢測最重要的環(huán)節(jié).基于傳統(tǒng)的缺陷檢測方法常常是人工作業(yè)對起重機進行勘察.檢驗人員需要攀爬到起重機金屬結構的高空位置去觀察是否存在裂紋及腐蝕等缺陷;但有些部位如港口門座式起重機的象鼻梁和人字架頂部、門式起重機的主梁下蓋板和支腿上部等位置,往往存在檢驗人員難以到達、安全得不到保障以及檢測不夠全面等問題.
在起重機缺陷檢測方面,有通過建立大跨度門式起重機數學模型推導梁的中撓度解的[1],也有通過改進的和聲搜索算法識別起重機結構空間模態(tài)的傳感器優(yōu)化布置的[2].但在起重機金屬結構的缺陷檢測識別方面目前還沒有很好的識別方式.基于卷積神經網絡在視覺識別方面取得了巨大進展,其中膠囊網絡通過一個卷積層和兩個膠囊層,不需要使用過多訓練技巧,在MNIST數據集中取得了目前該領域內領先地位的成績,錯誤率僅為0.25%[3].Salimans等[4]將卷積網絡應用于對抗網絡,得到生成式對抗網絡將該網絡用于圖像分類領域,改變了傳統(tǒng)CNN大量標注樣本的學習策略.Hu等[5]提出的壓縮激發(fā)網絡(squeeze-and-excitation networks)通過對特征通道間的相關性建模,把重要特征進行強化以提升準確率.在ImageNet訓練集上的Top-5錯誤率由2012年冠軍網絡的15.4%降低至4.47%,Top-5錯誤率表示在學習到的標簽中,預測概率最大的5個類別,不包含正確類別的比率.Simonyan等[6]提出了為處理大規(guī)模圖像識別的深度卷積神經網絡.王洋[7]等提出了一種基于卷積神經網絡的特征快速提取算法.
為此,在前人研究的卷積神經網絡基礎上,針對起重機金屬結構缺陷圖像數據不足的特點,本文中提出雙網絡并行的卷積神經網絡模型.首先建立淺層次卷積神經網絡,由于淺層次卷積神經網絡卷積核數量較少,故識別速度較快,但精度不足.本文中應用雙網絡并行模型,即采用訓練好的深層次卷積神經網絡AlexNet訓練本文中構建的淺層次卷積神經網絡,提高識別精度.
通過大量起重機金屬結構缺陷圖像訓練淺層次卷積神經網絡模型.在卷積神經網絡的框架上,用反向傳播算法確定淺層次卷積神經網絡模型各層參數,在全連接網絡層后連接Softmax分類器,應用梯度下降算法更新分類器中各個參數值,從而獲得一個能對缺陷問題進行有效檢測與識別的分類器.
卷積神經網絡受人對貓視覺皮層電生理研究的啟發(fā).經典的卷積神經網絡由卷積層(C)、激活函數層、池化層(P)、全連接層(FC)、損失函數層組成.整個網絡模型如圖1所示,圖中省略了卷積層和池化層之間的激活函數層[8].常用的激活函數有Sigmoid函數、Tanh函數、ReLU函數.由于Sigmoid函數單調連續(xù),輸出范圍在(0,1)中,優(yōu)化較穩(wěn)定,故本文中采用Sigmoid函數.
圖1 淺層次卷積神經網絡結構圖Fig.1 Shallow convolutional neural network structure diagram
上述卷積神經網絡包含4個卷積層、3個最大池化層、1個全連接層、1個損失函數層(圖1),其中損失函數采用Softmax回歸函數.首先在卷積層中包含有多個濾波器,對預處理后的二維圖像數據進行卷積運算,減少特征圖尺寸;然后將輸出值經過Sigmoid函數,獲取特征圖上的像素值,使模型能夠更加擬合復雜的函數,形成特征圖;再通過池化層降低特征維度,減少模型計算量;最后將全連接層上的每個神經元與輸入特征圖上的每個像素建立連接,綜合提取圖像特征,將組合后的特征值傳輸給Softmax分類器計算每個類別的概率值,從而確定每個像素的缺陷情況.其中,池化層將卷積層的輸出結果通過求出n×n滑動窗口的平均值或最大值來確定通過池化層后的特征圖,該輸出結果能夠很好地表示輸入池化層前的數據,故池化層具有降低數據特征維度,降低計算量的作用.
由于BP算法是一種能夠極大降低梯度的訓練方法,故本文采用BP算法求解淺層次卷積神經網絡模型中的參數值.在計算模型的每層參數的過程中利用梯度下降算法[9]對網絡中的每層參數進行迭代更新,采用的更新公式為
(1)
(2)
(3)
在全連接網絡層的結果輸出后連接Softmax分類器,計算得到不同類別的對應概率.對網絡前面的輸出結果進行分類,首先取二分類進行分析,采用{(x1,E(x1)),…,(xi,E(xi)),…,(xN,E(xN))}表示N個數據,xi為表示輸入圖像數據的矩陣,E為卷積神經網絡的期望輸出.對于二分類問題有:
(4)
其中:p表示當輸入數據為xi時,輸出值為1或0的概率;θ為當前模型參數k、b構成的矩陣.綜合可得概率分布為:
p(x)=(gθ(x))E(xi)((1-gθ(x))1-E(xi),
(5)
其中,x為x1,x2,…xN構成的矩陣,gθ(x)=q(θTx),q為Sigmoid函數.
通過最大似然估計等計算可得分類器關于θ的損失函數:
(1-E(xi))log(1-gθ(xi))].
(6)
通過對θj求偏導,可得:
(7)
(8)
其中α為學習率.由于多任務學習相較于單任務學習的分類準確率和效率更高,已廣泛應用在圖像識別[10]、圖像細粒度分類[11]、人臉檢測[12]等圖像領域,因此本文中將以上二分類情況拓展至多分類情況,取l為分類的種類,同理可得
其中,θ1,θ2,…,θl為每組標簽對應的所有參數構成的矩陣.
多種類分類器的損失函數為:
(1-E(xi))log(1-gθ(xi))]=
(9)
對θj求偏導可得:
(10)
根據梯度下降算法,按式(1)更新參數,訓練Softmax分類器中參數.
通過上節(jié)中對網絡中各層參數的訓練,完成了較淺層次網絡模型的建立.為了彌補淺層次的卷積神經網絡識別精度低的缺陷,在上述理論基礎上建立雙網絡并行模型,即利用深層次網絡模型AlexNet與淺層次網絡模型的交叉熵函數訓練淺層次卷積神經網絡,達到提高識別精度、降低訓練模型參數對服務器的要求,縮短訓練時間.
利用雙網絡并行模型完成淺層次卷積神經網絡的訓練后,將每一幀圖像進行不同尺度大小的變化并且均等分塊輸入淺層次卷積神經網絡,計算每個分塊的結果值,將其與之前人為定義的數值進行對比,從而確定缺陷的類別.
在網絡模型訓練過程中,對各個類別數據均勻隨機抽樣,將70%、20%、10%分別作為訓練集、測試集和驗證集.使用工業(yè)相機采集圖像,像素為2 048×4 096,將圖像劃分為5行10列,共有50張子圖.且從采集到的圖像中隨意裁剪3 000張擁有同樣缺陷問題的圖像,分別縮放至100×100與227×227兩種規(guī)格.其中將100×100規(guī)格的圖像用于訓練本文提出的較淺層次的神經網絡,用227×227規(guī)格的圖像訓練AlexNet.人為的定義每種數值代表的缺陷類別,以便后續(xù)與結果進行比對,確定缺陷類別.為了將圖像中的缺陷問題凸顯出來,并有利于訓練時的收斂,對圖像進行中心式歸一化處理.即將圖像中的每一個像素減去該圖像的平均值,并減少圖像數值的取值范圍.中心式歸一化示意圖如圖2所示.
圖2 中心式歸一化示意圖Fig.2 Central normalized diagram
進一步將中心式歸一化處理后的圖像儲存在數據庫中,減少硬盤IO開銷[9].
本研究構建的雙網絡并行模型如圖3所示.其中,全連接層前存在一個卷積層分支,其中卷積核個數為200,卷積核大小為7×7,步長為1.將該卷積層與AlexNet中的最后一個池化層輸出結果進行交叉熵損失函數連接,通過深層次卷積神經網絡的輸出結果修正較淺層次神經網絡模型中的參數實現(xiàn)雙網絡并行模型.并行網絡的損失函數為:
J(θ)=αLclassification(θ)+βLcross,
(11)
圖3 雙網絡模型示意圖(省略激活函數層、中心歸一化層)Fig.3 Dual network model diagram (omitted activation function layer and center normalization layer)
其中,Lclassification(θ)為分類器的損失函數,即式(10).Lcross為較淺層次網絡與AlexNet網絡之間的交叉熵損失函數,具體為
(12)
其中,t=(ti)表示AlexNet在最后一個池化層輸出的特征向量,s=(si)為本文所提出網絡在C4層輸出的特征向量.
首先,對AlexNet與淺層卷積神經網絡分別進行訓練.其中AlexNet模型的卷積核參數初始化采用AlexNet在1 000分類中訓練好的參數[13],輸入AlexNet模型的數據大小為227×227×3.淺層次卷積神經網絡模型參數采用隨機初始化,即采用均值為0,方差為1的標準高斯分布,輸入淺層次網絡模型的數據大小為100×100×1.通過反向傳播梯度下降算法,在每一次迭代過程中,對公式(2)中的權重與偏置參數k,b進行更新.
其次,對雙網絡并行模型進行訓練.由于式(11)中α=1-β,故需通過對訓練集數據進行訓練來確定β超參數值.本文中訓練次數為20次,淺層次的卷積神經網絡的訓練參數中每個批次圖片數量為128,權重衰減系數為0.000 1,α的初始值為0.001,每迭代104次,α縮小10倍.取原有訓練集劃分為訓練集與測試集,根據模型在測試集的表現(xiàn)效果確定式(12)中的超參數β的值,結果如圖4所示.從圖4可得超參數β為0.2時,模型準確率最高,表現(xiàn)效果最好.
圖4 β與模型分類準確率關系圖Fig.4 Relation diagram between super-parameter and model classification accuracy
本文中采用相同的數據與訓練策略分別對2組模型進行訓練,一組為本文第2節(jié)改進的加入AlexNet的雙網絡并行模型,另一組為本文第1節(jié)的淺層次單網絡卷積模型.根據訓練情況繪制出樣本集大小對準確率影響曲線,如圖5所示.
圖5 雙網絡模型與單網絡模型不同樣本集對比曲線圖Fig.5 Contrast curve of different sample sets between double network model and single network model
由圖5可知,雙網并行模型準確率高達95.9%,誤檢量為123.若只采用單網絡模型進行訓練,則模型的最大準確率為80.1%,誤檢量為597.通過本研究改進的雙網絡并行的卷積神經網絡模型可以將誤檢率降低79.4%,準確率提高11.8%,故采用雙網絡模型比單網絡模型在識別的準確性方面有明顯提高,具有更好的魯棒性,識別效率更高.
為驗證本文中雙網絡并行模型有效性,現(xiàn)將該模型與淺層次卷積神經網絡模型放在相同訓練集與訓練策略條件下,對起重機金屬結構的疲勞開裂、腐蝕等常見缺陷圖像進行分類.除此之外為進一步說明本文中雙網絡并行模型算法在起重機缺陷檢測方面的優(yōu)勢,現(xiàn)將該雙網絡并行模型算法與屬于卷積神經網的SENet模型,以及傳統(tǒng)的機器視覺方法支持向量機庫(LibSVM)、BP神經網絡進行對比.
SENet模型是ILSVRC 2017的冠軍網絡[14].在SENet模型中,每個通道的[0,1]權重由分支(gap-fc-fc-sigm)分配,能夠自適應地使原各通道的激活值進行響應.該網絡模型在ImageNet數據集中圖像分類錯誤率僅為2.25%.但該模型的空間復雜度較高,參數數量高達2.75×107.一般來說,模型的大小取決于訓練的數據規(guī)模,而起重機缺陷識別檢測的分類較少,故對起重機缺陷分類識別所對應的簡單數據集應用SENet模型容易造成過擬合問題.現(xiàn)將相同的訓練集、測試集數據分別對SENet進行訓練,SENet各層初始化參數為ImageNet訓練后的參數.
LibSVM[15]所采用的測試集、訓練集同雙網絡并行的卷積神經網絡一致.LibSVM分類采取以下步驟:
1) 提取樣本梯度直方圖(HOG)特征.
2) 選擇核函數,核函數公式為K(u,v)=exp(-γ|u-v|2).
3) 通過LibSVM中SVMcgForClass函數選取最優(yōu)c和g,其中,c為懲罰系數,g為gamma函數設置.
4) 訓練模型,用以上得到的g、c訓練分類模型.
5) 精度測試,用LibSVM中svmpredict函數對模型分類精度進行測試.
BP神經網絡模型[16]的訓練步驟如下:
1) 初始化權系數及各網絡參數.初始學習率 0.1,動量因子0.9,允許誤差10-6,隱層節(jié)點20個.
2) 輸入樣本,迭代次數n=0.
3) 比較期望輸出Tk與實際輸出Zk(n)計算誤差E(n),判斷是否滿足要求,滿足轉至6),否則轉至4).
4) 判斷n+1是否大于最大迭代次數,若大于轉至6),否者,反向計算每層神經元局部梯度Dn.
5) 計算學習率η(n)與權值w(n);n=n+1,轉至3).
6) 判斷是否訓練完所有樣本,是則結束,否則轉至2).
表1給出了雙網絡并行模型與對比模型的識別準確率.對比雙網絡模型算法與屬于卷積神經網絡的淺層次單網絡模型和SENet模型的識別準確率可以看出,本文采用的雙網絡并行模型比淺層次卷積神經網絡模型在缺陷識別準確率方面有較大幅度的提高,且對起重機金屬結構缺陷識別的效果更加穩(wěn)定.SENet模型由于其模型參數過多,訓練數據過少,導致過渡擬合了訓練數據,缺乏泛化能力,所以表1中其識別準確率也不如雙網絡并行模型.與傳統(tǒng)的機器視覺算法LibSVM和BP神經網絡進行對比,可以看出由于雙網絡并行模型的卷積神經網絡避免了傳統(tǒng)機器視覺所必需的圖像灰度值操作、模糊操作、閾值操作、腐蝕以及膨脹操作,雙網絡并行模型算法比LibSVM算法、BP神經網絡在起重機金屬結構裂紋、腐蝕、變形等缺陷識別準確率均有較大提高.
表1 雙網絡并行模型與其他模型的缺陷識別準確率對比表
圖6為雙網絡并行模型算法與LibSVM算法、BP神經網絡的大型起重機金屬結構腐蝕和裂縫缺陷檢測效果對比圖.圖中綠色為雙網絡并行模型算法的檢測效果圖,藍色為LibSVM算法檢測效果圖、白色為BP神經網絡檢測效果圖.
圖6 起重機金屬結構檢測結果圖Fig.6 Crane metal structure detection result diagram
從圖6可看出,在面對不同尺度的起重機金屬結構的缺陷識別時,本文中提出的雙網絡并行模型算法更具魯棒性,而LibSVM算法、BP神經網絡雖然能夠識別框出起重機金屬結構缺陷,但其準確度不如雙網絡并行的卷積神經網絡模型.
傳統(tǒng)機器視覺在大型起重機金屬結構的缺陷識別應用中,存在數據量大、特征空間維度高,單一特征提取算法難以滿足大型起重機金屬結構缺陷的識別.本文中提出將雙網絡并行模型的智能視覺檢測技術應用于該領域,提高缺陷識別的性能與效率,并通過實驗驗證了該算法的有效性,得到如下結論:
1) 與傳統(tǒng)的起重機缺陷檢測算法比較,雙網絡并行模型的卷積神經網絡算法不僅通過圖像池化操作降低了特征空間維度,還通過將全連接層上的每個神經元與輸入特征圖上的每個像素建立連接,綜合提取圖像特征算法,使其具有更好的魯棒性,識別效率更高.
2) 通過雙網絡并行模型與單網絡模型、傳統(tǒng)機器視覺識別方式的實驗性能對比,驗證了雙網絡并行模型算法在識別金屬結構缺陷的準確度.表1所示淺層次單網絡卷積模型識別準確率最高為87.2%,傳統(tǒng)機器視覺識別準確率最高為87.8%.而雙網絡并行模型識別準確率最低也有95.3%,表明雙網絡模型相比于單網絡卷積模型、傳統(tǒng)機器視覺的有效性.
3) 通過雙網絡并行模型與SENet網絡模型的實驗性能對比,驗證了雙網絡并行模型算法在識別金屬結構缺陷的效率與準確度.由于SENet網絡模型訓練參數量達到2.75×107,遠大于雙網絡并行模型所需訓練參數,空間復雜度較高,導致缺陷識別效率較差.而在準確率方面,其識別準確率最高為90.1%,低于雙網絡并行模型準確率.