国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機(jī)器視覺的齒輪中心定位算法

2023-05-05 08:11:06任永強(qiáng)李掌珠
關(guān)鍵詞:鏈碼齒頂圓弧

任永強(qiáng), 李掌珠, 李 潤

(合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,安徽 合肥 230009)

0 引 言

機(jī)器視覺齒輪檢測為非接觸式的無損檢測方法,與傳統(tǒng)人工檢測相比,具有不可取代的優(yōu)越性。目前對齒輪研究多為缺陷檢測和參數(shù)測量,而齒輪各項(xiàng)參數(shù)的提取與測量均以齒輪中心(基圓圓心)為基準(zhǔn),并以該基準(zhǔn)為參照表示出各個(gè)參數(shù)以及它們之間的聯(lián)系,因此齒輪中心定位是齒輪測量關(guān)鍵的一步,后續(xù)各參數(shù)如分度圓[1]、齒根圓、齒數(shù)以及齒廓偏差[2-4]的測量精度均受到齒輪中心定位精度的直接影響。

齒輪中心定位方法較多。文獻(xiàn)[5]以使用最小二乘法和重心法擬合得到帶偏差的齒輪中心作為配準(zhǔn)中心來檢測齒輪缺陷,但存在無法避免的誤差;文獻(xiàn)[6]采用最小二乘法圓擬合與直線擬合相結(jié)合并逐次逼近的方法來確定齒輪中心,但該方法對齒輪的擺放位置有一定的要求且精度不高;文獻(xiàn)[7]提出了基于齒輪外輪廓凸包頂點(diǎn)的齒頂圓檢測方法,但該方法中凸包頂點(diǎn)的選取對噪聲比較敏感,而且在實(shí)際工業(yè)環(huán)境中會(huì)存在相當(dāng)多的干擾;文獻(xiàn)[8]采用超最小二乘法擬合CSS檢測出齒頂圓亞像素角點(diǎn),但存在角點(diǎn)數(shù)量少、時(shí)間復(fù)雜度高的問題。

齒輪的輪廓模型較為復(fù)雜,在檢測過程中對許多優(yōu)秀的算法限制非常高。本文提出在邊緣序列化的基礎(chǔ)上對齒頂圓弧進(jìn)行預(yù)分割與亞像素級(jí)分割,最后使用改進(jìn)抽樣策略的隨機(jī)抽樣一致性(random sample consensus,RANSAC)算法擬合齒頂圓弧,在保證效率的同時(shí)提高檢測的精度與魯棒性。檢測流程如圖1所示。

圖1 檢測流程

1 邊緣檢測與跟蹤

圖像的邊緣檢測算法[9]有許多,其中Canny算子是一種非常實(shí)用的邊緣定位算子。它首先采用高斯函數(shù)對圖像進(jìn)行平滑濾波以消除噪聲,用f(x,y)表示二維圖像;然后計(jì)算出平滑圖像每個(gè)像素點(diǎn)的梯度和方向;再對梯度進(jìn)行非極大值抑制,細(xì)化邊緣;最后用雙閾值算法定位和連接邊緣,高閾值用于獲取每條邊緣線段,低閾值用于對這些邊緣進(jìn)行連接。

Canny算子抑制了多響應(yīng)邊緣,具有高的邊緣定位精度和一定的抗噪能力。圖像的二維高斯函數(shù)的公式為:

(1)

為了得到有序的邊緣輪廓點(diǎn)且篩選掉輪廓中間可能存在的干擾邊緣,需要對圖像的邊緣輪廓點(diǎn)進(jìn)行跟蹤連接。鏈碼[10](又稱為Freeman碼)是用曲線起始點(diǎn)的坐標(biāo)和邊界點(diǎn)方向代碼來描述曲線或邊界的方法,它用邊界方向作為編碼依據(jù),為簡化邊界的描述,一般描述的是邊界點(diǎn)集。它將物體邊界上的某點(diǎn)設(shè)為起點(diǎn),在其鄰域內(nèi)根據(jù)一定的規(guī)則搜索后續(xù)點(diǎn),并給出每個(gè)后續(xù)點(diǎn)相對于前繼點(diǎn)的方向編碼。

