趙彬彬,洪榮晶,2
(1.南京工業(yè)大學(xué)機(jī)械與動(dòng)力工程學(xué)院,江蘇 南京 211816;2.江蘇省工業(yè)裝備數(shù)字化制造及控制技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210009)
齒輪測(cè)量是保證齒輪精度的重要手段[1],在齒輪測(cè)量中,計(jì)算齒輪參數(shù)需要齒廓的精確位置,而漸開(kāi)線齒廓的形狀由基圓確定,且計(jì)算理論齒廓也需要齒輪基圓參數(shù)。因此確定基圓的中心和半徑是齒輪測(cè)量中的重要環(huán)節(jié)。確定齒輪中心有多種方法,按獲取數(shù)據(jù)的方式可分為:接觸式和非接觸式。接觸式通過(guò)齒輪測(cè)量中心[2]、三坐標(biāo)測(cè)量?jī)x[3]、激光測(cè)距儀[4]等設(shè)備提取齒輪齒廓的位置坐標(biāo),用反求方式求中心坐標(biāo)。非接觸式用攝像機(jī)等設(shè)備提取齒輪齒廓的數(shù)字量信息,利用重心法[5-6],Hough圓變換[7-8],最小二乘圓擬合[9-11]等方法求中心坐標(biāo)。上述方法在確定基圓參數(shù)的過(guò)程中,受齒輪軸孔形狀、是否有鍵槽的影響,存在局限性。
考慮到漸開(kāi)線齒廓在輪廓中的高占比,能提供大量的坐標(biāo)數(shù)據(jù),以及Hough圓變換在圓形輪廓檢測(cè)中對(duì)噪聲和不連續(xù)性不敏感的優(yōu)點(diǎn)。這里提出了一種用于視覺(jué)系統(tǒng)的基于Hough漸開(kāi)線變換的齒輪中心坐標(biāo)求解方法。
在圖像坐標(biāo)系中建立漸開(kāi)線的數(shù)學(xué)模型f(x,α)=0,式中x=(x,y)為像素的圖像坐標(biāo),α為確定漸開(kāi)線形狀的參數(shù)向量(下文簡(jiǎn)稱為參數(shù)向量)。如圖1所示,有漸開(kāi)線齒廓方程:
圖1 圖像中標(biāo)準(zhǔn)漸開(kāi)線示意圖Fig.1 Standard Involute in Image Coordinates
式中:rb—基圓的半徑;?—漸開(kāi)線在點(diǎn)B處的展開(kāi)角,對(duì)于順時(shí)針展開(kāi)的漸開(kāi)線,?按順時(shí)針取值。
圖1中的漸開(kāi)線基圓圓心在圖像坐標(biāo)系原點(diǎn),初始相位角為0,對(duì)(1)式做旋轉(zhuǎn)和平移變換,推廣到任意位置,如圖2所示。
圖2 任意位置漸開(kāi)線示意圖Fig.2 Involute of Random Position in Image Coordinates
2.1.1 像素的梯度
在求解參數(shù)向量α?xí)r,如果只使用式(2),自由變量的個(gè)數(shù)較多,計(jì)算復(fù)雜度高。為了降低自由變量的個(gè)數(shù),用像素的梯度增加約束,記每處像素的梯度角ψ=Ψ(x)。
如圖2中所示,B'點(diǎn)處梯度的方向?yàn)橹本€C'B',其梯度角滿足下面的公式:
式中:dx和dy—該點(diǎn)處沿X和Y方向的梯度分量。
圖2中漸開(kāi)線A'B'上每點(diǎn)的梯度角ψ與漸開(kāi)線的初始相位角θ及該點(diǎn)處的展開(kāi)角?存在等式關(guān)系:
展開(kāi)角?為負(fù)時(shí),表示順時(shí)針展開(kāi)的漸開(kāi)線。
按照Hough變換的思想,漸開(kāi)線的Hough變換可以通過(guò)以下的形式實(shí)現(xiàn)。首先,設(shè)定一個(gè)累加數(shù)列C,C(α)表示滿足漸開(kāi)線形式f(x,α)=0的參數(shù)向量α出現(xiàn)的次數(shù),設(shè)C(α)的初值為0;其次,對(duì)圖像中的每個(gè)像素點(diǎn)x,聯(lián)立式(2)和式(4)求出所有解α=(xo,yo,rb,θ,?),在相應(yīng)的累加數(shù)列C中有:
尋找累加數(shù)列C中的局部最大值,作為圖像中漸開(kāi)線的參數(shù)。實(shí)際應(yīng)用中,只需要漸開(kāi)線基圓的坐標(biāo)和半徑,即α的前三個(gè)分量。所以取前三個(gè)分量來(lái)構(gòu)建累加數(shù)列C,降低C的空間維度,便于累加計(jì)數(shù)和搜索極值。
2.1.2 離散化參數(shù)向量
在求解參數(shù)向量α的過(guò)程中,由于圖像采集和邊緣提取算法的誤差,代入方程的點(diǎn)x和梯度角ψ并不精確。由此得到的參數(shù)向量α也不準(zhǔn)確,這些不準(zhǔn)確的值分布在理想值的附近,給在累加數(shù)列C中尋找局部最大值造成影響。為了避免這樣的影響,在C進(jìn)行累加前,通過(guò)某種方式用離散后的參數(shù)向量值代替原始值。
考慮到圖像坐標(biāo)系是以像素為單位的離散坐標(biāo)系,選擇合適的分度將α離散化。如圖3所示,在參數(shù)空間oXoYoRb中,設(shè)定參數(shù)向量α中(xo,yo)的分度為ΔL,rb的分度為ΔR。由ΔL和ΔR定義了一個(gè)以α為起點(diǎn)的長(zhǎng)方體鄰域,當(dāng)計(jì)算值落在該鄰域內(nèi)時(shí),即:
圖3 離散化的參數(shù)空間Fig.3 Discretized Parameter Space
用α代替αc在累加數(shù)列C中進(jìn)行計(jì)數(shù)。參加累加計(jì)數(shù)的點(diǎn)是以參數(shù)空間原點(diǎn)為起始點(diǎn),ΔL、ΔR為分度的等距點(diǎn)。
將判斷計(jì)算值αc落在哪個(gè)點(diǎn)鄰域的映射記為g,有:
當(dāng)αc不在設(shè)定的參數(shù)空間取值范圍內(nèi)時(shí),返回空值,不代入累加數(shù)列C。
此時(shí)累加數(shù)列C的計(jì)算公式改為:
通過(guò)離散化近似,使落在鄰域內(nèi)的點(diǎn)都以該鄰域的起點(diǎn)參與計(jì)數(shù),這樣既可以使基圓參數(shù)結(jié)果控制在ΔL、ΔR的精度內(nèi),也可以補(bǔ)償圖像采集和處理過(guò)程中引入的誤差。
對(duì)攝像機(jī)采集的齒輪圖像,采用上述的漸開(kāi)線Hough變換原理,按照?qǐng)D像處理過(guò)程,求得齒輪中心坐標(biāo),如圖4所示。
圖4 圖像處理流程Fig.4 Block Diagram of Image Processing
2.2.1 圖像濾波
由于圖像采集過(guò)程中光源、攝像機(jī)傳感器和其它外界因素的干擾,齒輪圖像存在噪聲。這里采用中值濾波方法,它在不模糊圖像邊緣的同時(shí)也可以有效的去除噪聲[6]。
設(shè)P(x,y)為圖像中第i行第j的像素點(diǎn)的灰度值,使用(3×3)大小的濾波核,濾波后該像素點(diǎn)的新灰度值P'(x,y)為:
式中:i,j—取區(qū)間[-1,1]中的整數(shù);
Med—取該集合內(nèi)像素點(diǎn)灰度的中值。
2.2.2 圖像卷積求梯度角
像素點(diǎn)的梯度角ψ可以通過(guò)該點(diǎn)處X和Y方向的梯度分量,用反正切函數(shù)求取。這里選用Scharr算子[12]進(jìn)行卷積,它有較高的精度和較低的敏感性。
選擇Scharr算子的卷積核大小為(3×3),點(diǎn)(x,y)處沿X和Y方向的梯度值Gx、Gy及梯度角ψ可由如下公式計(jì)算:
式中:SXi,j和SYi,j—沿X和Y方向的算子中的系數(shù),反正切函數(shù)arctan根據(jù)Gx、Gy的正負(fù)及比值返回角度值。
2.2.3 邊緣提取
濾波后的齒輪圖像經(jīng)邊緣提取后,得到邊緣圖像。邊緣像素坐標(biāo)將會(huì)用于后續(xù)Hough變換,這里采用Canny算子。它是一種雙閾值的混合邊緣算子,具有誤差率低、定位性好的優(yōu)點(diǎn)。
記邊緣圖像為E,E(x,y)=1表示該像素點(diǎn)為邊緣點(diǎn)。
2.2.4 漸開(kāi)線Hough變換
用上兩節(jié)得到的梯度角和邊緣圖像,將第2.1的原理轉(zhuǎn)化成可行的圖像處理操作。
設(shè)定ΔL、ΔR的值為一個(gè)像素單位,D為參數(shù)空間取值范圍,[xmin,xmax][ymin,ymax][-?max,?max][rbmin,rbmax]是x、y、?、rb的取值區(qū)間,有如下的程序:
上述程序?qū)崿F(xiàn)了Hough漸開(kāi)線變換。將[ymin,ymax]按設(shè)定的線程數(shù)n分段,對(duì)每一段(i=1,…,n)做漸開(kāi)線Hough變換,得到累加數(shù)列Ci的結(jié)果。當(dāng)所有線程的運(yùn)算結(jié)束時(shí),對(duì)累加數(shù)列Ci做矩陣加法,即:
這樣的多線程操作可以成倍的縮減漸開(kāi)線Hough變換過(guò)程的時(shí)間。遍歷累加數(shù)列C,尋找其中的局部極大值,并設(shè)定一個(gè)閾值T(c可以取最大值的85%),記錄同時(shí)是局部最大值且大于閾值Tc的點(diǎn)對(duì)應(yīng)的參數(shù)向量,即:
式中Δαk=(ΔL,ΔL,ΔR),由于圖像中的漸開(kāi)線齒廓都屬于同一個(gè)齒輪,滿足要求的αk通常只有一個(gè)。當(dāng)有多個(gè)αk時(shí),取最大值附近m個(gè)分度(m看分度的大小自行決定)范圍內(nèi)滿足條件參數(shù)向量的平均值作為結(jié)果。漸開(kāi)線Hough變換得到的最終結(jié)果,其中包含需要齒輪中心坐標(biāo)。
齒輪基圓參數(shù)提取的實(shí)驗(yàn)裝置示意圖,如圖5所示。有Basler acA2440-35um 型號(hào)的CMOS 灰度相機(jī),分辨率為(2448×2048)pixel;相機(jī)配備有Moritex ML-M1218HR 型號(hào)的定焦鏡頭,焦距12.01mm,視角范圍為(40.52×30.70)°;實(shí)驗(yàn)裝置底部安放了可調(diào)光強(qiáng)的白色LED面光源。相機(jī)與電腦由USB3.0接口連接,采集圖像傳入電腦后,用基于OpenCV的C++程序進(jìn)行圖像處理。
圖5 視覺(jué)實(shí)驗(yàn)裝置Fig.5 Computer Vision Experiment Equipment
分別使用重心法、Hough 圓變換、最小二乘圓擬合與Hough漸開(kāi)線變換方法提取齒輪基圓參數(shù),比較各自結(jié)果驗(yàn)證可行性。
實(shí)驗(yàn)中對(duì)齒數(shù)z=24,模數(shù)m=5mm的6級(jí)精度圓柱直齒輪采集圖像??紤]定焦鏡頭產(chǎn)生的畸變,選用三階徑向畸變和切向畸變的畸變模型,用(8×8)的棋盤(pán)標(biāo)定板對(duì)相機(jī)進(jìn)行標(biāo)定和畸變矯正,標(biāo)定后重投影誤差為0.14pixel。
相同圖片下,各方法求得的齒輪基圓參數(shù),如表1所示。
表1 基圓參數(shù)求解結(jié)果Tab.1 Test Results of Base Circle Parameter
實(shí)驗(yàn)中前三種方法參考文獻(xiàn)[5,7,11]中的圖像處理流程,以圖像左上頂點(diǎn)為原點(diǎn),用標(biāo)定所得像素當(dāng)量將結(jié)果單位轉(zhuǎn)為mm。四種方法求出的基圓參數(shù)相互收斂,其中由于景深效應(yīng)的影響,依賴二值化閾值的重心法代入了較多齒輪內(nèi)圈像素的噪音,基圓坐標(biāo)和半徑的值與其它三種方法的差距較大。
齒輪理論基圓半徑為56.382mm,后三種方法與理論值的誤差分別為0.178mm、0.093mm和0.037mm,Hough漸開(kāi)線變換方法的誤差最小。由于Hough圓變換在所用視覺(jué)庫(kù)中有底層加速,處理速度最快,除此之外,Hough漸開(kāi)線變換在多線程的幫助下,時(shí)間優(yōu)于其它兩種方法。實(shí)驗(yàn)所用圖片,如圖6(a)所示。齒輪邊緣圖像,如圖6(b)所示。Hough漸開(kāi)線變換的結(jié)果,如圖6(c)所示。
圖6 實(shí)驗(yàn)中的圖片F(xiàn)ig.6 Images in Experiments
為驗(yàn)證Hough漸開(kāi)線變換法的準(zhǔn)確性,使用生成的標(biāo)準(zhǔn)齒輪圖像進(jìn)行仿真實(shí)驗(yàn)。
在(1200×900)大小的8位灰度空白圖像中,基圓圓心隨機(jī)選取圖像中央?yún)^(qū)域,以齒數(shù)z=17,模數(shù)m=36pixe(l以像素作為長(zhǎng)度單位)作齒輪圖像。設(shè)置齒輪區(qū)域灰度值為30,其他部分灰度值為255,同時(shí)對(duì)每個(gè)像素點(diǎn)添加均方差為2灰度的高斯噪聲模擬隨機(jī)誤差。
運(yùn)行10次仿真測(cè)試,其中前8次為帶內(nèi)孔的的齒輪圖像,第9次為帶有鍵槽的齒輪圖像,第10次為缺齒的齒輪圖像,后兩次的齒輪圖像,如圖7所示。它們最終的結(jié)果,如表2、表3所示。
表2 仿真測(cè)試結(jié)果Tab.2 Results of Simulation Test
表3 各參數(shù)的標(biāo)準(zhǔn)差Tab.3 Standard Deviation of Each Parameter
圖7 仿真中的圖片F(xiàn)ig.7 Image in Simulation
在仿真測(cè)試中,設(shè)定參數(shù)空間的分度ΔL、ΔR都為0.2pixel,每次測(cè)試中步驟相同。仿真結(jié)果顯示,測(cè)試值與理論值最大偏差為1.5pixel,基圓中心坐標(biāo)和半徑誤差的標(biāo)準(zhǔn)差在1pixel以內(nèi)。一般Hough圓檢測(cè)法和重心法的誤差在(1~2)pixel內(nèi)[5],Hough漸開(kāi)線變換在通用方法范圍內(nèi)。后兩次的仿真結(jié)果顯示,Hough 漸開(kāi)線變換對(duì)存在鍵槽和缺齒的齒輪圖片同樣可以得到圓心,它的適用性比重心法和最小二乘圓擬合法要好,且無(wú)需修改圖像處理的步驟。綜合比較下,Hough漸開(kāi)線變換在運(yùn)算時(shí)間和誤差結(jié)果上都明顯好于重心法和Hough圓檢測(cè)法,且在通用性上存在優(yōu)勢(shì),可以達(dá)到檢測(cè)齒輪中心的目的。
這里用Hough漸開(kāi)線變換來(lái)提取齒輪圖像的基圓參數(shù),闡述了Hough漸開(kāi)線變換的原理和圖像處理流程。由于Hough變換不受齒輪內(nèi)孔鍵槽等影響,且對(duì)于齒廓邊緣的噪聲和不連續(xù)性不敏感,相比其他方法有更大的通用性,在處理速度上也有優(yōu)勢(shì)。在模數(shù)為5mm的圓柱直齒輪實(shí)驗(yàn)中,Hough漸開(kāi)線變換法所求基圓半徑與理論值的誤差為0.037mm,與其他方法的比較結(jié)果顯示這里的方法具有可行性。仿真測(cè)試結(jié)果表明,該方法所得結(jié)果與理論值誤差的標(biāo)準(zhǔn)差在1pixel內(nèi),當(dāng)測(cè)量小模數(shù)齒輪時(shí)可以達(dá)到較高精度。按該方法求出的基圓參數(shù),可以后續(xù)用于齒輪參數(shù)及齒輪偏差的計(jì)算。