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