本發明涉及一種基于機器視覺的工業產品尺寸高精度測量方法。
背景技術:
工業產品尺寸測量是工業檢測的重要組成部分,測量技術的水平是衡量工業發展水平的重要指標。在產品生產批量化、種類的多樣化、品控要求的嚴格化的現代化生產模式下,傳統的人工測量方法已經無法滿足生產者在效率、成本以及信息化等方面的要求。以圖像處理技術為理論基礎的視覺測量技術在靈活性、可移植性、成本以及檢測速度和精度等方面表現出了顯著的優勢,已經在航天、航空、汽車電子等高精度生產制造領域得到了較為廣泛的應用。
視覺測量系統中,已標定工業相機對被測工業元件進行圖像采集,視覺測量算法通過對采集圖像中元件邊緣的提取和擬合來求解元件的尺寸參數。因此,在攝像機標定精度相對準確時,影響元件測量精度的主要因素在于圖像處理過程中的邊緣位置的提取精度。
傳統邊緣提取算法,例如一階的Prewitt算子、Sobel算子,以及二階的Canny算子、LoG算子等,其提取精度均為像素級別,無法滿足高精度測量場合下的精度要求。亞像素提取算法是在傳統邊緣提取算法的基礎之上發展而來的,該類算法建立在傳統算法得到的像素級邊緣的基礎之上,結合邊緣像素的鄰域灰度信息,采用插值、擬合等方法,對其進行精確定位。現有主流的亞像素邊緣檢測方法主要分為:基于小波變換的方法、基于矩的方法、基于插值或擬合的方法。
但在工業產品實際動態測量條件下,當工業采集圖像存在小尺度運動模糊時,現有主流亞像素測量算法存在精度低、魯棒性差的問題。在實際工業檢測過程中,為了保證檢測流程的高效化,對工業元件的測量一般采用運動流水作業的方式,然而待測元件與成像系統之間的相對運動容易導致所采集圖像產生小尺度的運動模糊(圖像運動模糊尺度一般小于7像素)。在工業圖像存在小尺度模糊退化情形下,現有亞像素測量方法的測量精度和穩定性較差,例如德國Halcon機器視覺軟件中,視覺測量算法在上述情況下的平均測量相對標準差為0.99%。對于上述問題,現有的解決方法是采用靜態圖像采集的方式或改用高速視覺測量系統,但前者顯然會降低工業產品的檢測效率,后者會增加工業視覺檢測系統的成本。
技術實現要素:
本發明為了解決在工業采集圖像存在小尺度運動模糊時現有主流亞像素測量算法存在精度低的問題。
一種工業小尺度運動模糊成像條件下的產品尺寸亞像素測量方法,包括以下步驟:
步驟一、對工業相機采集得到的工業元件圖像進行灰度化和中值濾波處理,得到原始灰度圖像;
步驟二、針對原始灰度圖像,采用Canny算子進行邊緣粗提取,確定邊緣位置;對提取得到的邊緣像素進行局部連通域處理,得到完整邊緣二值圖像;
步驟三、對完整邊緣二值圖像進行連通域標記,對已標記的連通區域進行篩選,保留連通區域中所含像素的個數大于預設閾值T的連通區域;
步驟四、對步驟三得到的經過連通域篩選后的完整邊緣二值圖像,分別采用Hough直線檢測方法和Hough圓檢測方法,對圖中的直線邊緣和弧形邊緣進行檢測與識別,得到滿足不同直線參數的直線型邊緣集合,以及滿足不同圓參數的弧形邊緣集合;并將所述滿足不同直線參數或圓參數的邊緣視為不同類型邊緣;
步驟五、根據完整邊緣二值圖像上的不同類型邊緣,計算原始灰度圖像上對應各邊緣所含像素的法向量;
步驟六、針對得到的每個邊緣像素的法向量,基于圖像插值方法求解每個邊緣像素沿其法向量方向上的前后共2n+1個采樣點的灰度值,其中n為預設值,且相鄰采樣點的間距為1像素;計算相鄰采樣點沿法向量方向的灰度值差分,得到2n個灰度差分值;對灰度差分值進行對于自然對數變換和二次曲線擬合,求解二次擬合曲線最大值所在的位置;
步驟七、對每個邊緣像素的二次擬合曲線最大值所在的位置進行判斷:如果擬合曲線最大值所在位置與對應邊緣像素的位置之間的距離小于n,則將此擬合曲線最大值所在位置認為有效亞像素位置;否則,舍棄該最大值位置,視對應邊緣像素的亞像素位置提取失敗;
步驟八、對直線邊緣有效亞像素位置進行直線最小二乘擬合;對弧形邊緣有效亞像素位置進行圓最小二乘擬合;根據擬合結果,求解工業元件各個尺寸參數。
優選地,步驟二所述的對提取得到的邊緣像素進行局部連通域處理得到完整邊緣二值圖像的具體步驟如下:
步驟二一、對Canny邊緣粗提取得到的邊緣位置上的每個像素進行遍歷;
步驟二二、對于每個像素,以該像素為中心,選擇3x3大小的鄰域窗口;
步驟二三、如果該鄰域窗口內連通域的個數大于或等于2時,則通過在這些連通域之間填充像素,使其形成一個完整的連通域;否則,不進行任何操作;最終得到完整邊緣二值圖像;
其中,連通域是指像素位置之間滿足8連通的像素集合。
優選地,步驟三所述的對已標記的連通區域進行篩選保留連通區域中所含像素的個數大于預設閾值T的連通區域的具體步驟如下:
步驟三一、對完整邊緣二值圖像進行連通域標記,此時每個完整的邊緣視為一個連通域,并分配有一個唯一的編號;
步驟三二、對每個連通域進行分析:判斷該連通域內包含的像素個數,是否大于預設閾值T;
步驟三三、如果大于所述預設閾值T,則保留所述連通域;否則,將所述連通域進行剔除。
優選地,步驟五所述的計算原始灰度圖像上對應各邊緣所含像素的具體步驟如下:
步驟五一、根據完整邊緣二值圖像上的不同類型邊緣,在原始灰度圖像上,針對各個邊緣所包含的每個像素,計算其沿圖像x方向和y方向的偏微分值,并將得到的偏微分值構成一個向量;
步驟五二、將步驟五一得到的偏微分值構成的向量進行歸一化,并將歸一化后的向量作為原始灰度圖像上對應邊緣像素的法向量。
優選地,所述步驟六的具體過程如下:
步驟六一、在原始灰度圖像上,對所有邊緣像素進行如下操作:以邊緣像素位置為原點,沿其邊緣法向量方向左、右各等間距各選擇n個位置作為采樣點,采用圖像雙線性插值方法確定這2n+1個采樣點的圖像灰度值;
步驟六二、步驟六一得到2n+1個采樣點的圖像灰度值后,計算相鄰采樣點沿該像素法向量方向的灰度值差分,形成2n個灰度差分值;
步驟六三、首先對步驟六二得到的2n個灰度差分值進行自然對數變換,然后將變換之后的2n個值進行二次曲線擬合,確定擬合參數;
步驟六四、利用步驟六三得到的二次曲線擬合參數,求解二次擬合曲線最大值所在的位置。
優選地,步驟八所述的求解工業元件各個尺寸參數的具體過程如下:
針對工業元件上需要確定尺寸的邊緣或部位,依據根據擬合結果求解工業元件的尺寸。
本發明具有以下有益效果:
1)本發明解決了現有工業視覺高精度測量算法在工業小尺度運動模糊成像條件下,測量精度低、魯棒性差的技術問題;即本發明能夠在工業小尺度運動模糊成像條件下實現小尺度部件的高精度測量。
2)較現有國內外廣泛使用的Halcon機器算法庫,本發明算法在測量的穩定性和準確性上有較大的優越性:對于低速動態測量情形下的小尺度運動模糊圖像(模糊尺度小于7個像素),在測量穩定性方面:本算法的平均測量相對標準差為0.23%,明顯優于Halcon視覺軟件0.99%的平均測量相對標準差;在測量精度方面:本算法的最大相對測量誤差為0.49%,明顯優于Halcon視覺軟件1.36%的最大相對測量誤差。
附圖說明
圖1是本發明的流程示意圖;
圖2a是被測產品的實物圖,圖2b是利用Canny算子進行邊緣粗提取并進行局部連通域處理得到的邊緣二值圖像的效果圖;
圖3a采用Hough直線檢測方法和Hough圓檢測方法對邊緣二值圖像中的直線邊緣檢測與識別的效果圖,圖3b采用Hough直線檢測方法和Hough圓檢測方法對邊緣二值圖像中的弧形邊緣檢測與識別的效果圖;
圖4是步驟五至步驟六所述從計算原始灰度圖像上對應各邊緣所含像素的法向量到確定二次擬合曲線最大值所在的位置的過程示意圖;
圖5是本發明對得到的每一類型弧形邊緣的有效亞像素位置進行圓最小二乘擬合的效果圖。
具體實施方式
具體實施方式一:結合圖1至圖5說明本實施方式,
一種工業小尺度運動模糊成像條件下的產品尺寸亞像素測量方法,包括以下步驟:
步驟一、對工業相機采集得到的工業元件圖像進行灰度化和中值濾波處理,得到原始灰度圖像;
步驟二、針對原始灰度圖像,采用Canny算子進行邊緣粗提取,確定邊緣位置;對提取得到的邊緣像素進行局部連通域處理,得到完整邊緣二值圖像;
步驟三、對完整邊緣二值圖像進行連通域標記,對已標記的連通區域進行篩選,保留連通區域中所含像素的個數大于預設閾值T的連通區域;
步驟四、對步驟三得到的經過連通域篩選后的完整邊緣二值圖像,分別采用Hough直線檢測方法和Hough圓檢測方法,對圖中的直線邊緣和弧形邊緣進行檢測與識別,得到滿足不同直線參數的直線型邊緣集合,以及滿足不同圓參數的弧形邊緣集合;并將所述滿足不同直線參數或圓參數的邊緣視為不同類型邊緣,如圖3a和圖3b所示;
步驟五、根據完整邊緣二值圖像上的不同類型邊緣,計算原始灰度圖像上對應各邊緣所含像素的法向量;
步驟六、針對得到的每個邊緣像素的法向量,基于圖像插值方法求解每個邊緣像素沿其法向量方向上的前后共2n+1個采樣點的灰度值,其中n為預設值,且相鄰采樣點的間距為1像素;計算相鄰采樣點沿法向量方向的灰度值差分,得到2n個灰度差分值;對灰度差分值進行對于自然對數變換和二次曲線擬合,求解二次擬合曲線最大值所在的位置;
步驟七、對每個邊緣像素的二次擬合曲線最大值所在的位置進行判斷:如果擬合曲線最大值所在位置與對應邊緣像素的位置之間的距離小于n,則將此擬合曲線最大值所在位置認為有效亞像素位置;否則,舍棄該最大值位置,視對應邊緣像素的亞像素位置提取失敗;
步驟八、對直線邊緣有效亞像素位置進行直線最小二乘擬合;對弧形邊緣有效亞像素位置進行圓最小二乘擬合;根據擬合結果,求解工業元件各個尺寸參數。
具體實施方式二:結合圖2a和圖2b說明本實施方式,
本實施方式的步驟二所述的對提取得到的邊緣像素進行局部連通域處理得到完整邊緣二值圖像的具體步驟如下:
步驟二一、對Canny邊緣粗提取得到的邊緣位置上的每個像素進行遍歷;
步驟二二、對于每個像素,以該像素為中心,選擇3x3大小的鄰域窗口;
步驟二三、如果該鄰域窗口內連通域的個數大于或等于2時,則通過在這些連通域之間填充像素,使其形成一個完整的連通域;否則,不進行任何操作;最終得到完整邊緣二值圖像;
其中,連通域是指像素位置之間滿足8連通的像素集合。
其它步驟及參數與具體實施方式一相同。
具體實施方式三:
本實施方式的步驟三所述的對已標記的連通區域進行篩選保留連通區域中所含像素的個數大于預設閾值T的連通區域的具體步驟如下:
步驟三一、對完整邊緣二值圖像進行連通域標記,此時每個完整的邊緣視為一個連通域,并分配有一個唯一的編號;
步驟三二、對每個連通域進行分析:判斷該連通域內包含的像素個數,是否大于預設閾值T;
步驟三三、如果大于所述預設閾值T,則保留所述連通域;否則,將所述連通域進行剔除。
其它步驟及參數與具體實施方式一或二相同。
具體實施方式四:
本實施方式步驟五所述的計算原始灰度圖像上對應各邊緣所含像素的具體步驟如下:
步驟五一、根據完整邊緣二值圖像上的不同類型邊緣,在原始灰度圖像上,針對各個邊緣所包含的每個像素,計算其沿圖像x方向和y方向的偏微分值:
Gx(x,y)=f(x+1,y)-f(x,y)
Gy(x,y)=f(x,y+1)-f(x,y)
式中,f(x,y)為像素位置(x,y)處的圖像灰度值;f(x+1,y)為像素位置(x+1,y)處的圖像灰度值;f(x,y+1)為像素位置(x,y+1)處的圖像灰度值;Gx(x,y)、Gy(x,y)分別為圖像像素位置(x,y)在x方向和y方向偏微分值;
并將得到的偏微分值構成一個向量;
步驟五二、將步驟五一得到的偏微分值構成的向量進行歸一化,并將歸一化后的向量作為原始灰度圖像上對應邊緣像素的法向量。
其中,歸一化公式如下:
式中,[nx(x,y),ny(x,y)]為像素位置(x,y)在其邊緣位置處的邊緣法向量。
其它步驟及參數與具體實施方式一至三之一相同。
具體實施方式五:
本實施方式所述步驟六的具體過程如下:
步驟六一、在原始灰度圖像上,對所有邊緣像素進行如下操作:以邊緣像素位置為原點,沿其邊緣法向量方向左、右各等間距各選擇n個位置作為采樣點,采用圖像雙線性插值方法確定這2n+1個采樣點的圖像灰度值;
步驟六二、步驟六一得到2n+1個采樣點的圖像灰度值后,計算相鄰采樣點沿該像素法向量方向的灰度值差分,形成2n個灰度差分值;
步驟六三、首先對步驟六二得到的2n個灰度差分值進行自然對數變換,然后將變換之后的2n個值進行二次曲線擬合,確定擬合參數;
二次擬合曲線f(xλ)的表達式如下:
f(xλ)=Axλ2+Bxλ+C
其中,xλ為擬合二次擬合曲線的自變量,A、B、C分別是擬合參數;
步驟六四、利用步驟六三得到的二次曲線擬合參數,求解二次擬合曲線最大值所在的位置。其中,二次擬合曲線最大值所在的圖像位置的計算方法為:
式中,(xsub,ysub)為二次擬合曲線最大值所在的圖像位置,(x,y)為原邊緣像素位置。
其它步驟及參數與具體實施方式一至四之一相同。
具體實施方式六:
本實施方式步驟八所述的求解工業元件各個尺寸參數的具體過程如下:
針對工業元件上需要確定尺寸的邊緣或部位,依據根據擬合結果求解工業元件的尺寸。
其它步驟及參數與具體實施方式一至五之一相同。