張峰峰,陳龍,薛保珊,閆曉劍,孫立寧
(1.蘇州大學(xué) 機(jī)電工程學(xué)院,江蘇 蘇州 215006;2.蘇州大學(xué) 蘇州納米科技協(xié)同創(chuàng)新中心,江蘇 蘇州 215123)
近年來(lái),雙目立體視覺(jué)在機(jī)械制造、定位、測(cè)距以及三維重建等領(lǐng)域有著越來(lái)越廣泛的應(yīng)用,相比于單目立體相機(jī),它能夠獲取更多目標(biāo)深度信息[1-3]。雙目立體視覺(jué)主要利用視差原理對(duì)從不同位置獲取的2幅圖像上的同名點(diǎn)之間的位置偏差進(jìn)行計(jì)算,從而獲得目標(biāo)物體的三維信息[4]。雙目相機(jī)的標(biāo)定是基于雙目立體視覺(jué)進(jìn)行三維重建、視覺(jué)檢測(cè)等研究的重要環(huán)節(jié),因此自動(dòng)、高精度的雙目相機(jī)標(biāo)定是實(shí)現(xiàn)高精度雙目視覺(jué)三維重建、定位等功能的重要前提[5-7]。
雙目相機(jī)的標(biāo)定決定了雙目立體視覺(jué)成像系統(tǒng)的內(nèi)、外部參數(shù),相比于單目立體相機(jī),其標(biāo)定過(guò)程比較繁瑣,對(duì)算法優(yōu)化和目標(biāo)變化的要求更高[8-9]。目前所存在的雙目相機(jī)標(biāo)定方法大多依賴于精確的成像數(shù)學(xué)模型,對(duì)成像過(guò)程中各種非線性畸變因素考慮較少。人工神經(jīng)網(wǎng)絡(luò)是人工智能領(lǐng)域近年來(lái)發(fā)展起來(lái)的一種新技術(shù),它具有很強(qiáng)的自適應(yīng)、自學(xué)習(xí)以及強(qiáng)大的非線性映射能力[10]。在雙目相機(jī)標(biāo)定過(guò)程中,相比于傳統(tǒng)的相機(jī)標(biāo)定方法,它無(wú)需確定相機(jī)的內(nèi)部和外部參數(shù),也無(wú)需了解相關(guān)的相機(jī)的成像模型,直接建立二維的相機(jī)像素坐標(biāo)與物體的三維真實(shí)世界坐標(biāo)的映射關(guān)系,并且將所有的非線性因素都包含在神經(jīng)網(wǎng)絡(luò)中,作為一種隱式標(biāo)定。在使用人工神經(jīng)網(wǎng)絡(luò)算法對(duì)雙目相機(jī)進(jìn)行標(biāo)定的研究中,使用BP神經(jīng)網(wǎng)絡(luò)算法較多,其在雙目相機(jī)標(biāo)定中的可行性已經(jīng)被崔等人證實(shí)[11]。但是其標(biāo)定精度和收斂速度在實(shí)際測(cè)試中并不令人滿意。劉金頌等[12]提出了一種基于Zernike矩和粒子群(partical swarm optimization,PSO)算法的攝像機(jī)神經(jīng)網(wǎng)絡(luò)標(biāo)定方法。該方法對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,主要通過(guò)PSO算法優(yōu)化BP網(wǎng)絡(luò)的初始權(quán)重和閾值,提高網(wǎng)絡(luò)的收斂速度和泛化能力。相比于普通的BP神經(jīng)網(wǎng)絡(luò)的雙目相機(jī)標(biāo)定其各方面能力都有了一定的改善,但是仍然不能滿足實(shí)際工程中的需求。目前,大多數(shù)研究在應(yīng)用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行雙目相機(jī)標(biāo)定主要面臨的問(wèn)題:左右相機(jī)圖像中同名點(diǎn)的誤匹配率高以及BP神經(jīng)網(wǎng)絡(luò)迭代時(shí)間較長(zhǎng)、精度低、收斂性差。
基于以上情況,本文提出了一種差分遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的雙目相機(jī)的標(biāo)定方法,克服了傳統(tǒng)相機(jī)標(biāo)定過(guò)程復(fù)雜、計(jì)算量大的問(wèn)題。從而能夠方便、靈活、高精度地對(duì)雙目相機(jī)進(jìn)行標(biāo)定。
棋盤格角點(diǎn)的檢測(cè)是雙目相機(jī)標(biāo)定的重要環(huán)節(jié)之一,角點(diǎn)檢測(cè)是為了獲取棋盤格角點(diǎn)的像素坐標(biāo),因此角點(diǎn)檢測(cè)的精度直接影響相機(jī)最終的標(biāo)定精度[13]。采用基于能量生長(zhǎng)算法的棋盤格角點(diǎn)檢測(cè)具有魯棒性好、角點(diǎn)提取精度高以及可以同時(shí)檢測(cè)一個(gè)圖片里包含多張棋盤等優(yōu)點(diǎn)[14]。
首先,通過(guò)定義2種角點(diǎn)原型,一種類似于棋盤格中正方形的4個(gè)角,另一種為在第1種的基礎(chǔ)之上,將正方形旋轉(zhuǎn)45°的角點(diǎn)。每個(gè)原型由4個(gè)濾波核組成,用于后面和圖像進(jìn)行卷積操作。然后,利用這2個(gè)角點(diǎn)原型來(lái)計(jì)算每個(gè)像素點(diǎn)與角點(diǎn)的相似程度。對(duì)每個(gè)像素點(diǎn)都進(jìn)行上述計(jì)算后,可以去掉大量的非棋盤格式的角點(diǎn),同時(shí)得到所有可能的角點(diǎn)。其次,對(duì)上述角點(diǎn)的位置以及邊緣方向進(jìn)行亞像素級(jí)精細(xì)化處理。最后,給定一個(gè)種子角點(diǎn),沿著其邊緣方向搜索產(chǎn)生一個(gè)初始化的種子棋盤格。該棋盤格有3×3個(gè)角點(diǎn),有2×2個(gè)棋盤。以此種子棋盤格為基礎(chǔ),分別從最外沿的4個(gè)邊緣去生長(zhǎng)棋盤格,生成4個(gè)新的棋盤格。如果其中能量最小的那個(gè)棋盤格的能量值比棋盤格擴(kuò)展前的能量更減少了,就說(shuō)明生長(zhǎng)成功,用這個(gè)新的棋盤格代替原來(lái)棋盤格,繼續(xù)生長(zhǎng),直到4個(gè)方向新棋盤格能量不再減少為止。
1.2.1 傳統(tǒng)方法的同名角點(diǎn)匹配
傳統(tǒng)的同名角點(diǎn)匹配主要在Opencv中通過(guò)Sift(scale invariant feature transform)、Surf(speeded up robust features)、Fast(features from accelerated segment test)等特征算子進(jìn)行特征點(diǎn)檢測(cè)[15-16],再使用BruteForceMatcher或者是FlannBasedMatcher進(jìn)行匹配。然后,經(jīng)過(guò)一系列的錯(cuò)誤匹配去除步驟獲取優(yōu)質(zhì)的匹配結(jié)果。由于本研究標(biāo)定塊的6個(gè)面為類似國(guó)際象棋的棋盤,該棋盤的圖案太過(guò)類似,從在同名角點(diǎn)匹配的時(shí)候,容易出現(xiàn)大量錯(cuò)誤的匹配。常用于針對(duì)Sift、Surf、Fast等匹配行之有效的錯(cuò)誤匹配點(diǎn)去除算法在這里效果較差。
1.2.2 基于光線掃描算法的同名角點(diǎn)匹配
根據(jù)光線投射算法的啟發(fā),本研究提出一種基于光線逐行掃描的同名角點(diǎn)匹配算法來(lái)克服棋盤格角點(diǎn)誤匹配率高的缺點(diǎn)?;诠饩€掃描的同名角點(diǎn)匹配算法的原理圖如圖1所示,其主要分為以下幾個(gè)步驟:
圖1 基于光線掃描算法的同名角點(diǎn)匹配原理
1)通過(guò)Opencv中最小外接矩形的方法,搜尋與左攝像機(jī)拍攝的棋盤格圖像的左上角最近的點(diǎn),同時(shí)搜尋與右攝像機(jī)拍攝的棋盤圖像的右上角最近的點(diǎn),以此獲取現(xiàn)有棋盤圖像角點(diǎn)集合的左上角與右上角的2個(gè)點(diǎn)P、Q。
2)把棋盤的角點(diǎn)從上到下從左到右地劃分,這樣其實(shí)就獲取了棋盤第1行的2個(gè)端點(diǎn)。將P、Q2點(diǎn)構(gòu)造1條射線,通過(guò)計(jì)算左上角點(diǎn)到右上角點(diǎn)的方向矢量,將其作為射線方向。
3)保持P點(diǎn)靜止,假設(shè)此時(shí)PQ距離為L(zhǎng)10,將Q點(diǎn)從右往左逐步步進(jìn),不斷計(jì)算PQ間的距離。當(dāng)發(fā)現(xiàn)點(diǎn)Q處于剩余棋盤角點(diǎn)點(diǎn)集中的某一棋盤點(diǎn)與當(dāng)前的P點(diǎn)處于的位置小于某個(gè)閾值(Lbest)時(shí),將該點(diǎn)列為PQ射線經(jīng)過(guò)的一個(gè)點(diǎn)。
4)把PQ射線經(jīng)過(guò)的點(diǎn)存放到新的向量n1里,同時(shí)將這個(gè)點(diǎn)從剩余棋盤角點(diǎn)點(diǎn)集中去除。此時(shí)P點(diǎn)右移到P1的位置,然后將Q點(diǎn)繼續(xù)從最右端角點(diǎn)開(kāi)始進(jìn)行下一次的步進(jìn)。
依次類推,直到達(dá)到該行應(yīng)該有的最大的同名角點(diǎn)匹配個(gè)數(shù),那么這一行的同名角點(diǎn)匹配完成。其余棋盤圖像各行同名角點(diǎn)匹配也是相同的步驟,只需要迭代棋盤的行數(shù),比如9×9的棋盤迭代9次,就可以完成最終的同名角點(diǎn)的匹配。
主要通過(guò)棋盤圖像角點(diǎn)的二維像素坐標(biāo)值作為BP神經(jīng)網(wǎng)絡(luò)的輸入。利用BP網(wǎng)絡(luò)自身固有的正向計(jì)算,反向優(yōu)化權(quán)值的特點(diǎn)來(lái)進(jìn)行棋盤圖像角點(diǎn)的三維世界坐標(biāo)的預(yù)測(cè)[21]。通過(guò)多組訓(xùn)練集對(duì)BP神經(jīng)網(wǎng)絡(luò)內(nèi)部的權(quán)值進(jìn)行不斷訓(xùn)練和改變,擬合并建立二維像素坐標(biāo)到三維世界坐標(biāo)之間的關(guān)系。具體基于BP神經(jīng)網(wǎng)絡(luò)進(jìn)行雙目相機(jī)標(biāo)定的結(jié)構(gòu)示意圖如圖2所示。
圖2 采用BP神經(jīng)網(wǎng)絡(luò)的雙目相機(jī)標(biāo)定原理
2.2.1 相機(jī)標(biāo)定的數(shù)據(jù)種群適應(yīng)性調(diào)節(jié)
傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)在進(jìn)行雙目相機(jī)標(biāo)定時(shí),容易陷入局部最優(yōu)值,同時(shí)標(biāo)定精度相對(duì)較低。引入差分算法后需要在前期開(kāi)始差分進(jìn)化的時(shí)候增強(qiáng)相機(jī)標(biāo)定數(shù)據(jù)種群的多樣性,在后期需要對(duì)最佳個(gè)體持續(xù)改善。因此,根據(jù)精英策略和適應(yīng)度值來(lái)動(dòng)態(tài)調(diào)節(jié)數(shù)據(jù)種群的規(guī)模對(duì)于雙目相機(jī)的標(biāo)定非常重要。根據(jù):
(1)
GAVAPS[17]提出的雙線性分配策略對(duì)大于種群設(shè)定的壽命的個(gè)體進(jìn)行刪除。式中:fmax和fa表示種群的最大和平均適應(yīng)度;Mmax和Mmin表示壽命的最大、小值。
在刪除部分個(gè)體的同時(shí)需要對(duì)數(shù)據(jù)種群多樣性減少進(jìn)行彌補(bǔ)。通過(guò)復(fù)制高適應(yīng)度值的個(gè)體來(lái)增加種群規(guī)模,根據(jù)公式
Cn=ψ×(Nmax-NC)
(2)
NC+1=NC-ND+Cn
(3)
可以得到此時(shí)的種群規(guī)模的變化。式中:Cn表示復(fù)制個(gè)體的數(shù)目;ψ為復(fù)制的概率;Nmax代表了種群的最大規(guī)模;NC和ND分別表示當(dāng)前種群規(guī)模和種群刪除的個(gè)體的數(shù)目。
2.2.2 選擇算子的改進(jìn)
選擇算子在雙目相機(jī)標(biāo)定的過(guò)程中起到重要的作用,主要以適應(yīng)度函數(shù)作為參考,從相機(jī)標(biāo)定的數(shù)據(jù)種群中挑選一些個(gè)體保留至下一代,剩下的個(gè)體全部淘汰,因此從相機(jī)標(biāo)定的數(shù)據(jù)種群中選擇的個(gè)體的好與壞將直接影響雙目相機(jī)標(biāo)定的后續(xù)操作。傳統(tǒng)的選擇算子在選擇過(guò)程中誤差較大,針對(duì)該問(wèn)題,本研究利用排序法對(duì)其改進(jìn)來(lái)減小選擇個(gè)體之間的誤差,第n個(gè)體在排序后被選擇的概率Pnew重新定義:
(4)
Pnew=b(1-q0)β-1
(5)
式中:a表示種群的數(shù)量;b代表將q0標(biāo)準(zhǔn)化;q0作為最優(yōu)個(gè)體被選擇的概率;β表示第n個(gè)個(gè)體在整個(gè)種群排序后的位置。
2.2.3 交叉算子的改進(jìn)
雙目相機(jī)標(biāo)定的數(shù)據(jù)種群的多樣性主要依賴交叉概率[18],同時(shí)遺傳算法的全局尋優(yōu)能力也受交叉概率的直接影響。在目前的研究中多數(shù)將其設(shè)定為一個(gè)常數(shù)值,在實(shí)際過(guò)程中最佳參數(shù)較難調(diào)節(jié)。本研究根據(jù)種群適應(yīng)度的分散程度不同,將種群的最大和平均適應(yīng)度即(fmax和fa)的關(guān)系定義為:
(6)
對(duì)交叉概率Qj的自適應(yīng)性進(jìn)行改進(jìn),x1表示自適應(yīng)性參數(shù)為:
(7)
2.2.4 差分變異算子
雙目相機(jī)標(biāo)定過(guò)程中能否避開(kāi)局部極值主要由遺傳算法的變異概率決定[19]。與傳統(tǒng)的遺傳算法的變異算子不同,差分變異算子在相機(jī)數(shù)據(jù)種群整體的差異基礎(chǔ)之上,種群個(gè)體之間的變異通過(guò)差分向量的形式對(duì)個(gè)體進(jìn)行擾動(dòng)來(lái)實(shí)現(xiàn)[20]。本研究對(duì)不同個(gè)體之間的向量差進(jìn)行計(jì)算,同時(shí)引入待變異個(gè)體向量,對(duì)向量差采用縮放的方法與其合并成新的個(gè)體。具體的縮放合并公式為:
G(n+1)=Pr1(n)+ξ×[Pr2(n)-Pr3(n)]
(8)
式中:ξ代表向量差的縮放值;Pr1(n)代表待變異的個(gè)體的向量;Pr2(n)-Pr3(n)代表個(gè)體之間向量差。在實(shí)際的計(jì)算過(guò)程中需要根據(jù)適應(yīng)度值的變化利用下式對(duì)ξ進(jìn)行自動(dòng)調(diào)節(jié):
(9)
式中:Pw代表最差適應(yīng)度值的向量;Pb代表最優(yōu)適應(yīng)度值的向量;χ表示適應(yīng)度值調(diào)節(jié)參數(shù)。當(dāng)適應(yīng)度值較低時(shí),此時(shí)需提高ξ值,以此來(lái)增加尋優(yōu)解的概率,反之,則降低ξ值。
雙目相機(jī)標(biāo)定的硬件平臺(tái)主要由圖3所示的顯示器、工作站、雙目相機(jī)、標(biāo)定塊等組成。標(biāo)定塊為立方體,其6個(gè)面均布滿相同數(shù)量的邊長(zhǎng)為1 cm的正方形。以圖中所示立方體3個(gè)底邊的角點(diǎn)作為原點(diǎn)O,并以3條棱作為X、Y、Z軸,便可以獲取每個(gè)小正方形的角點(diǎn)的實(shí)際的三維坐標(biāo)。
圖3 雙目相機(jī)標(biāo)定的硬件平臺(tái)
本文采用了基于能量生長(zhǎng)算法來(lái)完成棋盤二維像素圖像的角點(diǎn)檢測(cè),并且提出基于光線掃描算法來(lái)完成檢測(cè)后的角點(diǎn)的匹配。在此基礎(chǔ)上,本文利用雙目相機(jī)拍攝如圖4所示的圖片,將拍攝的棋盤圖像分成左、右相機(jī)圖像,并且每次拍攝10~20張圖片。利用本文提出的方法對(duì)分類好的左、右相機(jī)的圖像進(jìn)行角點(diǎn)檢測(cè)和匹配,通過(guò)實(shí)驗(yàn)獲得最終的效果如圖5所示。
圖4 雙目相機(jī)拍攝的標(biāo)定圖像
圖5 本研究方法的同名角點(diǎn)檢測(cè)與匹配
為了驗(yàn)證本文提出的角點(diǎn)檢測(cè)和匹配方法的穩(wěn)定性,繼續(xù)進(jìn)行5組上述的實(shí)驗(yàn),最終獲得的同名角點(diǎn)匹配的正確率如表1所示。
表1 同名角點(diǎn)檢測(cè)和匹配結(jié)果
結(jié)合圖5和表1可以很清晰地看出采用本文提出的方法具有很高的同名角點(diǎn)匹配的正確率。為了進(jìn)一步突出其在棋盤圖像上應(yīng)用的優(yōu)越性,本文將其與傳統(tǒng)的角點(diǎn)特征檢測(cè)和匹配算法進(jìn)行對(duì)比。例如分別采用Sift檢測(cè)算法+FlannBasedMatcher匹配方法和Surf檢測(cè)算法+FlannBasedMatcher匹配方法最終通過(guò)實(shí)驗(yàn)效果如圖6所示,同名角點(diǎn)匹配的平均成功率如表示。從圖6(a)中可以看出棋盤格對(duì)應(yīng)點(diǎn)可以實(shí)現(xiàn)完美匹配,但是棋盤格的角點(diǎn)檢測(cè)基本失效。從圖6(b)可以看出該方法可以順利實(shí)現(xiàn)棋盤格角點(diǎn)的檢測(cè),但是其同名角點(diǎn)出現(xiàn)多處匹配錯(cuò)誤的問(wèn)題。綜合表可以看出采用本文的方法同名角點(diǎn)匹配成功率分別提高了90%和70%左右。
圖6 基于傳統(tǒng)方法的同名角點(diǎn)檢測(cè)與匹配
表2 基于不同方法的同名角點(diǎn)檢測(cè)和匹配結(jié)果
3.3.1 不同方法的標(biāo)定精度對(duì)比實(shí)驗(yàn)
利用本文提出的差分遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行雙目相機(jī)的標(biāo)定,需要獲得一定量數(shù)據(jù)的同名角點(diǎn)的二維像素坐標(biāo)和對(duì)應(yīng)的該點(diǎn)的三維世界坐標(biāo)。將二維像素坐標(biāo)作為神經(jīng)網(wǎng)絡(luò)的輸入,三維世界坐標(biāo)作為神經(jīng)網(wǎng)絡(luò)的輸出。具體經(jīng)過(guò)采集獲得的部分的同名角點(diǎn)的像素坐標(biāo)和三維實(shí)際坐標(biāo)如表3所示。
表3 同名角點(diǎn)的像素坐標(biāo)和三維坐標(biāo)(部分?jǐn)?shù)據(jù))
將類似表中500組同樣的數(shù)據(jù)作為普通BP神經(jīng)網(wǎng)絡(luò)和本文提出的差分遺傳算法優(yōu)化后的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集。選取6組數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的測(cè)試集,通過(guò)實(shí)際的實(shí)驗(yàn)測(cè)試得出優(yōu)化前后的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)角點(diǎn)的三維世界坐標(biāo)的值分別如表4所示。
表4 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)角點(diǎn)的三維世界坐標(biāo)值
為了進(jìn)一步驗(yàn)證采用本文差分遺傳算法優(yōu)化后的神經(jīng)網(wǎng)絡(luò)來(lái)標(biāo)定雙目相機(jī)的精度,將其結(jié)果與采用Opencv的張正友標(biāo)定和Matlab自帶的雙目相機(jī)標(biāo)定工具箱標(biāo)定出來(lái)的結(jié)果進(jìn)行對(duì)比。利用基于Opencv的張正友標(biāo)定方法對(duì)雙目相機(jī)進(jìn)行標(biāo)定,需要大概10~20張雙目相機(jī)的拍攝的圖片。對(duì)拍攝的圖片進(jìn)行標(biāo)定操作,便可以獲得雙目相機(jī)的內(nèi)、外參數(shù)。在雙目相機(jī)的內(nèi)、外參數(shù)已知的情況下,便可以根據(jù)拍攝的棋盤的二維圖像的角點(diǎn)像素坐標(biāo)來(lái)計(jì)算出對(duì)應(yīng)的三維世界坐標(biāo)。與之相似的是,將拍攝的棋盤圖像導(dǎo)入Matlab,利用自帶的雙目相機(jī)標(biāo)定工具箱來(lái)標(biāo)定出雙目相機(jī)的內(nèi)、外參。在標(biāo)定出內(nèi)、外參后,同樣根據(jù)二維圖像的角點(diǎn)像素坐標(biāo)來(lái)計(jì)算出對(duì)應(yīng)的三維世界坐標(biāo)。
將神經(jīng)網(wǎng)絡(luò)標(biāo)定的6組測(cè)試集的二維像素坐標(biāo),作為基于Opencv和Matlab標(biāo)定的實(shí)驗(yàn)輸入數(shù)據(jù)。通過(guò)各自標(biāo)定出的雙目相機(jī)的內(nèi)、外參,分別計(jì)算出二者實(shí)際對(duì)應(yīng)的棋盤角點(diǎn)的三維世界坐標(biāo)。具體計(jì)算結(jié)果如表5所示。
表5 基于傳統(tǒng)方法的角點(diǎn)的三維世界坐標(biāo)值計(jì)算
3.3.2 標(biāo)定精度結(jié)果的分析
采用均方根誤差評(píng)判的方式對(duì)3種不同方式的標(biāo)定精度進(jìn)行評(píng)價(jià)。假設(shè)真實(shí)的角點(diǎn)的三維世界坐標(biāo)的值為(X,Y,Z),通過(guò)不同標(biāo)定方式計(jì)算獲得的三維世界坐標(biāo)值為(Xi,Yi,Zi)。其中i可取C、O、M分別代表3種不同的標(biāo)定方式下計(jì)算出的三維世界坐標(biāo)的實(shí)際的值。故此標(biāo)定精度的均方差計(jì)算公式設(shè)定為:
(10)
通過(guò)式(10)的計(jì)算,最終針對(duì)6組測(cè)試集采用3種不同標(biāo)定方法計(jì)算出的均方根的誤差如表6所示。
從表6中數(shù)據(jù)可以看出采用本文提出的方法的雙目相機(jī)的標(biāo)定誤差的平均均方根約為0.038 mm。采用基于Opencv和Matlab標(biāo)定的方法獲得的雙目相機(jī)標(biāo)定的平均均方根誤差分別為0.155 mm和0.417 mm。相比而言,其標(biāo)定精度分別提高了75%和90%。從圖7中也能清晰看出3種不同方法的標(biāo)定誤差的均方根的變化,采用本文提出的方法的標(biāo)定的精度和穩(wěn)定性相對(duì)較好。
表6 不同方法標(biāo)定的誤差的均方根
圖7 基于不同方法的標(biāo)定誤差均方根變化
進(jìn)一步從每個(gè)三維坐標(biāo)的X、Y、Z軸的誤差分別進(jìn)行分析,如圖所示。從圖8中可以看出采用本文提出的方法在X、Y、Z3個(gè)方向的誤差均比較小,而且整體的穩(wěn)定性相對(duì)較高。通過(guò)3種不同的方法最終計(jì)算出的三維世界坐標(biāo)的各個(gè)方向的誤差分布圖,更加清晰證明本文提出的方法的有效性和穩(wěn)定性。
圖8 基于不同方法的角點(diǎn)的三坐標(biāo)標(biāo)定誤差分析
3.3.3 不同方法的標(biāo)定速度對(duì)比實(shí)驗(yàn)
針對(duì)上述3種不同方法進(jìn)行雙目相機(jī)標(biāo)定時(shí)的速度進(jìn)行測(cè)試。按照相同的環(huán)境同樣的硬件條件下進(jìn)行5組實(shí)驗(yàn)測(cè)試,最終標(biāo)定花費(fèi)的計(jì)算時(shí)間如表7所示。
從表7中的數(shù)據(jù)可以看出采用本文方法進(jìn)行雙目相機(jī)標(biāo)定時(shí)需要的平均時(shí)間為26.3 s,采用Opencv和Matlab標(biāo)定時(shí)所需要的平均時(shí)間分別為5.8 s和6.6 s。相比而言采用本文提出的方法所需要花費(fèi)的時(shí)間較長(zhǎng),主要因?yàn)樾枰M(jìn)行大量的訓(xùn)練集進(jìn)行訓(xùn)練。在訓(xùn)練的過(guò)程中不斷調(diào)整神經(jīng)網(wǎng)絡(luò)的權(quán)重值,使其標(biāo)定的精度不斷提高。
1)本文提出的基于差分遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行雙目相機(jī)標(biāo)定的方法最終獲得的標(biāo)定誤差的均方根為0.038 mm。
2)與傳統(tǒng)的基于Opencv和Matlab的方法相比,不僅簡(jiǎn)化了標(biāo)定的流程,降低了計(jì)算的復(fù)雜度,同時(shí)還提高了標(biāo)定的精度。從實(shí)際的實(shí)驗(yàn)結(jié)果進(jìn)行分析,完全符合雙目相機(jī)標(biāo)定的精度需求。
在實(shí)際的應(yīng)用過(guò)程中,由于神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要大量的數(shù)據(jù)集,因此在數(shù)據(jù)集的采集和訓(xùn)練所花費(fèi)的時(shí)間相對(duì)較多。然而一旦神經(jīng)網(wǎng)絡(luò)達(dá)到訓(xùn)練設(shè)定的要求,后續(xù)的標(biāo)定速度將會(huì)非??臁S诖送瑫r(shí)基于本文提出的方法標(biāo)定的精度受數(shù)據(jù)集量的大小的影響,由于實(shí)驗(yàn)條件的限制選取了一部分實(shí)驗(yàn)數(shù)據(jù),因此其實(shí)際的標(biāo)定精度可以進(jìn)一步的提高。