陳 亮,張浩舟,燕 浩
(1.安徽省科學(xué)技術(shù)研究院,合肥 230001;2.合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,合肥 230009)
尿素泵為機(jī)動(dòng)車尾氣后處理系統(tǒng)的提供尿素液,是該系統(tǒng)的核心部件。受到質(zhì)量化的要求,泵體材料一般采用泵合金材質(zhì)。然而,在鋁型材的生產(chǎn)過程中,受生產(chǎn)工藝等因素的影響,鋁型材表面會(huì)產(chǎn)生擦花、凸粉、漏底等瑕疵,這些瑕疵會(huì)嚴(yán)重影響鋁型材的質(zhì)量,降低產(chǎn)品性能。因此,在生產(chǎn)過程中,必須進(jìn)行缺陷檢測,傳統(tǒng)的方法主要靠人工進(jìn)行肉眼目測,檢驗(yàn)費(fèi)時(shí)費(fèi)力,且容易受主觀因素的影響,質(zhì)檢的效率不高。近年來,基于深度學(xué)習(xí)的人工智能技術(shù)在許多領(lǐng)域獲得進(jìn)展[1-3],該技術(shù)成功的關(guān)鍵為特征提取算法,常用的特征提取算法有SIFT算子[4]、HOG算子基于空域的算法[5];傅里葉變換[6]、小波變換[7]等基于頻域的算法。再者,機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)是表面缺陷檢測的一種監(jiān)測方法,文獻(xiàn)[8]利用高斯濾波器對(duì)圖像將降噪,進(jìn)而采用支持向量機(jī)(SSVM)分類器對(duì)金屬表面缺陷分類。文獻(xiàn)[9]用于太陽能電池片表面缺陷檢測,利用深度置信神經(jīng)網(wǎng)絡(luò)(DBN)應(yīng)用于特征提取。這些基于淺層的神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)算法,很難表示復(fù)雜函數(shù),在復(fù)雜特征提取中表現(xiàn)不佳。而深度學(xué)習(xí)架構(gòu)的多層次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以實(shí)現(xiàn)輸入輸出間復(fù)雜函數(shù)表示,經(jīng)過訓(xùn)練和學(xué)習(xí),可以實(shí)現(xiàn)復(fù)雜的特征提取和分類[10-12]。因此,本文以尿素泵合金材質(zhì)為研究對(duì)象,采用基于深度學(xué)習(xí)算法的鋁合金表面缺陷檢測的檢測方法,并進(jìn)行缺陷特征分類,解決圖像容易出現(xiàn)灰度不均勻和紋理扭曲等方面技術(shù)難題,提高泵表面缺陷檢測準(zhǔn)確率,相關(guān)研究成果可以推廣至類似鋁型材表面瑕疵檢測領(lǐng)域。
基于計(jì)算機(jī)視覺的目標(biāo)檢測系統(tǒng),是目前研究的熱門領(lǐng)域,利用深度學(xué)習(xí)算法通過模擬大腦認(rèn)知機(jī)理,實(shí)現(xiàn)目標(biāo)檢測。表面缺陷檢測也屬于目標(biāo)檢測,利用卷積神經(jīng)網(wǎng)絡(luò)(DCNN)提取圖像缺陷信息,并對(duì)缺陷進(jìn)行識(shí)別和分類。
深度學(xué)習(xí)與傳統(tǒng)圖像檢測方法的最大不同在于其提取的特征是從大數(shù)據(jù)中自動(dòng)學(xué)習(xí)得到,不需要設(shè)計(jì)特征提取器,從而避免了復(fù)雜人工提取特征算法設(shè)計(jì),使得這一方法具備一定的普適性。利用深度學(xué)習(xí)缺陷檢測的網(wǎng)絡(luò)模型,通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,進(jìn)而進(jìn)行識(shí)別和分類。具體缺陷檢測的基本過程:首先通過光源和攝像頭獲取待檢測物體的表面圖像,對(duì)圖像進(jìn)行預(yù)處理,然后利用深度學(xué)習(xí)算法提取缺陷特征,最后對(duì)特征進(jìn)行識(shí)別和分類,如圖1所示。
圖1 基于深度學(xué)習(xí)的視覺感知步驟
傳統(tǒng)的表面缺陷檢測方法優(yōu)勢是識(shí)別速度快,其局限性,靈活性不高,算法只能針對(duì)特定缺陷,受環(huán)境變化影響大,很難滿足自動(dòng)識(shí)別的要求。通過深度學(xué)習(xí)檢測表面缺陷,主要是利用深度卷積神經(jīng)網(wǎng)絡(luò)DCNN作為主干網(wǎng)絡(luò)來提取表面的缺陷特征,DCNN權(quán)重參數(shù)需要足夠多的大數(shù)據(jù)樣本訓(xùn)練得到,訓(xùn)練后機(jī)器就可以提取缺陷特征和對(duì)缺陷特征進(jìn)行分類,在深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的框架下,特征表示和分類器是聯(lián)合優(yōu)化的,可以最大程度地發(fā)揮二者聯(lián)合協(xié)作的性能。
深度卷積神經(jīng)網(wǎng)絡(luò)通常稱為深度學(xué)習(xí)(DL),其最大的優(yōu)勢是可以從原始數(shù)據(jù)中自動(dòng)學(xué)習(xí)原始特征的而無需設(shè)計(jì)特征提取算法[13]。深度學(xué)習(xí)方法的特點(diǎn)是具有多個(gè)隱藏層的深層次架構(gòu),可以讓其學(xué)習(xí)多層次的抽象特征。比如一個(gè)常見例子是靈長類視覺系統(tǒng)通過一系列變換和特征表示來處理信息,由淺入深感知和學(xué)習(xí):先提取邊緣,然后形狀,最后得到更復(fù)雜的特征。Hinton等[13]提出了深度信念網(wǎng)絡(luò),它采用了一種新的無監(jiān)督訓(xùn)練方法,稱為分層貪婪訓(xùn)練,從而受到各國學(xué)者的研究興趣,掀起了深度學(xué)習(xí)的熱潮。它超越傳統(tǒng)的機(jī)器學(xué)習(xí)和依賴于人工特征提取的傳統(tǒng)人工智能方法,DL技術(shù)憑借其自動(dòng)高級(jí)特征提取和數(shù)據(jù)指數(shù)增長的能力,已經(jīng)在自然語言處理(NLP)[1]中取得了突破性成果,語音識(shí)別,計(jì)算機(jī)視覺和圖像分析于其在手寫字、語音識(shí)別及人臉識(shí)別等領(lǐng)域取得較好的試驗(yàn)效果。常用的DL架構(gòu)主要有4種,即受限玻爾茲曼機(jī)(RBM)[14],DBN[13],自動(dòng)編碼器(AE)和深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)[15]?;谏疃葘W(xué)習(xí)的工業(yè)視覺缺陷檢測是深度學(xué)習(xí)應(yīng)用的新領(lǐng)域,也符合新的工業(yè)化進(jìn)程的方向,目前應(yīng)用報(bào)道雖然并不多,將來的發(fā)展將更加迅速。
DCNN已經(jīng)證明在處理視覺數(shù)據(jù)(例如圖像和視頻)方面非常有效。DCNN利用最低級(jí)別的原始輸入數(shù)據(jù),并通過一系列基本計(jì)算單元(卷積核)處理和轉(zhuǎn)換,以獲得更高層次的特征表示[13]。DCNN通常由3種層類型組成:卷積層,池化層和全連接層。卷積層通過通道數(shù),內(nèi)核大小,步幅因子,邊界模式和連接表進(jìn)行參數(shù)化。卷積層獲取輸入圖像并對(duì)其應(yīng)用卷積濾波器以產(chǎn)生輸出圖像或?yàn)V波器響應(yīng)。多個(gè)卷積層用于兼顧圖像像素之間的空間依賴性。池化層會(huì)使神經(jīng)網(wǎng)絡(luò)更加穩(wěn)健,增加魯棒性。池化層通常采用最大池化方法,實(shí)踐表明它能更快的收斂和更好的泛化。在幾輪卷積之后通常使用多個(gè)全連接層,用于對(duì)特征進(jìn)行分類。
根據(jù)目標(biāo)檢測的定義,需要檢測不同缺陷類型并定位。目前常用的模型都是基于DCNN,比如 Faster R-CNN[16],YOLO[17],SSD[3]等。
最新的YOLOv3模型在取得相當(dāng)準(zhǔn)確率的情況下實(shí)現(xiàn)了檢測速度的很大提升,速度比Fast R-CNN快100倍,與SSD的準(zhǔn)確率相當(dāng)?shù)撬俣瓤?倍。本文將在YOLOv3模型基礎(chǔ)上優(yōu)化模型參數(shù),實(shí)現(xiàn)鋁型材表面缺陷的快速檢測。
DCNN通常需要大量帶標(biāo)注的圖像數(shù)據(jù)集才能實(shí)現(xiàn)高預(yù)測精度。然而,在許多領(lǐng)域中,難以獲取大批量數(shù)據(jù),并且標(biāo)記數(shù)據(jù)本身也耗費(fèi)大量精力。鑒于此,可以使用VGG-16,AlexNet和GoogLe-Net等成熟的訓(xùn)練好深度卷積神經(jīng)網(wǎng)絡(luò)模型。這些DCNN模型大都經(jīng)過幾十萬圖像的數(shù)據(jù)集,經(jīng)歷了幾萬次迭代訓(xùn)練,已達(dá)到了非常高的準(zhǔn)確率。通過預(yù)訓(xùn)練遷移學(xué)習(xí)和微調(diào)的方法,可以實(shí)現(xiàn)在小數(shù)據(jù)前提下,實(shí)現(xiàn)高的預(yù)測精度。這個(gè)方法已經(jīng)被證明在解決跨域圖像分類問題非常有用[18]。在DCNN中,網(wǎng)絡(luò)的不同層處學(xué)習(xí)的特征表示對(duì)應(yīng)于輸入圖像中不同級(jí)別的抽象。初始層提取邊緣和顏色信息,而后一層過濾器編碼實(shí)現(xiàn)形狀和紋理的提取。轉(zhuǎn)移學(xué)習(xí)背后的思想是,使用在“大數(shù)據(jù)”圖像數(shù)據(jù)集(如COCO數(shù)據(jù)集)[19]上訓(xùn)練的深度學(xué)習(xí)模型并將其學(xué)習(xí)能力“轉(zhuǎn)移”到新的分類場景而不是從頭開始訓(xùn)練DCNN分類器。通過充分的微調(diào)DCNN,其預(yù)訓(xùn)練精度甚至可以勝過某些從頭開始訓(xùn)練的網(wǎng)絡(luò)模型。
DCNN通常包含數(shù)百萬個(gè)參數(shù),甚至幾千萬個(gè)參數(shù)。例如,基于ImageNet模型[20]的網(wǎng)絡(luò)結(jié)構(gòu)包含超過6 000萬個(gè)參數(shù)。直接學(xué)習(xí)如此大量的參數(shù)是非常困難的,尤其是當(dāng)數(shù)據(jù)集不夠大時(shí)。遷移學(xué)習(xí)理論指出,從一項(xiàng)任務(wù)中學(xué)到的知識(shí)可以用來處理其他任務(wù)[21];也就是說,通過從已經(jīng)學(xué)習(xí)的任務(wù)中學(xué)習(xí)到技能,可以改善其它任務(wù)中的學(xué)習(xí)效果。這種改進(jìn)在深度學(xué)習(xí)等大數(shù)據(jù)驅(qū)動(dòng)的任務(wù)中非常重要。通常,DCNN中的通用特征(例如邊緣和顏色斑點(diǎn))總是會(huì)存在[22]。此外,DCNN中的低級(jí)卷積層學(xué)習(xí)具有強(qiáng)可轉(zhuǎn)移性和更多通用特征,而更高級(jí)別的層學(xué)習(xí)更具體的任務(wù)知識(shí)[16]。在考慮遷移學(xué)習(xí)中的具體任務(wù)時(shí),應(yīng)考慮3個(gè)問題:遷移什么知識(shí),如何遷移學(xué)習(xí)以及何時(shí)遷移學(xué)習(xí)。在本文中,只使用COCO數(shù)據(jù)集預(yù)訓(xùn)練模型低級(jí)卷積層知識(shí),用于預(yù)訓(xùn)練,可以保證網(wǎng)絡(luò)迅速收斂,而不使用其高級(jí)別的層的知識(shí)。原因如下:(1)大部分的缺陷,比如“擦花”其圖圖案相對(duì)簡單,有明顯的邊緣,即通用特征,這部分知識(shí)可以通過遷移學(xué)習(xí)從預(yù)訓(xùn)練網(wǎng)絡(luò)的低級(jí)卷積層中獲取,不必重新學(xué)習(xí)。(2)其它的缺陷,如“漏底”、“桔皮”區(qū)域特征明顯,也屬通用特征,也可通過遷移學(xué)習(xí)獲得。對(duì)于COCO數(shù)據(jù)集中自然物體的圖案(例如汽車和狗)屬于高級(jí)知識(shí)對(duì)檢測鋁型材缺陷毫無用處,因此不會(huì)進(jìn)行遷移學(xué)習(xí)。
本次試驗(yàn)總共有1 416幅鋁型材圖像,包含有缺陷圖像856幅和無缺陷圖像560幅,針對(duì)常見的6種缺陷:“擦花”、“凸粉”、“漏底”、“碰凹”、“桔皮”、“臟點(diǎn)”,如圖2所示。使用標(biāo)注工具labelImg進(jìn)行了標(biāo)注,按照VOC2007數(shù)據(jù)集格式制作訓(xùn)練集和測試集。數(shù)據(jù)集,共分為3種類型:訓(xùn)練集為包含缺陷的圖像;測試集,既包含缺陷圖片又包含無缺陷圖像(每種缺陷10幅);負(fù)樣本為無缺陷圖像,是訓(xùn)練集的一部分,共計(jì)500幅。數(shù)據(jù)集每種樣本的數(shù)量見表1。
圖2 鋁型材常見的6類缺陷類型
表1 數(shù)據(jù)集及分類
使用開源的Keras[20]深度學(xué)習(xí)框架用于模型的訓(xùn)練和預(yù)測。在Keras深度學(xué)習(xí)框架中,嵌入YOLOv3模型( 一個(gè)基于darknet-53的神經(jīng)網(wǎng)絡(luò)模型),該模型已經(jīng)在COCO數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練。COCO數(shù)據(jù)集是微軟團(tuán)隊(duì)制作的一個(gè)數(shù)據(jù)集[19],這個(gè)數(shù)據(jù)集以場景理解為目標(biāo),主要從復(fù)雜的日常場景中截取圖像,圖像的目標(biāo)經(jīng)過精確的圖像分割與位置標(biāo)定,共包括80類對(duì)象,包含33萬副圖像,標(biāo)注250萬個(gè)標(biāo)簽。所以這個(gè)模型經(jīng)過與訓(xùn)練以后,已經(jīng)具備了很強(qiáng)的特征提取能力,并可以根據(jù)特征對(duì)圖像進(jìn)行分類,這種網(wǎng)絡(luò)的圖像識(shí)別和分類已經(jīng)其他領(lǐng)域有所應(yīng)用。
YOLOv3模型是由一個(gè)252層的DCNN網(wǎng)絡(luò),只有卷積層,沒有池化層和全連接層,池化層被卷積層(3×3的卷積,stride=2)代替。它的主干網(wǎng)絡(luò)為darknet-53,顧名思義包含53個(gè)卷積層,作為YOLOv3特征提取的主要網(wǎng)絡(luò)結(jié)構(gòu)。我們利用遷移學(xué)習(xí)的思想,對(duì)于低層的網(wǎng)絡(luò)參數(shù)權(quán)重,采用大數(shù)據(jù)COCO數(shù)據(jù)集的訓(xùn)練結(jié)果,后面的網(wǎng)絡(luò)用自己的數(shù)據(jù)集進(jìn)行訓(xùn)練如圖3所示。
圖3 遷移學(xué)習(xí)流程框
實(shí)際訓(xùn)練時(shí)我們凍結(jié)了最前面的249層,最后3層采用我們制作的數(shù)據(jù)集進(jìn)行訓(xùn)練。
網(wǎng)絡(luò)訓(xùn)練過程主要包括如下過程:(1)圖像預(yù)處理:對(duì)圖像進(jìn)行數(shù)據(jù)增強(qiáng)處理,樣本均衡處理。(2)利用遷移學(xué)習(xí)預(yù)訓(xùn)練:加載基于COCO數(shù)據(jù)集的官方預(yù)訓(xùn)練模型,凍結(jié)前面的249層網(wǎng)絡(luò),只訓(xùn)練后面3層,保存訓(xùn)練后的模型參數(shù)和權(quán)重。(3)訓(xùn)練調(diào)參:加載步驟(2)的訓(xùn)練模型和權(quán)重參數(shù),采取部分層凍結(jié)、調(diào)整學(xué)習(xí)率等方法繼續(xù)調(diào)參優(yōu)化。網(wǎng)絡(luò)參數(shù)見表2。
表2 卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練參數(shù)
網(wǎng)絡(luò)模型訓(xùn)練框架采用Keras開源學(xué)習(xí)框架,操作系統(tǒng)是Ubuntu 16.04,CPU是intel i7 8 700 K,GPU是NVIDIA GeForce GTX TITAN Xp,內(nèi)存32G。第1階段預(yù)訓(xùn)練設(shè)置總迭代次數(shù)60輪,網(wǎng)絡(luò)前面249層參數(shù)凍結(jié),只訓(xùn)練最后3層,由于采用YOLOv3官方預(yù)訓(xùn)練權(quán)重,大約經(jīng)過20輪后,Loss值基本收斂,60輪后Loss下降緩慢;第2階段,解凍部分網(wǎng)絡(luò)層,采用第一階段訓(xùn)練的權(quán)重參數(shù)開始訓(xùn)練后,迅速收斂在經(jīng)過126輪迭代后設(shè)置early stop自動(dòng)停止訓(xùn)練,得到最終的訓(xùn)練模型參數(shù),保存此訓(xùn)練參數(shù),結(jié)果如圖4,5所示。
圖4 YOLO模型的Loss曲線
圖5 YOLO模型的IOU曲線
由圖4,5可知,改進(jìn)的YOLO模型的Loss曲線比YOLO模型的Loss曲線隨著迭代次數(shù)的增加振蕩幅度更小,更趨于平緩。而且改進(jìn)的YOLO模型IOU曲線與YOLO模型IOU曲線比,隨著迭代次數(shù)的增加波動(dòng)范圍更小,能夠快速收斂,表明了新模型模型更穩(wěn)定,性能更好。
IOU為預(yù)測框與實(shí)際框的交集面積與并集面積之比。mAP(mean average precision)是指每個(gè)類別的平均查準(zhǔn)率的算術(shù)平均值。通過計(jì)算得出2種模型下各分類的AP,mAP(見表3)以及對(duì)驗(yàn)證集的檢測成功率。
表3 AP及mAP對(duì)比
在驗(yàn)證集中,改進(jìn)的YOLO模型的mAP為0.8743,比YOLO模型mAP提高了3.63%,取得了較為理想的效果。
將測試集中的所有圖像輸入上文已經(jīng)訓(xùn)練好的模型,測試缺陷圖片中每一缺陷分類的預(yù)測情況,如圖6所示,模型會(huì)用一個(gè)矩形框把相應(yīng)的缺陷標(biāo)出,并標(biāo)記上相應(yīng)的缺陷類型。
圖6 模型預(yù)測結(jié)果示例
將測試集中的所有圖片輸入網(wǎng)絡(luò),給出預(yù)測結(jié)果,并與事先標(biāo)記的標(biāo)簽比較,計(jì)算預(yù)測精度,其中平均預(yù)測精度計(jì)算式為:
由表4可知,原YOLOv3模型的預(yù)測準(zhǔn)確率為95.9%,改進(jìn)的YOLOv3模型來預(yù)測鋁型材表面缺陷的平均準(zhǔn)確率為98.2%,提高了2.3%,這個(gè)數(shù)值已經(jīng)超過了人工檢測準(zhǔn)確率98.0%。
表4 測試集預(yù)測結(jié)果
在所有6類的缺陷預(yù)測中,“臟點(diǎn)”的準(zhǔn)確率最低?!芭K點(diǎn)”屬于小目標(biāo)探測,盡管YOLOv3模型的具備多尺度預(yù)測能力,但其大小只有幾個(gè)像素大小,還是容易引起漏檢。除了精度外,檢測速度也是工業(yè)應(yīng)用所關(guān)心的主要因素。我們用上文訓(xùn)練網(wǎng)絡(luò)所用的PC機(jī),加載訓(xùn)練模型所需時(shí)間為2 s左右,檢測每一幅圖片所用的時(shí)間大約是100 ms,即每秒鐘可以檢測10幅圖片,基本滿足在線生產(chǎn)的要求。并沒有達(dá)到Y(jié)OLOv3官方給出的 50 ms[17],主要原因是試驗(yàn)所用的YOLOv3模型是基于Keras框架,而Keras是基于python,YOLOv3模型是基于Darknet框架,Darknet是采用C和CUDA編寫的神經(jīng)網(wǎng)絡(luò)框架,其效率要高于Keras框架。
為改進(jìn)鋁型材生產(chǎn)過程中的表面缺陷檢測方法,本文提出將深度學(xué)習(xí)算法應(yīng)用于鋁型材表面缺陷檢測識(shí)別,通過研究深度學(xué)習(xí)的基本理論和建模方法,建立了基于YOLOv3的網(wǎng)絡(luò)模型缺陷檢測網(wǎng)絡(luò),并通過遷移學(xué)習(xí)和調(diào)參的方法訓(xùn)練網(wǎng)絡(luò),利用訓(xùn)練后的網(wǎng)絡(luò)權(quán)重參數(shù)用于預(yù)測鋁型材表面缺陷。實(shí)驗(yàn)表明本文所采用的基于深度學(xué)習(xí)的識(shí)別方法具有較高的準(zhǔn)確率,達(dá)到了人工檢測的準(zhǔn)確度,可以滿足工業(yè)產(chǎn)品表面質(zhì)量檢測的要求。