樊海風 王見
摘 ? 要:測量精度在平行雙目視覺系統(tǒng)的應用中非常重要.為了提高測量系統(tǒng)的精度,提出了基于改進的BP神經網(wǎng)絡的誤差補償策略。采用不同位置處的測量數(shù)據(jù)作為學習樣本,利用訓練好的網(wǎng)絡模型預測測量系統(tǒng)的誤差,對測量結果進行誤差補償,得到新的數(shù)據(jù)作為測量值。實驗結果表明,該方法的結果值相較原始數(shù)據(jù),誤差減少了70%,為提高視覺系統(tǒng)的定位精度提供了一種新的思路。
關鍵詞:雙目視覺;誤差補償;BP神經網(wǎng)絡;預測;誤差分析
中圖法分類號:TP391 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A
Positioning Error Compensation for Parallel Binocular Vision Systems
FAN Hai-feng?覮,WANG Jian
(State Key Laboratory of Transmission,Chongqing University,Chongqing 400044,China)
Abstract: Measurement accuracy is very important in the application of parallel binocular vision systems. In order to improve the accuracy of the measurement system,a measurement error compensation strategy based on an improved BP neural network was proposed. The measurement data at different locations are used as learning samples. The trained network model is used to predict the error of the measurement system. Errors are compensated for the measurement results and new data are obtained as the measurement values. The experimental results show that compared with the original data,the error of this method is reduced by 70%,which provides a new idea for improving the positioning accuracy of the visual system.
Key words: binocular vision;error compensation;BP neural network;prediction;error analysis
雙目立體視覺是計算機視覺研究領域最活躍的分支之一,它由兩個攝像頭組成,從不同角度對同一物體進行拍攝,然后根據(jù)所得圖像重建物體的三維位置。其廣泛應用于機器人導航,工業(yè)測量,醫(yī)學圖像分析等領域[1],因此視覺系統(tǒng)的定位精度研究有著非常重要的意義。
目前,關于雙目視覺系統(tǒng)定位精度的研究很多。文獻[2]系統(tǒng)地分析了相機標定參數(shù)對于雙目立體視覺系統(tǒng)精度的影響,并通過仿真系統(tǒng)探討了失真參數(shù)誤差和相機內外參數(shù)誤差對系統(tǒng)重建精度的影響。文獻[3-6]系統(tǒng)的分析了結構參數(shù)對測量精度的影響,并給出在不同結構參數(shù)下的仿真結果,從中得到誤差較小時結構參數(shù)的最佳范圍,對雙目視覺系統(tǒng)的設計起到指導性作用。文獻[7]引入互信息理論并結合多分辨率技術實現(xiàn)亞像素級點匹配,將視差精度提高到0.01像素。
但這些研究大多為分析雙目視覺系統(tǒng)測量誤差的影響因素,鮮有測量誤差補償方面的研究。文獻[8]在雙目視覺系統(tǒng)標定后,分析深度誤差和視場方向以及距離之間的關系,獲得校正的誤差曲線,對測量結果進行補償,提高測量精度。文獻[9-10]建立了雙經緯儀的測量誤差模型,并通過仿真實驗證明將有優(yōu)化權重的神經網(wǎng)絡應用于誤差補償上的可行性。
首先分析了雙目立體視覺系統(tǒng)定位精度的影響因素,提出用神經網(wǎng)絡學習的方法預測視覺系統(tǒng)的測量誤差,對測量結果進行補償,實驗表明,補償后的測量結果的精度得到了明顯提高。
1 ? 平行雙目視覺系統(tǒng)的誤差分析
1.1 ? 平行雙目視覺系統(tǒng)的測量模型
雙目立體視覺是基于視差原理,由多幅圖像獲取目標物的三維位置信息的方法。圖1為平行雙目立體視覺系統(tǒng)的測量原理圖。由三角幾何關系得到:
令視差d = (xl - xr),根據(jù)平行雙目視覺系統(tǒng)測量模型可計算出P在雙目視覺系統(tǒng)坐標系下的坐標(Xc,Yc,Zc)為:
其中B為相機的中心距。因此,只要左圖像上的任意一點只要能在右圖像上找到對應的匹配點,就可以計算出該點的三維坐標。
1.2 ? 平行雙目視覺系統(tǒng)的誤差分析
在實際應用中,對平行雙目視覺系統(tǒng)測量精度有較大影響的主要是相機標定及立體匹配等方面[11]。
1.2.1 ? 相機標定及誤差分析
相機標定,是指建立相機的幾何成像模型,描述了空間坐標系中的特征點同它在圖像坐標系上的像點之間的幾何關系,在計算機領域中,相機模型一般都采用針孔模型,如圖2所示
相機標定的目的就是得到內參數(shù)矩陣及畸變向量,但在實際標定過程中,由于標定板本身的精度以及人為操作的原因,使建立的幾何成像模型與實際相機模型有一定偏差,屬于系統(tǒng)誤差,一旦標定完成,這個偏差就是確定的,我們可以通過學習樣本訓練出一個確定的非線性模型來表示這種偏差關系。
1.2.2 ? 量化誤差及匹配誤差分析
在平行雙目視覺系統(tǒng)中,立體匹配是非常關鍵的一步,它對測量精度有著很大的影響,匹配過程中的誤差主要來源于匹配算法與量化誤差。量化誤差是由于相機在采集圖像時,需要將模擬信號轉換為數(shù)字信號,在這個過程中就會產生量化誤差。而不同的匹配算法各自的精度不一樣,在匹配過程中,誤差還與目標點的局部信息有關,假設立體匹配產生的誤差為Δδ,那么目標的深度誤差為:
2 ? BP神經網(wǎng)絡算法
2.1 ? BP神經網(wǎng)絡預測測量誤差的可行性
由上述對平行雙目視覺系統(tǒng)測量誤差的分析可知,其主要影響因素有標定誤差以及匹配誤差。在相機標定過程中,幾何成像模型與實際模型的偏差是固定值,屬于系統(tǒng)誤差,而匹配過程中產生的誤差屬于隨機誤差,無法準確預測,但是在匹配算法合理的情況下,這個誤差值在一個可接受的范圍內波動。因此,視覺系統(tǒng)的測量誤差模型如圖3所示。
從圖3可以看出,如果把空間點測量值作為輸入,測量誤差作為輸出,那么它們之間的關系可以用一個非線性模型表示,而BP神經網(wǎng)絡可以逼近任意的非線性映射關系,具有全局逼近的特性以及較好的泛化能力,因此選用BP神經網(wǎng)絡建立測量誤差的預測模型。
3.2 ? BP神經網(wǎng)絡算法的改進
BP神經網(wǎng)絡的學習規(guī)則是使用最速下降法,通過反向傳播來不斷調整網(wǎng)絡的權值和閾值,使網(wǎng)絡的誤差平方和最小。其流程圖如圖4所示。
但是標準的最速下降法在實際應用中往往有收斂速度慢和容易陷入局部極小值的缺點。針對標準BP算法的不足,本文采用動量BP算法和自適應學習速率法來解決這些問題。
動量BP法是在標準BP算法的權值更新階段引入動量因子α(0<α<1),使權值修正值具有一定慣性:
式中,η為學習速率,n為當前訓練次數(shù),α為動量因子。權值的更新方向與幅度不但與本次計算所得的梯度有關,還與上一次更新的方向與幅度有關,使權值的更新具有了一定的抗震蕩能力和加快收斂的能力。
自適應學習速率法是通過觀察誤差的增減來判斷的。當誤差以減小的方式趨于目標時,說明修正方向是正確的,可以增加學習率;當誤差增加超過一定范圍時,說明前一步修正進行得不正確,應減小步長,并撤銷前一步修正過程。學習率的增減通過乘以一個增量/減量因子實現(xiàn):
η(n + 1)=1.05η(n) e(n+1) < e(n)0.7η(n) ? e(n+1) > 1.03e(n)η(n) ? ? ? ?e(n) < e(n+1) < 1.03e(n) ?(5)
3 ? ?平行雙目視覺系統(tǒng)測量誤差的神經網(wǎng)絡
模型
3.1 ? BP神經網(wǎng)絡結構設計
在前述分析的基礎上,本文利用3層神經網(wǎng)絡來建立平行雙目視覺測量系統(tǒng)的誤差預測模型,選取特征點在測量系統(tǒng)下的三維坐標作為預測模型的輸入,其在三個方向上的誤差值作為輸出,因此輸入輸出層的節(jié)點數(shù)都為3,隱含層神經元節(jié)點數(shù)取為5,平行雙目視覺系統(tǒng)誤差預測的神經網(wǎng)絡結構如圖5所示。
4.2 ? 學習樣本數(shù)據(jù)
選用Zed攝像頭作為平行雙目視覺系統(tǒng)的測量工具,測量不同位置處棋盤角點的空間坐標,如圖6所示。
目標點在Zed相機中的三維坐標作為網(wǎng)絡模型的輸入,對應的測量誤差作為輸出。本次實驗將采集得到的500次試驗結果建立學習樣本,其中最后160次試驗數(shù)據(jù)作為檢驗樣本不參加學習。部分試驗數(shù)據(jù)如表1所示.
3.3 ? 學習樣本訓練
選用改進的BP神經網(wǎng)絡算法對學習樣本進行網(wǎng)絡訓練,預測模型的實現(xiàn)過程如下:
將學習樣本數(shù)據(jù)歸一化后輸入網(wǎng)絡,設定網(wǎng)絡隱含層和輸出層的激勵函數(shù)都為tansig函數(shù),訓練最大迭代次數(shù)為10000次,期望誤差為0.001,學習速率為0.01,動量系數(shù)為0.9。選取樣本數(shù)據(jù)中1~340號作為學習樣本進行網(wǎng)絡訓練,341~500號數(shù)據(jù)用于驗證網(wǎng)絡模型預測結果的正確性。
采用批訓練,經過8936次學習建立神經網(wǎng)絡模型,預測特征點在測量系統(tǒng)中的測量誤差,對測量結果進行補償,得到一個新的結果作測量數(shù)據(jù)。圖7顯示了學習樣本中原始數(shù)據(jù)與補償后測量結果的誤差的對比。
從圖7可以看出,在Y方向上,原始誤差很明顯隨著特征點的位置區(qū)域發(fā)生變化,包含了系統(tǒng)誤差以及隨機誤差,與我們對雙目視覺系統(tǒng)的誤差分析相吻合。經過誤差補償后,X和Y方向上的測量誤差都在2 mm內,Z方向上的測量誤差也基本在5 mm內,這說明,針對視覺系統(tǒng)的測量誤差預測模型很好的表達了原始測量值與測量誤差之間的非線性模型。
3.4 ? 結果分析
為了驗證BP神經網(wǎng)絡模型預測測量誤差的可行性,我們將驗證數(shù)據(jù)作為樣本,進行誤差預測,并補償原始測量值,作為最終測量結果,圖8顯示了原始測量值與補償后測量結果的誤差對比。
從圖8可以看出,數(shù)據(jù)樣本的測量結果經過補償后其精度得到了很大提高,X與Y方向上的誤差在2 mm以內,Z方向上的誤差也在5 mm范圍內,并且整個測量數(shù)據(jù)的誤差波動也呈現(xiàn)下降趨勢。表2顯示了原始數(shù)據(jù)與補償后數(shù)據(jù)的誤差統(tǒng)計結果,可以發(fā)現(xiàn),經過補償后,測量結果在三個方向上的誤差都減少了70%左右,X和Y方向上的平均誤差更是在1 mm內,表示誤差波動的均方差也縮小了一半,實驗結果表明,基于BP神經網(wǎng)絡的誤差補償思想在提高視覺系統(tǒng)測量精度上是可行的。