胡銀風,江 晟,宋 德
(長春理工大學物理學院,長春 130022)
近年來,先進制造技術的發展日新月異,高精度、快速、高質量的工件檢測技術已成為發展先進制造至關重要的一個環節,伴隨著電子、光學和計算機科學技術的不斷成熟,機器視覺在精密工件檢測技術中得到了飛速發展[1-2]。
在圖像處理過程中,邊緣檢測是最重要的環節之一,邊緣能最直接地反映物體輪廓信息,因此可以通過圖像邊緣信息計算工件的尺寸。邊緣提取常用的方法如運用一階差分的Krisch算子、Sobel 算子、Canny 算子等,以及二階微分算子Laplace[3-4]。為了能夠得到平滑且較為完整的圖像邊緣,羅朝陽等[5]提出利用數學方法中形態學處理方法提取圖像邊緣,但是該方法對噪聲很敏感且檢測過程中容易出現偽邊緣。包從望等[6]提出改進Canny 邊緣檢測方法,運用3*3 有限差分方法并結合OTSU 的自適應閾值提升算法的抗噪能力。曹義親等[7]提出將改進后的LSD 直線檢測應用到鋼軌表面邊界檢測中,提升了圖像的信噪比和檢測精度。蘇少輝等[8]利用雙目相機結合改進Hough 變換檢測大尺度下矩形工件,重復定位誤差小于0.05mm。
針對三角形工件測量精度不高的問題,本文首先利用改進Canny算子檢測圖像邊緣并結合改進Hough 變換提取圖像直線像素,然后設置直線像素點到所屬直線的距離閾值排除非直線點信息,最終通過最小二乘法擬合剩余直線像素點提高檢測精度。
算法流程如圖1所示。

圖1 算法流程
由于圖像采集受到環境光照和相機內部硬件的影響,導致在數字化過程中和數據傳輸中會產生噪聲,而降低了圖像分辨率并對圖像邊緣像素檢測造成誤差,影響精密工件的檢測精度。因此,首先對采集到的圖像進行預處理。目前常用的圖像預處理方法有高斯濾波、中值濾波、維納濾波、均值濾波、雙邊濾波[9]等。由于高斯濾波是對同一距離的像素進行同一尺度濾波計算而沒有考慮空間像素的差異,導致邊緣出現模糊的情況,從而降低了工件測量尺寸。中值濾波則采用鄰域像素取中值的方式代替中心像素點去除圖像中的噪聲,該方法僅對椒鹽噪聲有較好的處理效果。雙邊濾波則較高斯濾波考慮了像素點的空間信息與值域信息,該方法對將要進行濾波的像素區域先做分割與分類處理,再對不同所屬區域類別的像素計算不同權重,最后進行鄰域加權求和處理,從而達到很好地保留邊緣并去除噪聲的效果。雙邊濾波結果H如公式(1)所示:
其中Gr,Gs,Wq如公式(2)~(4)所示:
其中,Im為輸入圖像,In為輸出圖像,m代表目標像素,n代表任意像素,σr表示值域標準差,σs表示空間域標準差,Gr,Gs表示值域信息和空間域信息,Wq表示窗口內值域權重和。原圖和濾波效果分別如圖2 和如圖3所示。

圖2 原圖

圖3 濾波后圖像
邊緣檢測本質上是加強輪廓像素,而邊緣是圖像灰度值變化最大的位置,因此通過計算梯度可以實現邊緣檢測。Canny 邊緣檢測[10-11]方法則能較好地判定邊緣位置。Canny邊緣檢測分為四步:
第一步:對輸入圖像進行高斯去噪。由于高斯噪聲對邊緣產生模糊效果,因此在進行邊緣檢測之前運用雙邊濾波改進Canny邊緣檢測。
第二步:計算圖像梯度和幅值。運用改進八方向Sobel 算子[12]進行邊緣檢測。G0、G45、G90、G135、G180、G225、G270、G315分別表示八個方向角,因此計算梯度及梯度幅度值如公式(5)~(7)所示:
其中i,j表示圖像像素坐標。
第三步:非極大值抑制。在得到圖像中每一點的梯度幅值和方向后,根據所計算信息去除所有非邊緣點,細化邊緣。
第四步:雙閾值確定邊緣位置。通過設置一個高閾值與低閾值,從而防止將偽邊緣信息判定為邊緣。
由于Canny檢測算法閾值由人工設定,本文采用OTSU 自適應閾值分割改進Canny 需要人工標注閾值的問題。該算法事先假定閾值threshold能將像素分為兩類,并計算劃分為兩類像素的均值M1和M2,以及圖像全局均值MT,并計算被分為兩類像素的概率P1和P2,從而計算類間方差:
式(8)出現最大化的灰度級就是所計算的自適應閾值。最終圖像邊緣檢測結果如圖4 所示。從圖4(a)中可見工件表面出現少許非邊緣信息,這將影響直線段信息的判斷情況,經過自適應閾值后,最終改進結果如圖4(b)所示,較好地排除了非邊緣點信息,提高了后續直線檢測的準確性。

