王麗,李艷飛,郭秋萍,任建榮,崔瀚
(1.沈陽工學院,遼寧 撫順 113122;2.遼沈工業集團有限公司,沈陽 110045;3.駐沈陽地區第二軍事代表室,沈陽 110043)
在某種彈彈體的生產過程中涉及許多生產工序,而在這些生產工序中的檢驗環節包括外觀尺寸和理化性能檢驗[1],并且某種彈彈體需要100%檢驗。某種彈彈體在加工成型后要對其彈體強度進行檢驗預判,其原因是彈體強度不但會影響某種彈使用時的安全性[2]和可靠性,同時對其勤務處理方面也有極其重要的影響。目前,生產企業對某種彈彈體的強度檢驗依據標準為布氏硬度印痕檢測法,即根據一定范圍內硬度與強度之間呈現的正比例關系對某種彈彈體強度進行檢驗合格性判斷。生產過程中通過人工讀取硬度圓直徑的方法進行某種彈彈體硬度值的測量,采用的讀數工具為讀數顯微鏡,而這種采用人工操作方法一方面存在讀數誤差,另一方面降低了工作效率[3],進而可能導致安全風險和影響企業經濟效益。因此,采用一種新的硬度檢測方法替代傳統人工檢測,以提高某種彈彈體硬度檢測工序的效率和數據準確性。
隨著視覺檢測技術的發展,基于機器視覺的在線檢測技術在車牌識別、材料和成品的缺陷檢測、產品外觀尺寸測量以及材料硬度檢測[3-11]等方面都得到了廣泛應用。因此,為了解決在硬度檢測過程中由于人工讀數存在的缺點可能導致的問題,本文提出基于機器視覺進行某種彈彈體檢測的方法。通過機器視覺自動獲取圖像并進行數字圖像處理,從而實現對某種彈彈體硬度的自動檢測和硬度值計算。
布氏硬度對硬度檢測是一種可靠性較高的方法,因此在企業生產檢驗時對硬度的衡量普遍采用布氏硬度值。布氏硬度的測量原理是將一定直徑的合金鋼質圓球施加一定的試驗力,并保持一定時間后,在被測物表面留下壓痕直徑,然后測量壓痕留下的直徑,原理公式見式(1)[3,12]。
式中:F為作用載荷;D為合金鋼質球直徑;d為檢測件上的壓痕直徑。
由于某種彈彈體是回轉體,而根據布氏硬度的測量原理其只能在平面進行測試。所以為了解決回轉體為非平面的問題,在對某種彈彈體進行加載作用力之前要對彈體打磨平面。打磨平面的大小與打磨裝置接觸彈體后的下降距離相關,根據某種彈所用材料的硬度圓測試合格的最大直徑為3.4 mm,并且由于砂輪的寬度遠遠大于3.4 mm,所以在打磨平面時不需要有軸向運動,僅需要在徑向下降。因此,根據圖1 進行最小下降距離的計算,計算時H取3.4 mm,則砂輪沿著彈體表面徑向下降距離h的值應取值為:

圖1 某種彈彈體打磨平面示意圖Fig.1 Schematic diagram of grinding plane of Certain ammunition body
式中:R為某種彈的圓柱部半徑,但是為了保證壓頭壓彈體印痕成型的可靠性,一般h的取值會在誤差允許內盡量大些(根據彈丸口徑確定)。在完成某種彈彈體的打磨后對打磨平面進行壓痕,最后通過基于機器視覺的硬度印痕檢測系統檢測某種彈彈體的硬度。
根據布氏硬度檢測的原理以及考慮與原有某種彈生產工位的匹配,某種彈布氏硬度檢測裝置應具有打磨彈體、壓痕裝置、壓痕圖像采集、圖像識別與判定等功能,且在對某種彈彈體打磨之前采用如圖2 所示的彈體夾緊定位裝置將彈體固定,以保證打磨過程中彈體不會有轉動。上述的壓痕圖像采集由工業CCD攝像機完成,并且為了保證采集效果在攝像機前加裝了雙遠心鏡頭和環形光源,如圖3 所示。壓痕的識別和判定主要由計算機圖像處理系統完成,上述2 部分組成了硬度印痕檢測系統。在檢測裝置設計過程中遵循的設計依據為GB/T 231.1—2018、GB/T 231.2—2012以及JJG 150—2005,最終所設計的基于機器視覺的某種彈硬度檢測裝置三維結構如圖4 所示。

圖2 某種彈彈體夾緊定位裝置Fig.2 Clamping and positioning device for Certain ammunition body

圖3 壓痕圖像采集系統Fig.3 Indentation image acquisition system

