熊保玉
(成都工業職業技術學院,四川 成都 610218)
圓形是零件最基本的特征之一,如果圓形零件檢測效果較差,將影響設備的使用。如面包、沙琪瑪等加工使用的圓形刀片精度決定了切割食品的質量,因此提高圓形零件檢測精度具有重要意義[1]。
人工檢測效率比較低,而且檢測過程中不可靠因素較多,會影響產品質量與成本。接觸式傳感器檢測一般是通過壓電、電阻式傳感器檢測待加工圓形零件上的坐標實現,需要傳感器與圓形零件接觸,對圓形零件擺放位置具有嚴格的要求,靈活性差。非接觸式傳感器檢測一般是通過電容傳感器檢測待加工圓形零件上的坐標實現,但是檢測效果受傳感器自身精度影響較大。隨著現代信息技術的發展,視覺檢測逐漸成為圓形零件檢測中應用比較廣泛的方法,卷積神經網絡(Convolution neural network,CNN)用于零件檢測[2],通過神經網絡訓練和卷積運算,能夠降低運算的復雜度,但對小目標零件檢測準確率并不是很高。Hough變換(Hough transform,HT)檢測圓形零件時[3],通過機器視覺將圓上的點投影到參數空間,通過參數空間即可獲得圓形零件特征,但是當參數空間為多維時,計算時間和空間將指數增加。隨機Hough變換(Random hough transform,RHT),對圓形零件圖像邊緣點隨機采樣能夠實現多對一變換[4],減少運行時間,但是如果圓形零件輪廓比較多,隨機選取點的概率會降低。點Hough變換(Point hough transform,PHT)根據任意兩條弦的中線在圓心處相交的理論[5],將計算空間降維,從而減少了計算復雜度,但檢測精度不高。對稱Hough變換(Symmetry hough transform,SHT)圓檢測[6],利用圓的對稱性以及累加半徑投票得到圓的參數值,但是選取的半圓非常關鍵。
為了提高圓形零件檢測的效果,試驗擬采用改進Hough變換(Improved hough transform,IHT)算法,力圖快速、準確檢測圓形零件,為產品質量深入研究提供理論依據。
將圓形零件圖像空間的像素用解析形式聯系起來,形成參數空間累積對應點[7-8]。假設圓形零件的方程表示為
(1)
式中:
x0、y0——圓心坐標;
r0——圓半徑,cm。
圓形零件圖像中任意像素點(xi,yi)都會在參數空間存在唯一的三維直立圓錐,計算為:
(a-xi)2+(b-yi)2=r2,
(2)
式中:
a、b——參數空間變量。
通過累積投票可以求得該點參數即為圓形零件的位置參數,圓形零件圖像像素點集在參數空間形成三維圓錐面并且交于一點(a0,b0,r0),該點即為圓心位置。但是基本Hough變換存在如下缺陷:如果圖像邊緣點不清晰,將錯誤地找到圓形零件的圓心坐標和半徑,導致檢測誤差較大;當圓形零件圖像的邊緣點較多時,使用基本Hough變換檢測圓形零件的圓心坐標和半徑計算量指數級增加,需要大量的處理時間。
1.2.1 基于最小誤差的隨機采樣點計算 為了減少計算量,對圓形零件圖像邊緣像素點70%~80%抽樣,減少無關的數據累加性[9-10]。設圓形零件圖像直徑端點邊緣隨機采樣點為(x1,y1),同時限定直徑取值范圍為[Dmin,Dmax],圓形零件圖像上直徑相對于(x1,y1)的另外一個端點(x2,y2),在以點(x1,y1)為圓心,半徑為[Dmin,Dmax]的圓環上:
(3)
從而獲得圓形零件參數為:
(4)
對獲得的圓形零件參數距離的平方和與半徑的平方差計算為:
(5)
總隨機采樣點為n,則平均誤差計算為:
(6)
標準誤差計算為:
(7)
設置一個閾值:
(8)
式中:
k——系數。
對邊緣隨機采樣點進行σi累計計算得到圓形零件參數數組,當結果中出現σi 1.2.2 虛假圓心排除 通過聚類算法避免虛假圓心的出現[11-12],如果存在兩個候選圓X1和X2,圓心分別為(x1,y1)和(x2,y2),半徑分別為r1和r2,假設有邊緣點(x′,y′)滿足: (9) 則視點(x′,y′)為候選圓上的點,統計候選圓上的邊緣點的數量M,候選真圓閾值: Mmin=λ×2πr, (10) 式中: λ——比例系數; r——候選圓半徑,cm。 若M>Mmin則當前候選圓為真圓,否則為假圓。λ可根據計算精度設定,λ越小,計算速度快但精度低,λ越大,計算速度慢但精度高,綜合考慮,選取λ區間為[0.95,1.05]。 對候選圓的周圍像素數量候選[13],并從中獲得候選圓圓心及半徑參數(x0、y0、r0),找出所有與該圓近似的候選圓形參數,將其放在同一類別中,以獲得的各個圓的中心半徑的平均值作為最終參數,公式如下: (11) 式中: xi、yi——圓心的橫坐標、縱坐標; ri——半徑,cm; n——劃分類別中圓形參數的個數。 圓形度是限制實際圓對理想圓變動量的一項指標[14-15],屬于圓形零件重要參數,實際圓形零件的圓形度計算為: (12) 式中: S——實際圓形零件像素區域面積,cm2; C——實際圓形零件像素區域周長,cm。 e∈[0,1]值越大實際圓形零件越接近于理想圓。 圓形度屬于形狀公差,圓形度誤差值不大于相應的公差值,則認為合格,即e與理想圓的圓形度標準值滿足es: |e-es|<0.1es。 (13) 通過MATLAB仿真實現不同圓形的圓形度如圖1 所示。 從圖1可知,圓形度與圓的大小無關,只與接近理想圓的程度有關,比如e1=0.96,雖然半徑比較小,但是相比半徑比較大的(e3=0.80),其產品的圓形度質量較高。 算法流程:① 輸入圓形零件圖像;② 對圓形零件圖像邊緣像素點70%~80%抽樣;③ 按式(7)和式(8)獲得候選圓形零件;④ 按式(10)和式(11)計算候選圓形零件參數;⑤ 計算圓形度e,滿足式(13),進行步驟⑥,否則按次品處理;⑥ 輸出檢測結果。 試驗計算機配置為Intel Core i7-7700,3.6 GHz,16 GB 內存,通過Matlab軟件編程實現圓形零件的處理和分析,獲得圓心坐標和半徑參數。 對圓形零件性能測試涉及到的算法有CNN、HT、RHT、PHT、SHT、IHT,這些算法與三坐標測量機測量的標準圓形零件數據(a=60,b=80,r=20 mm)對比分析,10次測量獲得數據如表1所示。 圖1 不同的圓形度Figure 1 Different roundness 從表1可以看出,6種算法中IHT的a、b、r平均值與標準值最為接近,測量效果較好。 圖2給出了不同算法10次測量數據與標準數據的差值。 表1 測量數據 圖2 測量差值Figure 2 Measurement difference 從圖2可以看出,IHT算法可以獲得比較精確的測量數值,其對a、b、r測量的最大差值分別為0.078,0.057,0.076,相比其他算法最大值都較小,同時差值波動比較平穩,證明了該算法的穩定性較好。 通過20次蒙特卡羅試驗評價IHT、CNN、HT、RHT、PHT、SHT 6種算法的測量精度及有效性,并對圓形零件的圓形度的不確定度進行計算。圓形零件的圓形度通過一次累加生成序列和理想累加序列得到其最大差值eΔmax,那么圓形度測量的不確定度s為: (14) 式中: w——測試次數。 s越小越好,表示測量結果與實際值較接近。不同算法的測量圓形度的不確定度如圖3所示。 從圖3可知,IHT、CNN、HT、RHT、PHT、SHT 6種算法對圓形零件的圓形度的不確定度均值分別為0.053 3,0.082 7,0.078 5,0.072 5,0.065 5,0.058 1,相比CNN、HT、RHT、PHT、SHT算法,IHT算法分別減少了35.55%,32.10%,26.48%,18.63%,8.26%,測量精度較高。 完成20次圓形零件的圓形度的不確定度計算,每次消耗的時間如圖4所示。 圖3 圓形度的不確定度Figure 3 Uncertainty of roundness 圖4 消耗時間Figure 4 Time consume 從圖4可以看出,CNN、HT、RHT、PHT、SHT、IHT算法20次檢測所需時間平均值分別為7.795,7.204,6.671,6.262,5.361,4.282 s,IHT算法耗時最少,相比CNN、HT、RHT、PHT、SHT算法的分別減少了45.07%,40.56%,35.81%,35.81%,20.13%,因此采用IHT算法對圓形零件檢測具有較好的時效性。 (1) 針對圓形零件檢測過程中存在的問題,試驗提出了一種改進Hough算法的圓形零件檢測方法。通過最小誤差抽樣,聚類算法避免了虛假圓心出現,圓形參數測量數據差值波動比較平穩,說明該方法在圓形零件檢測中算法的穩定性較好。 (2) 在圓形零件檢測中,存在圓形度偏低情況的出現,建立圓形度判定指標,大大地提高了檢測精度。 (3) 研究中如何使得Hough變換與檢測正確率建立自適應關系有待進一步改進,這將是今后研究的一個方向。1.3 圓形度計算
2 試驗仿真
2.1 性能測試



2.2 圓形度的不確定度計算
2.3 消耗時間


3 結論