盧韶芳 費斌 張超 陳玄真
(吉林大學(xué)通信工程學(xué)院,長春 130025)
立體視覺的定位已成為這些年來視覺導(dǎo)航定位系統(tǒng)的研究熱點之一,在尋求定位的同時,對定位的精度要求也不斷提高,從某種程度上說,定位精度已成為視覺導(dǎo)航定位系統(tǒng)的關(guān)鍵,定位的精確與否將關(guān)系到整個工作的成敗.所以,研究能夠有效提高視覺導(dǎo)航系統(tǒng)定位精度的方法至關(guān)重要.
對于機器人輔助外科(robot assisted surgery,RAS)來說,立體視覺定位系統(tǒng)是機器人輔助微創(chuàng)手術(shù)系統(tǒng)的子系統(tǒng),是手術(shù)導(dǎo)航系統(tǒng)的重要組成部分,其定位精度的要求非常之高,它直接關(guān)系到整個系統(tǒng)的精度以及計算機輔助手術(shù)的成敗.對于傳統(tǒng)誤差補償,系統(tǒng)數(shù)學(xué)模型較難建立,因此本文提出使用模糊推理和遺傳算法改進(jìn)神經(jīng)網(wǎng)絡(luò)方法[1-2]對誤差進(jìn)行預(yù)測,結(jié)果表明模糊推理和遺傳算法誤差補償技術(shù)精度較高,具有較強的擬合能力.
1)硬件的誤差
硬件引起的誤差對于定位精度的影響非常大.考慮實驗的條件,又分為定標(biāo)工具誤差、攝像機鏡頭畸變誤差和透視誤差[3].
對于定標(biāo)工具誤差,由于“兩步法”標(biāo)定是利用打印的標(biāo)準(zhǔn)模板,使用已知尺寸工具建立坐標(biāo)系而實現(xiàn)的,因此標(biāo)準(zhǔn)模板、工具尺寸的誤差直接影響著最終的結(jié)果.對于鏡頭畸變誤差而言,根據(jù)幾何光學(xué)成像理論,近軸區(qū)的成像被認(rèn)為是理想成像,而實際光學(xué)系統(tǒng)的成像和近軸區(qū)的成像是有差異的,它們之間的差異即為像差.通常而言,當(dāng)視場發(fā)生改變,畸變值隨之改變,越接近視場的邊緣,其畸變值越大.對于透視誤差,在理想的攝像機安裝情況下,攝像機光軸與檢測平面垂直.當(dāng)攝像機光軸與檢測平面不垂直時,將會引入透視誤差.
2)軟件的誤差
軟件算法誤差主要是包括標(biāo)定算法、定位算法和圖像處理算法引入的誤差.
對于標(biāo)定算法和定位算法的誤差,由于攝像機攝取的圖像存在多種畸變,使得攝像機坐標(biāo)系與成像平面坐標(biāo)系呈現(xiàn)復(fù)雜的非線性關(guān)系.在實驗中為兼顧定位精度與系統(tǒng)實時性的要求,僅考慮主要畸變,并在此基礎(chǔ)上建立攝像機成像模型,因此標(biāo)定和定位算法本身會存在誤差.對于圖像處理算法引入的誤差,由于圖像采集卡采集的圖像受環(huán)境光照和傳感器等干擾的影響而存有噪聲,雖然對其進(jìn)行了圖像處理等操作,但仍不可避免會存在一定的誤差,且圖像特征點提取算法也會引入一定程度的誤差.
3)人為誤差
在兩步法標(biāo)定方法中,需要使用已知尺寸精確工具接觸標(biāo)準(zhǔn)模板上的三個點建立坐標(biāo)系,為了得到空間點的標(biāo)準(zhǔn)坐標(biāo)值,也需接觸空間點,判斷接觸的過程中可能存在人為誤差.
本文通過雙目立體視覺定位實驗,得到大量的空間點定位坐標(biāo),比照空間點實際世界坐標(biāo),得到空間點重建后的定位誤差,然后分別對x,y,z方向進(jìn)行誤差修正.針對誤差的規(guī)律和引起誤差的原因,x,y方向的定位誤差應(yīng)用函數(shù)法就能進(jìn)行修正且能達(dá)到很好的精度;而對于深度方向的誤差應(yīng)用傳統(tǒng)的方法進(jìn)行修正后的誤差還比較大,所以本文主要研究z方向的誤差補償方法.實驗的定標(biāo)模板如圖1所示.圖中小圓直徑2 mm,中心處3個大圓直徑3 mm,相鄰圓中心點間距4 mm,x,y方向總共是8×22=176個點.
圖1 定標(biāo)模板
根據(jù)定位實驗結(jié)果,與空間點的標(biāo)準(zhǔn)世界坐標(biāo)比較,統(tǒng)計出了空間點三維重建后的定位誤差如表1所示.
表1 定位誤差統(tǒng)計
圖2為定標(biāo)模板在0至70 mm移動,15組模板中心圓點的定位誤差.
圖2 定標(biāo)模板圓點的定位誤差
圖3為定標(biāo)模板在0至70 mm移動,15組模板右下點的定位誤差.
圖3 定標(biāo)模板右下的定位誤差
通過表1、圖2和圖3可知,靠近模板中心的標(biāo)定誤差相對較小,這是由于x方向和y方向的畸變相對值與徑向半徑的平方成正比,即在圖像中心處畸變較小,在邊緣處的畸變較大.隨著高度的降低,誤差越來越大,這是由于最初拍攝模板圖像時,在z=70 mm焦距調(diào)節(jié)到最佳位置,移動定標(biāo)模板后,圖像質(zhì)量下降所導(dǎo)致.
GA(genetic algorithm)是由美國John Holland教授1975年提出的,它是一類模擬生物界自然選擇和自然遺傳機制的隨機化搜索算法,其內(nèi)涵哲理乃是啟迪于自然界生物從低級、簡單、到高級、雜乃至漫長而絕妙的進(jìn)化過程,是借鑒達(dá)爾文的物競天演、優(yōu)勝劣汰、適者生存的遺傳選擇和自然淘汰的生物進(jìn)化過程的計算模型,其本質(zhì)是一種求解問題的高效并行全局搜索方法.選擇(selection)、交叉(crossover)和變異(mutation)是GA的3個主要操作操作數(shù)(operator),構(gòu)成了所謂的遺傳操作(genetic operation).GA求解問題所需的信息比傳統(tǒng)優(yōu)化方法要少得多,且容易求得全局最優(yōu)解.其主要特點是群體搜索策略和群體中個體之間的信息交換,搜索不依賴于梯度信息.GA已廣泛應(yīng)用于許多領(lǐng)域,尤其適用于處理傳統(tǒng)搜索方法難于解決的復(fù)雜性問題和非線性問題.
對于x,y方向的定位坐標(biāo),分別隨機產(chǎn)生一組二進(jìn)制位串種群,然后計算適應(yīng)度值,評價網(wǎng)絡(luò)的性能,接著再判斷神經(jīng)網(wǎng)絡(luò)性能是否滿足所需的精度,如果是的話則直接保存網(wǎng)絡(luò)權(quán)值和閾值,學(xué)習(xí)過程結(jié)束.如果不是,通過選擇、交叉和變異等遺傳操作,產(chǎn)生下一代種群,形成下一代網(wǎng)絡(luò)再計算適應(yīng)度值,如此循環(huán).
基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法[4-5]的算法流程如圖4所示.
圖4 遺傳算法學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)流程圖
模糊理論可從指定的系統(tǒng)輸入/輸出信號中,建立系統(tǒng)的輸入/輸出關(guān)系.這一輸入/輸出關(guān)系不像傳統(tǒng)的經(jīng)典數(shù)學(xué)建模具有確定的數(shù)學(xué)表達(dá)式,而是給出一定算法,這樣從而避開了復(fù)雜的建模過程.模糊推理流程如圖5所示.
首先設(shè)計了模糊控制系統(tǒng);確定了模糊輸入輸出變量;結(jié)合隸屬函數(shù)的選取原則比較選取了輸入輸出變量的隸屬函數(shù);而后依據(jù)立體視覺定位實驗中獲得的大量補償點建立了控制系統(tǒng)的模糊規(guī)則;最后給出了模糊推理過程.
圖5 模糊推理流程圖
誤差補償模型可以用下式來表示:
式中,E表示測量的誤差向量;U表示誤差修正向量.
計算機輔助誤差補償通常采用數(shù)字式補償,即補償點的設(shè)立是非連續(xù)性的,因而其補償模型可用離散形式表示為
式中,Ei表示目標(biāo)補償點的誤差向量;Ui表示目標(biāo)補償點的誤差修正向量;i表示各個補償點.
模糊控制是一種基于規(guī)則的控制,它直接采用語言型控制規(guī)則,在設(shè)計中不需要建立被控對象精確的數(shù)學(xué)模型,因而模糊控制對那些數(shù)學(xué)模型難以獲取,動態(tài)特性不易掌握或變化非常顯著的對象非常適用.
圖6為z=15 mm處未進(jìn)行誤差補償前的曲面.
圖6 z=15 min時誤差修正前曲面
針對圖6中的誤差曲面設(shè)計隸屬函數(shù)和控制規(guī)則,圖7為使用模糊推理實現(xiàn)的誤差補償效果圖.
圖7 模糊控制誤差補償曲面
由圖6可知,未補償前z=15 mm處曲面較不平滑,且有很大的誤差,最大誤差在0.35 mm左右,由圖7、圖8可以看出,誤差補償后曲面相對較平滑,且補償后最大誤差控制在0.12 mm以內(nèi),補償后的誤差小了很多.
圖8 模糊控制預(yù)測誤差
圖9~圖11為使用遺傳神經(jīng)網(wǎng)絡(luò)得出的實驗結(jié)果,抽取其中132組用于訓(xùn)練資料,其余44組用于測試資料.
圖9 z=15 mm時期望輸出與預(yù)測輸出仿真
圖10 z=15 mm時預(yù)測誤差
圖11 z=15 mm時誤差修正后曲面
由圖9可知,預(yù)測的誤差能夠很好地擬合期望的誤差.從圖11中可以看出,預(yù)測的誤差能夠控制在0.08 mm以內(nèi).對比圖8可知,遺傳算法改進(jìn)神經(jīng)網(wǎng)絡(luò)具有更好的誤差補償效果.對比圖7和圖11可以看出,使用遺傳算法改進(jìn)神經(jīng)網(wǎng)絡(luò)進(jìn)行誤差修正的曲面比使用模糊控制得到的誤差曲面更平整和平滑.
本文先對定位系統(tǒng)中深度誤差產(chǎn)生的原因和誤差結(jié)果進(jìn)行了分析,提出使用模糊推理和遺傳算法改進(jìn)人工神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行誤差修正的方法.實驗表明,當(dāng)使用模糊控制進(jìn)行誤差修正后,實驗結(jié)果得到了很大的改進(jìn).模糊控制是一種基于規(guī)則的控制,它直接采用語言型控制規(guī)則,在設(shè)計中不需要建立被控對象精確的數(shù)學(xué)模型,因而模糊控制對那些數(shù)學(xué)模型難以獲取,動態(tài)特性不易掌握或變化非常顯著的對象非常適用,但其模糊規(guī)則較難建立.
采用遺傳算法改進(jìn)人工神經(jīng)網(wǎng)絡(luò),極大地提高網(wǎng)絡(luò)的學(xué)習(xí)性能,遺傳算法誤差補償技術(shù)精度最高,具有較強的擬合能力,進(jìn)一步提高了神經(jīng)網(wǎng)絡(luò)的補償效果.遺傳算法能以較快的速度減小搜索空間范圍,有很強的全局搜索能力;而BP算法則具有局部搜索效率高的特點,將兩者結(jié)合起來,從而提高了算法的整體性能.
References)
[1]張宏韜,姜輝,楊建國.模糊神經(jīng)網(wǎng)絡(luò)理論在數(shù)控機床熱誤差補償建模中的應(yīng)用[J].上海交通大學(xué)學(xué)報,2009,43(12):1950-1952.Zhang Hongtao,Jiang Hui,Yang Jianguo.Application of fuzzy neural network theory in thermal error compensation modeling of nc machine tool[J].Journal of Shanghai Jiaotong University,2009,43(12):1950-1952.(in Chinese)
[2]陳希,付興武,張興元.BP神經(jīng)網(wǎng)絡(luò)在測距誤差補償中的應(yīng)用[J].工礦自動化,2008,6(3):57-58.
[3]呂宏偉.機器人輔助微創(chuàng)手術(shù)視覺導(dǎo)航定位系統(tǒng)研究[D].長春:吉林大學(xué)通信工程學(xué)院,2008.
[4]Wang Wu,Zhang Yuanmin.Application of recursive predict error neural networks in mechanical propertise forecasting[C]//2009 International Joint Conference on Artificial Intelligence.Pasadena,California,USA,2009:132-135.
[5]Wang Gang,Zhang Weihong.Prediction of diameter error of workpiece in turning process using neural Network[C]//2009 International Conference on Intelligent Human Machine Systems and Cybernetics.Hangzhou,China,2009:95-98.