王芷薇,郭 斌,胡曉峰,2,羅 哉,段林茂
(1.中國計量大學 計量測試工程學院,浙江 杭州 310018; 2.浙江省先進制造技術重點實驗室,浙江 杭州 310058; 3.杭州沃鐳智能科技股份有限公司,浙江 杭州 310018)
制動主缸是行車制動系統(tǒng)的動力源,在液壓制動系統(tǒng)中有著至關重要的作用[1,2],其質量直接影響汽車的安全性能。主缸在加工過程中會因生產環(huán)境不理想、制造工序不規(guī)范等原因造成主缸內槽表面加工缺陷[3]。缺陷會導致主缸漏油、活塞卡滯等問題。由于主缸的口徑極小,無法用人眼直接觀測。目前在工業(yè)生產中主缸內槽缺陷的檢測方法有內窺鏡人工檢測方法和機器視覺檢測方法。內窺鏡人工檢測方法效率低、精度差,易因工作人員長時間的檢測疲勞而產生檢測誤差;機器視覺檢測方法適應力較差,無法進行自動識別,在圖像預處理及識別過程中難以針對不同種類缺陷進行快速檢測,不同缺陷檢測時要設定不同的閾值[4~6]。
近年來,深度學習技術取得很大進展,可以實現自主識別以及高準確率,因此利用深度學習進行缺陷檢測的研究越來越多。基于深度學習的缺陷檢測方法主要包括兩類:1) 依賴于預定義的錨框(anchor box),通過網絡學習對圖片中上千種的錨框進行判斷,判斷該錨框內是否含有缺陷,再對錨框進行分類。該類檢測的網絡主要有RetinaNet、SSD、YOLOv3和Faster R-CNN等[7];2) 通過網絡學習得到待測圖片中所需要的關鍵點,對關鍵點進行分類,該類檢測網絡有CornerNet和FCOS(fully convolutional one stage)等[8~10]。CornerNet網絡消除了對錨框的依賴,但僅能提取邊緣特征,容易產生很多誤檢。FCOS目標檢測算法在不依賴錨框的基礎上,進行逐像素點預測,減少了重疊計算和訓練所占內存,提高了檢測精度。因此,引入FCOS作為缺陷檢測模型的核心網絡,組建缺陷檢測模型,實現對在線大批量制動主缸內槽表面的砂眼、劃痕、振刀紋多類別缺陷的檢測和分類。
檢測系統(tǒng)流程圖如圖1所示,首先獲取主缸圖像并進行預處理,其次對主缸凹槽的圖片進行不同種類缺陷的分類,以獲取深度學習所需樣本,搭建FCOS網絡并對樣本進行缺陷檢測,最后根據結果進行模型驗證。
圖1 檢測系統(tǒng)流程圖Fig.1 Flow chart of detection system
針對傳統(tǒng)的機器視覺檢測方法,提出基于FCOS目標檢測算法的主缸缺陷檢測的方法,其流程圖如圖2所示。
圖2 檢測流程圖Fig.2 Flow chart of detection
將在線采集的制動主缸內槽表面缺陷圖片經圖像經預處理后,按4:1的比例分為訓練集和測試集用于離線建模,其中缺陷特征標注后的訓練集作為FCOS目標檢測算法的輸入,通過梯度下降法進行迭代,進而優(yōu)化網絡參數,幫助網絡更快收斂,模型訓練完畢后通過測試集檢驗網絡對主缸缺陷檢測的準確率,對網絡進行評估。工業(yè)生產線要求檢測缺陷的均值平均精度達到90%以上,若網絡模型性能達到實際要求,便將網絡投入實際的主缸缺陷在線檢測中,反之則繼續(xù)調整網絡參數并重新訓練網絡。
FCOS是一種全卷積的單階段目標檢測算法,基于逐像素預測的方式預測特征圖上每個空間位置的類別,并直接輸出目標的類別[11]。由于算法不需要雙階段目標檢測算法的特征候選區(qū)域,從而具有更快的檢測速度,算法也消除了對錨框的依賴,完全避免了調整錨框相關的超參數,減小了訓練時的內存占用[12]。
圖3為檢測搭建的FCOS算法的模型結構,FCOS由兩個子網絡組成:特征金字塔網絡和逐像素回歸預測網絡。
圖3 FCOS基本結構Fig.3 Basic structure of FCOS
由于主缸凹槽存在不同種類缺陷重疊的情況,會造成邊界框難以在重疊部分進行回歸,可采用單層特征金字塔網絡消除重疊帶來的模糊性。單層特征金字塔網絡檢測速度快,但只關注了頂層的語義信息,容易忽略底層的小目標信息[13,14],因此提出基于一種多特征融合金字塔網絡,提取圖像的多層特征信息,針對不同層次的特征分別引入金字塔結構,進行特征融合,融合后利用多層特征信息實現邊界框的預測和分類。該方法保證了微小的缺陷目標在高層特征中也有較強的語義信息。
多特征融合金字塔網絡(multi-feature fusion-pyramid network)是綜合考慮低層特征和處理過的高層特征,并且在不同特征層獨立進行預測的網絡。通過對高層特征進行自頂向下的線路和低層特征進行自底向上的線路再橫向連接進行特征融合,生成最終的分辨率圖進行預測[15]。文中的多特征金字塔網絡所用的是以ResNet-101殘差網絡為主干網絡,提取圖像的全局特征。結構如圖4所示。
圖4 特征融合網絡結構圖Fig.4 Featurefusionnetworkarchitecture
所采用的特征金字塔網絡定義了3個級別的特征圖(P3、P4、P5),其中P3、P4、P5是由ResNet網絡中C3、C4、C5通過1×1卷積層再和高層特征2倍上采樣的結果進行融合得到,P3、P4、P5的步幅分別8、16、32,融合后的每個特征級都進行逐像素預測,由于步幅不同,每個特征級可檢測不同大小的對象,實現多層特征的融合。
主缸缺陷圖片的像素為800×1 024,經過特征金字塔網絡,得到的特征圖尺寸分別為100×128、50×64、25×32像素。
逐像素預測法是特征圖中每個像素點的位置經過映射得到預測邊界框從而進行分類的方法。
回歸操作是指在真實邊界框中,每個像素點都有對應的回歸目標h=(l*,t*,r*,b*),l*、t*、r*、b*是該像素點到真實邊界框4條邊的距離。特征圖中的每點像素(x,y)都有與之對應的(l*,t*,r*,b*),如式(1)所示:
(1)
通過回歸分析得到對應關系,即確定網絡隱藏層的參數。由于網絡針對缺陷重疊情況使用特征金字塔網絡,因此不同大小的缺陷分配給不同的特征層進行回歸操作。
訓練集在FCOS目標檢測算法中經過回歸和分類操作后可得到每個像素點與真實邊界框的對應關系以及類別。當未被訓練的樣本輸入網絡時,樣本中每個像素通過逐像素預測法預測邊界框以及邊界框的類別,將預測結果與真實邊界框進行對比并多次迭代修改參數,訓練網絡。
一些遠離圖片中心的像素點采用逐像素預測法后會預測出低質量的邊界框,給檢測結果帶來偏差,因此每個像素點預測出邊界框后加入中心概率(Center-ness)預測分支。
(2)
通過式(2)可知,遠離圖片中心位置的像素點中心概率值小,靠近圖片中心位置的像素點中心概率值接近于1。由于非極大值抑制可以抑制除局部最大值之外的所有梯度值,則通過非極大值抑制,濾除中心概率值小的邊界框。
當訓練集輸入FCOS網絡中得到預測的邊界框時,損失函數表示預測的邊界框與真實邊界框的差距程度[16,17],損失函數定義見式(3):
(3)
圖像的采集系統(tǒng)由視覺成像機構、機械傳動系統(tǒng)和運動控制系統(tǒng)3部分組成,系統(tǒng)結構圖如圖5所示。
圖5 采集系統(tǒng)結構圖Fig.5 Acquisition system structure diagram
視覺成像機構通過垂直加載機構至主缸內部凹槽處,通過拍照獲取凹槽表面原始圖像,如圖6所示。為防止所建網絡出現過擬合現象,經采集、預處理得到10 000張制動主缸內槽表面圖像,再按4:1的比例分為訓練集和測試集以訓練和驗證模型。
圖6 制動主缸內槽表面圖像Fig.6 master cylinder picture
圖片的上下部分為主缸內壁,對后期訓練以及缺陷學習會產生干擾,因此要對主缸凹槽有效區(qū)域ROI進行裁剪。通過對原始圖像灰度轉換得到灰度圖像,根據凹槽邊緣較周圍更亮,其邊緣灰度值較凹槽灰度值更高的特征,對其凹槽有效區(qū)域進行裁剪,裁剪后的圖像如圖7所示。
圖7 裁剪后內槽表面圖像Fig.7 Cropped image of inner groove surface
缺陷標注對建立深度學習網絡至關重要,由于凹槽缺陷大約在1~3 mm左右,采集的圖片是其50~100倍,缺陷相對密封槽是十分微小的,缺陷標注不準確很容易導致在后期訓練深度學習網絡時模型不收斂的情況。針對主缸3種不同種類的缺陷進行標注,缺陷均用Labelme軟件進行標注,如圖8,標注后自動保存為json文件生成COCO數據集,由于后續(xù)對比網絡中Faster R-CNN和Mask R-CNN所用的數據集格式為Pascal VOC,因此將COCO數據集轉成VOC數據集,在Linux系統(tǒng)中搭建深度學習環(huán)境,將生成VOC數據集的路徑添加至代碼中進行網絡訓練。
圖8 3類缺陷標注示意圖Fig.8 Three types of detect labeling schematic diagram
搭建深度學習網絡的主要環(huán)境如下:處理器為Intel Core i7-7700,16 G內存,GPU為GTX 1070,操作系統(tǒng)為在Ubuntu16.04上創(chuàng)建linux虛擬機,python=3.6.5,pytorch=1.3.1,cuda=10.0。基于深度學習網絡的缺陷檢測種類繁多,為了驗證FCOS網絡的性能,將在相同的實驗環(huán)境下,對相同的數據集分別采用Faster R-CNN網絡、Mask R-CNN網絡和FCOS網絡并進行對比。
對比3種網絡模型是否收斂,分別繪制出學習網絡隨著訓練次數增加的檢測損失函數和精度曲線圖,如圖9所示。
圖9 3種網絡的損失函數和精度圖Fig.9 Loss function and precision graph of three kinds of networks
損失函數和精確度圖是3種網絡分別迭代 50 000 次得到,從圖中可以看出,隨著迭代次數的增加,損失值都不斷減小。
Faster R-CNN的損失函數震蕩幅度大,在迭代20 000次前精確度上升較快,但趨勢逐漸緩慢,最終的精確度值也較低;Mask R-CNN損失函數雖震蕩但效果比Faster R-CNN好,當迭代次數達到20 000次左右時,損失值基本趨于穩(wěn)定,最終精確度值比Faster R-CNN高,但精確度值不易收斂,需要迭代更多次數才能達到所需要求;FCOS網絡的損失函數震蕩幅度最小,在迭代20 000次后趨于收斂,迭代次數較少時,精確度雖不如Faster R-CNN好,但隨著次數增加精確度越高且最后趨于穩(wěn)定,最終精確度值最高。Faster R-CNN、Mask R-CNN、FCOS網絡迭代50 000次的最終精確度分別為0.869 1、0.871 4、0.900 4。
分別比較3種網絡的檢測性能,如表1所示。
表1 3種網絡模型性能對比Tab.1 Performance comparison of three network models
表1中準確率表示預測樣本中實際正樣本數占所有正樣本數的比例;召回率表示預測樣本中實際正樣本數占所有預測的樣本的比例;mAP(mean average precision)即平均精度均值,是作為目標檢測中衡量檢測精度的指標。
由于FCOS目標檢測算法消除了錨框的依賴,訓練耗時最短。應用于在線檢測時,采集的新數據不用與錨框進行相關超參數的計算,且不需要區(qū)域候選網絡,工業(yè)產線在線檢測時運用Faster R-CNN網絡檢測單個主缸內槽耗時22 s,Mask R-CNN耗時18 s,而FCOS網絡耗時10 s,FCOS網絡滿足工業(yè)耗時要求且提高了檢測效率;FCOS算法中,預測框內的每個像素點都為正樣本,而其他兩種網絡是基于錨框和真實框達到足夠的交并比時的像素點規(guī)定為正樣本,因此FCOS算法召回率相對較好;FCOS采用特征金字塔網絡,減少了單個像素點的預測框重疊導致的模糊性,并且采用多級特征預測可以提高小目標的檢測精度;FCOS網絡mAP比Mask R-CNN網絡提高2.6%,比Faster R-CNN網絡提高4.9%。
FCOS網絡的檢測結果如圖10所示。圖10中,(a)為砂眼缺陷的檢測效果,(b)為劃痕缺陷的檢測效果,(c)為振刀紋缺陷的檢測效果。
圖10 缺陷檢測效果圖Fig.10 The defect detection effect diagram
本文研究了基于深度卷積神經網絡的目標檢測算法FCOS,對算法原理進行了分析。制動主缸內槽表面的缺陷大多數屬于小面積缺陷且不規(guī)則,Faster R-CNN會出現漏檢情況,FCOS網絡采用特征金字塔網絡提取特征以及多級逐像素預測算法提高了對微小缺陷的檢測效果。針對Mask R-CNN訓練時長較長的問題,FCOS網絡減少了錨框相關參數的計算,大大減短了訓練時長。通過對模型的訓練,FCOS網絡在制動主缸內槽缺陷檢測精度明顯優(yōu)于Mask R-CNN和Faster R-CNN網絡,耗時短,滿足實時檢測的要求。