文生平 周正軍 張嘯言 陳志鴻
(1.華南理工大學(xué) 廣東省高分子先進(jìn)制造技術(shù)及裝備重點(diǎn)實(shí)驗(yàn)室,廣東 廣州 510640;2.華南理工大學(xué) 聚合物加工 工程教育部重點(diǎn)實(shí)驗(yàn)室,廣東 廣州 510640;3.廣州市井源機(jī)電設(shè)備有限公司,廣東 廣州 511480)
軸承是一種常見(jiàn)的機(jī)械零件,在機(jī)械結(jié)構(gòu)中可以起到一定的支撐作用,其主要功能是支撐機(jī)械旋轉(zhuǎn)體、降低旋轉(zhuǎn)體在運(yùn)動(dòng)過(guò)程中的摩擦力,并保證旋轉(zhuǎn)體的回轉(zhuǎn)精度。滾子作為滾動(dòng)軸承中主要的承壓部件,表面如果存在缺陷,其使用性能與使用壽命都將大打折扣,因此對(duì)滾子幾何精度及表面粗糙度的要求往往比對(duì)其他部件的更高。
現(xiàn)有的軸承滾子表面質(zhì)量檢測(cè)方法中,以人工檢查為代表的傳統(tǒng)檢測(cè)方法由于檢測(cè)效率低、人工成本過(guò)高等原因,已經(jīng)不能滿足現(xiàn)代工業(yè)的需求,而基于視覺(jué)的表面缺陷檢測(cè)因其高效率、低成本等優(yōu)勢(shì)越來(lái)越被人們所重視。此外,隨著近年來(lái)人工智能技術(shù)的不斷突破及國(guó)家對(duì)于“機(jī)器換人”的大力扶持,將人工智能技術(shù)應(yīng)用于缺陷檢測(cè)也越來(lái)越成為研究熱點(diǎn)。
目前,主流的軸承滾子缺陷視覺(jué)檢測(cè)流程一般是圖像預(yù)處理、ROI(感興趣區(qū)域)提取、模式識(shí)別。隨著軸承滾子缺陷視覺(jué)檢測(cè)技術(shù)的不斷發(fā)展,國(guó)內(nèi)外均取得了一系列成果。國(guó)外,Zheng等[1]基于遺傳算法與圖像形態(tài)學(xué)開(kāi)發(fā)了一套金屬表面視覺(jué)檢測(cè)實(shí)驗(yàn)設(shè)備;Pernkopf等[2]提出了3種適用于金屬表面缺陷檢測(cè)的的圖像采集方案;Hemmati等[3]設(shè)計(jì)了一種新的信號(hào)處理算法,并利用聲發(fā)射技術(shù)對(duì)軸承表面缺陷的尺寸進(jìn)行測(cè)量;Bastami等[4]通過(guò)自回歸模型和包絡(luò)分析來(lái)增強(qiáng)滾動(dòng)體進(jìn)出缺陷區(qū)域的特征,并利用兩個(gè)缺陷事件之間的持續(xù)時(shí)間來(lái)估計(jì)缺陷大??;Sobie等[5]使用從滾動(dòng)軸承動(dòng)力學(xué)高分辨率模擬中獲得的信息來(lái)生成訓(xùn)練數(shù)據(jù),并將這些數(shù)據(jù)用于訓(xùn)練機(jī)器學(xué)習(xí)算法,進(jìn)而實(shí)現(xiàn)軸承故障檢測(cè)。國(guó)內(nèi),邵珠慶[6]利用Matlab對(duì)圓錐滾子表面的劃痕、麻點(diǎn)、壓痕及銹蝕缺陷進(jìn)行了檢測(cè);李楊[7]采用人工神經(jīng)網(wǎng)絡(luò)模型對(duì)微小軸承的表面進(jìn)行了缺陷檢測(cè);魏利勝等[8]提出了一種融合單應(yīng)性約束SIFT(尺度不變特征變化)的軸承滾子檢測(cè)方法;重慶郵電大學(xué)的劉超[9]基于Retinex光照校正算法提出一種改進(jìn)算法,在該算法的基礎(chǔ)上設(shè)計(jì)了一套軸承滾子瑕疵檢測(cè)算法;陳金貴等[10]對(duì)Niblack算法進(jìn)行改進(jìn),實(shí)現(xiàn)了對(duì)軸承滾子表面缺陷的區(qū)域分割;陳昊等[11]提出了一種基于圖像光流的軸承滾子表面缺陷檢測(cè)方法。
在計(jì)算機(jī)視覺(jué)領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)模型近年來(lái)取得了豐碩的研究成果,其端到端的模型特性也使得研發(fā)工作相對(duì)傳統(tǒng)圖像處理方法更加容易[12]。文中對(duì)軸承滾子表面缺陷的視覺(jué)檢測(cè)進(jìn)行了研究,并針對(duì)缺陷的尺度變化問(wèn)題設(shè)計(jì)了一套基于計(jì)算機(jī)視覺(jué)的軸承滾子表面缺陷檢測(cè)算法,在實(shí)驗(yàn)中取得了比較高的準(zhǔn)確率。
文中提出的表面缺陷檢測(cè)系統(tǒng)的機(jī)械結(jié)構(gòu)主要由上料機(jī)、自動(dòng)送料機(jī)、端面相機(jī)及光源、線掃描相機(jī)及光源、卸料機(jī)等構(gòu)成。系統(tǒng)結(jié)構(gòu)示意圖見(jiàn)圖1。
1—PLC;2—大小端光源及相機(jī);3—進(jìn)料機(jī)構(gòu); 4—出料機(jī)構(gòu);5—線掃描光源;6—PC;7—線掃描相機(jī)
檢測(cè)系統(tǒng)下位機(jī)為PLC,上位機(jī)為工控機(jī)(i7-6700k CPU,NVIDIA GTX-1080 GPU,128 GB RAM)。下位機(jī)負(fù)責(zé)數(shù)字IO(輸入輸出)及運(yùn)動(dòng)控制,上位機(jī)負(fù)責(zé)圖像采集、圖像處理、結(jié)果輸出等。檢測(cè)系統(tǒng)的3D模型如圖2所示。
圖2 表面缺陷檢測(cè)系統(tǒng)的3D模型
由于金屬表面容易反光,為了獲得全面的圖像信息以便于后續(xù)的缺陷檢測(cè),在對(duì)比了多種不同的光源方案后,選擇了針對(duì)端面的高低角度光源及針對(duì)柱面的明暗場(chǎng)光源,并在端面使用端面相機(jī)、柱面使用線掃描相機(jī)來(lái)獲取軸承滾子圖像。光學(xué)成像模塊如圖3所示。
圖3 光學(xué)成像模塊Fig.3 Photos of optical imaging modules
在軸承滾子的生產(chǎn)過(guò)程中,軸承滾子的表面總是不可避免地會(huì)出現(xiàn)各種缺陷。其中軸承滾子的端面、外徑圓柱面及倒角處是最容易出現(xiàn)缺陷的部位。常見(jiàn)的表面缺陷包括物理碰撞引起的損傷與劃痕、材料表面老化引起的銹蝕與加工過(guò)程中倒角部位的缺料等。
如圖4所示,軸承滾子的常見(jiàn)表面缺陷包括以下幾種:
(1)劃痕,如圖4(a)和4(b)所示,主要為硬物劃傷軸承滾子表面后留下的痕跡;
(2)損傷,如圖4(c)和4(d)所示,主要是由于物理碰撞在滾子表面留下的大小不均勻且無(wú)規(guī)則的凹痕;
(3)倒角缺料,如圖4(e)、4(f)所示,主要是指在加工過(guò)程中由于各種原因?qū)е碌臐L子倒角出現(xiàn)凹陷或突起等不連續(xù)的情況;
(4)銹蝕,如圖4(g)、4(h)所示,主要是軸承滾子由于潮濕等原因表面被腐蝕生銹后產(chǎn)生的缺陷;
(5)欠磨,如圖4(i)所示,主要是由于軸承滾子表面研磨不充分而產(chǎn)生的缺陷。
上述表面缺陷直接影響著軸承滾子的使用性能,特別是對(duì)軸承的承載能力和穩(wěn)定性有較大的影響。因?yàn)閳A柱面是軸承滾子的主要工作表面,同時(shí)也是受力面,所以圓柱面不允許出現(xiàn)任何缺陷,只要在圓柱面檢測(cè)到缺陷的存在,該工件將直接被判定為不合格工件。而滾子的兩個(gè)端面雖然不是主要工作面,但是若端面的表面缺陷面積過(guò)大,也會(huì)對(duì)滾子的使用性能帶來(lái)影響,故需對(duì)端面在進(jìn)行缺陷檢測(cè)后計(jì)算缺陷的面積大小,當(dāng)缺陷面積超過(guò)預(yù)設(shè)的閾值時(shí),該工件也將被判定為不合格產(chǎn)品。
圖4 常見(jiàn)的軸承滾子表面缺陷Fig.4 Common surface defects of bearing roller
在上述各種表面缺陷中,以圖4(e)、4(f)為代表的倒角缺料均出現(xiàn)在圖像的輪廓位置,該缺陷在下文提及的算法流程中通過(guò)輪廓檢測(cè)的方式被首先檢測(cè)出來(lái)。由于篇幅限制,文中對(duì)一些未提及的出現(xiàn)頻率極低的缺陷不做過(guò)多討論,僅著重針對(duì)劃痕、損傷、銹蝕與欠磨這4種表面缺陷的檢測(cè)進(jìn)行討論。4種表面缺陷的細(xì)節(jié)如圖5所示。
在對(duì)軸承滾子的表面缺陷檢測(cè)中,倒角缺料缺陷均出現(xiàn)在倒角的輪廓上,可以采用傳統(tǒng)的霍夫變換加邊緣檢測(cè)的方法判斷產(chǎn)品是否合格。而以劃痕、損傷、銹蝕及欠磨等為代表的一系列表面缺陷的特征變化比較復(fù)雜,規(guī)律性較差,故采用卷積神經(jīng)網(wǎng)絡(luò)對(duì)其進(jìn)行檢測(cè)。
表面缺陷檢測(cè)算法流程如下:首先讀入圖像,如果圖像來(lái)自兩個(gè)端面圖像相機(jī),則先對(duì)圖像進(jìn)行1次輪廓檢測(cè),判斷該工件是否出現(xiàn)倒角缺料缺陷;若檢測(cè)到端面輪廓缺陷,則該工件將直接被判為不合格產(chǎn)品;若圖像來(lái)自線掃描相機(jī),或者圖像來(lái)自端面相機(jī)且未檢測(cè)到端面輪廓缺陷,則將圖像送入卷積神經(jīng)網(wǎng)絡(luò)提取缺陷ROI。然后,將ROI進(jìn)行閾值分割來(lái)計(jì)算缺陷面積,若缺陷面積超過(guò)所設(shè)閾值則判定為不合格產(chǎn)品,反之則將該產(chǎn)品判為合格產(chǎn)品。算法流程如圖6所示。
圖5 4種常見(jiàn)的表面缺陷的細(xì)節(jié)Fig.5 Details of four common surface defects
圖6 表面缺陷檢測(cè)算法流程圖Fig.6 Flow chart of the proposed surface defects detection algorithm
當(dāng)軸承滾子出現(xiàn)倒角缺料缺陷時(shí),觀察端面相機(jī)中拍攝到的圖像,會(huì)發(fā)現(xiàn)軸承滾子并不是圓形的,如圖7所示。倒角缺料會(huì)導(dǎo)致滾子在使用過(guò)程中無(wú)法正常工作,因此第一步要先將這些倒角缺料的滾子剔除掉。
圖7 端面相機(jī)拍攝到的倒角缺料缺陷
輪廓檢測(cè)的目的是判斷工件是否出現(xiàn)倒角缺料,其核心思想是先通過(guò)多次霍夫變換提取圓心坐標(biāo)的平均值,經(jīng)圖像降噪后再采用邊緣檢測(cè)方法提取圖像的輪廓邊緣,并計(jì)算邊緣各點(diǎn)到圓心的距離是否僅在一個(gè)很小的范圍內(nèi)波動(dòng),當(dāng)檢測(cè)到有輪廓點(diǎn)與波動(dòng)范圍相差比較大時(shí),則可判定該輪廓不圓,進(jìn)而將該工件判定為不合格產(chǎn)品。
3.2.1 霍夫圓檢測(cè)
霍夫變換可以用于檢測(cè)圓和直線,因?yàn)閷?duì)噪聲及形狀不完整的情況并不敏感,所以分割結(jié)果非常穩(wěn)定,在缺陷檢測(cè)中有較好的效果?;舴驁A檢測(cè)的原理描述如下。
設(shè)圓心為(m,n),半徑為r,則圓滿足方程
(xi-m)2+(yi-n)2=r2
(1)
式(1)也可以理解為圓上的點(diǎn)(xi,yi)在空間(m,n,r)中的解析式方程。圓上的任意一點(diǎn)可以映射為一個(gè)圓錐面,而所有點(diǎn)映射的圓錐面簇在參數(shù)空間中都相交于一點(diǎn)(m0,n0,r0),則該點(diǎn)代表在圖像空間中的圓心與半徑。霍夫圓變換簡(jiǎn)圖如圖8所示。
圖8 霍夫圓變換簡(jiǎn)圖Fig.8 Simplified diagram of Hough circle transform
3.2.2 輪廓檢測(cè)算法
文中利用OpenCV庫(kù)中提供的霍夫變換算法來(lái)計(jì)算圓心與半徑,對(duì)每張圖像使用10次霍夫圓變換并取平均值。然后,利用Canny邊緣檢測(cè)算法[13]提取圖像的真實(shí)輪廓,最后計(jì)算輪廓上各個(gè)點(diǎn)到圓心之間距離與圓半徑的標(biāo)準(zhǔn)差std,判斷該標(biāo)準(zhǔn)差是否大于預(yù)設(shè)閾值F。若標(biāo)準(zhǔn)差小于閾值F則認(rèn)為該工件的端面是一個(gè)完整的圓,不存在倒角缺料,隨后進(jìn)入下一步——通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取ROI。反之,則認(rèn)為端面不圓,存在倒角缺料,是不合格產(chǎn)品。具體運(yùn)算公式如下:
(2)
(3)
(4)
(5)
式中,xs、ys、rs分別為圓心坐標(biāo)及半徑平均值,xsi、ysi、rsi分別為第i次霍夫變換計(jì)算出的圓心坐標(biāo)及半徑,dj為真實(shí)輪廓到圓心的距離。
通過(guò)大量實(shí)驗(yàn)后發(fā)現(xiàn),閾值設(shè)為0.4效果最好。檢測(cè)效果如圖9所示。
圖9 輪廓檢測(cè)結(jié)果Fig.9 Result of contour detection
卷積神經(jīng)網(wǎng)絡(luò)模型目標(biāo)檢測(cè)方法主要分為一階段目標(biāo)檢測(cè)模型與兩階段目標(biāo)檢測(cè)模型兩種。其中兩階段目標(biāo)檢測(cè)模型精度高但速度較慢,在軸承滾子表面缺陷檢測(cè)中無(wú)法做到實(shí)時(shí)在線檢測(cè)。而以YOLO、SSD為代表的一階段目標(biāo)檢測(cè)模型雖然在檢測(cè)速度上具有較大優(yōu)勢(shì),但準(zhǔn)確率相對(duì)較低。以YOLO為例,在對(duì)不同尺度的目標(biāo)進(jìn)行檢測(cè)時(shí)容易出現(xiàn)小目標(biāo)漏檢。而在表面缺陷檢測(cè)中,由于缺陷具有較大的隨機(jī)性,所以各類缺陷的尺度變化大,如圖10、11所示,YOLO會(huì)因小目標(biāo)的漏檢而導(dǎo)致檢測(cè)效果差。
圖10 小尺度缺陷Fig.10 Small-scale defect
圖11 大尺度缺陷Fig.11 Large-scale defect
SSD雖然在不同的特征圖上進(jìn)行了預(yù)測(cè),對(duì)于小目標(biāo)缺陷的檢測(cè)精度相對(duì)YOLO有一定提升,但是由于單階段網(wǎng)絡(luò)分類器存在嚴(yán)重的數(shù)據(jù)不均衡問(wèn)題,分類器在進(jìn)行分類時(shí)因?qū)颖玖慷嗟念愋瞳@得了較大的權(quán)重,導(dǎo)致對(duì)該類型有所“偏好”,所以檢測(cè)效果不夠理想。
有鑒于此,文中采用特征圖金字塔結(jié)構(gòu)的RetinaNet[14]網(wǎng)絡(luò)模型,并使用基于交叉熵?fù)p失的Focal Loss作為損失函數(shù),該方法在滿足在線檢測(cè)的情況下,精度超越了兩階段網(wǎng)絡(luò)Faster R-CNN。
3.3.1 Focal Loss損失函數(shù)
Focal Loss損失函數(shù)的實(shí)質(zhì)是在交叉熵?fù)p失函數(shù)的基礎(chǔ)上額外附加一個(gè)權(quán)重因子,使得損失函數(shù)更加關(guān)注樣本較少的那一類。二分類情況下Focal Loss損失函數(shù)的原理如下。
假設(shè)目標(biāo)的真實(shí)標(biāo)記為y,正類樣本y=1,負(fù)類樣本y=0,p為模型預(yù)測(cè)y=1的概率,則有
p∈[0,1]
(6)
標(biāo)準(zhǔn)交叉熵為
(7)
定義
(8)
則交叉熵可以寫(xiě)成
CE(p,y)=CE(pt)=-logpt
(9)
對(duì)于數(shù)據(jù)樣本不均衡的問(wèn)題,引入1個(gè)權(quán)重因子α,使得樣本量較少的一類得到1個(gè)較大的權(quán)重而樣本量較多的一類的權(quán)重相對(duì)較小,則損失函數(shù)變?yōu)?/p>
CE(pt)=-αtlogpt
(10)
常見(jiàn)的權(quán)重因子為(1-pt)γ,其中γ為聚焦參數(shù)且有γ≥0,則Focal Loss損失函數(shù)為
FL(pt)=-(1-pt)γlogpt
(11)
當(dāng)γ取不同值時(shí),對(duì)應(yīng)的損失函數(shù)如圖12所示。圖中,曲線的右半段代表分類器預(yù)測(cè)的概率已經(jīng)較高,這就意味著分類器對(duì)于這些樣本已經(jīng)可以達(dá)到非常好的分類效果,因此可以適當(dāng)降低這些樣本的權(quán)重,使得分類器更多關(guān)注分類還不夠好的樣本??梢钥吹剑?dāng)γ增大時(shí),損失函數(shù)對(duì)那些分類效果已經(jīng)很好的樣本損失值已經(jīng)接近于0。
圖12 不同γ取值時(shí)的損失值Fig.12 Loss value varying with γ
在Focal Loss損失函數(shù)的基礎(chǔ)上再增加一個(gè)平衡因子αt,則有
FL(pt)=-αt(1-pt)γlogpt
(12)
3.3.2 RetinaNet網(wǎng)絡(luò)結(jié)構(gòu)
RetinaNet網(wǎng)絡(luò)結(jié)構(gòu)由ResNet[15]與FPN[16]兩部分構(gòu)成。ResNet是目前最有效的特征提取網(wǎng)絡(luò)之一,通過(guò)引入殘差模塊,深度神經(jīng)網(wǎng)絡(luò)中的梯度消失與梯度爆炸現(xiàn)象得到了一定程度的緩解,有效地解決了深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練困難的問(wèn)題。在殘差模塊的輸入和輸出之間引入1個(gè)Shortcut連接,成為恒等映射。圖13所示是兩個(gè)采用ReLU激活函數(shù)的殘差模塊。恒等映射不同于簡(jiǎn)單的堆疊網(wǎng)絡(luò),它可使原始輸出不通過(guò)前面網(wǎng)絡(luò)層的非線性變換而直接輸入后面的網(wǎng)絡(luò)層中。將輸出變?yōu)镠(x)=F(x)+x,而學(xué)習(xí)任務(wù)由H(x)變?yōu)镕(x)=H(x)-x,其中H(x)和F(x)分別表示殘差模塊輸出與卷積層輸出。
圖13 殘差模塊Fig.13 Residual modules
目前幾種主流的目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖14所示。在傳統(tǒng)的目標(biāo)檢測(cè)網(wǎng)絡(luò)中,僅用最后一層輸出>特征圖的單特征圖(Single Feature Map)模式進(jìn)行預(yù)測(cè),然而這種模式對(duì)小尺度目標(biāo)非常不友好,檢測(cè)效果差。Fast/Faster R-CNN中引入了圖像金字塔(Featurized Image Pyramid)結(jié)構(gòu),雖然提升了檢測(cè)效果,但同時(shí)帶來(lái)了極大的運(yùn)算量與內(nèi)存負(fù)擔(dān)。SSD算法利用卷積神經(jīng)網(wǎng)絡(luò)本身多層次特性的金字塔特征層次(Pyramidal Feature Hierarchy)模式來(lái)進(jìn)行預(yù)測(cè),由于底層特征的語(yǔ)義信息較弱導(dǎo)致小目標(biāo)的檢測(cè)效果雖然有一定提升但仍不夠理想。而FPN(Feature Pyramid Networks)通過(guò)自下而上的路徑(Bottom-Up Pathway)、自上而下的路徑(Top-Down Pathway)及橫向鏈接(Lateral Connections)共同構(gòu)造了一種獨(dú)特的特征金字塔,能夠讓各個(gè)尺度的特征都具有較強(qiáng)的語(yǔ)義信息,在避免過(guò)大計(jì)算量的同時(shí)對(duì)多尺度目標(biāo)取得了較好的檢測(cè)效果。
圖14 幾種常見(jiàn)的目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)Fig.14 Several common network structures for object detection
RetinaNet結(jié)合了ResNet與FPN的優(yōu)點(diǎn),在得到有效的特征金字塔之后,對(duì)特征金字塔的每一層都通過(guò)兩個(gè)結(jié)構(gòu)相同但參數(shù)各異的子網(wǎng)絡(luò)分別進(jìn)行目標(biāo)類別分類與特征框位置回歸,其結(jié)構(gòu)如圖15所示。
圖15 RetinaNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.15 Network structure of RetinaNet
各模型的性能對(duì)比如圖16所示。可以看出,在精度方面一階段檢測(cè)模型RetinaNet已經(jīng)超越了兩階段檢測(cè)模型Faster R-CNN,雖然與YOLO、SSD相比,RetinaNet在速度方面不占優(yōu)勢(shì),但它在FPS(檢測(cè)幀率)為15時(shí)便可完全達(dá)到軸承滾子實(shí)時(shí)在線檢測(cè)的要求。
圖16 各模型的性能對(duì)比Fig.16 Performance comparison of the models
3.3.3 RetinaNet的改進(jìn)方案
在卷積神經(jīng)網(wǎng)絡(luò)的底層學(xué)習(xí)到的是比較具體的紋理、顏色等低語(yǔ)義信息特征,而在高層學(xué)習(xí)到的是一些十分抽象的高語(yǔ)義信息特征。在工業(yè)領(lǐng)域的表面缺陷檢測(cè)中,對(duì)于是否存在缺陷的最重要判據(jù)是工件外形的顏色與紋理。為了加大這些紋理與顏色特征對(duì)預(yù)測(cè)結(jié)果的影響,文中使用DenseNet[17]代替ResNet作為特征提取網(wǎng)絡(luò),并針對(duì)這兩種特征提取網(wǎng)絡(luò)分別進(jìn)行實(shí)驗(yàn)。DenseNet的核心是用密集連接模塊代替ResNet的殘差模塊,密集連接模塊的基本結(jié)構(gòu)如圖17所示,圖中BN代表批歸一化,激活函數(shù)為ReLU,Conv代表卷積層,X0至X4為特征圖,H代表通過(guò)卷積計(jì)算下一層,箭頭代表恒等映射。
圖17 DenseNet密集連接模塊Fig.17 DenseNet dense connection module
在1個(gè)密集連接模塊中,第L層的輸出不僅與第L-1層有關(guān),而且與它之前的每一層都有關(guān)。設(shè)第L層的輸出為XL,第L層的激活函數(shù)為HL,則有
XL=HL([X0,X1,…,XL-1])
(13)
式中,[ ]代表拼接操作,具體是指將第L-1層的輸出與前面各層的輸出按照通道數(shù)維度組合在一起,再通過(guò)激活函數(shù)增加非線性。
DenseNet與ResNet相比,其共同點(diǎn)是對(duì)不同層的特征圖都進(jìn)行特征融合,ResNet采用的融合方式是特征圖對(duì)應(yīng)位置像素的相加,即add操作,而DenseNet采用的融合方式是將特征圖在通道數(shù)維度進(jìn)行拼接,即concat操作。這兩種方法均能達(dá)到特征融合的目的。通過(guò)add操作可以根據(jù)原有特征生成新的特征,雖然生成的新特征與原有特征有關(guān),但在這個(gè)過(guò)程中原有特征消失了,這就造成了一定程度上的特征損失。而concat操作直接將特征圖拼接在一起組合成新的特征圖,特征的組合問(wèn)題交給卷積神經(jīng)網(wǎng)絡(luò)自己去學(xué)習(xí),這樣既避免了人為干預(yù)對(duì)特征融合帶來(lái)的影響,又保證了在整個(gè)過(guò)程中不會(huì)出現(xiàn)特征損失。
此外,DenseNet相比ResNet擁有更少的參數(shù),計(jì)算更高效,并且降低了訓(xùn)練成本。DenseNet的密集型連接相對(duì)ResNet加強(qiáng)了特征的重復(fù)使用以及底層特征對(duì)預(yù)測(cè)結(jié)果的影響。同時(shí),隨著網(wǎng)絡(luò)深度的逐漸增加,在面對(duì)梯度消失與梯度爆炸時(shí)DenseNet的效果要比ResNet更加出色,大大降低了模型的訓(xùn)練難度。
當(dāng)滾子圓柱面未檢測(cè)到缺陷而端面檢測(cè)到缺陷時(shí),需對(duì)滾子端面缺陷面積進(jìn)行計(jì)算。缺陷面積計(jì)算的核心任務(wù)是對(duì)缺陷進(jìn)行分割,其中閾值分割是圖像分割中的一種常用方法,它首先選擇合適的閾值,然后將圖像中所有像素點(diǎn)的灰度值與這個(gè)閾值進(jìn)行對(duì)比,大于閾值的像素點(diǎn)歸為一類,其他像素點(diǎn)歸為另一類。設(shè)原始圖像為f(x,y),分割后的圖像為g(x,y),閾值為T(mén),則閾值分割滿足下式:
(14)
顯然,閾值分割的關(guān)鍵在于閾值T的選取。幾種常見(jiàn)的閾值分割法如下。
1)人工經(jīng)驗(yàn)選擇法 通過(guò)人工對(duì)比分析大量圖像之后,根據(jù)經(jīng)驗(yàn)選擇1個(gè)恰好能夠?qū)⒈尘芭c前景區(qū)分開(kāi)來(lái)的恰當(dāng)閾值。但這種方法效率十分低,并且閾值固定不變,僅適用于圖片數(shù)量較少的情況。
2)OTSU閾值分割法 OTSU的思想是使分割后的結(jié)果類間方差最大化,是一種基于全局閾值的分割方法。它采用兩個(gè)類之間的方差大小作為分割背景與目標(biāo)的評(píng)判標(biāo)準(zhǔn),方差越大則認(rèn)為類間的差別越大。
3)自適應(yīng)閾值分割法 OTSU法對(duì)全局像素使用1個(gè)單一閾值進(jìn)行分割,如果光線條件比較復(fù)雜,灰度值可能出現(xiàn)分布不均勻的狀況。而自適應(yīng)閾值分割是為每一個(gè)像素點(diǎn)設(shè)置不同的閾值,在光線不均勻的情況下可取得不錯(cuò)的效果。
文中分別對(duì)欠磨、銹蝕、損傷與劃痕4種表面缺陷使用上述3種閾值分割法進(jìn)行對(duì)比,效果如圖18所示。
由圖18可以看出,自適應(yīng)閾值分割法在欠磨與銹蝕這兩種情況下的效果比較差,基本上無(wú)法將缺陷分割出來(lái)。而人工經(jīng)驗(yàn)選擇法雖然在劃痕分割中取得了不錯(cuò)的分割效果,但是在處理欠磨與銹蝕缺陷時(shí),由于灰度值在不同圖像中的分布不同,僅使用單一的閾值無(wú)法滿足所有情況。綜合看來(lái),OTSU閾值分割法在本文應(yīng)用場(chǎng)景中的表現(xiàn)最好。此外,由于缺陷檢測(cè)系統(tǒng)中使用了光源,因此整個(gè)表面的光照情況比較穩(wěn)定,這就使得圖像的灰度值分布十分均勻,同時(shí)OTSU閾值分割法能夠?qū)Σ煌膱D像自動(dòng)選取閾值而不需要人工選取。實(shí)驗(yàn)也證明OTSU法能夠較好地將4種缺陷從背景中分割出來(lái),因此文中采用OTSU閾值分割法。
文中將傳統(tǒng)算法與文中算法的缺陷分類能力進(jìn)行了評(píng)估與比較,嘗試將許多已經(jīng)開(kāi)源的算法與文中算法進(jìn)行對(duì)比,并分析這些算法與文中算法的性能差異。實(shí)驗(yàn)過(guò)程中計(jì)算機(jī)硬件采用英特爾酷睿i7-6700k CPU、英偉達(dá)GTX-1080 GPU、128G RAM,操作系統(tǒng)為Windows系統(tǒng),使用的編程語(yǔ)言為Python與C++。
在傳統(tǒng)算法中,GLCM[18](灰度共生矩陣)與HOG[19](梯度直方圖)是最常見(jiàn)的兩種特征提取器。其中GLCM是一種常用的通過(guò)研究灰度的空間相關(guān)性來(lái)描述紋理特征的方法,紋理特征影像通過(guò)提取灰度圖像并進(jìn)行灰度級(jí)量化來(lái)計(jì)算特征值。HOG是圖像處理中一種用于特征檢測(cè)的特征描述器。該算法首先將圖像分割成小的連通區(qū)域,稱之為單元,然后收集單元中每個(gè)像素的梯度或邊緣方向,得到1個(gè)直方圖,最后將這些直方圖組合起來(lái)形成特征描述符[20]。在獲得上述特征之后,再使用SVM(支持向量機(jī))和MLP(多層感知器)對(duì)特征進(jìn)行分類。
圖18 各閾值分割法的效果對(duì)比Fig.18 Effect comparison of several threshold segmentation methods
此外,文中還將所提出的算法與另一種卷積神經(jīng)網(wǎng)絡(luò)SSD[21]算法進(jìn)行了對(duì)比。SSD算法通過(guò)卷積神經(jīng)網(wǎng)絡(luò)生成一系列預(yù)測(cè)框,計(jì)算出預(yù)測(cè)框內(nèi)包含目標(biāo)的概率,該算法使用了多尺度手段提升預(yù)測(cè)性能。
對(duì)各種算法進(jìn)行實(shí)驗(yàn),并使用Macro F1-score作為衡量標(biāo)準(zhǔn)。F1-score是統(tǒng)計(jì)學(xué)中一種常用于衡量二分類模型的指標(biāo),它同時(shí)兼顧了模型的準(zhǔn)確率與召回率,而Macro F1-score是將F1-score從二分類拓展到多分類的一種形式,即把每個(gè)類的F1-score結(jié)合起來(lái)考慮。在評(píng)估多分類任務(wù)時(shí),Macro F1-score是一個(gè)非常重要的衡量指標(biāo)。各算法的Macro F1-score如表1所示。
表1 傳統(tǒng)算法與卷積神經(jīng)網(wǎng)絡(luò)算法的對(duì)比
從表1可以看出,在算法效果上,卷積神經(jīng)網(wǎng)絡(luò)算法相比傳統(tǒng)算法有較大提升。傳統(tǒng)算法的Macro F1-score普遍在80以下,而3種卷積神經(jīng)網(wǎng)絡(luò)算法的Macro F1-score均在89以上,說(shuō)明卷積神經(jīng)網(wǎng)絡(luò)算法相比傳統(tǒng)算法性能更為優(yōu)異。并且,文中算法使用特征金字塔結(jié)構(gòu)取得了比SSD算法更好的效果,Macro F1-score達(dá)到了94以上。此外,通過(guò)對(duì)比還可看出,將特征提取網(wǎng)絡(luò)從ResNet換成DenseNet之后,Macro F1-score增大了1.2以上。
最后評(píng)估整個(gè)檢測(cè)系統(tǒng)在軸承滾子缺陷檢測(cè)上的應(yīng)用性能。由于檢測(cè)結(jié)果只包含合格與不合格兩種,因此是一個(gè)二分類問(wèn)題。文中分別以準(zhǔn)確率、召回率與F1-score作為衡量標(biāo)準(zhǔn)進(jìn)行評(píng)估。
首先在生產(chǎn)線上人工選取1 500個(gè)軸承滾子,包含了10、12與15 mm共3種不同直徑,每種直徑軸承滾子的總數(shù)量相同,且每種直徑軸承滾子中包含的合格產(chǎn)品與不合格產(chǎn)品數(shù)量相等。將這1 500個(gè)軸承滾子分別用傳統(tǒng)方法、SSD與文中方法進(jìn)行測(cè)試,其中傳統(tǒng)方法選擇GLCM+MLP,實(shí)驗(yàn)結(jié)果如表2所示。
表2 檢測(cè)方法的性能評(píng)估結(jié)果Table 2 Performance evaluation results of detection methods
從表2可以看出,文中方法相對(duì)于其他兩種方法,不論在準(zhǔn)確率、召回率還是在F1-score上都有一個(gè)比較大的提升。而傳統(tǒng)方法之所以準(zhǔn)確率與召回率較低,其原因在于提取到的特征并不準(zhǔn)確,使得分類時(shí)容易產(chǎn)生誤判,將一些不是缺陷的紋理、油漬判斷為缺陷。SSD方法雖然相對(duì)傳統(tǒng)方法其性能有一定提升,但由于存在類不均衡問(wèn)題,也會(huì)導(dǎo)致分類器效果并不理想。
雖然文中方法獲得了滿意的檢測(cè)效果,但并非完美無(wú)缺。如圖19所示,綠色框?yàn)檎鎸?shí)標(biāo)簽,紅色框?yàn)轭A(yù)測(cè)結(jié)果,可以看出ROI提取過(guò)程中卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽并沒(méi)有完全重合,這會(huì)導(dǎo)致后續(xù)計(jì)算出的缺陷面積存在細(xì)微誤差,進(jìn)而影響檢測(cè)系統(tǒng)對(duì)工件是否合格的判定。
圖19 預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽對(duì)比Fig.19 Comparison of the predicted result with the actual one
文中研究了軸承滾子表面缺陷的檢測(cè)問(wèn)題。針對(duì)軸承滾子表面最常見(jiàn)的5種缺陷,設(shè)計(jì)了一種視覺(jué)表面缺陷檢測(cè)系統(tǒng),獲得了滿意的檢測(cè)效果。該系統(tǒng)設(shè)計(jì)了3個(gè)工位對(duì)軸承滾子的端面與圓柱面進(jìn)行檢測(cè),并且采用合理的光學(xué)成像系統(tǒng),使每個(gè)工位都能夠采集到清晰完整的圖像。
文中提出的基于深度學(xué)習(xí)的檢測(cè)算法能夠很好地檢測(cè)出缺陷所在的位置并準(zhǔn)確判斷缺陷類型。該算法以RetinaNet為基本框架,并使用了DenseNet作為特征提取網(wǎng)絡(luò),在保證檢測(cè)速度的前提下大幅度提升了檢測(cè)算法的精度。算法中還使用了霍夫圓變換及閾值分割等方法,實(shí)現(xiàn)了對(duì)倒角缺料的檢測(cè)與端面缺陷面積的計(jì)算。
將傳統(tǒng)缺陷檢測(cè)算法與文中提出的缺陷檢測(cè)算法進(jìn)行對(duì)比,結(jié)果表明,雖然文中算法在時(shí)間上相對(duì)傳統(tǒng)算法有略微增加,但依舊能夠滿足在線檢測(cè)的要求。而在檢測(cè)效果方面,文中算法具有較大優(yōu)勢(shì),其準(zhǔn)確率、召回率與F1-score都有較大提升,是一種高精度的在線表面缺陷檢測(cè)算法。
文中算法雖然獲得了滿意的檢測(cè)效果,但由于預(yù)測(cè)框與真實(shí)標(biāo)簽并未完全重合,導(dǎo)致計(jì)算出的缺陷面積存在細(xì)微的誤差,后續(xù)研究可以圍繞減小缺陷面積誤差與提升預(yù)測(cè)框的重合度來(lái)展開(kāi)。