詹志明
(池州職業(yè)技術(shù)學(xué)院 旅游系, 安徽 池州,247000)
在工業(yè)領(lǐng)域中, 安全事故的發(fā)生大多是由于機(jī)械零件漏檢與誤檢造成的。金屬機(jī)械零件作為工業(yè)生產(chǎn)不可或缺的一部分, 其表面微缺陷可直接影響零件整體性能以及后期的銷售, 嚴(yán)重時導(dǎo)致機(jī)器出現(xiàn)事故。目前, 在各種金屬零件缺陷檢測中, 針對孔類零件還沒有很好的檢測方法。由于孔類零件孔內(nèi)光照不均, 陰影面積占絕大部分, 采用人工檢測的方式往往出現(xiàn)盲區(qū), 且耗時較長, 主觀判斷還可能會出現(xiàn)誤檢、漏檢的情況, 致使零件合格率整體下降。文獻(xiàn)[1]提出一種基于三角模糊數(shù)(TFN)的多圓孔機(jī)械零件表面精度優(yōu)化方法。首先, 使用二面角法和法向張量投票法提取流形網(wǎng)格上的特征線, 以檢測圓孔。其次, 利用遺傳算法, 通過最小化零件的加權(quán)體積誤差優(yōu)化圓孔的表面精度, 從而確定最佳AM 零件構(gòu)建方向。文獻(xiàn)[2]提出一種基于改進(jìn)RCNN 的金屬材料工件表面缺陷檢測算法。模型訓(xùn)練時為了避免某些分類數(shù)據(jù)不足, 防止因數(shù)據(jù)集過小導(dǎo)致系統(tǒng)測試模型出現(xiàn)過擬合現(xiàn)象, 對原圖像進(jìn)行數(shù)據(jù)擴(kuò)增處理。引入多級ROI 池化層結(jié)構(gòu)設(shè)計(jì)算法, 消除ROI 池化取整而產(chǎn)生的系統(tǒng)偏差, 實(shí)現(xiàn)高效并準(zhǔn)確檢測零件表面缺陷的目的。文獻(xiàn)[3]提出一套基于機(jī)器視覺的線纜表面缺陷實(shí)時檢測系統(tǒng)的設(shè)計(jì)方案。首先設(shè)計(jì)了滿足工業(yè)生產(chǎn)線條件的視覺硬件設(shè)備, 用于采集優(yōu)質(zhì)的線纜圖像。在圖像處理算法中, 改進(jìn)灰度均值法實(shí)現(xiàn)復(fù)雜環(huán)境下圖像線纜區(qū)域的提取; 改進(jìn)雙邊濾波建立背景并與原缺陷圖像差分實(shí)現(xiàn)了缺陷信息的分割。
互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展, 帶動一系列相關(guān)技術(shù)也取得了快速發(fā)展, 圖像處理技術(shù)逐漸被引入到工業(yè)生產(chǎn)中, 在金屬零件的微缺陷檢測方面展現(xiàn)出絕對優(yōu)勢。本文利用圖像處理技術(shù), 針對金屬機(jī)械零件提出一種新的缺陷檢測算法。
本文選定的孔類金屬零件為制動缸體, 主孔尺寸直徑為19~27 mm, 深度為50~200 mm, 是一個細(xì)長狀的零件。為了獲取到完整的內(nèi)表面圖像, 需要借助安裝在細(xì)長桿上的面陣CCD 相機(jī)來實(shí)現(xiàn)。
圖像采集流程圖如圖1 所示。為了避免相機(jī)在旋轉(zhuǎn)過程中電線纏繞在一起, 影響圖像的獲取, 將相機(jī)內(nèi)窺鏡改為固定不可旋轉(zhuǎn), 通過轉(zhuǎn)動零件使得內(nèi)窺鏡獲取到零件內(nèi)表面的圖像。為了內(nèi)表面圖像的完整性, 將零件以回轉(zhuǎn)運(yùn)動與直線進(jìn)給運(yùn)動相結(jié)合的方式進(jìn)行運(yùn)動, 分段采集圖像。在制動缸體孔的中心軸位置找到一個起始地點(diǎn), 先將零件做直線進(jìn)給運(yùn)動, 行駛一定的距離后, 再將零件進(jìn)行回轉(zhuǎn)運(yùn)動, 獲取旋轉(zhuǎn)一周的圖像。按照這種方式以此類推, 直至采集到整個零件的內(nèi)表面圖像為止。
圖1 零件內(nèi)表面圖像采集流程圖
運(yùn)用該方法得到完整的制動缸體內(nèi)表面圖像, 利用圖像處理技術(shù)對其進(jìn)行處理與選取, 得到具有研究意義、帶有微缺陷的圖像。
在一幅圖像中, 可以將邊緣看作是某個像素的任意性質(zhì), 利用算法計(jì)算該像素所在鄰域內(nèi)的特征, 即可得到缺陷圖像的邊緣特征。邊緣為一個矢量值, 具有幅值和方向兩種特性。幅值代表的是缺陷圖像整體的梯度幅值, 方向代表的是與圖像梯度方向垂直的方向, 也就是灰度值最大延伸的方向?;叶戎惦S著圖像邊緣的變化而變化, 當(dāng)灰度值與邊緣平行時, 變化得較為平緩, 而當(dāng)二者垂直時, 灰度值會出現(xiàn)劇烈的變化。
通過上述方法延伸得到的邊緣檢測算法有很多, 綜合比對之下, 本文選擇Ganny 邊緣檢測算子進(jìn)行缺陷邊緣的提取。
Canny 算子對于含有噪聲的圖像, 不僅具有很好的抗噪性[5], 同時對于極小誤差點(diǎn)的真邊緣點(diǎn), 也能準(zhǔn)確檢測。
Canny 算子實(shí)現(xiàn)過程為:
(1) 對金屬機(jī)械零件圖像進(jìn)行平滑濾波處理[6]。圖像預(yù)處理的主要目的是得到清晰、連續(xù)且完整的缺陷輪廓邊緣, 由于CCD 相機(jī)獲取到的圖像中含有一定量的噪聲和其他干擾因素, 不能直接將其作為研究對象使用, 因此需要進(jìn)行平滑濾波處理, 以此來削弱不重要的特征信息, 降低噪聲的影響, 突出缺陷邊緣輪廓信息。
(4) 明確缺陷邊緣強(qiáng)度值。對缺陷圖像進(jìn)行非極大值抑制處理, 當(dāng)出現(xiàn)某個像素點(diǎn)的灰度值在同一方向上、前后兩個像素的灰度值中, 都不是最大值的情況時, 將該像素所在的位置標(biāo)記為0, 不認(rèn)定這個像素為邊緣。
(5) 通過雙閾值檢測法實(shí)現(xiàn)邊緣提取[8]。設(shè)定一個閾值范圍, 將大于高閾值的像素認(rèn)定其為邊緣,小于低閾值的像素認(rèn)定其不是邊緣。如果在這個閾值區(qū)間內(nèi), 則判斷該像素的鄰接像素中是否有大于高閾值的點(diǎn), 如果有, 也可認(rèn)定其為邊緣; 如果沒有, 則無法認(rèn)定其為邊緣。
完成圖像邊緣特征提取處理后, 根據(jù)零件缺陷類型設(shè)定不同的缺陷特征參數(shù)[9], 從而設(shè)置不同的類別識別標(biāo)準(zhǔn)。本文研究的主要對象是制動缸體的內(nèi)表面微小劃痕缺陷。
本文利用數(shù)學(xué)形態(tài)學(xué)實(shí)現(xiàn)邊緣輪廓的優(yōu)化。包含腐蝕運(yùn)算、膨脹運(yùn)算以及開/閉運(yùn)算和細(xì)化運(yùn)算在內(nèi)。將Ω定義為二維歐式空間[10], 給定兩幅圖像X、B, 二者均為Ω中的子集,b∈Ω是歐式空間中的任意一個點(diǎn)。對于圖像X的處理, 本文采用較小的圖像B完成, 因此圖像B也稱為結(jié)構(gòu)元素。
(1) 平移處理: 利用b對X進(jìn)行平移, 得到平移結(jié)果
(3) 腐蝕運(yùn)算和膨脹運(yùn)算: 腐蝕運(yùn)算可有效消除圖像中物體的邊界點(diǎn), 并去除結(jié)構(gòu)元素較小的物體,以此實(shí)現(xiàn)邊界點(diǎn)的向內(nèi)收縮[12]。即使兩個結(jié)構(gòu)元素之間存在細(xì)微的連通關(guān)系, 腐蝕運(yùn)算將二者區(qū)分。膨脹運(yùn)算則是對圖像中物體的邊界點(diǎn)進(jìn)行填充, 將與物體相接的背景點(diǎn)全部看作是結(jié)構(gòu)元素, 與物體融合在一起, 邊界點(diǎn)得以向外擴(kuò)展。膨脹運(yùn)算與腐蝕運(yùn)算正好相反, 可對圖像中較小的結(jié)構(gòu)元素進(jìn)行連通, 實(shí)現(xiàn)孔洞的填充。
X經(jīng)過B的膨脹處理后,B直接影響X的形狀。同樣,X經(jīng)過B的腐蝕處理后, 結(jié)構(gòu)元素也與B之間存在較大的聯(lián)系。所以在選取B時, 考慮到圖像處理的需求, 進(jìn)行適當(dāng)?shù)倪x擇。
(4) 開運(yùn)算和閉運(yùn)算: 開運(yùn)算是先利用B對X做膨脹運(yùn)算, 然后再對膨脹后的圖像做腐蝕運(yùn)算,計(jì)算公式為X。B= (XΘB)⊕B。
經(jīng)過Canny 算子提取缺陷邊緣后, 圖像中含有較多的小橋、小點(diǎn)和毛邊, 開運(yùn)算可有效避免這些因素的影響, 同時保持邊緣位置和形狀不變[13]; 閉運(yùn)算對圖像中的小孔具有理想的填充效果, 使小的裂縫連接起來, 也可保證缺陷位置和形狀不變。
通常情況下, 在圖像中存在間距較大的兩個點(diǎn), 此時需要設(shè)定一個閾值, 當(dāng)兩個點(diǎn)之間的距離不超過該閾值時即可進(jìn)行連接。每個點(diǎn)只能連接一次, 已經(jīng)連接過的點(diǎn)不允許再進(jìn)行二次連接。
通過circularity 算子可計(jì)算得到缺陷所在區(qū)域的圓度。首先, 將缺陷所在區(qū)域的圓度范圍設(shè)置在[0.01, 0.19]之間, 通過dilation_circle 算子對這個區(qū)域進(jìn)行膨脹運(yùn)算, 然后再利用gen_contour_region_xld 算子[15]建立這個區(qū)域的XLD 輪廓圖。通過利用不同的顏色標(biāo)記出不同的缺陷類型, 最終實(shí)現(xiàn)金屬機(jī)械零件缺陷的精準(zhǔn)檢測。
為了驗(yàn)證本文方法是否可以實(shí)現(xiàn)金屬零件微缺陷的有效檢測, 選取某機(jī)械零件生產(chǎn)車間內(nèi), 表面具有劃痕缺陷且具有代表意義的金屬機(jī)械零件進(jìn)行仿真實(shí)驗(yàn)驗(yàn)證, 實(shí)驗(yàn)圖像如圖2 所示。
圖2 本文方法金屬零件劃痕缺陷檢測
零件劃痕圖像如圖2(a)所示。根據(jù)本文方法步驟, 首先, 對劃痕圖像進(jìn)行均值濾波處理, 得到如圖2(b)所示的圖像。通過對圖2(a)進(jìn)行缺陷類型的判定以及定量分析, 驗(yàn)證本文方法是否合理有效。
經(jīng)過均值濾波處理后的圖像, 由于k的存在, 缺陷目標(biāo)的輪廓邊緣較為模糊, 同時圖像受噪聲影響的現(xiàn)象較為明顯。利用Canny 算子提取缺陷邊緣, 得到如圖2(c)所示的圖像。經(jīng)過該步驟后, 缺陷邊緣得到明顯突出, 但是會有斷片和虛假邊緣情況的發(fā)生, 同時還存在較多的噪聲, 還需對其進(jìn)行處理;Canny 算子提取缺陷邊緣后, 在真實(shí)缺陷邊緣的周圍分布一些毛邊, 這些毛邊看起來和真實(shí)邊緣非常接近, 但是卻不是真正的邊緣。通過開運(yùn)算可有效去除掉毛邊的影響。經(jīng)過開運(yùn)算處理后得到如圖2(d)所示的圖像; 在利用開運(yùn)算處理毛邊的過程中, 缺陷邊緣同樣也受到一定程度的影響, 會出現(xiàn)不同程度的斷口。閉運(yùn)算可將這些斷口重新連接在一起, 得到如圖2(e)所示的圖像后, 對比設(shè)定值, 在符合條件的兩個點(diǎn)之間依次進(jìn)行連接, 得到連續(xù)且完整的缺陷邊緣圖像, 如圖2(f)所示。
在生產(chǎn)車間內(nèi)分別選取兩個缺陷零件和一個合格零件, 如圖3 所示。
圖3 缺陷零件與合格零件圖像
利用MATLAB 仿真系統(tǒng)中的GUI 工具構(gòu)建一個缺陷零件圖像檢測系統(tǒng), 在該系統(tǒng)中引入本文方法,對這3 個零件分別進(jìn)行檢測, 得到如圖4 所示的檢測結(jié)果。
由圖4 可知, 對比合格零件與缺陷零件的波峰波谷特征, 可以快速、準(zhǔn)確地檢測出缺陷零件。說明本文方法可以準(zhǔn)確找出眾多零件中的缺陷零件, 避免缺陷零件流入市場, 造成安全事故的發(fā)生。
圖4 3 個零件檢測結(jié)果對比
考慮到孔類金屬零件內(nèi)表面缺陷檢測的困難程度,本文在圖像處理技術(shù)的基礎(chǔ)上, 提出一種高效的微缺陷檢測算法, 實(shí)現(xiàn)非接觸性檢測。首先, 通過CCD 相機(jī)獲取制動缸體內(nèi)表面圖像; 然后, 對獲取到的圖像進(jìn)行均值濾波處理, 消除圖像中噪聲的影響; 通過Canny 算子對缺陷圖像的邊緣進(jìn)行提取; 由于邊緣存在一定的毛邊,利用數(shù)學(xué)形態(tài)學(xué)中的腐蝕和膨脹運(yùn)算消除掉毛邊, 并根據(jù)設(shè)定值進(jìn)行邊緣點(diǎn)的連接, 得到完整且連續(xù)的缺陷邊緣圖像; 最后, 根據(jù)缺陷類型的不同設(shè)定不同的缺陷特征參數(shù), 通過對比參數(shù)之間的不同, 完成缺陷類別的識別與檢測。將本文方法應(yīng)用在仿真實(shí)驗(yàn)環(huán)境中,結(jié)果表明, 本文方法可有效檢測出不同金屬零件的缺陷, 且檢測結(jié)果與實(shí)際一致, 檢測效果理想。
湖南文理學(xué)院學(xué)報(bào)(自然科學(xué)版)2022年4期