圖4 Canny檢測對比圖
Hough變換直線檢測為現如今最有效的直線檢測方法,該方法在1962 年由Paul Hough 首次提出。Hough變換運用直角坐標到極坐標的映射關系找到在極坐標中出現峰值的點,從而判斷出直線信息。
然而當直線相對于圖像水平軸存在較大角度時,像素點會出現巨大的錯位現象,這將導致同一條直線會檢測出多條直線或是檢測不出直線的現象,影響直線長度尺寸標定。因此,本文根據邊緣點位置在像素點八鄰域周圍進行像素填充,進而擴大同一條直線像素點的檢測范圍。最終改進圖像邊緣如圖6所示,與圖5所示的原直線邊緣相比,其邊緣像素得到擴充,直線像素更加平緩。在圖6 邊緣圖像基礎上通過Hough 變換進行直線檢測,未改進邊緣圖像直線檢測如圖7(a)所示,該圖中存在一條直線多段檢測與直線漏檢問題,圖7(b)為改進后邊緣圖像直線檢測結果,通過實驗證明該方法很好地解決了Hough直線檢測中漏檢或多檢的問題。

圖5 原直線邊緣圖像

圖6 改進后直線邊緣圖像

圖7 直線檢測圖像
由于直線段邊緣出現毛刺或缺陷等問題,導致最終檢測出的直線像素點無法滿足真實直線段數據的要求,因此在得到直線像素點后通過最小二乘法擬合所有屬于同一條直線像素點信息,提高檢測精度。
由于在邊緣檢測中增加了八鄰域連通區間像素擴充,這將導致存在一些非直線點像素位置被計入該條直線,因此需要計算直線所屬像素點到其直線距離,并設置閾值,當距離數值大于閾值則判定為非直線點像素,且不計入最小二乘法擬合,從而提高擬合精度。
直線點擬合方程由公式(9)所示:
其中,(xi,yi)表示直線像素點位置,a,b表示待擬合直線參數。最終通過計算待求參數偏導數得出最佳參數估計值:
針對三角形直線區域線段長度標定,需計算每條直線與其他直線的交點,從而判斷三角形區域三個頂點位置,進而計算各個點的歐式距離,如公式(12)所示,其中i= 1,2,3;j= 1,2,3分別表示不同直線段編號。最終計算結果Di表示每段直線標定長度。最終檢測結果如圖8所示。圖8中A、B、C分別表示三角形檢測交點。

圖8 直線交點檢測圖像
測試相機選用??低?00萬像素工業面陣工業相機型號:MV-CS060-10GM/C,傳感器型號:Sony IMX178,像元尺寸:2.4μm*2.4μm,分辨率:3072*2048。
拍攝鏡頭選用DTCM110-36,0.2 倍雙側遠心鏡頭。
實驗測試設備選用處理器:Intel(R)Core(TM)i5-10210U CPU @ 1.60GHz,內存:16.00 GB(2133 MHz),顯卡:NVIDIA GeForce MX250。
本文將圖8 中AC、AB、BC段作為尺寸標定直線,BC段加工尺寸為5 mm,AB與AC尺寸為5.6 mm。在測量中通過對該圖像進行旋轉、重復拍攝等方法進行了10 次測量,得到最終標定尺寸誤差。直線長度平均誤差達到0.0021 mm,-0.0013 mm和0.0027mm,最大誤差小于0.007mm,10 次檢測時間共計21.45 s,平均檢測時間為2.145 s。有部分測量誤差數據較大或較小,該類數據可能是拍攝過程中光照和拍攝原因對圖像質量產生了影響。

表1 直線和圓形工件測量結果單位:mm
為更精確地檢測三角工件長度尺寸,提出基于改進Canny 邊緣檢測和改進Hough 直線檢測算法,依據仿真實驗表明:
(1)結合OTSU 的自適應閾值分割方法和八方向Sobel 算子計算梯度改進Canny 邊緣檢測,提升了邊緣檢測精度;
(2)運用Hough 變換檢測三角直線區域,并采用八連通區域增加直線邊緣像素,提高了直線判斷準確性,最終通過歐氏距離判斷屬于每一條直線的邊緣像素點,利用最小二乘法擬合該類邊緣點提高了工件尺寸檢測精度。