李帥康,洪榮晶,張 浩,陳 昕
(1.南京工業(yè)大學(xué)機(jī)械與動(dòng)力工程學(xué)院,江蘇南京 211816; 2.江蘇省工業(yè)裝備數(shù)字制造及控制技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇南京 211899)
齒輪在制造、自動(dòng)化等領(lǐng)域應(yīng)用廣泛,在齒輪批量生產(chǎn)過(guò)程中,若使用傳統(tǒng)方法進(jìn)行齒廓倒棱,存在加工準(zhǔn)備時(shí)間長(zhǎng),加工參數(shù)調(diào)整復(fù)雜,自動(dòng)化程度較低,通用性較差等問(wèn)題。隨著機(jī)器視覺(jué)技術(shù)的快速發(fā)展,其在工件測(cè)量、缺陷檢測(cè)和識(shí)別定位等領(lǐng)域得到廣泛應(yīng)用。作為智能制造的重要實(shí)現(xiàn)方法之一,國(guó)外已有機(jī)器視覺(jué)配合機(jī)床或機(jī)器人進(jìn)行數(shù)控加工的案例。有效獲取齒廓的坐標(biāo)信息是倒棱加工的重要前提,通過(guò)機(jī)器視覺(jué)方法獲得倒棱所需坐標(biāo),后續(xù)可以進(jìn)一步轉(zhuǎn)化到機(jī)床或者機(jī)器人坐標(biāo)系下,實(shí)現(xiàn)倒棱位置的自動(dòng)化感知,顯著增加了其便捷性和通用性[1]。
基于機(jī)器視覺(jué)的齒廓倒棱坐標(biāo)提取可以實(shí)現(xiàn)在線實(shí)時(shí)非接觸定位,有利于克服傳統(tǒng)倒棱加工方式的不足。傳統(tǒng)的單目視覺(jué)應(yīng)用較普遍,該方法的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、相機(jī)標(biāo)定容易,但其難以獲得準(zhǔn)確的深度位置信息[2]。而雙目視覺(jué)可基于雙目視差直接獲取目標(biāo)物體的三維深度信息,具有效率高、精度合適、成本低等優(yōu)點(diǎn)[3]。為了進(jìn)一步增加倒棱加工的自動(dòng)化程度,需要結(jié)合單雙目視覺(jué),實(shí)現(xiàn)齒廓倒棱三維坐標(biāo)的提取。
圖像邊緣檢測(cè)對(duì)齒廓倒棱坐標(biāo)提取至關(guān)重要。常用的邊緣檢測(cè)算子包括Canny、Sobel、Roberts、Prewitt、LOG等[4],其定位精度只能達(dá)到單個(gè)像素,不能滿足齒廓高精度定位的要求。因此,有必要研究亞像素邊緣檢測(cè)方法,較常見(jiàn)的有插值法[5]、擬合法[6]和矩方法[7]。另外,齒輪倒角和磨削[8-9]、檢測(cè)和測(cè)量[10-12]等都需要獲得齒輪齒廓中心作為基準(zhǔn)。在本文研究的齒廓倒棱加工過(guò)程中,尋找齒廓中心坐標(biāo)對(duì)應(yīng)齒輪的找正工藝。常用的基于機(jī)器視覺(jué)的中心定位方法主要有重心法[13]、最小二乘圓擬合法[14]和Hough圓變換法[15]。雙目立體視覺(jué)能夠基于三角測(cè)量的原理計(jì)算出目標(biāo)物體的空間坐標(biāo)[16],其定位和測(cè)距最關(guān)鍵的步驟是立體匹配。常用的立體匹配方法包括全局立體匹配、局部立體匹配和半全局立體匹配算法[17]。對(duì)上述關(guān)鍵技術(shù)分析研究可知,針對(duì)齒廓倒棱三維坐標(biāo)的提取,需要根據(jù)具體工況綜合選擇和改進(jìn)相關(guān)算法。
由于單目視覺(jué)能夠準(zhǔn)確定位齒廓邊緣但不能獲取三維深度信息,而雙目視覺(jué)能夠精確獲取倒棱平面深度信息,本文提出了一種單雙目視覺(jué)結(jié)合的齒廓倒棱坐標(biāo)提取方法。基于搭建的齒廓倒棱坐標(biāo)視覺(jué)提取系統(tǒng),綜合選擇和改進(jìn)相關(guān)單雙目圖像處理算法,通過(guò)雙目視覺(jué)獲取倒棱平面深度,通過(guò)單目視覺(jué)獲取齒廓邊緣和中心的亞像素坐標(biāo),并通過(guò)相機(jī)成像模型將坐標(biāo)轉(zhuǎn)化到相機(jī)坐標(biāo)系下,從而實(shí)現(xiàn)相機(jī)坐標(biāo)系下齒廓倒棱三維坐標(biāo)的獲取。最后通過(guò)實(shí)驗(yàn)驗(yàn)證齒廓倒棱三維坐標(biāo)的提取精度。
本文搭建的齒廓倒棱坐標(biāo)視覺(jué)提取系統(tǒng)如圖1所示。主要包括500萬(wàn)像素CCD工業(yè)相機(jī)、定焦鏡頭、相機(jī)支架、LED背光源、環(huán)形光源、光源控制器、標(biāo)定板、實(shí)驗(yàn)齒輪和計(jì)算機(jī)。為了最大程度減少雙目相機(jī)安裝帶來(lái)的誤差,本文使用可滑動(dòng)固定基線距離的單目相機(jī)代替?zhèn)鹘y(tǒng)的雙目相機(jī),即當(dāng)相機(jī)處于位置1時(shí)作為左位置相機(jī),當(dāng)相機(jī)處于位置2時(shí)作為右位置相機(jī)(以下文中均簡(jiǎn)稱為左相機(jī)和右相機(jī),以左相機(jī)為主相機(jī))。由此構(gòu)成單雙目視覺(jué)結(jié)合的齒廓倒棱坐標(biāo)提取系統(tǒng)。
當(dāng)使用雙目相機(jī)時(shí),關(guān)閉背光源,基于左、右相機(jī)分別拍攝。當(dāng)使用單目相機(jī)時(shí),打開(kāi)背光源,基于左相機(jī)進(jìn)行拍攝。另外,本文綜合應(yīng)用OpenCV和MATLAB完成相關(guān)圖像處理流程。基于上述視覺(jué)系統(tǒng),雙目相機(jī)拍攝的齒輪原始圖像如圖2所示,單目左相機(jī)拍攝的齒輪原始圖像如圖3所示。
(b)齒輪右圖像
圖3 單目左相機(jī)拍攝的齒輪原始圖像
本文提取左相機(jī)坐標(biāo)系下齒廓倒棱三維坐標(biāo)點(diǎn)并作精度驗(yàn)證,后續(xù)與世界坐標(biāo)系或加工坐標(biāo)系的轉(zhuǎn)化暫不考慮。提出相機(jī)成像模型如圖4所示,假設(shè)點(diǎn)P(Xc,Yc,Zc)是相機(jī)坐標(biāo)系下的某一點(diǎn),在圖像坐標(biāo)系下對(duì)應(yīng)點(diǎn)為p(xu,yu),在像素坐標(biāo)系下對(duì)應(yīng)點(diǎn)為p(u,v)。結(jié)合相機(jī)成像模型及理論可推知:
(1)
式中M為相機(jī)內(nèi)參矩陣,可由標(biāo)定獲取。
由相機(jī)成像模型可知,在已知相機(jī)坐標(biāo)系下物點(diǎn)深度Zc的情況下,像素坐標(biāo)系下任一像素點(diǎn)坐標(biāo)(u,v)可以轉(zhuǎn)化到相機(jī)坐標(biāo)系下,從而得到相機(jī)坐標(biāo)系下物點(diǎn)的三維坐標(biāo)(Xc,Yc,Zc)。
圖4 相機(jī)成像模型
基于此,提出齒廓倒棱坐標(biāo)視覺(jué)提取流程,如圖5所示。首先獲取齒輪雙目圖像,由雙目相機(jī)標(biāo)定獲取左右相機(jī)標(biāo)定參數(shù)。在此基礎(chǔ)上,基于立體校正和立體匹配,獲取倒棱平面視差圖及深度圖,并得到倒棱平面三維坐標(biāo)點(diǎn)?;讷@得的三維坐標(biāo)點(diǎn)擬合倒棱平面,獲取倒棱平面深度Zc。然后獲取左相機(jī)背光源下齒輪圖像,通過(guò)單目圖像處理獲取齒廓邊緣和中心的亞像素坐標(biāo)。最后將得到的亞像素坐標(biāo)轉(zhuǎn)化到相機(jī)坐標(biāo)系下,獲取左相機(jī)坐標(biāo)系下齒廓倒棱三維坐標(biāo),同理獲取齒廓中心三維坐標(biāo)。
圖5 齒廓倒棱坐標(biāo)視覺(jué)提取流程
為保證左右相機(jī)的成像平面處于同一個(gè)水平面,需要對(duì)雙目齒輪圖像對(duì)進(jìn)行立體校正。本文通過(guò)標(biāo)定的方法獲取立體校正所需的相關(guān)參數(shù)。
考慮標(biāo)定精度要求,使用MATLAB R2018b進(jìn)行雙目相機(jī)標(biāo)定。標(biāo)定板選擇12×9的棋盤(pán)格標(biāo)定板,其方格尺寸為10 mm。保持相機(jī)焦距及光圈不變,采用環(huán)形光源進(jìn)行適當(dāng)打光,在相機(jī)景深范圍內(nèi)變換標(biāo)定板位姿和角度,并使用左右相機(jī)分別采集28組標(biāo)定板圖片,加載圖片進(jìn)行雙目相機(jī)標(biāo)定。剔除其中標(biāo)定效果較差的3組圖片,并重新標(biāo)定得到最終標(biāo)定結(jié)果。雙目標(biāo)定的重投影誤差如圖6所示,其平均重投影誤差為0.11 pixels,標(biāo)定效果較好。
圖6 雙目標(biāo)定重投影誤差
通過(guò)標(biāo)定獲得左右相機(jī)內(nèi)參矩陣cameraMatrixL、cameraMatrixR,左右相機(jī)畸變矩陣distCoeffL、distCoeffR,右相機(jī)相對(duì)于左相機(jī)的旋轉(zhuǎn)矩陣R和平移矩陣T,在此基礎(chǔ)上,本文在OpenCV中基于Bouguet算法[18]進(jìn)行雙目立體校正,該算法能夠使左右圖像重投影造成的誤差最小,左右視圖的共同面積最大。
經(jīng)過(guò)上述立體校正后,就可以利用左右齒輪圖像匹配點(diǎn)和視差原理計(jì)算像素點(diǎn)的三維坐標(biāo),即得到對(duì)應(yīng)像素點(diǎn)的深度信息。立體校正后齒輪左右圖像如圖7所示,可見(jiàn)校正后的齒輪左右圖像被重新映射,左右圖像平面共面且行對(duì)準(zhǔn),此時(shí)匹配點(diǎn)所在的極線共線。
圖7 立體校正后齒輪左右圖像
立體匹配確定左右圖像中的匹配點(diǎn)集合,是雙目視覺(jué)求取深度信息的關(guān)鍵環(huán)節(jié)。其主要任務(wù)是確定雙目圖像中對(duì)應(yīng)像素點(diǎn)之間的視差,并由此獲得空間點(diǎn)的深度信息。雙目齒輪圖像對(duì)經(jīng)過(guò)立體校正后,就可利用立體匹配算法獲取視差和深度信息,得到倒棱平面三維坐標(biāo)點(diǎn)。
綜合對(duì)比考慮,本文選用匹配準(zhǔn)確率較高的半全局立體匹配SGBM算法,并對(duì)其進(jìn)行針對(duì)性優(yōu)化。該算法基于SAD-BT進(jìn)行立體匹配,近似于全局二維平滑度約束,算法復(fù)雜度相對(duì)低,綜合性能較好。
該算法的基本步驟如下: 采用水平Sobel算子處理輸入圖像并將每個(gè)像素點(diǎn)映射為新圖像,獲取圖像梯度用于后續(xù)代價(jià)計(jì)算;代價(jià)計(jì)算:基于采樣方法分別得到梯度代價(jià)和原圖像的SAD代價(jià),上述2個(gè)代價(jià)均在SAD窗口內(nèi)計(jì)算,最終生成加權(quán)融合的SAD-BT代價(jià);動(dòng)態(tài)規(guī)劃:默認(rèn)4條規(guī)劃路徑,獲取路徑累積的代價(jià)函數(shù),并對(duì)動(dòng)態(tài)規(guī)劃的相關(guān)參數(shù)進(jìn)行針對(duì)性設(shè)置,最終完成代價(jià)聚合和視差計(jì)算;基于唯一性檢測(cè)、左右一致性檢測(cè)、連通區(qū)域檢測(cè)等方法修正視差。
結(jié)合本文實(shí)際需要,對(duì)SGBM算法進(jìn)行優(yōu)化。首先對(duì)SGBM算法各項(xiàng)參數(shù)進(jìn)行針對(duì)性優(yōu)化,另外對(duì)算法步驟進(jìn)行一系列優(yōu)化,主要包括:
(1)亞像素插值:基于二次曲線內(nèi)插法對(duì)視差進(jìn)行亞像素插值。首先將像素點(diǎn)的所有視差標(biāo)注出來(lái),找到最優(yōu)視差點(diǎn),然后確定該點(diǎn)周?chē)?個(gè)視差點(diǎn),基于三點(diǎn)確定一條二次曲線的原理,得到過(guò)這3點(diǎn)的拋物線,該拋物線的頂點(diǎn)對(duì)應(yīng)亞像素視差值。
(2)濾波后處理:在計(jì)算像素的視差值時(shí),都是基于小窗口進(jìn)行的,容易產(chǎn)生噪聲,因此在后處理部分加入中值濾波器,消除噪聲造成的異常視差,平滑視差圖像。
基于左相機(jī),SGBM算法得到的倒棱平面視差圖如圖8(a)所示,優(yōu)化SGBM算法得到的倒棱平面視差圖如圖8(b)所示。對(duì)比可知,優(yōu)化SGBM算法在噪聲濾除和成像質(zhì)量上,均得到了一定的提升。
(a)SGBM算法
(b)優(yōu)化SGBM算法
在獲取視差圖的基礎(chǔ)上,可進(jìn)一步創(chuàng)建深度圖。視差與深度的轉(zhuǎn)化公式為
(2)
式中:depth為深度,mm;b為基線距離,mm;f為歸一化焦距,pixel;d為視差,pixel;Tx為左右兩相機(jī)投影中心x方向平移,mm。
得到的倒棱平面深度圖如圖9所示。
圖9 倒棱平面深度圖
獲得高質(zhì)量視差圖及深度圖后,基于OpenCV中的reprojectImageTo3D函數(shù)構(gòu)建3D空間,即可實(shí)現(xiàn)將像素坐標(biāo)轉(zhuǎn)換為三維坐標(biāo),該函數(shù)會(huì)返回一個(gè)3通道的矩陣,分別存儲(chǔ)左相機(jī)坐標(biāo)系下X、Y、Z三維坐標(biāo)(需乘尺度因子W=16)。由此得到倒棱平面所有三維坐標(biāo)點(diǎn)。
由于事先已對(duì)視覺(jué)系統(tǒng)工作平臺(tái)進(jìn)行水平度校準(zhǔn),齒輪端面自身的平整度較高,且已進(jìn)行了雙目立體校正,故可以認(rèn)為倒棱平面為一固定深度的水平面(相對(duì)于Zc=0平面)。本節(jié)首先基于原始三維點(diǎn)坐標(biāo)擬合該倒棱平面,從而得到倒棱平面深度,后續(xù)可將左相機(jī)獲取的齒廓及中心亞像素坐標(biāo)轉(zhuǎn)化為左相機(jī)坐標(biāo)系下齒廓及中心三維坐標(biāo)。
設(shè)待擬合的倒棱平面方程為:Z=AX+BY+C。由于已知倒棱平面n個(gè)三維點(diǎn)的坐標(biāo),所以理想情況下將已知點(diǎn)坐標(biāo)代入平面方程中可以構(gòu)建一個(gè)方程組,求解該方程組即可。但是由于n個(gè)三維點(diǎn)的定位誤差,點(diǎn)不一定在平面上,所以上述方程組無(wú)解。故采用最小二乘法求解上述線性方程組。
最小二乘法通過(guò)最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配?;谧钚《朔?gòu)建倒棱平面方程的目標(biāo)函數(shù):
(3)
求解系數(shù)A、B、C使得損失函數(shù)G(A,B,C)最小,對(duì)A、B、C分別求偏導(dǎo),并令其偏導(dǎo)均為0,如下所示:
(4)
將方程組(4)展開(kāi)、變形,得到一個(gè)未知量為A、B、C的線性方程組:
(5)
令上述方程組系數(shù)矩陣為H,方程組右邊的常數(shù)向量為v。由此構(gòu)建形如H·Coeff(A,B,C)=v的線性方程組,由Coeff(A,B,C)=H-1·v計(jì)算得到方程組的解,即確定平面系數(shù),從而確定擬合的倒棱平面。
本文提出的基于最小二乘法的倒棱平面擬合算法具體步驟如下:
(1)設(shè)置鼠標(biāo)回調(diào)函數(shù)和鼠標(biāo)響應(yīng)函數(shù),實(shí)現(xiàn)點(diǎn)擊齒輪視差圖像實(shí)時(shí)獲取對(duì)應(yīng)點(diǎn)三維坐標(biāo)功能。點(diǎn)擊視差圖像確定倒棱平面Z坐標(biāo)大致范圍。
(2)以平面Z坐標(biāo)取值范圍為初始條件,在該范圍內(nèi)篩選三維擬合點(diǎn)。基于上述最小二乘法擬合篩選的三維坐標(biāo)點(diǎn),得到對(duì)應(yīng)的倒棱平面。
(3)對(duì)Z取值范圍進(jìn)一步迭代,并以新的Z取值范圍為條件,重新擬合倒棱平面,直至擬合的平面法向量近似等于(0,0,1),即平面方程系數(shù)A和B近似于0,以系數(shù)C作為該平面的Zc坐標(biāo),即獲取倒棱平面對(duì)應(yīng)的深度。
基于上述倒棱平面擬合算法,某次擬合的倒棱平面為Z=0.001 732 43X-0.001 408 27Y+394.566??芍?倒棱平面深度為394.566 mm,其具體精度將在后續(xù)實(shí)驗(yàn)中進(jìn)行驗(yàn)證。
相機(jī)實(shí)際成像過(guò)程中,鏡頭的制造和安裝誤差會(huì)使視覺(jué)系統(tǒng)采集的圖像發(fā)生徑向和切向畸變。為了提高視覺(jué)系統(tǒng)的定位精度,需要對(duì)齒輪原始圖像進(jìn)行畸變校正。
根據(jù)第2.1節(jié)得到的雙目相機(jī)的標(biāo)定結(jié)果,獲取左相機(jī)的內(nèi)參矩陣cameraMatrixL和畸變矩陣distCoeffL,基于OpenCV中的相關(guān)算法函數(shù)編寫(xiě)圖像畸變校正程序,對(duì)齒輪原始圖像進(jìn)行畸變校正,并輸出畸變校正后的齒輪圖像,如圖10所示。
圖10 左相機(jī)畸變校正后齒輪圖像
在視覺(jué)成像系統(tǒng)采集齒輪圖像過(guò)程中,由于受到現(xiàn)場(chǎng)各種復(fù)雜因素的影響,采集的齒輪圖像會(huì)產(chǎn)生宏觀和微觀噪聲,故需要對(duì)原始圖像進(jìn)行濾波去噪預(yù)處理。
雙邊濾波是一種綜合考慮濾波器內(nèi)鄰域距離權(quán)重和圖像像素灰度值相似性的濾波算法,在保留區(qū)域信息的基礎(chǔ)上實(shí)現(xiàn)對(duì)噪聲的去除、對(duì)局部邊緣的平滑。因雙邊濾波在去噪的同時(shí)能很好地保留圖像邊緣特征,本文選用雙邊濾波處理畸變校正后的圖像,雙邊濾波后齒輪圖像如圖11所示。
圖11 雙邊濾波后齒輪圖像
齒廓倒棱坐標(biāo)提取最重要的步驟是邊緣檢測(cè)。像素級(jí)邊緣檢測(cè)只能定位邊緣像素的整數(shù)坐標(biāo)位置,導(dǎo)致視覺(jué)系統(tǒng)定位精度有限,因此需要在像素邊緣的基礎(chǔ)上將圖像邊緣點(diǎn)定位到亞像素級(jí)。
綜合對(duì)比多種邊緣檢測(cè)算法,本文初步選用綜合性能較好的Canny邊緣檢測(cè)算子提取齒廓像素級(jí)邊緣。Canny算子作為一種混合策略邊緣算子,在齒廓邊緣檢測(cè)方面具有一定的優(yōu)勢(shì),但傳統(tǒng)的Canny邊緣檢測(cè)算子在實(shí)際應(yīng)用中也存在以下不足:其使用高斯濾波對(duì)圖像進(jìn)行濾波去噪,對(duì)典型的高斯噪聲具有一定濾除作用,但其對(duì)邊緣的模糊作用較大,不能很好地保護(hù)邊緣信息,導(dǎo)致邊緣定位不準(zhǔn)確; Canny算子的高、低雙閾值是人為選定的,其分割閾值不一定適合圖像,容易造成邊緣漏檢或者邊緣誤判;Canny算子提取的邊緣可能會(huì)存在一些較小的圖像區(qū)域或孔洞,而這些區(qū)域并不是本文關(guān)注區(qū)域。
針對(duì)Canny算子上述不足,本文提出了改進(jìn)的Canny算子提取齒廓像素邊緣,具體步驟如下:
(1)使用雙邊濾波代替高斯濾波對(duì)圖像進(jìn)行濾波去噪,在濾波的同時(shí)能夠較好地保存邊緣,本文直接使用雙邊濾波后的圖像進(jìn)行邊緣檢測(cè)。
(2)基于3階Sobel算子模板(圖12)分別求解圖像在X方向和Y方向的梯度,從而獲得圖像梯度幅值(2-范數(shù))和梯度方向,并將梯度方向近似到0°、45°、90°和135°4個(gè)方向。
(3)對(duì)于步驟2得到的梯度圖像可能出現(xiàn)的寬邊緣或者偽邊緣,需要進(jìn)行非極大值抑制操作。非極大值抑制的過(guò)程同Canny算子,如果一個(gè)像素點(diǎn)與其梯度方向前后兩個(gè)像素點(diǎn)相比有最大的梯度幅值,則保留該像素點(diǎn),否則剔除。
(4)采用OTSU方法自適應(yīng)獲取高低閾值來(lái)檢測(cè)和連接邊緣。基于OTSU方法獲取高閾值,并保持高低閾值比為2∶1,可得到低閾值。使用高、低雙閾值進(jìn)行滯后閾值處理,對(duì)強(qiáng)、弱邊緣進(jìn)行篩選和處理,并進(jìn)行邊緣連接等過(guò)程同Canny算子。
(5)對(duì)于提取得到的單像素邊緣,基于區(qū)域生長(zhǎng)法,通過(guò)設(shè)置區(qū)域面積閾值,采用八鄰域探測(cè),去除小區(qū)域或孔洞,最終得到本文所需的齒廓邊緣。
圖13為改進(jìn)Canny算子提取的去除內(nèi)孔的齒廓邊緣(基于步驟5去除孔洞)。分析圖像可知,本文改進(jìn)Canny算子得到的是窄而連續(xù)的單像素邊緣,定位精度較高,且抗噪聲性能較好。
圖13 改進(jìn)Canny算子提取的去除內(nèi)孔的齒廓邊緣
在獲取齒廓像素級(jí)邊緣的基礎(chǔ)上,本文使用改進(jìn)的Zernike矩方法定位齒廓亞像素級(jí)邊緣,Zernike矩可以通過(guò)模板與圖像的卷積得到。Ghosal等[19]的算法選取5×5的模板獲得Zernike矩,在實(shí)際坐標(biāo)提取中,其亞像素定位精度受到限制。鑒于其不足,本文選取7×7模板。針對(duì)Z11和Z202個(gè)Zernike矩,構(gòu)造相應(yīng)的模板M11和M20。通過(guò)構(gòu)造的模板與圖像卷積可求得Z11和Z20,進(jìn)一步計(jì)算每個(gè)齒廓邊緣點(diǎn)的亞像素坐標(biāo)(xs,ys),得到齒廓亞像素邊緣如圖14所示。
圖14 齒廓亞像素邊緣
為清晰表示亞像素邊緣點(diǎn),將通過(guò)OpenCV獲取的亞像素坐標(biāo)點(diǎn)轉(zhuǎn)化到MATLAB圖像坐標(biāo)系中(在OpenCV中第一個(gè)索引為(0,0),而在MATLAB中第一個(gè)索引為(1,1),故橫、縱像素坐標(biāo)需要分別加1,僅用于顯示)。如圖15和圖16所示,基于MATLAB分別在像素級(jí)邊緣和雙邊濾波后齒輪圖像上標(biāo)記出亞像素坐標(biāo)點(diǎn)(單位pixel)。分析圖可知,改進(jìn)Zernike矩算法提取的齒廓亞像素邊緣定位精度較高,較好地反映了實(shí)際的齒廓邊緣。
圖15 像素級(jí)邊緣上標(biāo)記的亞像素坐標(biāo)點(diǎn)
圖16 雙邊濾波后齒輪圖像上標(biāo)記的亞像素坐標(biāo)點(diǎn)
齒輪自身旋轉(zhuǎn)對(duì)稱,結(jié)合實(shí)際工況,本文采用重心法檢測(cè)齒廓中心坐標(biāo)。重心法計(jì)算的時(shí)間復(fù)雜度僅為O(n),運(yùn)算速度快,且有研究顯示其結(jié)果的誤差遠(yuǎn)小于1 pixel[13]。傳統(tǒng)重心法以整個(gè)齒輪區(qū)域像素點(diǎn)計(jì)算中心坐標(biāo),而本文基于精定位后的齒廓邊緣點(diǎn)亞像素坐標(biāo)(xs,ys)計(jì)算齒廓中心坐標(biāo)。
將齒廓邊緣每個(gè)亞像素坐標(biāo)點(diǎn)的橫坐標(biāo)累加到集合x(chóng)s(i)中,將其縱坐標(biāo)累加到集合ys(i)中,對(duì)兩坐標(biāo)集合分別求均值即可得到齒廓中心亞像素坐標(biāo)(x0,y0)。其具體計(jì)算公式如下:
(6)
式中n為齒廓亞像素邊緣點(diǎn)的數(shù)量。
圖17為齒廓中心坐標(biāo)檢測(cè)圖像,使用十字標(biāo)記出齒廓中心,檢測(cè)出的齒廓中心亞像素坐標(biāo)為(1 477.93,1 025.86)。
圖17 齒廓中心坐標(biāo)檢測(cè)圖像
已知倒棱平面深度Zc后,將齒廓邊緣點(diǎn)的亞像素坐標(biāo)(xs,ys)和Zc代入式(1)即可轉(zhuǎn)化為左相機(jī)坐標(biāo)系下齒廓三維坐標(biāo)(Xc,Yc,Zc),同理也可以將齒廓中心亞像素坐標(biāo)(x0,y0)轉(zhuǎn)化為左相機(jī)坐標(biāo)系下齒廓中心三維坐標(biāo)(X0,Y0,Z0)。至此,得到齒廓倒棱三維坐標(biāo)。
為清晰表示獲取的齒廓三維坐標(biāo),存儲(chǔ)齒廓三維坐標(biāo)并基于MATLAB繪制三維坐標(biāo)點(diǎn)。圖18所示為MATLAB表示的齒廓三維坐標(biāo)點(diǎn),此外也對(duì)齒廓中心進(jìn)行了標(biāo)記。觀察圖18可知,本文較好地實(shí)現(xiàn)了齒廓三維點(diǎn)的提取,齒廓三維點(diǎn)的具體提取精度將在后續(xù)實(shí)驗(yàn)中進(jìn)行驗(yàn)證。
圖18 MATLAB表示的齒廓及中心三維坐標(biāo)點(diǎn)
本節(jié)實(shí)驗(yàn)主要驗(yàn)證齒廓三維坐標(biāo)提取方法的可行性,以及齒廓三維坐標(biāo)提取精度是否滿足倒棱加工需求。為綜合驗(yàn)證本文齒廓三維坐標(biāo)提取精度,使用一個(gè)標(biāo)準(zhǔn)漸開(kāi)線直齒圓柱齒輪進(jìn)行相關(guān)實(shí)驗(yàn),分別驗(yàn)證了深度Z方向精度和平面X/Y方向精度。
本文單雙目視覺(jué)結(jié)合的齒廓倒棱坐標(biāo)提取的實(shí)驗(yàn)對(duì)象是一個(gè)標(biāo)準(zhǔn)漸開(kāi)線直齒圓柱齒輪,其標(biāo)準(zhǔn)參數(shù)如表1所示,壓力角α=20°,無(wú)變位。經(jīng)評(píng)定其精度等級(jí)為GB6級(jí),且齒輪端面具有較高的平整度。本文坐標(biāo)視覺(jué)提取實(shí)驗(yàn)設(shè)備與第1.1節(jié)中描述的一致。
表1 齒輪標(biāo)準(zhǔn)參數(shù)
清理視覺(jué)系統(tǒng)關(guān)鍵部件和待測(cè)齒輪,并對(duì)視覺(jué)系統(tǒng)工作平臺(tái)進(jìn)行水平度校準(zhǔn)。使用視覺(jué)系統(tǒng)采集本文所需單目及雙目齒輪原始圖像,然后基于上述算法和流程完成相關(guān)圖像處理,獲取實(shí)驗(yàn)所需數(shù)據(jù)。
實(shí)驗(yàn)中,由于坐標(biāo)系不一致,很難直接對(duì)比相機(jī)坐標(biāo)系下齒廓三維坐標(biāo)點(diǎn)的真實(shí)定位精度,即不能直接驗(yàn)證齒廓三維坐標(biāo)的提取精度。故本文的實(shí)驗(yàn)方案是采用間接驗(yàn)證的方式,分2個(gè)方面驗(yàn)證齒廓三維坐標(biāo)提取精度:驗(yàn)證Z方向精度;驗(yàn)證X/Y方向精度。
如圖19所示,在原始齒輪上放置一個(gè)4 mm標(biāo)準(zhǔn)1級(jí)量塊,通過(guò)本文算法和流程完成立體校正和立體匹配,得到如圖20所示的帶量塊的齒輪雙目視差圖,然后基于第2.3節(jié)算法擬合量塊上平面,由于前文已經(jīng)擬合了倒棱平面,通過(guò)求解兩平面之間深度差值即可獲得量塊高度,和量塊高度標(biāo)準(zhǔn)值對(duì)比,間接驗(yàn)證Z方向的精度。
圖20 帶量塊的齒輪雙目視差圖
經(jīng)過(guò)上述流程,得到平面深度及量塊高度測(cè)量結(jié)果如表2所示,量塊的標(biāo)準(zhǔn)高度為4 mm,測(cè)量定位誤差為0.022 mm。即隨著實(shí)際距離減少4 mm,測(cè)量距離也隨之近似減少4 mm,說(shuō)明本文單雙目結(jié)合的視覺(jué)系統(tǒng)能夠較精準(zhǔn)地檢測(cè)到Z方向的變化,Z方向精度較高,測(cè)量定位誤差在合理范圍內(nèi),且定位較穩(wěn)定。
表2 平面深度及量塊高度測(cè)量結(jié)果 mm
基于得到的齒廓三維坐標(biāo)測(cè)量出齒輪齒頂圓半徑ra和齒根圓半徑rf,和標(biāo)準(zhǔn)參考值作對(duì)比,從而間接驗(yàn)證平面X/Y方向精度。
通過(guò)本文算法及流程可以得到左相機(jī)坐標(biāo)系下齒廓三維坐標(biāo)(Xc,Yc,Zc),左相機(jī)坐標(biāo)系下齒廓中心三維坐標(biāo)(X0,Y0,Z0)。在本文擬合的倒棱平面上,齒廓邊緣點(diǎn)的平面坐標(biāo)為(Xc,Yc),齒廓中心的平面坐標(biāo)為(X0,Y0)。采用式(7)計(jì)算齒廓每個(gè)邊緣點(diǎn)到齒廓中心的距離d(i)。
(7)
式中:i=1,2,3,…,n;n為齒廓邊緣點(diǎn)的數(shù)量。
基于得到的所有距離值d(i),繪制如圖21所示的齒廓邊緣到中心距離值條形圖。由圖21可以明顯看出,距離在最大值和最小值之間呈現(xiàn)穩(wěn)定的周期性波動(dòng),由齒形理論可知,理論上最大值對(duì)應(yīng)的是齒頂圓,最小值對(duì)應(yīng)的是齒根圓,但由于齒廓中心定位誤差和齒廓邊緣定位誤差,齒頂圓和齒根圓上的點(diǎn)并不完全在同一距離上。
圖21 齒廓邊緣到中心距離值條形圖
故本文基于對(duì)最大距離和最小距離求平均值的方法求解得到齒頂圓和齒根圓。首先對(duì)所有距離值進(jìn)行排序,考慮到實(shí)驗(yàn)齒輪齒頂圓輪廓點(diǎn)的數(shù)目遠(yuǎn)大于齒根圓,并考慮到距離最大值和最小值的周向分布,選取距離最大的前900個(gè)值,求其平均值得到齒頂圓半徑ra,選取距離最小的前300個(gè)值,求其平均值得到齒根圓半徑rf。
上述ra和rf的測(cè)量結(jié)果如表3所示,得到的齒頂圓半徑ra的測(cè)量誤差為0.03 mm,得到的齒根圓半徑rf的測(cè)量誤差為0.04 mm。綜合認(rèn)為,其測(cè)量定位誤差為0.04 mm。在倒棱加工定位誤差允許范圍內(nèi),平面X/Y方向精度較高,提取出的齒廓坐標(biāo)能夠精確地反映真實(shí)齒廓。
表3 齒輪參數(shù)測(cè)量結(jié)果 mm
一般而言,齒廓倒棱加工X、Y和Z3個(gè)方向上定位精度需要達(dá)到0.1 mm,而經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,本文單雙目視覺(jué)結(jié)合的齒廓倒棱坐標(biāo)提取系統(tǒng)和方法提取得到的齒廓三維坐標(biāo)具有較高精度,滿足齒廓倒棱加工需求。
本文提出的單雙目視覺(jué)結(jié)合的齒廓倒棱坐標(biāo)提取系統(tǒng)和方法可以在線采集齒輪圖像,結(jié)合具體工況,綜合選擇和改進(jìn)相關(guān)單雙目圖像處理算法,準(zhǔn)確獲取相機(jī)坐標(biāo)系下齒廓倒棱所需的三維坐標(biāo)。經(jīng)實(shí)驗(yàn)驗(yàn)證,4 mm范圍內(nèi)深度Z方向精度為0.022 mm,齒頂圓半徑64.85 mm范圍內(nèi)平面X/Y方向精度為0.04 mm,滿足齒廓倒棱加工需求,有效提升了齒廓倒棱加工的自動(dòng)化程度,克服傳統(tǒng)倒棱加工方式的不足。后續(xù)的研究可以進(jìn)一步將三維坐標(biāo)轉(zhuǎn)化到機(jī)床或機(jī)器人坐標(biāo)系下,驗(yàn)證真實(shí)倒棱加工的精度。同時(shí),本文實(shí)驗(yàn)部分也提供了一種單雙目視覺(jué)結(jié)合的齒輪參數(shù)測(cè)量新思路。