孫雷
(宿遷學(xué)院 江蘇省宿遷市 223800)
隨著機(jī)器覺(jué)技術(shù)的不斷發(fā)展和進(jìn)步,其在社會(huì)生活的各個(gè)領(lǐng)域發(fā)揮越來(lái)越重要作用。通過(guò)視覺(jué)的檢測(cè)和識(shí)別功能,讓許多流水線上具有高度重復(fù)性的檢測(cè)工作都通過(guò)機(jī)器來(lái)完成,大大提高了生產(chǎn)效率、精度和自動(dòng)化程度。常用機(jī)器視覺(jué)來(lái)代替人眼視覺(jué),實(shí)現(xiàn)在一些危險(xiǎn)工作環(huán)境下或者人眼視覺(jué)難以滿足要求的場(chǎng)合下工作。除了工業(yè)上的應(yīng)用,機(jī)器視覺(jué)技術(shù)在智能車方面也有廣泛的應(yīng)用。如美國(guó)密歇根大學(xué)的MOSFET系統(tǒng)智能車系統(tǒng),意大利Parma大學(xué)ARGO智能系統(tǒng);國(guó)防科技大學(xué)的CITAVT-IV等。智能車輛在行駛時(shí)需要實(shí)時(shí)地去感知自身和周圍環(huán)境變化,包括檢測(cè)車輛運(yùn)行位置、姿態(tài)和車輛周圍環(huán)境等等。目前市面上的測(cè)量方法有超聲波測(cè)距、單目攝像頭測(cè)距、雙目攝像頭測(cè)距這三大類。雖然超聲波測(cè)距是最為簡(jiǎn)單一種,但測(cè)量范圍非常有限,且所受環(huán)境影響程度較大,所以一般選擇單目或雙目測(cè)距法。單目測(cè)距雖然簡(jiǎn)單卻誤差較大,雙目測(cè)距雖然復(fù)雜卻精度較高。本課題主要研究如何獲取場(chǎng)景中物體的深度信息,并且確保測(cè)量結(jié)果準(zhǔn)確。因此本文主要研究雙目視覺(jué)的測(cè)量原理、相機(jī)的標(biāo)定、空間點(diǎn)的獲取及空間距離的測(cè)量。
根據(jù)人眼仿生學(xué)原理可知,目標(biāo)物體在人的左右眼所成呈現(xiàn)的結(jié)果是具有視差效果的,然后大腦經(jīng)過(guò)加權(quán)處理等轉(zhuǎn)化得到物體信息。雙目視差測(cè)距通過(guò)平行放置的兩臺(tái)攝像機(jī)代替人的眼睛,從左右兩個(gè)角度對(duì)被測(cè)物體采集圖片;利用計(jì)算機(jī)代替人腦對(duì)所拍攝的圖片進(jìn)行處理。然后將獲取到圖片結(jié)合三角測(cè)量原理計(jì)算出物體距離,即可獲取空間物體三維坐標(biāo)信息或者深度值。
圖1為雙目視差測(cè)距示意圖。P(Xw,Yw,Zw)為空間中的一個(gè)特征點(diǎn),點(diǎn)P在雙目攝像機(jī)成像平面投影點(diǎn)分別為P和P。如何根據(jù)被測(cè)物體的特征點(diǎn)P的投影坐標(biāo)來(lái)求解被測(cè)物體特征點(diǎn)P的Zw的坐標(biāo)值是測(cè)量需要解決的問(wèn)題。
圖1:雙目視覺(jué)測(cè)量示意圖
由于光是沿著直線傳播,空間特征點(diǎn)P可視為兩個(gè)相機(jī)的投影中心點(diǎn)與成像點(diǎn)連線的交點(diǎn)。該俯視圖(有效焦距f,基線間距為b)中平行的兩個(gè)面為成像平面,平面上y軸坐標(biāo)必然相同,只是x軸的坐標(biāo)值不同, P 在左相機(jī)的投影點(diǎn)坐標(biāo)為 XL,右相機(jī)的投影點(diǎn)坐標(biāo)為XR,如圖2所示。
圖2:雙目視差幾何模型
線段x和x分別是左相機(jī)投影點(diǎn)到左成像面的距離、右相機(jī)投影點(diǎn)到右成像面的距離,則點(diǎn) P的攝像機(jī)視差值按定義如下:
即兩個(gè)成像點(diǎn)P和P之間的距離(視差)為:
再根據(jù)相似三角形理論可以得出:
則可以得到點(diǎn)P到投影中心平面的距離z:
式中:f為攝像機(jī)焦距
b為基線距
d為P的視差值
攝像機(jī)標(biāo)定過(guò)程就是確定攝像機(jī)的幾何和光學(xué)參數(shù)。經(jīng)典的小孔成像模型是一種理想條件下的線性成像模型。但實(shí)際由于鏡頭的畸變的存在,無(wú)法準(zhǔn)確表述拍攝圖像中的幾何關(guān)系。攝像機(jī)非線性模型考慮了圖像畸變的影響,將圖像畸產(chǎn)生的像素誤差降到最小。
鏡頭畸變根據(jù)畸變方向主要分為徑向畸變和切向畸變。徑向畸變定義為沿著透鏡的半徑方向,產(chǎn)生圖像的畸變。其產(chǎn)生的原因是主要光線遠(yuǎn)離透鏡中心的地方相比透鏡中心的地方更加彎曲。因此畸變的數(shù)學(xué)模型可以用圖像中心的泰勒級(jí)數(shù)展開式的前幾項(xiàng)進(jìn)行描述,徑向畸變的計(jì)算公式為:
式中:k、k、k為徑向畸變系數(shù),通常使用前兩項(xiàng),即k1和k2即可。如果攝像機(jī)鏡頭為魚眼鏡頭需要考慮k3帶來(lái)的影響;(?,?)為坐標(biāo)點(diǎn)在成像平面上的原始位置;(x,y)是坐標(biāo)點(diǎn)受到畸變后新的位置。切向畸變是由于透鏡本身與攝像機(jī)傳感器平面或與圖像成像平面不平行而導(dǎo)致的。計(jì)算公式為:
式中:p1、p2為畸變模型參數(shù)
傳統(tǒng)標(biāo)定法的標(biāo)定板是三維立體。雖然精度非常高,實(shí)現(xiàn)起來(lái)卻比較困難。而張正友教授提出的方法介于傳統(tǒng)標(biāo)定法和自標(biāo)定法之間,克服了傳統(tǒng)標(biāo)定法需要高精度標(biāo)定物的缺點(diǎn)。張正友相機(jī)標(biāo)定法是張正友教授1998年提出的單平面棋盤格的相機(jī)標(biāo)定方法。標(biāo)定過(guò)程僅需使用一個(gè)黑白棋盤格就可以。該方法與自標(biāo)定相比,提高了精度且便于操作,被廣泛應(yīng)用于攝像機(jī)參數(shù)標(biāo)定實(shí)驗(yàn)。
克里斯?哈里斯和邁克?斯蒂芬斯在他們的論文《一種結(jié)合了角和邊緣的探測(cè)器》中試圖找到一些特殊的點(diǎn),并把這個(gè)簡(jiǎn)單的想法轉(zhuǎn)化為數(shù)學(xué)表達(dá)。其檢測(cè)算法數(shù)學(xué)思想為:使用一個(gè)固定窗口在圖像上進(jìn)行任意方向上的滑動(dòng),比較滑動(dòng)前與滑動(dòng)后兩種情況下,窗口中的像素灰度變化程度。如果存在任意方向上的滑動(dòng),都有著較大灰度變化,那么我們可以認(rèn)為該窗口中存在角點(diǎn)。
根據(jù)該算法思路去檢測(cè)圖像像素的灰度變化情況,即求解:
式中:I(x+u,y+v)表示像素(x,y)周圍像素的亮度值。I(x,y)表示像素(x,y)的亮度值。對(duì)于上式,我們希望找到使E的值盡量大的點(diǎn),則將上式右邊I(x+u,y+v)泰勒展開并省略高次項(xiàng)可得:
最終將式子轉(zhuǎn)化為:
其中w是以(x,y)為中心點(diǎn)窗函數(shù), M為得到海森矩陣:
雖然根據(jù)二次函數(shù)特征值的計(jì)算方法可以求得特征值。但Harris的角點(diǎn)計(jì)算方法并不需要計(jì)算具體的特征值,而是計(jì)算一個(gè)角點(diǎn)響應(yīng)值R來(lái)判斷角點(diǎn)。角點(diǎn)響應(yīng)函數(shù)R為:
其中,det(M)=λ×λ為矩陣的跡,trace(M)=λ+λ為矩陣的跡,k為經(jīng)驗(yàn)常數(shù),k的值越小,能檢測(cè)到的特征點(diǎn)越多。
攝像機(jī)部分包括雙目攝像頭和支承部分。三角架保證了相機(jī)的平穩(wěn),利用自制的人工十字標(biāo)定板實(shí)現(xiàn)角點(diǎn)提取效果,通過(guò)改變被測(cè)物平面與像機(jī)平面位置關(guān)系,驗(yàn)證不同距離的測(cè)量結(jié)果。圖3為本實(shí)驗(yàn)選用雙目像機(jī),型號(hào)為HBV-1780-2 S2.0。技術(shù)參數(shù)為:基線距離60mm,100萬(wàn)像素,像元尺寸3μm×3μm,鏡頭尺寸1/4英寸。該像機(jī)系統(tǒng)自帶驅(qū)動(dòng),通過(guò)usb數(shù)據(jù)線與window10電腦相連接,即可實(shí)現(xiàn)圖片采集。
圖3:雙目系統(tǒng)
將雙目攝像頭連接到計(jì)算機(jī)上,利用雙目攝像頭對(duì)不同位姿與不同方向的棋盤格進(jìn)行采集。利用MATLAB標(biāo)定工具箱對(duì)攝像頭進(jìn)行標(biāo)定。本實(shí)驗(yàn)總共采集40張照片,其中左相機(jī)為20張,右相機(jī)20張。表1為標(biāo)定結(jié)果。
表1:雙目攝像機(jī)參標(biāo)定結(jié)果參數(shù)表
RotationOfCamera2是相機(jī)2相對(duì)于相機(jī)1的旋轉(zhuǎn)矩陣,為相機(jī)像機(jī)外部參數(shù)旋轉(zhuǎn)矩陣R。TranslationOfCamera2是相機(jī)2相對(duì)于1的平移矩陣,像機(jī)外部參數(shù)平移矩陣T。k1、k2、k3為徑向畸變系數(shù),P1、P2切向畸變系數(shù)。u0、v0 為圖像主點(diǎn)。焦距fx、fy分別為左右攝像機(jī)的焦距,并且可以通過(guò)像元大小計(jì)算出有效焦距f。
為了測(cè)出空間靶標(biāo)的距離,按照順時(shí)針?lè)较驅(qū)κ职兴膫€(gè)點(diǎn)標(biāo)號(hào)。對(duì)原始圖片進(jìn)行校正后,并運(yùn)用harris角點(diǎn)方法提取得到十字中心的四個(gè)點(diǎn)坐標(biāo)。下圖為校正后圖片角點(diǎn)的提取結(jié)果。對(duì)這四個(gè)角點(diǎn)做平均獲得最終的視差值。
深度信息z的計(jì)算需要基線距b、相機(jī)焦距f和視差值d三個(gè)參數(shù)。其中雙目攝像機(jī)基線b為60mm,視差值d可通過(guò)圖像特征點(diǎn)提取到的像素坐標(biāo)獲取,像機(jī)焦距f可以由標(biāo)定實(shí)驗(yàn)獲取。為驗(yàn)證測(cè)距效果,本研究對(duì)靶標(biāo)在50mm-250mm不同距離進(jìn)行測(cè)量實(shí)驗(yàn),測(cè)量結(jié)果如表2所示。圖4是深度為75mm時(shí)候角點(diǎn)提取的圖片及視差計(jì)算表格。表3為不同距離時(shí)誤差計(jì)算結(jié)果。
圖4:左右相機(jī)校正后角點(diǎn)特征
表2:深度距離為7.5cm
表3:距離測(cè)量結(jié)果
通過(guò)以上實(shí)驗(yàn)結(jié)果可知,隨著測(cè)量距離的增大誤差增大。引起誤差的主要因素是攝像機(jī)的標(biāo)定精度及未考慮雙目校正問(wèn)題。在標(biāo)定過(guò)程中,由于標(biāo)定參數(shù)計(jì)算是通過(guò)標(biāo)定圖的一些物理參數(shù)來(lái)獲取各項(xiàng)未知量的系數(shù),進(jìn)而通過(guò)牛頓-迭代法進(jìn)行方程的求解,所以標(biāo)定圖的精度會(huì)直接影響到圖像處理算法的效果。作為初步實(shí)驗(yàn),本文的標(biāo)定圖為手工繪制打印,標(biāo)定板存在一定的誤差。其次在對(duì)標(biāo)定板進(jìn)行雙目攝像機(jī)標(biāo)定時(shí),要將標(biāo)定板放在攝像機(jī)的視場(chǎng)角范圍之內(nèi),并調(diào)節(jié)好鏡頭的焦距和光圈,能夠獲得成像清晰的標(biāo)定圖;拍攝時(shí)手持標(biāo)定板應(yīng)處于靜止?fàn)顟B(tài)或是小幅度的晃動(dòng),以減少由于相機(jī)的曝光時(shí)間引起的運(yùn)動(dòng)模糊。還有為了獲取不同迭代條件,應(yīng)該讓標(biāo)定板盡可能在視場(chǎng)角內(nèi)不同位置進(jìn)行拍攝,在深度方向上給予一定的位移或者將標(biāo)定板旋轉(zhuǎn)一定角度。最后雙目相機(jī)光軸并非完全平行,導(dǎo)致在垂直方向上存在一定誤差,計(jì)算視差時(shí)會(huì)引入一定的誤差,下一步將進(jìn)行雙目校正,使其光軸平行左右平面共面,消除垂直方向上的誤差值。
本文通過(guò)仿生學(xué)原理的分析得到了雙目視差的幾何模型,推導(dǎo)了深度信息的計(jì)算公式。然后討論了圖像畸變的產(chǎn)生原因及校正方法。運(yùn)用了角點(diǎn)檢測(cè)方法提取待測(cè)特征點(diǎn)。最后通過(guò)分組測(cè)距實(shí)驗(yàn)驗(yàn)證測(cè)量方案的正確性,并且給出了下一步降低誤差的方法。雙目視覺(jué)測(cè)距理論及方法可以運(yùn)用到智能車上實(shí)現(xiàn)障礙物距離測(cè)量。