韓宗旺,張 偉,程 祥,鄭宏宇
(山東理工大學(xué)機(jī)械工程學(xué)院,山東 淄博 255000)
根據(jù)國家標(biāo)準(zhǔn)規(guī)定,直線度誤差定義為被測實(shí)際直線相對于理想直線的變動(dòng)量,并且根據(jù)不同的要求,直線度公差帶的形狀可以分為給定平面內(nèi)的直線度誤差、給定方向上的直線度誤差、任意方上的直線度誤差[1]。這里所測量的軸線輪廓直線度屬于給定平面內(nèi)的直線度誤差。平面內(nèi)直線度誤差評(píng)定方法有:最小包容區(qū)域法、最小二乘法、兩端點(diǎn)連線法等[2]。其中后兩種方法得到近似值,最小包容區(qū)域法評(píng)定精度最高,但《GB/T 11336-2004直線度誤差檢測》[3]中沒有清晰地給出最小包容區(qū)域法的實(shí)現(xiàn)方法。
基于機(jī)器視覺檢測零件直線度,多采用最小二乘法與兩端點(diǎn)法[4-6],當(dāng)零件變形較大時(shí),線性關(guān)系降低,兩種方法就不適用。為快速、精確的對軸類零件直線度誤差進(jìn)行評(píng)定,利用機(jī)器視覺檢測平臺(tái)采集了多張軸零件的圖片,以提取的軸的素線坐標(biāo)為依據(jù),分別用兩端點(diǎn)法,最小二乘法,以及所提出的約束旋轉(zhuǎn)逼近法、包容線搜索算法和多變異位自適應(yīng)遺傳算法進(jìn)行直線度評(píng)定,比較各評(píng)定方法精度和優(yōu)缺點(diǎn)。為了進(jìn)一步驗(yàn)證三種方法的準(zhǔn)確性,利用該三種方法對其它文獻(xiàn)中的數(shù)據(jù)進(jìn)行評(píng)定,并與文獻(xiàn)中的結(jié)果進(jìn)行比較。
兩端點(diǎn)法是將首尾兩個(gè)端點(diǎn)連接成一條直線,然后此連線作為評(píng)定基準(zhǔn)直線,找出采樣點(diǎn)與直線距離的最大值hmax和最小值hmin,建立直角坐標(biāo)系xoy,則直線度誤差為d1=hmax-hmin,如圖1所示。
圖1 兩端點(diǎn)法原理圖Fig.1 Schematic Diagram of Two-Point Method
最小二乘法[7]是將采樣點(diǎn)先進(jìn)行最小二乘擬合出直線作為評(píng)定基準(zhǔn)直線,找出采樣點(diǎn)與基準(zhǔn)直線L2距離的最大值hmax和最小值hmin,則直線度誤差為:d2=hmax-hmin。其原理圖,如圖2所示。
圖2 最小二乘法原理圖Fig.2 Schematic Diagram of Least Square Method
約束旋轉(zhuǎn)逼近法是通過算法對搜索范圍進(jìn)行約束,其原理與實(shí)現(xiàn)方法如下:
首先將采樣點(diǎn)進(jìn)行最小二乘擬合,得到基點(diǎn)P,計(jì)算全部采樣點(diǎn)到最小二乘直線的距離,假設(shè)得到最大值點(diǎn)M1與最小值點(diǎn)M2位置,如圖3所示。將這兩個(gè)點(diǎn)分別與P點(diǎn)相連,兩直線夾角β即為搜索范圍,如式(1)所示。
圖3 約束旋轉(zhuǎn)逼近法原理圖Fig.3 Schematic Diagram of Constrained Rotation Approximation Method
由搜索次數(shù)得到斜率變化量μ,如式(2)所示。
式中:e—搜索次數(shù)。進(jìn)而得到分割基線方程為:
初始最小二乘直線繞P點(diǎn)在搜索范圍內(nèi)逆時(shí)針和順時(shí)針分別旋轉(zhuǎn)角度,計(jì)算每一條分割直線對應(yīng)于所設(shè)角度的直線度誤差值,假設(shè)L4位置的時(shí)候直線度誤差值最小,計(jì)算采樣點(diǎn)到該直線距離的最大值hmax和最小值hmin,則直線度誤差d3=hmax-hmin。
最小區(qū)域法[8-9]實(shí)際上是尋找包容被測輪廓的兩平行直線之間距離的最小值。包容被測輪廓的兩平行直線存在無數(shù)對,但只有一對距離最小。換言之,一對理想包容參考直線其斜率值可以有無數(shù)個(gè),但要符合最小條件使兩平行包容線之間距離最小,只有一個(gè)斜率是最佳的。因此,可以用多變異位自適應(yīng)遺傳算法來解決這個(gè)最優(yōu)化問題[10]。
本方法在最小包容區(qū)域法思想上,結(jié)合自適應(yīng)改變交叉概率與變異概率以及多變異位方式的遺傳算法的優(yōu)點(diǎn),尋找兩條最小包容平行直線的最佳斜率k,求斜率為k的包絡(luò)所有點(diǎn)的兩條直線截距,進(jìn)一步計(jì)算出直線度誤差,具體過程如下:
(1)根據(jù)被測點(diǎn)坐標(biāo),用最小二乘法擬合出參考直線,得到直線斜率k。
(2)確定種群規(guī)模N、交叉概率Pc1、Pc2,變異概率Pm1、Pm2和最大進(jìn)化代數(shù)M。
(3)編碼構(gòu)成初始種群A0(t)。由于最優(yōu)解與最小二乘解的斜率偏差很小,所以選擇解搜索區(qū)間為(k-1~k+1)并對斜率進(jìn)行二進(jìn)制編碼構(gòu)成初始種群。
(4)計(jì)算個(gè)體適應(yīng)度fi。目標(biāo)函數(shù)為N個(gè)個(gè)體所對應(yīng)的直線度誤差:
式中:D—直線度誤差,即兩條最小包容平行直線之間的距離;dmax、dmin—兩條最小包容平行直線所對應(yīng)的截距;k—平行包容直線斜率。
由于目標(biāo)函數(shù)的變化方向和適應(yīng)度相反,將目標(biāo)函數(shù)取倒數(shù)作為適應(yīng)度函數(shù),其映射關(guān)系為:
(5)選擇操作,采用輪盤賭選擇法,經(jīng)過選擇后得到N個(gè)新個(gè)體A1(t)。
(6)交叉操作。首先引入交叉概率和變異概率調(diào)整函數(shù),使得交叉概率和變異概率隨著個(gè)體適應(yīng)度的大小和群體的分布程度自動(dòng)調(diào)整[11]:
式中:fmax、favg—計(jì)算群體中最大適應(yīng)度值和平均適應(yīng)度值;f'—待交叉的兩個(gè)體中適應(yīng)度較大的一個(gè);f—待變異個(gè)體的適應(yīng)度值。
從新個(gè)體中以相同概率獨(dú)立的選擇兩個(gè)個(gè)體,產(chǎn)生一個(gè)[0,1]的隨機(jī)數(shù),如果該隨機(jī)數(shù)小于交叉概率,則個(gè)體1和個(gè)體2進(jìn)行交叉操作,產(chǎn)生兩個(gè)新個(gè)體;否則保留原個(gè)體,不進(jìn)行交叉操作,重復(fù)此過程,直到形成過渡種群A2(t)。其交叉示意圖,如圖4所示。
圖4 二進(jìn)制編碼交叉操作Fig.4 Binary Code Crossover Operation
(7)變異操作。計(jì)算種群中適應(yīng)度的最大值與最小值是否相等,如果相等,根據(jù)變異概率,隨機(jī)產(chǎn)生過渡種群中個(gè)體的一個(gè)變異位;如果不相等,則計(jì)算最大適應(yīng)度值與個(gè)體適應(yīng)度值之差,最大適應(yīng)度值與最小適應(yīng)度值之差,若兩者比值大于MM,則隨機(jī)產(chǎn)生過渡種群中個(gè)體的三個(gè)變異位,若比值大于1小于MM,則隨機(jī)產(chǎn)生過渡種群中個(gè)體的兩個(gè)變異位。這樣便形成新一代的種群A3(t),然后計(jì)算新一代適應(yīng)度值。
(8)檢查進(jìn)化代數(shù)是否達(dá)到預(yù)設(shè)值。
(9)保存適應(yīng)度最大的個(gè)體其所對應(yīng)的目標(biāo)函數(shù)值即為最終的直線度誤差值。
針對已有符合最小包容區(qū)域法定義方法在計(jì)算直線度誤差迭代速度慢、計(jì)算復(fù)雜的缺點(diǎn),提出根據(jù)最小包容區(qū)域原則的包容線搜索算法來評(píng)定直線度誤差方法。
首先利用最小二乘法得出擬合基線L3,如圖5所示。設(shè)其直線方程為:
圖5 包容線搜索算法原理圖Fig.5 Schematic Diagram of Envelope Search Method
以基線為界將采樣點(diǎn)分為高點(diǎn)和低點(diǎn),尋找離擬合線距離最遠(yuǎn)高點(diǎn)P1,以P1點(diǎn)為基點(diǎn),以最小二乘擬合直線斜率k1做一條直線L4,通過改變直線L4的斜率使采樣點(diǎn)均位于直線下方或直線上,確定臨界點(diǎn)P2。
若最小二乘擬合直線斜率大于0,則直線L4應(yīng)順時(shí)針轉(zhuǎn)動(dòng),a取負(fù)值;如果斜率小于0,則直線L4應(yīng)逆時(shí)針轉(zhuǎn)動(dòng),a取正值,然后根據(jù)斜率ki變化計(jì)算出相應(yīng)的截距,其公式為:
將除P1外的其它測點(diǎn)坐標(biāo)帶入式(11)中,ki每變化一次,對采樣點(diǎn)進(jìn)行計(jì)算,理論上當(dāng)W=0時(shí)得到臨界點(diǎn)P2,但實(shí)際上由于步長a大小的設(shè)置,會(huì)出現(xiàn)臨界點(diǎn)P2處于兩次掃描直線之間的情況,此時(shí)需滿足:
根據(jù)P1、P2點(diǎn)確定相對應(yīng)的上包容線y=kx+m1,然后過最遠(yuǎn)采樣點(diǎn)P3作與直線平行的下包容線y=kx+m2,此時(shí)P1、P2、P3,三個(gè)點(diǎn)滿足最小區(qū)域的“高低高”準(zhǔn)則。計(jì)算兩包容線之間的距離即為直線度誤差。
以同樣的方法先找下包容線,尋找滿足最小區(qū)域的“低高低”準(zhǔn)則的三點(diǎn),然后按上述步驟計(jì)算后也會(huì)求得一對包容線的距離,將兩次計(jì)算得到的距離最小值作為所求直線度誤差。
為比較各種直線度誤差評(píng)定算法的精度,利用基于機(jī)器視覺的軸類零件直線度誤差測量的平臺(tái),采用CMOS 相機(jī)(型號(hào):MER-2000-19U3C)作為檢測相機(jī),測量100×φ20mm 軸的素線直線度誤差,采集了若干張軸的圖像,如圖6所示。經(jīng)圖像濾波、閾值分割、形態(tài)學(xué)操作等,提取軸的邊緣圖像,如圖7所示。
圖6 機(jī)器視覺采集被測軸圖像Fig.6 Machine Vision Acquisition of the Measured Axis Image
圖7 軸的上下邊緣檢測圖Fig.7 Upper and Lower Edge Detection Graph of Shaft
對CMOS相機(jī)進(jìn)行標(biāo)定,提取圖像素線輪廓坐標(biāo)數(shù)據(jù),共有2776個(gè)像素?cái)?shù)據(jù)。為了便于計(jì)算和數(shù)據(jù)顯示,將圖像坐標(biāo)原點(diǎn)進(jìn)行平移,采用兩端點(diǎn)評(píng)定方法得到的直線度,如圖8所示。采用最小二乘法評(píng)定方法得到直線度誤差,如圖9所示。
圖8 兩端點(diǎn)法直線度評(píng)定Fig.8 Straightness Evaluation by Two end Point Method
圖9 最小二乘法直線度評(píng)定Fig.9 Straightness Evaluation by Least Square Method
采用約束旋轉(zhuǎn)逼近法時(shí),根據(jù)搜索區(qū)域確定β角度約為1°,順時(shí)針逆時(shí)針旋轉(zhuǎn)角度各為0.5°,根據(jù)式(1)~式(3),選擇搜索次數(shù)e=400次,則μ=4.36×10-5。結(jié)果,如圖10所示。采用包容線搜索算法時(shí),a為一個(gè)數(shù)值很小的步長,a太小會(huì)影響計(jì)算速度,太大則會(huì)影響計(jì)算結(jié)果,這里a取值為10-5,結(jié)果,如圖11所示。
圖11 包容線搜索直線度評(píng)定Fig.11 Straightness Evaluation of Envelope Search
采用多變異位自適應(yīng)遺傳算法時(shí),選取種群規(guī)模為N=300,交叉概率Pc1=0.6、Pc2=0.9,變異概率Pm1=0.01、Pm2=0.04,最大進(jìn)化代數(shù)M=300,結(jié)果,如圖12所示。
圖12 多變異位自適應(yīng)遺傳算法的直線度評(píng)定Fig.12 Straightness Svaluation of Multivariate Heterotopic Adaptive Genetic Algorithm
經(jīng)過多次重復(fù)實(shí)驗(yàn),其運(yùn)算結(jié)果表明,兩端點(diǎn)法和最小二乘法評(píng)定結(jié)果與其它方法評(píng)定結(jié)果相差較大;采用包容線搜索算法、約束旋轉(zhuǎn)逼近法和多變異位自適應(yīng)遺傳算法評(píng)定結(jié)果相差較小,較前兩種方法精度均有提高,其中多變異位自適應(yīng)遺傳算法的評(píng)定精度最高,但運(yùn)行時(shí)間最長,而包容線搜索算法、約束旋轉(zhuǎn)逼近法運(yùn)行時(shí)間比較短。各算法直線度評(píng)定結(jié)果,如表1所示。
表1 各算法評(píng)定結(jié)果Tab.1 Calculation Results of Each Algorithm
文獻(xiàn)[12]中分別用傳統(tǒng)遺傳算法、粒子群算法對16個(gè)數(shù)據(jù)采樣點(diǎn)數(shù)據(jù)進(jìn)行直線度評(píng)定,數(shù)據(jù),如表2所示。為驗(yàn)證這里算法的準(zhǔn)確性,利用文獻(xiàn)數(shù)據(jù)對這里的三種評(píng)定方法進(jìn)行驗(yàn)證,并繪制出評(píng)定數(shù)據(jù)處理后的曲線圖,如圖13~圖15所示。
表2 文獻(xiàn)[12]評(píng)定數(shù)據(jù)Tab.2 Evaluation Data of Literature[12]
圖13 包容線搜索算法評(píng)定Fig.13 Evaluation of Envelope Search Algorithm
圖14 約束旋轉(zhuǎn)逼近法直線度評(píng)定Fig.14 Straightness Evaluation of Constrained Rotation Approximation Method
圖15 多變異位自適應(yīng)遺傳算法的直線度評(píng)定Fig.15 Straightness Evaluation of Multivariate Heterotopic Adaptive Genetic Algorithm
表2數(shù)據(jù)采用文獻(xiàn)[12]中的評(píng)定方法評(píng)定結(jié)果,如表3所示。采用包容線搜索算法、約束旋轉(zhuǎn)逼近法和多變異位自適應(yīng)遺傳算法評(píng)定結(jié)果,如表4所示。
表3 文獻(xiàn)[12]中的評(píng)定結(jié)果Tab.3 Evaluation Results in Literature[12]
表4 數(shù)據(jù)評(píng)定結(jié)果Tab.4 Data Evaluation Results
通過比較表3、表4的結(jié)果得到:利用提出的包容線搜索算法和約束旋轉(zhuǎn)逼近法得到的直線度誤差與文獻(xiàn)[12]中的傳統(tǒng)遺傳算法、粒子群法得到的直線度誤差基本相同,多變異位自適應(yīng)遺傳算法的檢測結(jié)果(0.011804)比文獻(xiàn)[12]中遺傳算法(0.011958)結(jié)果誤差更??;且與文獻(xiàn)[12]中粒子群算法結(jié)果基本一致,但這里的方法收斂速度更快。
機(jī)器視覺檢測軸類零件素線直線度常用最小二乘法與兩端點(diǎn)法進(jìn)行評(píng)定,為進(jìn)一步提高檢測精度,提出約束旋轉(zhuǎn)逼近法、多變異位自適應(yīng)遺傳算法和包容線搜索算法三種直線度評(píng)定方法,對視覺檢測所提取的軸素線坐標(biāo)直線度誤差進(jìn)行了評(píng)定。結(jié)果表明:約束旋轉(zhuǎn)逼近法、包容線搜索算法和多變異位自適應(yīng)遺傳算法的評(píng)定精度高于兩端點(diǎn)法和最小二乘法。約束旋轉(zhuǎn)逼近法和包容線搜索算法運(yùn)行時(shí)間基本相同,多變異位自適應(yīng)遺傳算法運(yùn)行時(shí)間最長。最后采用此三種方法對文獻(xiàn)數(shù)據(jù)評(píng)定與結(jié)果比較,結(jié)果表明這三種方法和文獻(xiàn)的評(píng)定結(jié)果基本一致。因此,約束旋轉(zhuǎn)逼近法、多變異位自適應(yīng)遺傳算法以及包容線搜索算法都能夠很好滿足精確的檢測與評(píng)定需求,在視覺檢測零件直線度中可以根據(jù)檢測時(shí)間和精度進(jìn)行選擇。