圖4 某種彈硬度檢測裝置三維結構Fig.4 Three-dimensional structure of Certain ammunition hardness testing device
采用機器視覺檢測某種彈彈體硬度的精度與圖像的獲取質量息息相關。由于某種彈的生產車間環境復雜且在打磨過程中也會留有一定的打磨痕跡,這些必然會增加獲取圖像的噪聲。因此為了得到與實際相符的彈體硬度圓,結合生產現場實際的工作情況和文獻[13]對圖像的處理方法,得出本文制定的圖像處理流程如圖5 所示。圖像處理軟件選用Matlab。

圖5 某種彈彈體硬度檢測的圖像處理流程Fig.5 Image processing flowchart of Certain ammunition body hardness testing
在對圖像進行簡單預處理即由RGB 圖像轉換為灰度圖像后,需要對圖像進行去噪,以獲得有用信息更加明顯的圖像。對圖像的去噪處理一般采用濾波的方法,但是由于噪聲的形式是未知的,所以需要將多種濾波方法結合使用。根據圖像處理所要提取硬度圓痕跡這一目標,首先采用中值濾波,其原因是這種濾波輸出值為像素點鄰域灰度級的中間值,進而能夠將孤立的噪聲點去除,濾波后的效果如圖6b 所示。其次為了進一步去除圖像噪聲,在中值濾波的基礎上應用空間域濾波處理圖像,采用的模板為[1 1 1;1 1 1;1 1 1]/8,這種濾波方法能夠在去除噪聲的同時增強圖像中剩余部分的細節,使圖像的有用信息得到大幅度優化,濾波后的效果如圖6c 所示。由于中值濾波和空間域濾波的效果有限,所以采用濾波效果較好的自適應濾波對圖像噪聲進行最后的去噪。自適應濾波以圖像的局部矩陣和方差對圖像進行處理后的結果進行輸出。局部矩陣和方差分別由式(3)和式(4)估算,η為圖像中像素的M×N的鄰域[14];然后應用式(5)估算灰度值,其中式(5)中的ν2為噪聲的方差,圖像處理時n1和n2分別取8 和7。經過上述運算能夠有效消除局部噪聲,最終的濾波效果如圖6d 所示。

圖6 圖像濾波處理效果Fig.6 Image filtering processing effect
在圖6 中對濾波效果的判斷主要通過“Canny”算子邊緣檢測結果來驗證。該算子在邊緣檢測時尋找的是圖像梯度的極大值,這里的梯度是圖像對應二維函數的一階導數,表達式為:
梯度的極大值采用由Gx和Gy為參數的范數表達,梯度的方向則表示為:
邊緣檢測時通過式(6)和式(7)對梯度的極大值和方向計算后,采用非極大值一致的方法找到局部極大值點,并將其他值置零以細化邊緣,對應的檢測原理如圖7 所示。同時采用2 個閾值T1和T2對邊緣進行識別和鏈接,其中T1用來識別邊緣,T2用來鏈接斷邊,從而能夠得到連續的邊緣。由圖6 可以明顯看出,經過濾波后噪聲明顯減少,且濾波的效果隨著濾波方法的使用逐漸提升,最終結果驗證了本文提出濾波流程的準確性。

