本發明涉及瓷磚檢測技術領域,特別涉及一種基于機器視覺的瓷磚尺寸檢測方法。
背景技術:
目前基于機器視覺的瓷磚尺寸檢測方法主要有下列幾種:
(1)通過人為經驗設置瓷磚的測量區域或者測量特殊點,經過幾何關系的推導,計算出瓷磚的相關尺寸測量參數;
(2)通過邊緣定位算法獲得瓷磚四個角度的水平與豎直方向直線方程,直線交點即為瓷磚的邊角點的坐標,以此為基準計算其他的測量參數;
(3)直接通過Harris或者Shi-Tomasai等角點檢測算法直接進行分割點檢測;
(4)借助壓電傳感結構、激光傳感器等其他的輔助傳感器進行間接測量;
以上方法雖然都以視覺或者自動化技術為基礎,一定程度上減少了傳統的人工檢測帶來的經驗、工具誤差、環境等方面的影響,但是其所使用的算法都存在一定的局限性,無法反映真實的瓷磚尺寸形貌。四種方法的局限性分別如下:人為設置不可避免地帶入經驗誤差,受操作人員主觀測量經驗等因素的影響,邊緣定位擬合交點法當瓷磚的邊角缺損時,擬合的交點只是理論上的邊緣檢測點,與真實的瓷磚邊角相差較大,該方法無法反映這一真實的情況,其他的輔助傳感器無疑會增加整個測量系統的成本與復雜度,帶來更多的硬件設備誤差,因此研究一種能夠真實反映瓷磚尺寸檢測的視覺算法成為一項非常有意義的工作。
基于上述的工程應用背景,本發明人提出了一種基于斜矩包絡線最近鄰尺寸檢測算法。
技術實現要素:
本發明為解決上述問題,提供了一種基于機器視覺的瓷磚尺寸檢測方法,通過相機標定、圖像矯正、幾何包絡線、最近鄰域、最小二乘法技術,以準確的檢出瓷磚的真實物理尺寸,提高了瓷磚自動化檢測水平。
為實現上述目的,本發明采用的技術方案為:
一種基于機器視覺的瓷磚尺寸檢測方法,包括以下步驟:
步驟1、圖像采集與預處理
CCD相機在突出邊緣對比的組合光源下采集瓷磚圖像,然后對瓷磚圖像進行預處理,預處理方式為:先在視覺系統中對瓷磚圖像進行標定,再進行濾波、梯度銳化;
步驟2、輪廓提取、擬合與分割點確立
從瓷磚圖像中提取瓷磚輪廓圖像,以瓷磚輪廓擬合其斜外接矩形的包絡線,采用最近鄰搜尋算法確立瓷磚輪廓的分割點,具體是以該斜外接矩形的4個角點為基準點,搜尋距離基準點最近鄰域內的輪廓點作為瓷磚輪廓的分割點;
步驟3、長、寬度和完整度計算
確定各分割點的坐標,采用歐式距離度量瓷磚輪廓圖像各個端點之間的距離作為瓷磚長度和寬度,同時計算瓷磚輪廓圖像的完整度,所述各個端點為步驟2得出的分割點;
步驟4、輪廓分割與邊直度計算
采用最小二乘法對分割的輪廓線進行擬合,計算輪廓線中點到擬合直線的距離作為該邊的邊直度,將4條輪廓線的邊直度的最大值作為整個瓷磚輪廓圖像的邊直度;
步驟5、合格判定
將測量得到的瓷磚長度、寬度、完整度和邊直度與標準值進行比較,判斷瓷磚是否合格。
所述步驟1中,對瓷磚圖像進行標定具體是:采用11×8邊長為20×20mm的標準棋盤進行內角點線性標定。
所述步驟1中,對瓷磚圖像進行梯度銳化采用的算法公式為:
其中,f(x,y)代表圖像,G'M[f(x,y)]為最終的灰度代替值,G'M[f(x,y)]max=255,T1'表示銳化閾值,當梯度值大于T1'時,其值加T1,從而加強梯度邊緣;T2'表示灰度的閾值,當圖像灰度值大于T'2時,灰度值減T2。
所示步驟5中,采用設置上下偏差的方法進行合格產品的判別,判別公式如下:
其中,i={0,1,2,3,4...},分別代表瓷磚中尺寸的基本參數類型,fti.是測試瓷磚的某一尺寸參數值,fsi為經過訓練對應的標準參數最優值,Ti是判別容許的上下偏差,該值決定著對瓷磚尺寸的包容程度,g(fti)是特征判別的結果函數,當函數值等于1時,判別其為合格產品,否則判別其不合格。
采用上述技術方案后,本發明具有以下優點:
一、將視覺測量技術引入到瓷磚尺寸測量,其檢測流程不受操作人員的經驗、測量工具、疲勞度等因素的影響,保證了測量的精度;
二、考慮到瓷磚自身呈矩形,而且真實瓷磚長寬邊緣的過渡處并非是一個理論上的直角,大多數是一個圓弧的過渡,傳統檢測算法在處理的時候將其作為理論上的直角過渡,導致實際測算值存在一定誤差;因此本發明以一種理想的瓷磚輪廓斜外接矩的包絡線為基準,通過最近鄰領域內搜尋算法得到的點作為分割點,作為后續瓷磚尺寸測量算法的基準,避免了測算的誤差;
三、本發明對瓷磚圖像進行梯度銳化處理突出瓷磚的邊緣,從而保證了瓷磚輪廓提取的準確度與精度;
四、使用最小二乘法擬合分割線段,計算出瓷磚的邊直度,最大程度貼合了工程實際;
五、提出了最近鄰搜尋算法在瓷磚輪廓上尋找最近相切點的搜尋策略。
附圖說明
此處所說明的附圖用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1是本發明一種基于機器視覺的瓷磚尺寸檢測方法的流程簡圖;
圖2是邊緣銳化后的瓷磚圖像;
圖3是瓷磚輪廓斜外接矩形包絡線及分割點示意圖;
圖4是瓷磚輪廓提取圖像;
圖5是最近鄰領域內搜尋分割點效果圖;
圖6是最小二乘法擬合邊緣效果圖。
具體實施方式
為了使本發明所要解決的技術問題、技術方案及有益效果更加清楚、明白,以下結合附圖及實施例對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
如圖1所示本發明揭示的一種基于機器視覺的瓷磚尺寸檢測方法,包括以下步驟:
步驟1、圖像采集與預處理
CCD相機在突出邊緣對比的組合光源下采集瓷磚圖像,然后對瓷磚圖像進行預處理,預處理方式為:先在視覺系統中對瓷磚圖像進行標定,再進行濾波、梯度銳化,預處理后如圖2所示;
瓷磚視覺系統由世界坐標系到圖像平面坐標系間的變換關系如式(1)、
(2)所示:
m=A[R|t]×M (1)
其中,m(u,v)是點投影在圖像平面的坐標,A是相機的內參矩陣,矩陣參數fx,fy為以像素為單位的焦距,(cx,cy)是圖像的基準點,旋轉-平移矩陣[R|t]稱為外參矩陣,M為世界坐標系中的一個點,rx與ry分別代表橫向與縱向的分辨率。
本實施例中,采用型號為Grasshopper3-USB3CCD相機,有效像素為2448×2048,配套的鏡頭焦距為8mm,選用11×8邊長為20mm×20mm的標準棋盤進行內角點線性標定,內參數見表1。
表1瓷磚視覺系統內參數標定表
另外,圖像預處理主要是采用保邊濾波來保留邊緣不被平滑掉,采用本發明特別改進的梯度銳化處理突出瓷磚的邊緣,以下為本實施例針對瓷磚圖像改進的梯度銳化處理方法:
對于圖像f(x,y),任意的點(x,y)梯度在函數f(x,y)最大變化率方向上,梯度幅度GM[f(x,y)]由式(3)給出。
對于圖像f(x,y),為減少計算量時間,采用絕對值代替傳統的平方根和開方運算,梯度模值為式(4)所示:
GM[f(x,y)]=|f(x,y)-f(x+1,y+1)|+|f(x+1,y)-f(x,y+1)| (4)
現有的圖像銳化運用雙方向一次微分運算,算出梯度后直接用梯度值替代該點的灰度值,圖像最后行列的像素值用臨近的梯度值填充。實驗發現直接用梯度值代替灰度值會使圖像丟失大量原始信息,本發明根據瓷磚圖像的特征,設置門限判斷對梯度銳化進行了改進,具體公式如(5)所示,對瓷磚圖像進行梯度銳化采用的算法公式為:
式中,f(x,y)代表圖像,G'M[f(x,y)]為最終的灰度代替值,G'M[f(x,y)]max=255,T1'表示銳化閾值,當梯度值大于T1'時,其值加T1,從而加強梯度邊緣;T2'表示灰度的閾值,當圖像灰度值大于T'2時,灰度值減T2。采用上述梯度銳化處理方法可以保留原瓷磚圖像高灰度值信息同時消除了其對梯度邊緣的影響,其他情況灰度值不變,處理后的圖像既增強了瓷磚的輪廓又增加邊緣信息與其他背景的區分度。
步驟2、輪廓提取、擬合與分割點確立
從瓷磚圖像中提取瓷磚輪廓圖像,本實施例采用Canny邊緣檢測算法與8鄰域連碼結構提取瓷磚輪廓圖像,如圖4所示,然后將瓷磚輪廓擬合其斜外接矩形的包絡線,采用最近鄰搜尋算法確立瓷磚輪廓的分割點,具體是以該斜外接矩形的4個角點為基準點,搜尋距離基準點最近鄰域內的輪廓點作為瓷磚輪廓的分割點,分割點如圖5所示;
關于分割點的確定,具體的算法如下:斜外接矩形的包絡線是一個跟隨目標輪廓時刻變化的幾何基元,其擬合特性不受目標旋轉、平移等幾何變換的影響,考慮到瓷磚自身呈矩形,因此斜外接矩形是一種理想的矩形包絡線。參見圖3是圖像處理當中瓷磚輪廓的包絡線分割點的示意圖、最近鄰分割局部放大圖以及邊直度計算的局部放大圖,在真實的瓷磚長寬邊緣過渡處為圓弧時,如何獲取瓷磚的長寬的分割點成為整個算法的核心內容。本發明采用以斜外接矩形的包絡線端點為基準,如圖3右上角所示,p為在圓內最近鄰領域點作為分割點,o為包絡線的端點,r為鄰域最小半徑,最近鄰搜尋算法如下表所示:
步驟3、長、寬度和完整度計算
確定各分割點的坐標,采用歐式距離度量瓷磚輪廓圖像各個端點之間的距離作為瓷磚長度和寬度,同時計算瓷磚輪廓圖像的完整度,各個端點即為步驟2得出的分割點;
根據上述最近鄰搜尋算法就可以得到輪廓上的分割點A1,B1,C1,D1,使用歐式分別計算線段LA1B1,LC1D1,LA1D1,LB1C1長度作為瓷磚上寬、下寬、左高、右高參數值。
1、設任意兩點的坐標設為(xi,yi)與(xe,ye),則之間的距離公式如下:
2、對標定出來得到的物理分辨率rx與ry,本專利采用求取其均值的方法,則分辨率最終值r=(rx+ry)/2;
3、然后將像素空間距離變換到物理距離,公式如下:
lpw=lp×r。
步驟4、輪廓分割與邊直度計算
采用最小二乘法對分割的輪廓線進行擬合,擬合效果如圖6所示,計算輪廓線中點到擬合直線的距離作為該邊的邊直度,將4條輪廓線的邊直度的最大值作為整個瓷磚輪廓圖像的邊直度;本實施例采用的邊直度計算方法具體如下:
參見圖3,瓷磚的輪廓線并非是一條直線,p為該邊的中點,q表示p在端點形成的理想直線上的投影,d表示邊直度距離,使用最小二乘直線擬合算法先對分割點打斷的線段進行擬合,設任一四條打斷的線段點集設為:P{P|(xk,yk),k=1,2,…N,k∈N+且N≥2。最小二乘法的核心內容是:保證擬合直線上的各點值P|(xk,yk)與測量值的差的平方和最小,于是將其轉化為確定y=ax+b,參數化a與b使得:
通過極值原理可得,將上述最小值問題轉化為導數問題:
解上述方程可得:
因此擬合的參數方程求解出來以后,提取線段的中點M(xm,ym),則其到直線的方程作為該邊的邊直度ld:
分別按照上述的方法,計算每一條分割線段的邊直度,將其中的最大值作為瓷磚的邊直度ld’,
l'd=max(ldi)0<i≤4且i∈N+
最后將像素空間距離變換到物理距離,公式如下,效果見附圖5;
l'dw=l'd×r。
步驟5、合格判定
將測量得到的瓷磚長度、寬度、完整度和邊直度與標準值進行比較,判斷瓷磚是否合格。
通過上述的步驟1-4得到瓷磚基本參數測試值(長度、寬度、完整度和邊直度與標準值),而標準參數值則通過高斯參數對合格品的訓練得到,具體判別方式為采用設置上下偏差的方法進行合格產品的判別,判別公式如下:
其中,i={0,1,2,3,4...},分別代表瓷磚中尺寸的基本參數類型,如長度=1、寬度=2,fti.是測試瓷磚的某一尺寸參數值,fsi為經過訓練對應的標準參數最優值,Ti是判別容許的上下偏差,該值決定著對瓷磚尺寸的包容程度,g(fti)是特征判別的結果函數,當函數值等于1時,判別其為合格產品,否則判別其不合格。
上述說明示出并描述了本發明的優選實施例,應當理解本發明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環境,并能夠在本文發明構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發明的精神和范圍,則都應在本發明所附權利要求的保護范圍內。