常用的鏈碼按照中心像素點(diǎn)鄰接方向個(gè)數(shù)的不同分為4連通鏈碼和8連通鏈碼,而8連通鏈碼正好與像素點(diǎn)的實(shí)際情況相符,能夠準(zhǔn)確地描述中心像素點(diǎn)與其鄰接點(diǎn)的信息,具體如圖2所示。

圖2 8連通鏈碼

本文采用基于8鄰域邊界Freeman鏈碼。輪廓跟蹤的算法如下:

(1) 將圖像最左上角邊界輪廓點(diǎn)P0的坐標(biāo)記錄下來并作為搜索起點(diǎn),以鏈碼值D=0為最開始搜索方向。

(2) 在當(dāng)前方向搜索不到新點(diǎn)時(shí),以該方向?yàn)榛鶞?zhǔn),順時(shí)針旋轉(zhuǎn)45°,逆時(shí)針旋轉(zhuǎn)90°,每次以45°遞增并交替進(jìn)行搜索,搜索到重復(fù)區(qū)域時(shí),擴(kuò)大搜索范圍,以曼哈頓距離進(jìn)行廣度優(yōu)先搜索,并記錄該點(diǎn)坐標(biāo)。

(3) 如果搜索到新的邊界點(diǎn),將此方向的D賦值給它前一個(gè)點(diǎn),再以該點(diǎn)作為中心點(diǎn),繼續(xù)以該D值為方向重復(fù)步驟(2)。

(4) 當(dāng)搜索到起點(diǎn)P0時(shí),結(jié)束搜索。

在一段輪廓的Freeman鏈碼上,多數(shù)點(diǎn)前后鏈碼方向變化的角度不超過90°,即鏈碼差的絕對值大于2的概率很小。基于此規(guī)律,該搜索方法在步驟(2)中沿當(dāng)前方向雙向擴(kuò)展新的方向,并在不鄰接的邊緣進(jìn)行了廣度優(yōu)先搜索,在步驟(3)時(shí)將上一點(diǎn)的鏈碼方向作為當(dāng)前點(diǎn)的初始搜索方向。該方法提高了搜索效率,穩(wěn)定性更高,其搜索結(jié)果如圖3所示。

圖3 輪廓檢測及跟蹤處理前、后對比

2 圓弧分割

齒輪輪廓的擬合難點(diǎn)在于其模型是由多種曲線組成且不具備旋轉(zhuǎn)不變性。許多模型擬合算法(如RANSAC、Hough圓檢測)因圓弧在整體輪廓上占比太小而出現(xiàn)檢測時(shí)間長、精度低的問題;而非模型擬合算法(如最小二乘法)因無法分離偏離的樣本點(diǎn),從而檢測精度易受干擾。因此,將齒頂圓弧分割出來是很有必要的。

2.1 閾值分析

理想情況下,齒頂圓弧上不同的點(diǎn)相對齒輪中心的距離差為0,而漸開線齒廓上不同點(diǎn)到齒輪中心的距離差較大,可以設(shè)定一個(gè)極小的距離差閾值將2種曲線區(qū)分開。但是由于硬件誤差、噪聲干擾以及齒輪本身的缺陷,能否存在一個(gè)合適的閾值以及該閾值的取值范圍需要進(jìn)一步分析。

閾值分析示意圖如圖4所示。

圖4 閾值分析示意圖

圖4中:O為齒輪理論中心;齒頂圓半徑ra=R;C為齒頂圓弧MN的中點(diǎn);H為最小二乘法得到的偏離中心。分析在偏移程度為r的情況下,圓弧MN與漸開線齒廓PQ上的點(diǎn)到H距離差的最大值或最小值。

(1)MN所對的圓心角為θ,OC與OH的夾角為φ,易知在MN圓弧上,M、N為離H最遠(yuǎn)或最近的點(diǎn)。最大距離差為:

Δd=|lHN-lHM|

(2)

其中,lHN、lHM可由余弦公式求得。由于圖形具有對稱性,只分析區(qū)間φ∈[0,π]的最大值Δd。令Δd對φ求導(dǎo)并對分子求其零點(diǎn)進(jìn)行單調(diào)性分析,當(dāng)

