逯海濱 張 丹 李長安 隋文濤 竇亞萍 張宇凡
(①山東理工大學(xué)機(jī)械工程學(xué)院,山東 淄博 255049;②山東理工大學(xué)電氣與電子工程學(xué)院,山東 淄博 255049)
齒輪是現(xiàn)代工業(yè)生產(chǎn)中最常見的零部件[1],作為現(xiàn)代工業(yè)系統(tǒng)的核心零部件,其結(jié)構(gòu)設(shè)計(jì)水平和加工精度是決定機(jī)械產(chǎn)品性能的決定性因素之一。由于齒輪的幾何結(jié)構(gòu)復(fù)雜,測(cè)量參數(shù)繁多,測(cè)量結(jié)果的準(zhǔn)確性直接關(guān)系到齒輪的制造精度和各種性能,因此,快速、準(zhǔn)確地測(cè)量和分析齒輪的參數(shù)和精度具有重要意義。
齒距偏差是評(píng)定齒輪精度的幾何元素之一,對(duì)其進(jìn)行齒距偏差檢測(cè)至關(guān)重要。為了避免人為因素對(duì)測(cè)量結(jié)果造成影響,實(shí)現(xiàn)齒輪在線測(cè)量,提高齒輪齒距偏差測(cè)量的準(zhǔn)確率,研究人員引入了機(jī)器視覺使用非接觸測(cè)量來代替?zhèn)鹘y(tǒng)的接觸測(cè)量[2-4],并取得了一定的進(jìn)展。文獻(xiàn)[5]設(shè)計(jì)了一種基于機(jī)器視覺的齒輪測(cè)量系統(tǒng);但是該系統(tǒng)在面對(duì)鏡頭畸變時(shí)無法進(jìn)行校正,測(cè)量精度低。文獻(xiàn)[6]搭建的基于機(jī)器視覺的齒輪參數(shù)測(cè)量系統(tǒng),可以實(shí)現(xiàn)各項(xiàng)參數(shù)的測(cè)量,測(cè)量精度可達(dá)0.1 mm。文獻(xiàn)[7]使用最小二乘法擬合得到了齒頂圓、齒根圓的半徑;但該方法會(huì)受到輪廓曲線提取效果的影響,造成較大誤差。
針對(duì)齒距偏差檢測(cè)中存在的問題,本文以標(biāo)準(zhǔn)直齒輪為對(duì)象,研究了基于機(jī)器視覺的齒距偏差研究方法。并引入改進(jìn)的Zernike亞像素邊緣檢測(cè)算法[8-10],測(cè)量得到了齒輪的參數(shù),對(duì)進(jìn)一步提高齒距偏差測(cè)量準(zhǔn)確性及可靠性具有重要的現(xiàn)實(shí)意義。
本文齒輪齒距偏差測(cè)量裝置[11]如圖1所示,主要由CCD工業(yè)相機(jī)、鏡頭、環(huán)形光源、工作臺(tái)和計(jì)算機(jī)等組成。工業(yè)相機(jī)通過螺栓固定在支架上,其高度通過轉(zhuǎn)動(dòng)手輪來調(diào)節(jié)。測(cè)量過程中,將待測(cè)齒輪放至工作臺(tái)上,調(diào)節(jié)相機(jī)高度及光源亮度使得拍攝的圖像最為清晰,并將采集到的圖像傳輸?shù)接?jì)算機(jī)上,基于計(jì)算機(jī),對(duì)采集到的齒輪圖像進(jìn)行處理并測(cè)量出齒輪參數(shù)。
圖1 機(jī)器視覺裝置構(gòu)成圖
根據(jù)齒距偏差測(cè)量原理制定測(cè)量流程,測(cè)量流程圖如圖2所示。
圖2 測(cè)量流程圖
為了提升對(duì)圖像的測(cè)量精度,減少鏡頭畸變的影響,需要對(duì)圖像進(jìn)行畸變矯正[12]。本文采用基于張正友法的相機(jī)標(biāo)定[13],畸變校正流程如圖3所示。
圖3 畸變校正流程
在校正過程中,矯正畸變通過泰勒展開式取前3項(xiàng)。徑向畸變校正中,畸變通過泰勒級(jí)數(shù)展開式校正為
在切向畸變校正中,畸變通過泰勒級(jí)數(shù)展開式校正為
式中:k1、k2為徑向畸變系數(shù);p1、p2為切向畸變系數(shù);(xr,yr)、(xp,yp)為歸一化處理的無畸變像點(diǎn)和實(shí)際像點(diǎn)坐標(biāo);r為無畸變像點(diǎn)坐標(biāo)與光學(xué)中心的距離。
測(cè)量齒輪齒距偏差的過程中,需要實(shí)現(xiàn)像素坐標(biāo)尺寸到實(shí)際尺寸的轉(zhuǎn)換。
使用Harris角點(diǎn)檢測(cè)算法[14]對(duì)校正后的棋盤格進(jìn)行角點(diǎn)檢測(cè),將提取出的角點(diǎn)作為像素當(dāng)量標(biāo)定的特征點(diǎn)。通過計(jì)算任意兩個(gè)相鄰的同行角點(diǎn)間的物理尺寸和像素?cái)?shù)量,得到棋盤格上此行的像素當(dāng)量,計(jì)算多個(gè)同行角點(diǎn)的像素當(dāng)量并取平均值。所得結(jié)果即為系統(tǒng)像素當(dāng)量,測(cè)得本系統(tǒng)像素當(dāng)量:K=0.018 mm/pixel,計(jì)算如式(3)所示。
式中:K為系統(tǒng)像素當(dāng)量;Ki為同行相鄰角點(diǎn)的像素當(dāng)量;S為相鄰角點(diǎn)物理尺寸設(shè)計(jì)值;Pi為相鄰角點(diǎn)像素?cái)?shù)量。
本文采用工業(yè)相機(jī)在背景光源照射下采集,待測(cè)圖像如圖4a所示,在獲取待測(cè)圖像后,對(duì)圖像進(jìn)行預(yù)處理算法,提升待測(cè)圖像的質(zhì)量。為提升圖像處理速度,對(duì)圖像進(jìn)行灰度化處理。
圖4 圖像預(yù)處理結(jié)果
為避免噪聲干擾對(duì)圖像質(zhì)量的影響,改善圖像清晰度。本文選擇中值濾波對(duì)圖像進(jìn)行濾波去噪處理,圖像預(yù)處理后的灰度圖如圖4b所示。
對(duì)于離散函數(shù)f(x,y),其n階m次Zernike矩可以定義為
式中:V* n,m(ρ,θ)為核心公式的共軛;ρ為圓點(diǎn)到點(diǎn)(x,y)的距離;θ為矢量ρ與x方向的夾角。
如圖5a所示為Zernike矩理想邊緣模型,圖5b為圖像繞坐標(biāo)軸旋轉(zhuǎn)θ角后的邊緣階躍模型,目標(biāo)區(qū)域用陰影區(qū)域表示,h表示圖像背景區(qū)域的灰度值,k是邊緣階躍高度,l是邊緣線到原點(diǎn)的垂線長度,θ為邊緣線到原點(diǎn)的垂線與x軸的夾角。
圖5 Zernike矩理想邊緣模型
設(shè)邊緣階躍模型繞坐標(biāo)軸旋轉(zhuǎn)θ角,根據(jù)Zernike矩旋轉(zhuǎn)不變性可得
由式(5)中可知旋轉(zhuǎn)后的圖像關(guān)于x軸對(duì)稱,并且只有相角發(fā)生了變化。將旋轉(zhuǎn)后的理想邊緣階躍模型積分可得
基于Zernike矩的模板效應(yīng),需要對(duì)亞像素坐標(biāo)進(jìn)行修正,利用式(7)對(duì)各項(xiàng)參數(shù)進(jìn)行運(yùn)算,求得修正后的亞像素邊緣坐標(biāo)為
式中:A為模板階數(shù),本文采用7×7模板階數(shù)。(xs,ys)為修正后圖像的亞像素邊緣坐標(biāo)。
傳統(tǒng)的Zernike亞像素邊緣檢測(cè)算法需要遍歷計(jì)算所有像素點(diǎn)的多個(gè)正交復(fù)數(shù)矩,計(jì)算效率低且計(jì)算時(shí)間長。為了減少運(yùn)算時(shí)間,提高亞像素邊緣檢測(cè)的效率,本文引入Canny邊緣檢測(cè)算法,通過Canny算子對(duì)預(yù)處理過的圖像進(jìn)行檢測(cè)來實(shí)現(xiàn)粗定位,從而將 Canny邊緣檢測(cè)與Zernike 矩亞像素邊緣檢測(cè)相結(jié)合。收集并保存所有Canny算子定位的邊緣點(diǎn),然后利用Zernike 矩算法對(duì)可能的邊緣像素點(diǎn)進(jìn)行正交復(fù)數(shù)矩計(jì)算,從而實(shí)現(xiàn)亞像素點(diǎn)的精確定位。
本文通過Canny算子對(duì)齒輪圖像進(jìn)行邊緣檢測(cè),并保存所有可能的粗定位邊緣像素點(diǎn)。使用7×7模板,將模板系數(shù)與粗定位邊緣像素點(diǎn)做卷積運(yùn)算,并通過式(7)求取邊緣參數(shù)k 、h、 l和θ。當(dāng)粗定位邊緣像素點(diǎn)滿足Zernike矩邊緣點(diǎn)判斷條件k≥kt且l≤lt時(shí),判斷該像素點(diǎn)為邊緣點(diǎn),并通過式(8)進(jìn)行精確計(jì)算,獲取亞像素級(jí)坐標(biāo)。遍歷粗定位邊緣像素點(diǎn)即可得到亞像素邊緣。
(1)齒輪中心(x0,y0)
參照組使用傳統(tǒng)開胸手術(shù)方法,患者進(jìn)行全身麻醉,在患者第5肋間進(jìn)行消毒后[3],做手術(shù)切口,在確定病灶位置后,將病灶切除,并清掃淋巴結(jié),然后縫合患者傷口并消毒。實(shí)驗(yàn)組使用微創(chuàng)手術(shù)方法,患者行靜脈復(fù)合全身麻醉,氣管插管,在患者的第4肋間做主操作孔,第8肋間建立輔助操作孔,第7肋間建立觀察孔,將患者病灶切除后,要清洗胸腔[4-7],然后縫合傷口。
齒輪中心作為齒輪參數(shù)測(cè)量最基礎(chǔ)也是最重要的參數(shù),其定位的準(zhǔn)確度將直接影響后續(xù)齒輪參數(shù)測(cè)量的精度。經(jīng)過多種方法比較,本文使用重心法進(jìn)行求取。首先對(duì)齒輪的亞像素邊緣進(jìn)行填充,再對(duì)填充的齒輪圖像進(jìn)行連通區(qū)域標(biāo)識(shí),通過計(jì)算得到連通區(qū)域的重心點(diǎn)坐標(biāo),此坐標(biāo)即為齒輪中心。
(2)齒頂圓半徑ra
本文采用凸包法求解齒頂圓半徑,通過凸包算法在齒輪亞像素邊緣輪廓外構(gòu)建外凸包結(jié)構(gòu),將外輪廓的像素點(diǎn)全部包含在外凸包結(jié)構(gòu)內(nèi)。外輪廓與外凸包結(jié)構(gòu)會(huì)產(chǎn)生多個(gè)交點(diǎn),此時(shí)可將交點(diǎn)視為齒輪齒頂圓上的像素點(diǎn),計(jì)算交點(diǎn)到齒輪中心的距離并取平均值,即為齒頂圓半徑。凸包結(jié)構(gòu)圖如圖6所示。
圖6 凸包結(jié)構(gòu)圖
(3)齒根圓半徑rf
求解齒根圓半徑需要先求解出齒輪外輪廓到齒輪中心的距離,此時(shí),齒輪外輪廓到齒輪中心的距離最小的點(diǎn)及其周圍輪廓點(diǎn)可視為齒根圓上的點(diǎn),將得到的距離最小的40個(gè)點(diǎn)視作齒根圓上的點(diǎn),計(jì)算這些點(diǎn)到齒輪中心的距離并取平均值,即為齒根圓半徑。
(4)齒數(shù)z
本文使用統(tǒng)計(jì)連通域法實(shí)現(xiàn)齒輪齒數(shù)的快速測(cè)量,在獲得齒頂圓和齒根圓的半徑后,以齒輪中心為原點(diǎn),以二者的平均值為半徑畫圓,以此設(shè)計(jì)掩模模板,在掩膜中將圓內(nèi)部灰度值設(shè)為255;通過將掩膜與填充后的齒輪圖像相乘,獲取代表齒牙的連通區(qū)域;最后統(tǒng)計(jì)連通區(qū)域的個(gè)數(shù),即可得到齒輪的齒數(shù)。掩膜結(jié)果如圖7所示。
圖7 掩膜處理后的連通域
(5)模數(shù)m、分度圓半徑r
本文通過已測(cè)得的齒輪參數(shù)來求取齒輪模數(shù)和分度圓半徑。齒輪模數(shù)m計(jì)算公式如式(9)所示,式中齒頂高系數(shù)取1。分度圓半徑r計(jì)算公式如下。
求解齒距偏差需要求解齒輪的基本參數(shù),求解齒輪齒距偏差的流程圖如圖8所示。
圖8 齒距偏差測(cè)量流程圖
本文利用機(jī)器視覺測(cè)量齒輪的齒距偏差,通過將分度圓與齒輪輪廓相交得到的交點(diǎn)作為依據(jù)進(jìn)行分析,可以實(shí)現(xiàn)齒距偏差的精確計(jì)算。齒距偏差主要3個(gè)衡量方法,分別為單個(gè)齒距偏差Δfpt,k個(gè)齒距累積偏差Δfpk和距累積總偏差ΔFpk。其算法設(shè)計(jì)如下:
(1)設(shè)定兩幅大小為m×n,背景灰度值為255圖片picture1、picture2。在圖片picture1中,搜索齒輪輪廓的點(diǎn),并把輪廓點(diǎn)灰度值設(shè)為50;在picture2中,以齒輪中心為圓心畫分度圓,并把分度圓點(diǎn)的灰度值設(shè)為100,picture1和picture2相加,遍歷灰度值為150的點(diǎn),這些點(diǎn)就是分度圓和齒輪亞像素邊緣的交點(diǎn),并將這些點(diǎn)按順時(shí)針順序標(biāo)記為p1,p2,… ,p2k(z為齒輪齒數(shù))。交點(diǎn)順序如圖9所示。
圖9 交點(diǎn)順序
(2)以p1為起始點(diǎn),求出與其相鄰的同側(cè)齒廓的交點(diǎn)p3和圓心之間的角度∠p1op3。
設(shè)兩交點(diǎn)的坐標(biāo)為(x1,y1),(x3,y3),由平面旋轉(zhuǎn)矩陣原理可得
兩交點(diǎn)之間距離和夾角為
由此可得任意兩交點(diǎn)ma、mb間的夾角為
(3)計(jì)算兩交點(diǎn)理論齒距p,可得
(4)求出對(duì)應(yīng)的齒距偏差。
計(jì)算單個(gè)齒距偏差 Δfpi,得
計(jì)算k個(gè)齒距累積偏差Δfpk,得
計(jì)算齒距累積總偏差ΔFpk,得
為了驗(yàn)證基于機(jī)器視覺的直齒輪齒距偏差測(cè)量方法的準(zhǔn)確性,本文使用齒頂圓直徑為120 mm,模數(shù)m=3 mm,齒數(shù)z=38的直齒圓柱標(biāo)準(zhǔn)齒輪作為實(shí)驗(yàn)對(duì)象。
設(shè)計(jì)程序?qū)崿F(xiàn)前述的算法,并分別使用本文算法和人工測(cè)量完成齒輪參數(shù)測(cè)量,并對(duì)測(cè)量結(jié)果進(jìn)行比較和分析,人工測(cè)量如圖10所示,測(cè)量結(jié)果如表1所示。
圖10 人工測(cè)量
表1 實(shí)際尺寸與測(cè)量尺寸結(jié)果
對(duì)比本文算法和人工測(cè)量的齒頂圓、齒根圓半徑值。本文算法精確度高于人工測(cè)量,且誤差在0.02%以內(nèi),可以滿足實(shí)際測(cè)量需求。
由前述齒距偏差測(cè)量方法,對(duì)單個(gè)齒距偏差和任意k個(gè)齒距累積偏差進(jìn)行了測(cè)量,由前述可得,本系統(tǒng)像素當(dāng)量:K=0.018 mm/pixel=18 μm/pixel。由表2可知,最大單個(gè)齒距偏差為11.81 μm。
表2 任意單個(gè)齒距偏差測(cè)量結(jié)果 μm
如圖11所示,折線分別代表左齒面和右齒面的k個(gè)齒距累積偏差的測(cè)量結(jié)果,由于k值取小于z/8的最大整數(shù),本文取k=4。由圖可知,左齒面最大k個(gè)齒距累積偏差23 μm,右齒面最大k個(gè)齒距偏差17 μm。齒距累積總偏差21.05 μm。各項(xiàng)偏差的最大值都在合理范圍之內(nèi)。
圖11 k個(gè)齒距累積偏差
本文采用于機(jī)器視覺檢測(cè)方法對(duì)齒距偏差進(jìn)行檢測(cè),并通過直齒輪(齒頂圓直徑為120 mm,模數(shù)m=3 mm,齒數(shù)z=38)進(jìn)行了實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)表明,齒頂圓和齒根圓直徑的最大誤差小于0.02%,左齒面最大單個(gè)齒距偏差為11.81 μm,右齒面最大單個(gè)齒距偏差為10.6 μm。k個(gè)齒距累積偏差和齒距累積總偏差均滿足6級(jí)精度等級(jí)。在后續(xù)的研究當(dāng)中,還需要進(jìn)一步研究齒輪的其他幾何特征精密測(cè)量方法,提高綜合應(yīng)用性。