張 瑞,王亞龍,張偉豪,朱振偉
(鄭州大學(xué)機(jī)械工程學(xué)院,河南 鄭州 450001)
在智能產(chǎn)線中,為便于進(jìn)行質(zhì)量跟蹤進(jìn)行,對(duì)所有工件逐一分揀,進(jìn)行工序間檢測(cè)是基礎(chǔ)要求。國(guó)內(nèi)外現(xiàn)有的分揀技術(shù)多通過(guò)視覺(jué)系統(tǒng),對(duì)每個(gè)工件進(jìn)行定位,再通過(guò)機(jī)械臂抓取每個(gè)工件[1]。已有視覺(jué)系統(tǒng)多采用立體視覺(jué)技術(shù),如雙目視覺(jué)技術(shù)[2]、結(jié)構(gòu)光三維測(cè)量技術(shù)等。需要確定每個(gè)毛坯工件的空間位姿,且對(duì)定位精度有極大的要求。故采用不易受外界條件影響、定位精度更高的光柵投影視覺(jué)系統(tǒng)。
光柵投影立體視覺(jué)技術(shù)對(duì)目標(biāo)物體進(jìn)行三維重構(gòu),關(guān)鍵點(diǎn)即為標(biāo)定目標(biāo)物表面特征點(diǎn)的相位與三維坐標(biāo)的映射關(guān)系,其對(duì)系統(tǒng)的精度、工作效率等有很大的影響,受到了很多研究人員的關(guān)注,但已有的相位高度映射關(guān)系研究有以下問(wèn)題:(1)有的光柵投影視覺(jué)模型采用建立顯式函數(shù)或者隱式表達(dá)式的方式求解映射關(guān)系,涉及到采用大量數(shù)據(jù)來(lái)近似擬合公式中的系數(shù),計(jì)算過(guò)程中都會(huì)引入標(biāo)定中累積的誤差[3]。(2)有的標(biāo)定模型中,引入LUT查找表的方法,需要預(yù)先計(jì)算查找表中的每個(gè)像素對(duì)應(yīng)的值,預(yù)處理工作量提高,且計(jì)算精度也會(huì)受到影響。(3)有的相位高度標(biāo)定過(guò)程中,使用高精度標(biāo)定量塊和精密平移臺(tái)的輔助,增加了標(biāo)定成本,降低了標(biāo)定的效率。(4)國(guó)內(nèi)外已有的通過(guò)神經(jīng)網(wǎng)絡(luò)方法,對(duì)相位高度映射關(guān)系進(jìn)行標(biāo)定中,隱含地使用了樣本無(wú)窮多的假設(shè)條件。使用該方法需要采集大量的數(shù)據(jù),提高了數(shù)據(jù)處理量,降低了效率[4-5]。
根據(jù)工程要求通過(guò)視覺(jué)方法求得目標(biāo)物體上特征點(diǎn)的精確位置,即其在相機(jī)坐標(biāo)系下的三維坐標(biāo)。同時(shí)為了避免以上已有光柵投影視覺(jué)系統(tǒng)中的問(wèn)題,現(xiàn)提出一種基于相機(jī)坐標(biāo)系與投影儀坐標(biāo)系空間關(guān)系,及相位與三維坐標(biāo)的非線性映射關(guān)系,并應(yīng)用小樣本、高效率的SVM算法,建立空間點(diǎn)相位—三維坐標(biāo)映射關(guān)系的標(biāo)定模型,并通過(guò)實(shí)驗(yàn)驗(yàn)證該標(biāo)定模型的有效性以及精度。
根據(jù)實(shí)際應(yīng)用搭建的,單目相機(jī)與投影儀組合成的視覺(jué)系統(tǒng)結(jié)構(gòu)示意圖,如圖1所示。調(diào)節(jié)單目相機(jī)與投影儀在工作臺(tái)上有公共視野,它們相對(duì)位置沒(méi)有嚴(yán)格要求,只需保證相對(duì)位置固定即可。圖中所示工作臺(tái)上坐標(biāo)系O-XYZ由相機(jī)和投影儀公共視野確定,可根據(jù)工程實(shí)際情況調(diào)節(jié)位姿。用物塊等效替代在物料框中的某一毛坯工件。
圖1 光柵投影的視覺(jué)系統(tǒng)結(jié)構(gòu)示意圖Fig.1 Visual System Structure Sketch of Grating Projection
設(shè)相機(jī)與投影儀的鏡頭畸變、外界環(huán)境因素的影響都不存在,可有如下理論計(jì)算分析:
圖1中單目相機(jī)拍攝表面有正弦條紋的目標(biāo)物,條紋由投影儀投射在工作區(qū)域平面上。通過(guò)建立相機(jī)和投影儀坐標(biāo)系,可得光柵投影視覺(jué)系統(tǒng)的空間坐標(biāo)系示意圖,如圖2所示。
圖2 光柵投影視覺(jué)系統(tǒng)空間坐標(biāo)系示意圖Fig.2 Grating Projection Vision System Space Coordinate System Diagram
單目相機(jī)與投影儀的位置固定,它們之間的位置關(guān)系也唯一確定,相機(jī)與投影儀坐標(biāo)系之間的轉(zhuǎn)換矩陣可以表示為[R3×3,T3×1]。假設(shè)相機(jī)坐標(biāo)系為Oc-XcYcZc,相機(jī)光軸OcD交成像面于D2點(diǎn),交工作面于D點(diǎn);投影儀坐標(biāo)系為Op-XpYpZp,投影儀光軸OpE交光柵投影源面于E1點(diǎn),交空間中與由源面投射的、且與之平行的光柵投影面于E點(diǎn),交工作平面于F點(diǎn),因工作平面與光柵投影面實(shí)際上都是空間中的虛擬平面,可設(shè)投影儀坐標(biāo)系Yp軸、工作平面X軸與光柵條紋平行。由上圖2可得,空間中某一點(diǎn)P可以看作是相機(jī)發(fā)射的射線與光柵平面的交點(diǎn),即兩個(gè)坐標(biāo)系下的公共點(diǎn),OpP交成光柵投影源面于P1點(diǎn),OcP交成像面于P2點(diǎn)。而點(diǎn)P在兩個(gè)坐標(biāo)系下的坐標(biāo)值可通過(guò)轉(zhuǎn)換矩陣[R3×3,T3×1]進(jìn)行轉(zhuǎn)化,該矩陣具體表達(dá),如下式(1)所示。投影儀坐標(biāo)系下點(diǎn)P(xp,yp,zp),其在相機(jī)坐標(biāo)系下坐標(biāo)值可以表示為(xc,yc,zc),兩者關(guān)系可以用下面式(1)表示。
式中:R3×3—兩坐標(biāo)系坐標(biāo)值轉(zhuǎn)換的旋轉(zhuǎn)矩陣;T3×1—平移矩陣,兩矩陣中的元素在相機(jī)與投影儀安裝固定之后,即為確定值,可通過(guò)標(biāo)定得出。由圖2可得投影儀坐標(biāo)系下空間點(diǎn)分布,如圖3所示。
圖3 投影儀坐標(biāo)系下空間點(diǎn)分布Fig.3 Spatial Point Distribution in Projector Coordinate System
光柵投影源面就是存于投影儀中的、已知相位與尺寸信息的正弦光柵圖像。投影儀坐標(biāo)系下的空間可以分成若干層相互平行的光柵平面,每一層都可看作由光柵投影源面投射出來(lái)。同時(shí)也可理解為從投影儀原點(diǎn)發(fā)射出無(wú)數(shù)條射線,通過(guò)透鏡成像。光軸上線段OpE1即為投影儀焦距,長(zhǎng)度為fp,設(shè)點(diǎn)P,E,P1,E1在投影儀坐標(biāo)系中的坐標(biāo)值分別為(xp,yp,zp)、(xe,ye,ze)、(xp1,yp1,zp1)、(xe1,ye1,ze1),各點(diǎn)相位分別為θp、θe、θp1、θe1,則有xe=y(tǒng)e=xe1=ye1=0,zp1=ze1=fp,zp=ze。
連接P、E兩點(diǎn),得PE垂直于投影儀光軸,連接P1與E1兩點(diǎn),可得PE與P1E1平行,則△OpEP∽△OpE1P1,由三角形相似原理,空間點(diǎn)P的相機(jī)坐標(biāo)值與投影源面中的P1的坐標(biāo)值具有一定的比例關(guān)系,每一層光柵平面都與原始圖像都是按照一定比例放大,線段長(zhǎng)度具有一定的相似比。則可得如下式(2)。每一層光柵平面上,由于光柵條紋方向平行于投影儀坐標(biāo)系的Yp軸,故任一條紋上相位相等,則同一光柵投影平面上P與E點(diǎn)的相位與橫坐標(biāo)應(yīng)滿(mǎn)足具有線性關(guān)系,根據(jù)正弦光柵投影性質(zhì),由投影儀投射出的任一條射線上各點(diǎn)的相位相等,可得式(3)。
式中:λ0—光柵源平面上的光柵節(jié)距,即每個(gè)周期的長(zhǎng)度;λp—光柵投影平面上的節(jié)距,它們的也保持比例關(guān)系。
式中:θp1與θp—一條射線上兩點(diǎn)P與P1的相位,故它們相等;θe1與θe—同理相等。
聯(lián)立式(2)、式(3)式可得式(4)。
式中:fp—投影儀的固定焦距;θe—光柵源面中心的相位,可得在投影儀坐標(biāo)系下,空間任意一點(diǎn)P的坐標(biāo)值xp,zp與相位θp之間符合該式非線性關(guān)系[6]。
由圖2可得下圖4所示,相機(jī)坐標(biāo)系從原點(diǎn)發(fā)射出無(wú)數(shù)條射線,通過(guò)透鏡成像,線段OcD2即為相機(jī)焦距,長(zhǎng)度為f,點(diǎn)D2、P2在成像面坐標(biāo)系中的坐標(biāo)分別為(u0,v0),(u,v);點(diǎn)P,P2在相機(jī)坐標(biāo)系下坐標(biāo)值分別為(xc,yc,zc)、(x,y,f)。
圖4 相機(jī)坐標(biāo)系下空間點(diǎn)分布Fig.4 Spatial Point Distribution in Camera Coordinate System
過(guò)點(diǎn)P做光軸的垂線,交于D1點(diǎn),連接P2與D2兩點(diǎn),得PD1與P2D2平行,則△OcD2P2∽△OcD1P,同樣,根據(jù)投射原理及三角形相似原理,空間點(diǎn)P的相機(jī)坐標(biāo)值與成像面中的P2的坐標(biāo)值具有一定的比例關(guān)系,可得如下式(5)。
式中:u,v;u0,v0—P2、D2點(diǎn)在成像面坐標(biāo)系下的橫縱坐標(biāo)值,單位為像素,dx,dy—每個(gè)像素在相機(jī)坐標(biāo)系中Xc軸與Yc軸上的尺寸,均為相機(jī)的內(nèi)參。
通過(guò)上面分析,綜合式(1)、式(3)、式(4)即可得到如下的方程組(6)。使用xc,zc表示xp,zp。即可以將投影儀坐標(biāo)系下的xp,zp與θ的關(guān)系轉(zhuǎn)化在相機(jī)坐標(biāo)系中,得到xc,zc與θ之間的關(guān)系。
通過(guò)上面方程組與式(5)聯(lián)立,即可得到(u,v,θ)與(xc,yc,zc)之間的映射關(guān)系,如式(7)所示。
其中,可通過(guò)相機(jī)采集的圖像可得到像素坐標(biāo)(u,v),空間任意一點(diǎn)相位θ可通過(guò)求解絕對(duì)相位得到,相機(jī)焦距f、投影儀fp、光柵投影源面的節(jié)距λ0、相機(jī)光軸上點(diǎn)的圖像坐標(biāo)(u0,v0)等系統(tǒng)參數(shù),旋轉(zhuǎn)矩陣中的元素r11、r12、r13、r31、r32、r33,平移矩陣中的元素t1、t3可以通過(guò)Zhang氏標(biāo)定法結(jié)合OpenCV工具庫(kù)進(jìn)行求解,現(xiàn)有算法可達(dá)到亞像素級(jí)精度。
上述標(biāo)定模型是采用理想的數(shù)學(xué)模型,忽略了一些實(shí)際的影響因素,如上述光柵視覺(jué)系統(tǒng)中,相機(jī)與投影儀由于環(huán)境因素產(chǎn)生的畸變等,均不能很好的消除。這給標(biāo)定工作帶來(lái)了很大的不便,同時(shí)大大降低標(biāo)定精度。因此對(duì)相機(jī)—投影儀視覺(jué)系統(tǒng)進(jìn)行標(biāo)定時(shí),針對(duì)攝像機(jī)以及投影儀標(biāo)定過(guò)程中復(fù)雜的成像和畸變模型,提出了基于SVM算法的光柵投影相位—三維坐標(biāo)標(biāo)定模型[7-9]。
根據(jù)上面分析,可得空間中任意一點(diǎn)P在圖像中P2坐標(biāo)(u,v)、絕對(duì)相位θ與其在相機(jī)坐標(biāo)系下的三維坐標(biāo)(xc,yc,zc)存在復(fù)雜的非線映射關(guān)系。SVM是一種有堅(jiān)實(shí)理論基礎(chǔ)的小樣本學(xué)習(xí)方法,可以逼近任意復(fù)雜的非線性系統(tǒng),利用SVM算法的學(xué)習(xí)功能,可以在圖像坐標(biāo)、空間點(diǎn)相位和三維相機(jī)坐標(biāo)之間建立非線性映射模型,且不受任意位姿的物體的表面復(fù)雜度的影響;在建立相機(jī)圖像和投影儀圖像對(duì)應(yīng)關(guān)系時(shí),算法中自動(dòng)補(bǔ)償了投影儀非線性引起的相位誤差,對(duì)光柵圖像的正弦性要求不高,穩(wěn)定性強(qiáng)。
將相位—三維坐標(biāo)映射關(guān)系標(biāo)定問(wèn)題轉(zhuǎn)化為SVM回歸問(wèn)題,其基本思想是通過(guò)一個(gè)非線性映射φ,將數(shù)據(jù)x映射到高維特征空間D,并在這個(gè)空間進(jìn)行線性回歸。如下式(8)所示[10-11]。
式中:b—閾值;ω—權(quán)向量。采用ε不敏感損失函數(shù),對(duì)應(yīng)的支持向量機(jī)采用ε-支持向量機(jī),通過(guò)對(duì)其約束優(yōu)化問(wèn)題,引入拉格朗日函數(shù),轉(zhuǎn)化為對(duì)偶問(wèn)題并進(jìn)行求解,可得對(duì)應(yīng)的SVM回歸模型:
其中徑向基函數(shù):
式中:σ2—核密度參數(shù);αi,(i=1,2,…l)—拉格朗日乘子;αi只有一小部分不為0,對(duì)應(yīng)的樣本就是支持向量(Support Vector,SV);nsv—支持向量的個(gè)數(shù);K(xi,xj)—核函數(shù)。
為了估計(jì)預(yù)算出樣本點(diǎn)對(duì)應(yīng)的在相機(jī)坐標(biāo)系下的三維坐標(biāo),就需要求得SVM回歸目標(biāo)函數(shù),即上面的式(9),最關(guān)鍵的在于C,ε,σ2三個(gè)參數(shù)的確定,這里采用k折交叉驗(yàn)證法與粒子群(PSO)算法結(jié)合的方式,進(jìn)行參數(shù)尋優(yōu)。
將一個(gè)樣本點(diǎn)的圖像坐標(biāo)(u,v),絕對(duì)相位θ三個(gè)特征量作為一個(gè)輸入向量,將所有數(shù)據(jù)分成訓(xùn)練集和測(cè)試集兩部分,用訓(xùn)練集進(jìn)行模型訓(xùn)練,得到的模型再用測(cè)試集來(lái)衡量模型的預(yù)測(cè)表現(xiàn)能力。以徑向基函數(shù)為核函數(shù),k折交叉驗(yàn)證誤差作為SVM參數(shù)選擇的目標(biāo)值,在D維解空間內(nèi)隨機(jī)初始化隨機(jī)粒子{C,ε,σ2},這些粒子在D維解空間內(nèi)以某種規(guī)律移動(dòng),經(jīng)過(guò)若干次迭代后找到最優(yōu)解。在每一次迭代中,粒子通過(guò)跟蹤兩個(gè)“極值”來(lái)更新自己。第一個(gè)是粒子本身的最優(yōu)解Pid。另一個(gè)極值是整個(gè)粒子群目前找到的最優(yōu)解Pgd。找到這兩個(gè)極值后,每個(gè)粒子根據(jù)式(12)、式(13)更新自己的飛行速度和位置。
式中:i=1,2,…,m,m—粒子種群大??;d=1,2,…,D,D—空間維度為D維,即自變量的個(gè)數(shù);ω—權(quán)重因子;c1,c2—學(xué)習(xí)因子,為非負(fù)常數(shù);r1和r2是[0,1]之間的隨機(jī)數(shù)[12]。
由以上步驟主要參考林智仁教授、李洋老師等編寫(xiě)好的SVM工具箱,對(duì)相關(guān)函數(shù)和MATLAB程序進(jìn)行了適當(dāng)?shù)淖冃魏透倪M(jìn),得到更精確的模型參數(shù),使得SVM回歸預(yù)測(cè)模型具有估計(jì)無(wú)偏性,可以有效避免過(guò)擬合,更穩(wěn)定和精度更高。
實(shí)際應(yīng)用中,對(duì)毛坯工件的定位精度要求達(dá)到0.3mm。根據(jù)上述理論方法,需要通過(guò)實(shí)驗(yàn)驗(yàn)證方法的精度是否符合工程需求。故進(jìn)行以下實(shí)驗(yàn)的步驟。實(shí)驗(yàn)中用來(lái)標(biāo)定的系統(tǒng)由巴斯勒相機(jī)、DLP投影儀、固定支架以及工作臺(tái)等組成。調(diào)節(jié)視角使兩者有公共視野,對(duì)著如下圖5所示的圓點(diǎn)標(biāo)定板進(jìn)行圖像采集。樣本數(shù)據(jù)采集過(guò)程如下:(1)計(jì)算絕對(duì)相位。如下圖5所示,對(duì)光柵圖像應(yīng)用八步法相移法,差分原理求解絕對(duì)相位。(2)單目相機(jī)標(biāo)定。通過(guò)對(duì)標(biāo)定板圖像分析,得到相機(jī)內(nèi)參和不同位置的外參。(3)對(duì)(1)(2)中得到的相位和坐標(biāo)結(jié)果進(jìn)行數(shù)據(jù)處理、存儲(chǔ)。將同一標(biāo)定點(diǎn)的相位值,圖像坐標(biāo)值,相機(jī)坐標(biāo)系下三維坐標(biāo)值對(duì)應(yīng)起來(lái),得到數(shù)據(jù)集(ui,vi,θ)i(xci,yci,zc)i。(4)在相機(jī)視野內(nèi),任意變換標(biāo)定板的空間位姿。重復(fù)(1)(2)(3)三個(gè)步驟,得到盡可能覆蓋整個(gè)測(cè)量空間的樣本數(shù)據(jù)。因?yàn)槊恳粋€(gè)標(biāo)定板上即可讀取49個(gè)樣本點(diǎn),為了提高標(biāo)定速度,同時(shí)保證標(biāo)定精度,選用5個(gè)標(biāo)定板上的樣本點(diǎn)即可。
圖5 標(biāo)定數(shù)據(jù)集采集步驟Fig.5 Acquisition Procedures of Calibration Data Set
利用上述樣本數(shù)據(jù)對(duì)上面的SVM回歸預(yù)測(cè)模型進(jìn)行訓(xùn)練,從而得到SVM標(biāo)定模型。取得空間中的目標(biāo)物表面的特征點(diǎn)50個(gè),讀取其相位值、圖像坐標(biāo)值,將其輸入標(biāo)定好的標(biāo)定模型中,可得如下SVM回歸模型預(yù)測(cè)結(jié)果顯示。三個(gè)坐標(biāo)軸的實(shí)際值(original)與回歸預(yù)測(cè)值(predict)對(duì)比情況,如圖6所示。
圖6 三坐標(biāo)軸實(shí)際值與回歸預(yù)測(cè)值對(duì)比折線圖Fig.6 Comparing the Actual Values of Three Coordinate Axes with the Predicted Values of Regression
三坐標(biāo)值的回歸預(yù)測(cè)計(jì)算值與實(shí)際的值對(duì)比,處理計(jì)算后可得三坐標(biāo)軸值誤差情況,如圖7所示。
圖7 三坐標(biāo)軸回歸預(yù)測(cè)誤差值折線圖Fig.7 Error Value of Three-Coordinate Axes Regression Prediction
分析數(shù)據(jù)時(shí)發(fā)現(xiàn),回歸預(yù)測(cè)數(shù)據(jù)與實(shí)際數(shù)據(jù)擬合情況良好。
回歸預(yù)測(cè)誤差的平均值A(chǔ)ME為:
回歸預(yù)測(cè)誤差的最大值MAXE為:
回歸預(yù)測(cè)誤差的均方誤差MSE為:
平方相關(guān)系數(shù)r2為:
式中:pi、p′i—三個(gè)坐標(biāo)軸回歸預(yù)測(cè)值、真實(shí)值;n—樣本個(gè)數(shù)。
空間任意一點(diǎn)預(yù)測(cè)坐標(biāo)偏離實(shí)際坐標(biāo)的距離d為:
式中:x、y、z—預(yù)測(cè)值;x′、y′、z′—真實(shí)值。
三個(gè)坐標(biāo)軸回歸預(yù)測(cè)的誤差值都取絕對(duì)值,將誤差值的平均值、最大值、均方誤差及平方相關(guān)系數(shù)都列出來(lái),如表1所示。
表1 三坐標(biāo)軸值誤差分析Tab1.Three-Coordinate Axis Error Analysis
由上表和式(16)、式(17)可得,三個(gè)軸的預(yù)測(cè)值的均方誤差很小,相關(guān)系數(shù)都達(dá)到0.9以上,說(shuō)明該標(biāo)定模型較穩(wěn)定?;貧w預(yù)測(cè)點(diǎn)位置與實(shí)際位置最大距離,即取三個(gè)坐標(biāo)軸值誤差代入公式,得到最大距離為0.32mm,而工程要求毛坯工件特征點(diǎn)空間定位精度需要達(dá)到0.3mm,并未達(dá)到要求精度。但是通過(guò)計(jì)算可得預(yù)測(cè)點(diǎn)與實(shí)際點(diǎn)平均距離為0.075mm,遠(yuǎn)遠(yuǎn)<0.3mm,達(dá)到了工程需求。分析最大距離偏差較大的原因,可能是未對(duì)光柵圖像進(jìn)行進(jìn)一步校正,引入了新的誤差,下一步可對(duì)其進(jìn)行深入分析。
通過(guò)對(duì)上述視覺(jué)系統(tǒng)建立模型,并使用改進(jìn)的粒子群算法,在MATLAB中,對(duì)采集到的數(shù)據(jù)集進(jìn)行相位—三維坐標(biāo)標(biāo)定,并通過(guò)對(duì)比分析實(shí)驗(yàn)數(shù)據(jù)結(jié)果,可得以下結(jié)論:(1)應(yīng)用SVM算法的相位—三維坐標(biāo)標(biāo)定方法是確實(shí)可行的,可以應(yīng)用于實(shí)際工程,在光柵投影輪廓術(shù)進(jìn)行三維重構(gòu)的過(guò)程中進(jìn)行精確的三維坐標(biāo)的計(jì)算,對(duì)項(xiàng)目提供理論上的支持。(2)在誤差允許范圍內(nèi),以上應(yīng)用SVM算法的相位—三位坐標(biāo)標(biāo)定模型精度工程要求。對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)一步預(yù)處理后,定位精度可達(dá)到0.3mm。(3)以上單目相機(jī)與投影儀組合使用的視覺(jué)系統(tǒng)具有一定的穩(wěn)定性,并可廣泛適用于多種應(yīng)用場(chǎng)景。