(3)

此時(shí),Δd取得最大值。

(2) 由于漸開線齒廓上的連續(xù)線段PQ到H的距離差主要由其本身的曲線特性決定,忽略r的微小波動(dòng),以漸開線齒廓與齒頂圓的交點(diǎn)P為起點(diǎn),取一段與MN長度相等的圓弧PQ,漸開線齒廓笛卡爾坐標(biāo)表達(dá)式為:

(4)

其中:α為壓力角;rb為基圓半徑。αP可直接求得,αQ由下式積分反解可得:

(5)

則最小距離差為:

(6)

以參數(shù)m=2.25、Z=26的標(biāo)準(zhǔn)直齒圓柱缺齒齒輪為例, 通過Solidworks仿真實(shí)驗(yàn)可得其中心偏離約為0.4 mm,結(jié)合上述分析過程,可在距離差上限與下限之間選取高閾值Th與低閾值Tl。高閾值用于快速區(qū)分漸開線齒廓,低閾值用于實(shí)現(xiàn)圓弧的精確分割。

2.2 圓弧預(yù)分割

通過上節(jié)分析選取合適的閾值Th、Tl,在邊緣跟蹤后的有序輪廓上使用最小二乘法進(jìn)行圓擬合,將得到的齒輪偏離中心H與齒頂圓半徑R作為粗基準(zhǔn),從輪廓起點(diǎn)開始遍歷,算法如下:

(1) 計(jì)算第p點(diǎn)與第p+n點(diǎn)到H的距離,若都大于R且其差值小于Th,則進(jìn)入下一步。

(2) 從第p+n點(diǎn)依次計(jì)算至第p+2n點(diǎn)到H的距離,并與第p+n點(diǎn)到H的距離做差,若所有差值都小于Tl,則認(rèn)為此處存在圓弧,記錄最大的距離差Δdmax并進(jìn)入下一步,否則從第p+n點(diǎn)開始重復(fù)步驟(1)。

(6) 遍歷至終點(diǎn)時(shí)結(jié)束算法。

分割得到的齒頂圓弧如圖5所示。

圖5 間隔90°的4種位置圓弧

2.3 亞像素圓弧分割

預(yù)分割出的圓弧曲率較大,像素級(jí)的坐標(biāo)不足以表征圓弧屬性且樣本點(diǎn)數(shù)量不夠多,難以滿足高精度要求。本文在將像素級(jí)圓弧坐標(biāo)映射回原圖坐標(biāo)(i,j)的基礎(chǔ)上,對原圖坐標(biāo)鄰域內(nèi)的點(diǎn)P(i,j)、P(i+1,j)、P(i,j+1)、P(i+1,j+1)采用雙線性插值公式:

G(i+x,j+y)=(1-y)(1-y)P(i,j)+

x(1-y)P(i+1,j)+y(1-x)P(i,j+1)+

(1-x)(1-y)P(i+1,j+1)

(7)

以此來對坐標(biāo)五等分細(xì)化,其中x、y為i、j的增量值。對重新得到的圖像求解出其梯度圖像R(i,j),在梯度圖像X方向上取R(i,j)、R(i+0.2,j)、R(i+0.4,j)、R(i+0.6,j)、R(i+0.8,j)5個(gè)點(diǎn),以5個(gè)點(diǎn)的梯度幅值作為函數(shù)值,以i、i+0.2、i+0.4、i+0.6、i+0.8為插值點(diǎn),代入多項(xiàng)式插值公式,即

(8)

令df(x)/dx=0,從而得到亞像素邊緣坐標(biāo)。對亞像素坐標(biāo)以更精確的閾值Th、Tl進(jìn)行篩選。

亞像素插值方法的計(jì)算量比較大,本文僅在預(yù)分割所得圓弧上進(jìn)行亞像素插值,從樣本點(diǎn)精度和樣本點(diǎn)數(shù)量上優(yōu)化了擬合樣本,所耗時(shí)間約為整個(gè)輪廓插值的1/10,極大地提高了運(yùn)行效率。

3 改進(jìn)RANSAC算法擬合