圖7 一階導數邊緣檢測原理Fig.7 First derivative edge testing principle
從圖6 濾波后的結果可以看出,盡管硬度圓以外的無用信息相對于原始圖像已經大幅度減少,但是要單獨獲得硬度圓的特征還需要進行圖像形態學處理。
由圖6d 中最后濾波的邊緣檢測結果可以看出,硬度圓的邊緣仍然存在些許斷點,因此先進行圖像膨脹使硬度圓的邊緣變長變粗,從而將硬度圓封閉。在圖像膨脹過程中如果A被B膨脹,則表示為A⊕B={z|(B')z∩A≠?},這里B為結構元素。在對某種彈彈體硬度圓識別處理過程中采用了2 種結構元素,分別是正方形結構和圓盤結構。在Matlab 中的strel函數用于定義結構元素和像素值,硬度圓采用了strel('square',1)創建 1×1 像素的正方形結構和strel('disk',1)創建半徑為1 的圓盤形結構對圖像中的邊緣進行膨脹,膨脹后的結果如圖8a 所示。從圖8a中明顯的看出邊緣線的變粗和斷點的消失。

圖8 硬度圓特性提取Fig.8 Extra
圖像膨脹后需要對無用的邊線信息進行腐蝕,這種操作稱為閉操作[15]。為了進一步保證硬度圓的完整性,在腐蝕前需要對封閉的邊緣進行圖像填充,這樣在腐蝕操作時能夠將填充區域較大的部分保留,而無法實現填充的邊緣區域就會被腐蝕消失。圖像填充采用imfill 函數,所選參數為‘holes’,填充后的圖像如圖8b 所示。由圖8b 中的填充結果可以看出,除了硬度圓被填充滿其余邊線均保持原樣。腐蝕操作采用對邊線進行收縮的方法消除邊線。在圖像腐蝕過程中,如果A被B腐蝕,則表示為AΘB={z|(B)z∩Ac≠?},這里Ac為A的補,B同樣為結構元素。腐蝕采用strel('diamond',1)創建菱形結構腐蝕邊線,Matlab 提供了imerode 函數進行腐蝕操作且由于膨脹過程中采用了2 種膨脹,因此進行2 次腐蝕,程序代碼如下:
BWfs1=imerode(BWtc,SEfs);%對圖像第1 次腐蝕
BWfs2=imerode( BWfs1,SEfs);%對圖像第2 次腐蝕
腐蝕后的圖像如圖8c 所示。從圖像處理結果可以看出,盡管已經提取了大部分硬度圓,但是在圖像的邊界處仍有微小的小斑點,如圖8c 中圈出區域。因此需要對硬度圓外的小斑點進行清除,其方法為首先通過size 函數讀取原始灰度圖像的圖像矩陣,然后定義圖像中面積的最大、最小值分別為maxim=dim(1)*dim(2)和minim=round(maxim/8),最后使用bwareaopen 函數刪除圖像中面積小于minim 的區域對象。圖像處理結果如圖8d 所示,代碼如下:
BWqc=bwareaopen(BWfs2,minim);%去除小區域面積。
由于原始圖像硬度圓的邊緣受打磨平面時所留下痕跡的影響,其邊緣并不是十分光滑,所以最后經過圖像處理的硬度圓并不是理想的圓形,不宜直接采用擬合圓邊緣計算硬度圓直徑的辦法進行結果計算。但是根據布氏硬度測試和力學平衡原理可以應用面積等效的方法將識別出的硬度圓面積等效為等面積的圓形;然后再求取硬度圓直徑作為最終的測量結果,其中圖像中識別出的填充區域面積應用bwarea函數進行計算;最后應用圓面積計算公式求得硬度圓直徑。程序代碼如下:
area=bwarea(BWqc);%識別出的圖像面積計算;
d=2*sqrt(area/pi);%計算圓的直徑。
因為計算出的硬度圓直徑的結果為像素值,并不是硬度圓的物理直徑,所以需要進行像素值與實際直徑物理值轉換關系的標定。標定過程中使用特制的直徑為1 mm 的標準圓形樣塊,如圖9 所示。標定時通過計算標準樣塊的實際面積S與識別出的像素面積S1的比值,推算出樣塊實際直徑與圖像中圓直徑的比例參數k,然后用k×d即為實際測得的硬度圓直徑。

圖9 標準樣塊標定Fig.9 Calibration diagram of standard block
為了驗證所采用算法的準確性,在生產現場隨機抽取10 發某型號的某種彈產品進行硬度測試,所得數據與現場人工測量得到的結果進行對比。其中人工測量數據為工人處于精神飽滿狀態下測得的,以保證數據的準確性,測量后的對比結果如表1 所示。由表1 可以看出 2 組檢測數據的絕對差值區間為0.03~0.16,因此為了進一步判斷機器視覺測量數據的可靠性,需要對2 組數據是否存在顯著性差異進行分析。

表1 某種彈彈體硬度機器視覺和人工檢測數據Tab.1 Test data of a certain type of Certain tion body based on machine vision and manual testing
假設2 組參數的測量結果是服從正態分布的獨立樣本,應用獨立樣本T檢驗法對2 組數據是否存在顯著性差異進行統計分析。當樣本方差相等和不等時T統計量分別定義為式(8)和式(9)。

對表1 中數據進行分析,得出結果如表2 所示。從表2 可以看出,方差方程的Levene 檢驗齊性檢驗結果F統計量為0.522,概率P為0.479,均大于顯著性水平0.05。因此方差具有齊性,2 組數據無顯著性差異。T檢驗結果Sig(雙側)的值0.310 和0.311也均大于顯著性水平0.05,因此也可以判定2 組數據無顯著性差異。綜合可以判定2 組參數無顯著性差異,說明了視覺檢測結果的可靠性和使用檢測算法的正確性。

表2 獨立樣本T 統計量結果Tab.2 Statistical results of independent sample T
本文采用機器視覺對某種彈彈體的硬度檢測方法進行了研究。通過設計某種彈彈體布氏硬度檢測裝置和圖像處理流程,并應用Matlab 圖像處理技術實現了對某種彈彈體硬度圓特征的提取和直徑的計算,經過現場實驗和統計分析得到以下結論:
1)所采用的檢測方法可行且能夠提取某種彈彈體的硬度圓特征。
2)通過標準樣塊的標定能夠計算出硬度圓的物理直徑。
3)應用統計分析的方法驗證了機器視覺檢測所測數據的可靠性和正確性。