邱國清
(1.閩南師范大學(xué) 計算機學(xué)院,漳州363000;2.閩南師范大學(xué) 福建省粒計算及其應(yīng)用重點實驗室,漳州363000)
在機器視覺系統(tǒng)中,光源、相機選取的優(yōu)劣是決定機器視覺成功與否的關(guān)鍵[1],傳統(tǒng)的成像系統(tǒng)都會有少量的畸變,圖像會不同程度的拉伸變形,造成圖像邊緣輪廓失真,影響輪廓測量精度.柵格數(shù)據(jù)用一定的分解力把制圖表像按行、列進行劃分,從而得到離散的基本像元,與制圖物體的空間分布特征有著嚴(yán)格而直觀的對應(yīng)關(guān)系,對物體的可探性強,為增強應(yīng)用機器視覺效果提供了可能性.尺寸測量是機器視覺技術(shù)最普遍的應(yīng)用領(lǐng)域,圓測量需要對圓的外形輪廓進行識別和擬合,在得到圓的方程之后即可根據(jù)數(shù)學(xué)方法獲取相關(guān)的各種參數(shù),如直徑、圓心位置等.哈夫變換法是利用三維空間參數(shù)聚類提取圓的經(jīng)典方法,圖像空間中的圓對應(yīng)著參數(shù)空間中的一個點,而圖像空間中的一個點(x1,y1)對應(yīng)著參數(shù)空間中的一個三維直立圓錐,該點約束了通過該點的一個圓錐面的參數(shù)(a1,a2,r).最小二乘法的原理是先選擇曲線的數(shù)學(xué)模型,再通過采樣點的Y值與f(x)之差的平方和最小值來確定f(x)的系數(shù)[2].但這兩種算法計算量非常大,運算速度慢.而等間距平行線算法[3-5]通過繪制若干條平行線,計算每條平行線與輪廓交點坐標(biāo)來測量工件的精度,計算量少,速度快.
等間距平行線算法是在圓內(nèi)繪制一組等間距平行弦,每條弦與工件輪廓交點可以利用勾股定理求出,利用這個原理對輪廓進行圓的擬合.該算法分兩個主要內(nèi)容:
(1)對一個工件輪廓區(qū)域進行輪廓跟蹤,求出區(qū)域的邊界像素點.
(2)根據(jù)像素點序列繪制一組等間距平行線,依次判斷每條弦的兩個端點是否滿足勾股定理,如果滿足則端點不用擬合,否則需要擬合.
(1)坐標(biāo)Y軸與等間距平行線相互平行且多邊形輪廓點均位于第一象限,設(shè)等間距平行線與原坐標(biāo)系的y軸之間夾角為θ(-90°≤θ≤90°),新坐標(biāo)系下輪廓點的轉(zhuǎn)換計算如下:
(2)為了能讓每條平行線穿過區(qū)域內(nèi)點,約定等間距平行線之間的間距等于柵格數(shù)據(jù)二維網(wǎng)格的大小,在工件輪廓邊界像素點序列中求新坐標(biāo)系中輪廓點橫坐標(biāo)的最小值和最大值,取輪廓點中橫坐標(biāo)最小值,d為等間距平行線的間距(等于網(wǎng)格大小),首先選定一條平行線開始推算,該平行線與新坐標(biāo)系Y軸之間的距離稱為a值,也就是第一條平行線的橫坐標(biāo),即
其中,[]為取整符號.
(3)成對讀取邊界像素點序列里的坐標(biāo)值,繪制等間距平行弦,每條弦與輪廓兩個端點計算如下:
(1)設(shè)置間距值,繪制平行線,掃描工件輪廓邊界像素點序列中的橫坐標(biāo)值,找出最大值和最小值,按式(3)計算與工件輪廓相交的第一條平行線的橫坐標(biāo)值[6].
(2)根據(jù)式(4)計算新的平行弦與工件輪廓的兩個端點,判斷是否需要擬合,如果不需要則執(zhí)行第3步,否則執(zhí)行第4步.
(3)計算下一條平行線的橫坐標(biāo)值,返回到第2步.
(4)按照式(4)計算每條弦求解出的圓心坐標(biāo)和半徑.
(5)判斷a的值是否大于X的最大值,如果小于則返回第3步,否則直接退出.
基于柵格與等間距平行線原理算法,首先依次采集區(qū)域邊界頂點的坐標(biāo),找出其中橫坐標(biāo)的最小值作為等間距平行線的初始值,同時按設(shè)定的精度值將整個區(qū)域柵格化,輪廓區(qū)域進行輪廓跟蹤,求出區(qū)域的邊界像素點.柵格單元劃分的越細(xì),尺寸參數(shù)計算效果越明顯,引入一組等間距平行線,根據(jù)每條平行線與所有邊界的交點來確定由該條平行線計算出的圓心和半徑值,因為平行線間距大小均是一致的,所以可以很快在所有平行線條件下求解出圓心和半徑值,整個過程完全由計算機程序自動完成,具體的算法流程如圖1所示.
圖1 柵格間隔為5個像素
首先輸入工件輪廓圖,掃描工件輪廓邊界像素點,依次讀取輪廓所在柵格單元的行列值,建立邊界像素點集合,如圖2所示.
圖2 柵格間隔為20個像素
根據(jù)圖2可以計算出工件輪廓邊界像素點序列,如表1所示.
表1 工件輪廓對應(yīng)的坐標(biāo)值
表1中工件輪廓邊界點的坐標(biāo)值是以邊界點所在的柵格單元中心點為準(zhǔn).
利用等間距平行線方法可以擬合圓,如圖3所示,其原理是:搜索輪廓邊界點像素序列,在工件輪廓內(nèi)繪制一組等間距平行線,利用勾股定理計算每條弦與輪廓兩個端點坐標(biāo).
圖3 等間距平行線與圓周的幾何關(guān)系
在進行圓檢測時,先從像素點序列中獲取當(dāng)前弦與輪廓兩個端點的坐標(biāo)值,根據(jù)端點坐標(biāo)值計算出該條弦求解出的圓心坐標(biāo)和半徑,以此類推,當(dāng)所有的平行線與輪廓端點求解出相應(yīng)的圓心和半徑值,與原始的圓參數(shù)對比查找出不同值,說明該條弦對應(yīng)的端點需要擬合.
圓測量是尺寸測量技術(shù)中應(yīng)用較為廣泛的測量方式,傳統(tǒng)物理方式測量精度低,基于機器視覺技術(shù)則可以大大提高測量速度和精確度.圖4(a)中內(nèi)側(cè)圓是標(biāo)準(zhǔn)的尺寸,外側(cè)是產(chǎn)生了少許畸變的圓,對工件輪廓的區(qū)域柵格化,獲取輪廓邊界點像素點的值.
對工件輪廓區(qū)域柵格化,跟蹤輪廓得到邊界點的柵格單元值,以柵格單元中心點作為邊界點的值,故邊界點像素序列如下:
(90,65)、(100,65)、(110,65)、(120,65)、(130,65)、(140,65)、(150,65)、(160,65)、(80,75)、(90,75)、(160,75)、(170,75)、(180,75)、(70,85)、(80,85)、(180,85)、(190,85)、(70,95)、(190,95)、(60,105)、(70,105)、(190,105)、(200,105)、(60,115)、(200,115)、(60,125)、(200,125)、(60,135)、(200,135)、(60,145)、(200,145)、(60,155)、(70,155)、(190,155)、(200,155)、(70,165)、(190,165)、(70,175)、(80,175)、(180,175)、(190,175)、(80,185)、(90,185)、(100,185)、(160,185)、(170,185)、(180,185)、(100,195)、(110,195)、(130,195)、(140,195)、(150,195)、(160,195),根據(jù)邊界點像素序列繪制一組等間距平行線,從序列中可以看出,在指定y值的平行線上有若干個像素點,弦與輪廓兩個端點的值等于該條平行線的兩個像素點的值,如y=155,兩個端點分別為(60,155)、(200,155).
利用勾股定理和每條弦與輪廓的兩個端點坐標(biāo)值計算圓心坐標(biāo)和半徑值,如表2所示.
表2 剛性圈不同間隔值測量參數(shù)
圓的真實圓心為(128.83,128.83),半徑值為68.83.從表2中可以看出,工件輪廓內(nèi)有12條平行線,其中第3、10條弦計算出的半徑值與實際值誤差最小.由于在獲取邊界點像素序列是取柵格中心點坐標(biāo)值,柵格寬度越小,精度越高,但計算量越大.在半徑誤差設(shè)定的閾值內(nèi),決定哪些端點需要擬合.擬合的方法是通過移動端點的柵格位置來調(diào)整.
在表2中,第4條弦計算出的半徑值誤差最大,假設(shè)半徑誤差閾值為1%,此時,在圖4(a)中,柵格寬度為10個像素單位,把第4條弦的右端點所在柵格單元向左移動一個單元,此時兩個端點坐標(biāo)為(60,105)、(190,105),重新計算半徑值為69.64,半徑誤差為1.1%,雖然大于閾值,但精度有較大提高.此時還可以通過縮小柵格寬度,進一步提高精度值,經(jīng)過擬合后的輪廓如圖4(b)所示.
圖4 工件尺寸測量
在圖4(b)中,黑色輪廓是擬合后的效果圖,柵格單元寬度為10個像素.
隨著電子工業(yè)的蓬勃發(fā)展,橡膠產(chǎn)品正被越來越多的應(yīng)用在更高要求的工業(yè)產(chǎn)品領(lǐng)域.橡膠密封圈、橡膠按鍵等都是很常見的配件,但橡膠零件的品質(zhì)控制不像金屬、塑膠材質(zhì)的產(chǎn)品一樣方便直接,因為橡膠產(chǎn)品本身是有彈性的、外力接觸會發(fā)生形變,測量的時候傳統(tǒng)接觸式測量根本沒辦法實施.橡膠密封圈橫截面是圓形,輪廓是內(nèi)/外圓且往往因為形變等原因內(nèi)外圓輪廓的尺寸會發(fā)生改變.對于密封圈內(nèi)外圓半徑值的測量,同樣采用等間距平行線原理,首先對工件輪廓區(qū)域柵格化,分別識別出內(nèi)外圓邊界點像素序列,根據(jù)內(nèi)外圓邊界點像素繪制一組等間距平行線,取值時應(yīng)保證內(nèi)外圈像素處于同一線上,這樣就可以保證同一條線與內(nèi)外圈的各自兩個端點都處于同一水平或垂直方向.設(shè)定半徑誤差閾值,根據(jù)勾股定理,分別計算每條弦對應(yīng)的內(nèi)外圈半徑值.
3.3.1 誤差分析
橡膠密封圈橫斷面通常是圓形,橫斷面的長度等于外圈與內(nèi)圈差值,在對密封圈進行參數(shù)測量時,應(yīng)在橫斷面的精度誤差的范圍內(nèi),同時也要把內(nèi)外圈半徑誤差控制在閾值內(nèi).為了控制橫斷面和內(nèi)外圈半徑精度,在對內(nèi)外圈擬合時,應(yīng)根據(jù)每條弦計算出的內(nèi)外徑進行判斷,如果外徑偏差則擬合外圈,如果內(nèi)徑偏差則擬合內(nèi)圈,這樣可以控制橫斷面精度,如圖5所示.
圖5 密封圈尺寸測量
在圖5中,標(biāo)準(zhǔn)的外圈半徑值為68.83,內(nèi)圈半徑值為58.83,橫斷面寬度為10,根據(jù)勾股定理計算前6條弦結(jié)果如表3所示.
表3 柔性圈不同間隔值測量參數(shù)
造成誤差的原因有以下兩點:
(1)在對工件輪廓區(qū)域柵格化時,柵格單元的大小直接影響到測量精度,柵格越小精度越高,但計算量越大.
(2)傳統(tǒng)的成像系統(tǒng)都會有少量的畸變,此時可以通過擬合圓來減少畸變對精度的影響.
3.3.2 算法復(fù)雜度分析
計算復(fù)雜度包括空間復(fù)雜度和時間復(fù)雜度.空間復(fù)雜度一般指存儲量的問題,時間復(fù)雜度則是指計算的工作量問題[7].基于多級格網(wǎng)輔助機器視覺曲面測量,隨著網(wǎng)格劃分越細(xì),存儲空間也會增大,但測量精度也提高.對于時間復(fù)雜度,由于該算法主要是判斷柵格集合中每一個輪廓點行列值,采用多重循環(huán)語句結(jié)構(gòu),隨著網(wǎng)格劃分密度的增大,計算量會有所增加,但對于時間的復(fù)雜度影響有限.
基于等間距平行線輔助機器視覺實現(xiàn)曲面輪廓參數(shù)測量,可以根據(jù)測量精度要求調(diào)整網(wǎng)格寬度大小,從而提高測量精度,在工程應(yīng)用中具有一定的應(yīng)用前景.