為了保證在不同程度、不同類別缺陷情況下都能準(zhǔn)確地檢測出圓弧,分割閾值通常不會(huì)太靠近齒頂圓弧的理論上限,此時(shí)分割的圓弧會(huì)帶有少數(shù)的離群點(diǎn),且其分布類似于計(jì)算機(jī)中的局部性原理,因此本文提出一種改進(jìn)抽樣策略的RANSAC算法來擬合齒頂圓。

3.1 RANSAC算法原理

RANSAC算法[11]的輸入是一組包含局內(nèi)點(diǎn)(inliers)和局外點(diǎn)(outliers)的觀測數(shù)據(jù),那些偏差不大的數(shù)據(jù)是局內(nèi)點(diǎn),偏差大的數(shù)據(jù)是局外點(diǎn),它采用迭代的方式從一組包含局外點(diǎn)的被觀測數(shù)據(jù)中估算出已知數(shù)學(xué)模型的參數(shù)。該算法基本流程如下:

(1) 從樣本集中隨機(jī)選取n個(gè)樣本,計(jì)算得到模型參數(shù)(如直線n=2,圓n=3)。

(2) 判斷模型參數(shù)的質(zhì)量 (計(jì)算符合該模型的局內(nèi)點(diǎn)數(shù)量,數(shù)量越多越好)。

(3) 重復(fù)上述步驟,記錄質(zhì)量最好的模型; 滿足迭代條件時(shí)退出(達(dá)到迭代次數(shù)K)。

3.2 改進(jìn)抽樣策略的RANSAC算法

在計(jì)算機(jī)底層中存在局部性原理,即在一段時(shí)間內(nèi),程序訪問了某個(gè)存儲(chǔ)單元,其附近的存儲(chǔ)單元也將被訪問。本文中的輪廓邊緣點(diǎn)不同于隨機(jī)分布的數(shù)據(jù)點(diǎn),其在空間上是有序相鄰的,類似于此原理,在一段輪廓點(diǎn)中若存在一個(gè)局外點(diǎn),則該點(diǎn)附近的點(diǎn)大概率是局外點(diǎn)。隨機(jī)抽樣的點(diǎn)越近,其誤差的放大程度就越高。基于以上兩點(diǎn),本文在使用RANSAC算法擬合時(shí)對樣本點(diǎn)的選取不再是隨機(jī)的,而是將分割得到的齒頂圓弧分類整合,一個(gè)輪齒上的圓弧應(yīng)該屬于同一類,每一個(gè)樣本點(diǎn)都來自不同的類。

改進(jìn)算法流程如下:

(1) 檢查序號(hào)1圓弧的開始點(diǎn)與序號(hào)最大的圓弧結(jié)束點(diǎn)的距離d,若d<πm/2,則標(biāo)記為類1,將最大序號(hào)遞減后再重復(fù)此步驟,直到不滿足條件。

(2) 按序號(hào)從小到大對第N類圓弧的結(jié)束點(diǎn)與后一段圓弧的開始點(diǎn)計(jì)算距離d,當(dāng)d<πm/2時(shí),將后一段圓弧的類別改為N,若不滿足則將類別改為N+1,對此圓弧重復(fù)此步驟直到最大序號(hào)。

(3) 隨機(jī)抽取3類不同圓弧,從每一類中隨機(jī)抽取一個(gè)樣本,根據(jù)3個(gè)樣本計(jì)算得到圓的模型后判斷模型質(zhì)量。

(4) 重復(fù)步驟(3),達(dá)到迭代次數(shù)K后,選取質(zhì)量最好的模型作為齒頂圓,此時(shí)的圓心即齒輪中心。

改進(jìn)算法避免了在誤差較大的模型上進(jìn)行模型質(zhì)量判斷,縮短了擬合時(shí)間。

4 實(shí)驗(yàn)結(jié)果與分析

本文實(shí)驗(yàn)環(huán)境為:Ubuntu 18.04系統(tǒng),Intel Core i7處理器,16 GiB內(nèi)存(RAM),相機(jī)分辨率為2 448×2 048,實(shí)驗(yàn)平臺(tái)為CLion 2013,程序編寫使用C++編程語言與OpenCV開源庫。

