夏桂方,于正林
(長(zhǎng)春理工大學(xué) 機(jī)電工程學(xué)院,吉林 長(zhǎng)春 130022)
作為一種重要的機(jī)械設(shè)備密封零件,油封在機(jī)械設(shè)備中得到了廣泛應(yīng)用。在機(jī)械設(shè)備中使用有缺陷的油封產(chǎn)品,將會(huì)在一定程度上影響機(jī)械設(shè)備的性能,增加生產(chǎn)成本和環(huán)境污染。
在油封的各類缺陷中,主唇口問題是導(dǎo)致油封密封失效的最主要因素,同時(shí)也是油封缺陷的重點(diǎn)檢測(cè)目標(biāo)。目前,大多數(shù)油封生產(chǎn)企業(yè)仍使用傳統(tǒng)人工檢測(cè)方法對(duì)油封缺陷進(jìn)行檢測(cè),從而造成誤檢率、漏檢率和檢測(cè)成本三者居高不下。
此前,很多學(xué)者提出了采用圖像處理的方法來(lái)克服以上問題。
吳彰良等人[1]提出了基于小波變換模極大值法的油封缺陷圖像邊界檢測(cè),并采用支持向量機(jī)M-ary分類策略,對(duì)油封圖像進(jìn)行了分類識(shí)別。劉潔等人[2]提出了基于熵率聚類分割和環(huán)帶差分的油封缺陷檢測(cè)方法,采用該方法可完成對(duì)油封區(qū)域分割和表面啃傷缺陷的檢測(cè)。張國(guó)平等人[3]采用圖像處理技術(shù),提取了油封的圖像特征信息,并通過(guò)分割圖像方法進(jìn)行了油封的缺陷識(shí)別。石磊等人[4]提出了基于閾值分割和鏈碼法的油封缺陷圖像邊緣檢測(cè)方法,采用最小二乘法擬合油封唇口圓形輪廓,對(duì)其進(jìn)行了缺陷檢測(cè)。
由于這些檢測(cè)方式都必須手動(dòng)獲得油封缺陷特征,致使這種人工提取缺陷特征的方法具有一定局限性,且其步驟繁瑣,對(duì)技術(shù)人員的要求也較高。
因此,在油封的缺陷檢測(cè)方面,迫切需要一種全自動(dòng)、高精度、高穩(wěn)定性的檢測(cè)方法。
筆者以油封缺陷為研究對(duì)象,提出一種基于深度學(xué)習(xí)Faster R-CNN框架的多尺度特征融合的改進(jìn)算法,研究其在油封缺陷圖像識(shí)別中的精確度及效率上的表現(xiàn),并搭建實(shí)驗(yàn)檢測(cè)平臺(tái),收集油封缺陷檢測(cè)的各項(xiàng)數(shù)據(jù),以評(píng)估檢測(cè)模型在油封工業(yè)檢測(cè)環(huán)境中的適用性。
此處,筆者以油封圓環(huán)內(nèi)側(cè)的唇口缺陷為主要檢測(cè)對(duì)象,且所研究的油封材質(zhì)幾乎無(wú)變化,多為橡膠材質(zhì),顏色單一,多為黑色,形狀為圓環(huán)。
根據(jù)實(shí)際生產(chǎn)及應(yīng)用情況,外徑尺寸為16 mm~62 mm且內(nèi)徑尺寸不大于40 mm的中小規(guī)格的油封市場(chǎng)占比較大,因此,筆者選用該規(guī)格范圍的油封作為研究對(duì)象。
檢測(cè)系統(tǒng)的主要硬件設(shè)備:
一臺(tái)型號(hào)為MER-520-79U3M的CMOS工業(yè)相機(jī)(相機(jī)分辨率為2 448×2 048,幀率為79 fps,像素尺寸為3.45 μm×3.45 μm,鏡頭接口為C接口);
一個(gè)型號(hào)為KEYENCE CA-LH16的光學(xué)鏡頭(該鏡頭焦距為16 mm,靶面尺寸為2/3 inch,光圈范圍為1.8~1.6,工作距離為0.05 m-inf,鏡頭接口為C接口);
一組LED環(huán)形光源;一臺(tái)計(jì)算機(jī)(其環(huán)境為Windows10系統(tǒng)Intel(R)Core(TM)i9-10900 X CPU@4.7 GHz,16 G內(nèi)存);基于開源深度學(xué)習(xí)框架Pytorch,采用Anaconda Python3.6編寫,代碼運(yùn)行平臺(tái)Pycharm。
筆者根據(jù)油封缺陷檢測(cè)要求設(shè)計(jì)檢測(cè)系統(tǒng),檢測(cè)系統(tǒng)框圖如圖1所示。
圖1 檢測(cè)系統(tǒng)結(jié)構(gòu)圖
圖1中,油封由傳送帶傳送至裝夾平臺(tái)檢測(cè)位置(由于油封和背景差別明顯且需采集油封細(xì)節(jié)圖像,筆者選用LED環(huán)形光源固定在鏡頭外側(cè)保證采光均勻),由相機(jī)采集模塊采集圖像數(shù)據(jù),送入計(jì)算機(jī)訓(xùn)練好的模型中進(jìn)行缺陷識(shí)別分類,分類后的油封件落入所屬分類倉(cāng)中,完成整個(gè)油封缺陷檢測(cè)流程。
油封缺陷圖像數(shù)據(jù)由上述檢測(cè)系統(tǒng)的圖像采集模塊采集得到,圖像分辨率為1 280×1 024,共采集各類缺陷樣本圖像512張。
油封樣本數(shù)據(jù)縮略圖如圖2所示。
圖2 油封樣本數(shù)據(jù)縮略圖
圖2中包含了常見的3種缺陷類別:凹缺、毛刺和劃痕。
在采集的油封樣本圖像中,油封圓環(huán)區(qū)域外的背景數(shù)據(jù)冗余,因此,為減少后續(xù)處理中的數(shù)據(jù)量,筆者對(duì)采集到的圖像進(jìn)行裁剪處理,并做寬高比1 ∶1的填充[5]。
圖像裁剪過(guò)程示意圖如圖3所示。
圖3 圖像裁剪過(guò)程示意圖
圖3中,筆者首先定位油封的像素位置坐標(biāo),獲得油封的外接矩形標(biāo)框,對(duì)標(biāo)框4個(gè)角點(diǎn)的像素坐標(biāo)取最值,進(jìn)行圖像裁剪,在空白處以像素“0”做填充。
大部分性能優(yōu)越的深度學(xué)習(xí)模型參數(shù)量巨大,導(dǎo)致模型需要在龐大數(shù)據(jù)量的支持下才能取得較好的效果[6]。數(shù)量有限的訓(xùn)練樣本不足以讓深度模型學(xué)習(xí)到缺陷的特征,小樣本下的模型往往出現(xiàn)過(guò)擬合的現(xiàn)象[7]。
綜合數(shù)據(jù)集所依賴的油封缺陷背景復(fù)雜度和深度學(xué)習(xí)算法特性兩個(gè)方面,筆者采用改變亮度、模糊、鏡像翻轉(zhuǎn)和旋轉(zhuǎn)角度等方式,處理數(shù)據(jù)集中的512張樣本數(shù)據(jù),擴(kuò)增至3 072張。
油封缺陷種類的缺陷數(shù)量分布如圖4所示。
圖4 油封缺陷種類的缺陷數(shù)量分布
此處以凹缺為例,筆者對(duì)上述4種方式的圖像增強(qiáng)效果進(jìn)行展示,數(shù)據(jù)擴(kuò)增效果如圖5所示。
圖5 數(shù)據(jù)擴(kuò)增效果
訓(xùn)練Faster R-CNN改進(jìn)網(wǎng)絡(luò)模型需要對(duì)數(shù)據(jù)集缺陷進(jìn)行標(biāo)注,標(biāo)注包含兩個(gè)重要信息(缺陷位置信息和缺陷類別信息),采用LabelImg標(biāo)注工具對(duì)缺陷進(jìn)行標(biāo)框定位和類別記錄[8]。
缺陷類別共有3類,分別為油封主唇口凹缺類別為0,標(biāo)簽為dent;毛刺類別為1,標(biāo)簽為burr;劃痕類別為2,標(biāo)簽為scratch;標(biāo)注后自動(dòng)生成xml文件,文件名與圖片文件名保持一致。
筆者將標(biāo)注好的數(shù)據(jù)集隨機(jī)劃分出80%,生成trainval數(shù)據(jù)提取目錄(其中,原數(shù)據(jù)集的60%作為訓(xùn)練集,20%作為驗(yàn)證集)。
標(biāo)注信息如圖6所示。
圖6 標(biāo)注信息
相比上一代的Fast R-CNN網(wǎng)絡(luò),Faster R-CNN網(wǎng)絡(luò)在性能上有了新的進(jìn)步。它創(chuàng)造性地加入了region proposal network(RPN)區(qū)域建議網(wǎng)絡(luò),相較于之前的分割算法生成候選框的方式,有效提升了檢測(cè)框的生成速度[9]。
Faster R-CNN網(wǎng)絡(luò)框架如圖7所示。
圖7 Faster R-CNN網(wǎng)絡(luò)框架
筆者將特征提取、建議框提取、邊框回歸和分類都整合到一個(gè)網(wǎng)絡(luò),使檢測(cè)速度和精確度有了極大的提升。
模型由低層至高層,圖像的分辨率逐漸降低,視覺層信息逐漸變?nèi)?概念層信息逐漸變強(qiáng),也即更貼近人眼理解的圖像細(xì)節(jié)變得模糊抽象,語(yǔ)義信息所表達(dá)的特征更明晰[10]。
在缺陷的目標(biāo)檢測(cè)任務(wù)中,需要兼顧低層網(wǎng)絡(luò)的視覺層信息和高層網(wǎng)絡(luò)的概念層信息,因此,筆者承繼FPN的融合思路,將低層特征和高層特征融合起來(lái),共同參與特征的提取,提高檢測(cè)方法的高效性和準(zhǔn)確性。
雖然小尺寸油封唇口缺陷占比較大,但中大尺寸的缺陷也占有一定比例,因此,油封缺陷尺寸跨度較大。該方法采用6種尺寸的建議框,從小到大分別是162、322、642、1282、2562、5122,以及3種不同的比例(2 ∶1、1 ∶2、1 ∶1),二者結(jié)合可生成18種建議框(加入162、322、6423種面積的建議框,更便于提取油封唇口小尺寸缺陷特征)。
上述網(wǎng)絡(luò)將產(chǎn)生許多重疊的候選建議框,需要剔除部分重疊建議框,初始化IoU=0.5,在回歸網(wǎng)絡(luò)調(diào)整建議框中心位置。
回歸損失函數(shù)如下式所示:
(1)
分類損失函數(shù)如下式所示:
(2)
完成準(zhǔn)確定位缺陷位置,并區(qū)分缺陷種類的損失函數(shù)如下式所示:
(3)
3.2.1 基于殘差網(wǎng)絡(luò)的改進(jìn)算法
對(duì)油封缺陷數(shù)據(jù)進(jìn)行分析可知,油封缺陷作為前景相較于背景面積占比較小,大部分是小尺寸缺陷。檢測(cè)此類缺陷往往需要加深網(wǎng)絡(luò)層數(shù),達(dá)到提高檢測(cè)精度和效率的目的[11],而以VGG16為框架的Faster R-CNN網(wǎng)絡(luò)增加網(wǎng)絡(luò)訓(xùn)練深度時(shí),容易出現(xiàn)梯度爆炸或消失現(xiàn)象[12]。
因此,筆者將其替換為殘差網(wǎng)絡(luò)ResNet框架,可利用ResNet的殘差單元解決上述梯度爆炸或消失問題,參考計(jì)算數(shù)據(jù)量、計(jì)算速度以及特征提取準(zhǔn)確度,選擇ResNet 50殘差網(wǎng)絡(luò)進(jìn)行模型搭建。
3.2.2 基于FPN的改進(jìn)算法
針對(duì)油封小尺寸缺陷檢測(cè)效果較差的問題,筆者加入FPN特征金字塔結(jié)構(gòu),將包含豐富特征信息的低層特征圖加入后續(xù)檢測(cè),提高檢測(cè)的精確度。
FPN中的RoI Pooling層是提高檢測(cè)精度關(guān)鍵,其輸入要求是尺度不同的特征圖,Faster R-CNN中的RoI Pooling層輸入則是單一尺度,因此,加入FPN是優(yōu)化油封小尺寸缺陷的有效手段[13]。
映射公式如下式所示:
(4)
各符號(hào)含義如表1所示。
表1 各符號(hào)含義
由式(4)可知,建議框的大小與RoI面積相關(guān),面積越小,k值越大。
根據(jù)油封缺陷尺寸信息可知,凹缺、劃痕和毛刺等缺陷的尺寸差異較大,使得ω、h不能透徹地表達(dá)缺陷全部信息。
筆者采用RoI Pooling多尺度結(jié)合的方式解決上述問題,如下式所示:
(5)
融合兩種尺度kn和kn-1的特征,對(duì)小尺度特征上采樣,加入大尺度特征,以保留更多缺陷信息,提高檢測(cè)準(zhǔn)確度。
為了驗(yàn)證基于改進(jìn)的Faster R-CNN網(wǎng)絡(luò)的油封缺陷檢測(cè)方法的高效性和準(zhǔn)確性,筆者進(jìn)行實(shí)驗(yàn)。該實(shí)驗(yàn)以Faster R-CNN網(wǎng)絡(luò)為基礎(chǔ)替換原來(lái)的VGG16為ResNet50,并加入FPN及多尺度融合的RoI輸入方式,與原有Faster R-CNN設(shè)置對(duì)比實(shí)驗(yàn)。
實(shí)驗(yàn)平臺(tái)配置:Windows10系統(tǒng),CPU為Intel i9-10900X(4.7GHz),GPU為NVIDIA RTX 2080Ti,cuda版本10.2,對(duì)應(yīng)cudnn版本為9.1,代碼編寫平臺(tái)為Anaconda Python3.6,Pytorch配置為torch1.16.0,torchvision0.7。
實(shí)驗(yàn)裝置圖如圖8所示。
圖8 實(shí)驗(yàn)裝置圖
圖8中,油封表面缺陷在線檢測(cè)系統(tǒng)的機(jī)械結(jié)構(gòu)由:圖像采集系統(tǒng)機(jī)架、傳送帶、工業(yè)相機(jī)、鏡頭和光源組成。
在生產(chǎn)線的傳送帶上,油封被傳送到檢測(cè)系統(tǒng)下方,相機(jī)根據(jù)傳感器信號(hào)完成采集圖像工作,采集到的圖像數(shù)據(jù)被直接送入到計(jì)算機(jī)模型中,做輸入數(shù)據(jù),經(jīng)檢測(cè)模型識(shí)別分類,然后進(jìn)入生產(chǎn)線分揀機(jī)構(gòu),合格件繼續(xù)由傳送帶送出生產(chǎn)環(huán)節(jié)進(jìn)入包裝環(huán)節(jié),缺陷件分類至各類缺陷的傳送帶,最終進(jìn)入收集處留待查看。
深度學(xué)習(xí)模型訓(xùn)練旨在通過(guò)調(diào)整超參數(shù),找到輸入輸出數(shù)據(jù)間的“黑箱”關(guān)系,即映射的具體形式。訓(xùn)練時(shí)需設(shè)置相關(guān)參數(shù)的初始值(初始值是尋找映射關(guān)系的關(guān)鍵因素)。深度學(xué)習(xí)網(wǎng)絡(luò)高低層各有分工,低層網(wǎng)絡(luò)參數(shù)的特點(diǎn)是不具有特異性,不會(huì)因?yàn)樽R(shí)別對(duì)象不同而出現(xiàn)較大差異,卷積核對(duì)提取識(shí)別對(duì)象邊界信息有通用性[14]。
因此,筆者采用預(yù)訓(xùn)練后遷移學(xué)習(xí)的方式進(jìn)行模型訓(xùn)練,將ImageNet預(yù)訓(xùn)練好的參數(shù)經(jīng)微調(diào)后,應(yīng)用于油封缺陷數(shù)據(jù)集做初始化參數(shù),達(dá)到直擊模型深層參數(shù)調(diào)整,使其更適合油封缺陷檢測(cè)的目的。
為了驗(yàn)證預(yù)訓(xùn)練方法的效果,筆者設(shè)置對(duì)比實(shí)驗(yàn)。其中,方法一為預(yù)訓(xùn)練初始化,方法二為油封缺陷數(shù)據(jù)集從頭訓(xùn)練。
兩種初始化方式的loss值變化如圖9所示。
圖9 兩種初始化方式的loss值變化
由圖9可知,兩種方法的loss值都逐漸收斂,方法一的收斂值小于方法二,證明預(yù)訓(xùn)練方法更優(yōu)。
訓(xùn)練參數(shù)配置:初始學(xué)習(xí)率設(shè)為0.001,采取如下式所示的自然指數(shù)型衰減策略,每批次送入16張圖像,訓(xùn)練步數(shù)為200 epoch。
decayed_learning_rate=learning_rate*exp-decay_rate*glbal_step
(6)
式中:decayed_learning_rate—衰減指數(shù),為小于1的數(shù);global_step—總迭代次數(shù);decay_rate—控制衰減速度。
4.2.1 評(píng)價(jià)指標(biāo)
油封缺陷識(shí)別的目的是為高效、快速、精準(zhǔn)地檢測(cè),并標(biāo)出缺陷的位置和種類。由該目的可知,檢測(cè)模型的評(píng)價(jià)指標(biāo)分別為檢測(cè)速度和精準(zhǔn)程度。目標(biāo)檢測(cè)領(lǐng)域中,常用速度指標(biāo)fps和精確度指標(biāo)mAP完成模型性能評(píng)估。fps是指每秒內(nèi)完成識(shí)別分類處理的圖像數(shù)量,mAP計(jì)算需計(jì)算精度、召回率和平均精度(AP)以及知曉IoU值。
(1)IoU
建議候選框的準(zhǔn)確程度由交并比IoU表示,即建議候選框和標(biāo)注框的重疊度,其計(jì)算方式如下[15]:
(7)
重疊度越大,說(shuō)明建議候選框定位越精確,重疊度為1,定位最精確,為缺陷所在位置;重疊度為0,定位位置為背景。
(2)精準(zhǔn)度和召回率
油封缺陷樣本分為兩種:有缺陷的正樣本和沒有缺陷的負(fù)樣本。模型檢測(cè)出的結(jié)果同樣為兩種:檢測(cè)為有缺陷的預(yù)測(cè)正樣本和檢測(cè)為沒有缺陷的負(fù)樣本。因此,油封缺陷檢測(cè)結(jié)果將出現(xiàn)以下4種:TP為將正樣本檢測(cè)為正樣本;TN為將負(fù)樣本檢測(cè)為負(fù)樣本;FP為將負(fù)樣本檢測(cè)為正樣本;FN為將正樣本檢測(cè)為負(fù)樣本。
精確度和召回率如下式所示:
(8)
精確度為正確檢測(cè)出油封缺陷的樣本占所有樣本的比例。召回率為正確檢測(cè)出油封缺陷的樣本占確實(shí)有缺陷的樣本的比例。精準(zhǔn)度和召回率是評(píng)價(jià)模型有效性的兩個(gè)關(guān)鍵指標(biāo),但精確度的提高會(huì)導(dǎo)致召回率的降低,同樣,召回率的提高也會(huì)導(dǎo)致精確度的降低。
為了合理權(quán)衡兩個(gè)指標(biāo),找到最佳效果的模型參數(shù),此處筆者采用平均精度值評(píng)估模型[16]。
(3)平均精度(AP)
在油封缺陷的檢測(cè)模型中[17],置信度是指預(yù)測(cè)框內(nèi)檢測(cè)出是該類缺陷的概率,取值為0~1[18]。置信度的值越接近于1,說(shuō)明預(yù)測(cè)框內(nèi)缺陷是該類缺陷的可能性越大;反之,置信度的值越接近于0,說(shuō)明預(yù)測(cè)框內(nèi)缺陷是該類缺陷的可能性越小。
AP值的計(jì)算與上述置信度相關(guān),對(duì)預(yù)測(cè)框內(nèi)顯示的置信度數(shù)值按從大到小進(jìn)行排序,生成含有精確度和召回率值的有序數(shù)組。利用數(shù)組數(shù)據(jù)繪制精確度-召回率曲線,線下面積即為平均精度(AP)。
經(jīng)平滑處理后的曲線計(jì)算AP值如下式所示:
(9)
平均精度均值mAP為所有類別的AP的平均值,其計(jì)算如下式所示:
(10)
式中:n—缺陷的類別數(shù);APi—每一類缺陷的平均精度。
4.2.2 量化分析
訓(xùn)練完成后,筆者計(jì)算各類缺陷的識(shí)別精確度和召回率。不同模型的識(shí)別精度和召回率如表2所示。
表2 不同模型的識(shí)別精度和召回率
改進(jìn)后,模型檢測(cè)每類缺陷的精確度和召回率都有一定的提升,且精確度都在0.95以上,召回率也都在0.85以上(尤其是針對(duì)劃痕這類尺寸跨度大,且小尺寸居多的缺陷,針對(duì)性改進(jìn)后使得精確度有了大幅提升),說(shuō)明改進(jìn)模型對(duì)油封缺陷檢測(cè)效果好、準(zhǔn)確度佳[19]。
筆者計(jì)算各類缺陷的識(shí)別AP和總體mAP,不同模型的識(shí)別AP、mAP和速度,如表3所示。
表3 不同模型的識(shí)別AP、mAP和速度
由表3可知:在FPN+ResNet50框架下,改進(jìn)算法mAP達(dá)到85.5,比VGG16框架下的Faster R-CNN高1.4;改進(jìn)算法的識(shí)別速度達(dá)16 fps,比改進(jìn)前低4 fps。
根據(jù)生產(chǎn)數(shù)據(jù)可知,油封的生產(chǎn)速度低于16 fps,說(shuō)明改進(jìn)模型雖然損失了一些檢測(cè)速度,但提升了油封缺陷檢測(cè)的準(zhǔn)確度。
改進(jìn)前缺陷檢測(cè)結(jié)果如圖10所示。
圖10 改進(jìn)前缺陷檢測(cè)結(jié)果
改進(jìn)后缺陷檢測(cè)結(jié)果如圖11所示。
圖11 改進(jìn)后缺陷檢測(cè)結(jié)果
對(duì)比圖(10,11)可知:基于VGG16的Faster R-CNN網(wǎng)絡(luò)對(duì)小尺寸的毛刺有漏檢的情況,對(duì)劃痕這類紋理特征表現(xiàn)比較多樣的缺陷定位不準(zhǔn);而改進(jìn)后的Faster R-CNN網(wǎng)絡(luò)對(duì)毛刺、劃痕和凹缺的檢測(cè)精確度和定位準(zhǔn)確度都高于改進(jìn)前。
筆者采用FPN結(jié)構(gòu)及調(diào)整RPN建議框尺寸的方法,對(duì)以ResNet 50為主干網(wǎng)絡(luò)的Faster R-CNN檢測(cè)模型進(jìn)行了特征多尺度融合改進(jìn),并采用預(yù)訓(xùn)練方案,對(duì)油封數(shù)據(jù)集進(jìn)行了訓(xùn)練,并固化了其參數(shù),采用油封缺陷檢測(cè)實(shí)驗(yàn),對(duì)改進(jìn)方案的有效性進(jìn)行了驗(yàn)證。
研究結(jié)果表明:
(1)與改進(jìn)前的傳統(tǒng)Faster R-CNN檢測(cè)模型相比,改進(jìn)后的油封缺陷檢測(cè)模型精確度和召回率更高,劃痕、毛刺和凹缺的檢測(cè)精確度分別達(dá)到0.96、0.95和0.97,召回率分別達(dá)到0.89、0.88和0.91,說(shuō)明改進(jìn)后的模型檢測(cè)效果更可靠;
(2)改進(jìn)后模型mAP可達(dá)85.5%,高于改進(jìn)前模型1.4%;識(shí)別速度達(dá)16 fps,比改進(jìn)前低4 fps,但高于油封生產(chǎn)速度,這說(shuō)明改進(jìn)模型在不影響檢測(cè)效率的情況下,雖然損失了一些檢測(cè)速度,但提升了油封缺陷檢測(cè)的準(zhǔn)確度。
筆者采用上述檢測(cè)系統(tǒng)及其模型,在油封主唇口功能缺陷的檢測(cè)方面取得了一定的進(jìn)展。下一步,筆者擬將其延伸至油封外觀其他位置的瑕疵檢測(cè),以對(duì)油封產(chǎn)品質(zhì)量進(jìn)行全面把控。