實(shí)驗(yàn)圖片采集自某公司自動(dòng)化生產(chǎn)線的轉(zhuǎn)臺(tái)電機(jī)傳動(dòng)齒輪。為減少隨機(jī)性帶來的誤差以及提供同一個(gè)對比標(biāo)準(zhǔn)值,在齒輪原圖(實(shí)驗(yàn)1)上人為加入缺陷(實(shí)驗(yàn)2)和噪聲(實(shí)驗(yàn)3)干擾,如圖6所示,通過多組圖片在不同條件下的齒輪中心定位實(shí)驗(yàn)進(jìn)行算法性能的對比。

選取其中一組在缺陷和噪聲干擾下分別使用本文算法、最小二乘法以及文獻(xiàn)[7]算法進(jìn)行中心定位實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表1所列。

將實(shí)驗(yàn)2、實(shí)驗(yàn)3的中心坐標(biāo)與實(shí)驗(yàn)1的中心坐標(biāo)做差,取其較大差值作為評(píng)估其穩(wěn)定性的標(biāo)準(zhǔn),10組實(shí)驗(yàn)的結(jié)果如圖7所示。

圖6 實(shí)驗(yàn)條件

表1 齒頂圓擬合對比

圖7 不同算法的中心坐標(biāo)波動(dòng)分布

從實(shí)驗(yàn)結(jié)果可以看出:最小二乘法的擬合精度最低,在干擾影響下其中心定位波動(dòng)最大可達(dá)0.025 5 mm;文獻(xiàn)[7]算法的擬合精度較高,但在噪聲干擾下凸包頂點(diǎn)的選取精度受到影響而呈現(xiàn)較大波動(dòng)。

從圖7可以看出,得益于RANSAC算法的抗干擾性與亞像素邊緣的高精度,本文算法在齒頂圓直徑與中心定位的精度上表現(xiàn)良好且穩(wěn)定,檢測速度雖不如其他2種算法,但在改進(jìn)之后足以滿足實(shí)際工業(yè)檢測的要求。

5 結(jié) 論

本文提出一種基于亞像素圓弧分割與改進(jìn)RANSAC算法相結(jié)合的定位方法來解決在實(shí)際工業(yè)檢測中齒輪中心定位精度不高、抗干擾能力差的問題。使用Canny算子檢測齒輪邊緣并使用Freeman碼進(jìn)行邊緣跟蹤,以最小二乘法得到的圓心作為粗基準(zhǔn),在分析圓弧分割閾值的取值范圍后,使用兩次分割算法得到齒頂圓弧,最后使用改進(jìn)抽樣策略的RANSAC算法擬合齒頂圓得到精確的齒輪中心。實(shí)驗(yàn)結(jié)果表明,本文算法在輪廓存在缺陷、圖像受到噪聲干擾的情況下依然具有較高的定位精度,具有較強(qiáng)的實(shí)用性。

猜你喜歡
鏈碼齒頂圓弧
齒頂間隙對雙圓弧螺旋齒輪泵泄漏及空化特性的影響
淺析圓弧段高大模板支撐體系設(shè)計(jì)與應(yīng)用
分?jǐn)?shù)槽切向磁路永磁電機(jī)齒頂漏磁分析
外圓弧面銑削刀具
連續(xù)展成磨削小半徑齒頂圓角的多刀逼近法
一種新壓縮頂點(diǎn)鏈碼
基于鏈碼特征的幾何圖形快速識(shí)別算法*
數(shù)控車削圓弧螺紋程序編制與加工
等截面圓弧無鉸板拱技術(shù)狀況評(píng)價(jià)
無損鏈碼技術(shù)的分析與比較
南陵县| 紫金县| 鞍山市| 清水河县| 盐山县| 沙雅县| 临武县| 秀山| 阳信县| 湖口县| 镇雄县| 陈巴尔虎旗| 澄城县| 江城| 泰州市| 平武县| 东乡| 刚察县| 治县。| 德州市| 上林县| 平武县| 安福县| 汾阳市| 拉萨市| 日照市| 云梦县| 张家港市| 太和县| 西藏| 长沙市| 城市| 潜江市| 交口县| 长汀县| 都江堰市| 太仆寺旗| 顺昌县| 江山市| 阿城市| 松滋市|