陳澤詣 華云松
摘? 要: 近年來,立體視覺在生產(chǎn)生活中發(fā)揮著重要的作用。傳統(tǒng)的單目立體視覺通常使用移動單目相機的方法完成圖像采集功能。本文提出了一種基于目標(biāo)移動的單目立體視覺系統(tǒng),以立體視覺原理為理論依據(jù),對相應(yīng)硬件與軟件系統(tǒng)進行設(shè)計,搭建了基于目標(biāo)移動的單目立體視覺系統(tǒng)。通過使用MATLAB等工具進行單目標(biāo)定,采用基于窗口的稀疏點匹配方法進行圖片的匹配,使用物體移動實驗驗證了該系統(tǒng)是可行的。
關(guān)鍵詞: 單目立體視覺;單目標(biāo)定;目標(biāo)移動;三軸運動控制器
中圖分類號: TP391. 41? ? 文獻標(biāo)識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.09.039
本文著錄格式:陳澤詣,華云松. 基于目標(biāo)移動的單目立體視覺系統(tǒng)研究[J]. 軟件,2020,41(09):145147+161
【Abstract】: In recent years, stereoscopic vision plays an important role in production and life. Traditional monocular stereo vision usually uses the method of mobile monocular camera to complete the image acquisition function. In this paper, a monocular stereo vision system based on target movement is proposed. Based on the principle of stereo vision, the corresponding hardware and software systems are designed, and the monocular stereo vision system based on target movement is built. Through the use of MATLAB and other tools for single target determination, the sparse point matching method based on the window is adopted for image matching, and the object movement experiment is used to verify the feasibility of the system.
【Key words】: Monocular stereo vision; Single target setting; Moving target; Triaxial motion controller
0? 引言
機器視覺作為一種人工智能識別系統(tǒng),在醫(yī)學(xué)、軍事、工業(yè)、農(nóng)業(yè)等領(lǐng)域中都有廣泛應(yīng)用[1]。一個基本的機器視覺檢測系統(tǒng)由光源、相機和圖像采集卡、計算機等組成。對移動物體的單目立體視覺研究是一個較新的立體視覺研究方向。在過去的研究中,大多數(shù)單目立體視覺系統(tǒng)采用物體靜止、相機移動的方式獲取圖片信息,少部分系統(tǒng)采用鏡面對稱等方式利用單目相機模擬雙目立體視覺系統(tǒng),而少有研究者采用物體移動的方式獲取圖片信息。使用該種方式能夠較好的運用標(biāo)定、物體移動軌跡預(yù)測等方法,得到較高的系統(tǒng)精度。
1? 基于目標(biāo)物移動的單目立體視覺原理
本文提出了一種基于單相機多工位的求取物體三維坐標(biāo)位置的方法。
如圖1所示,目標(biāo)物體可以在三軸運動控制器的控制下精確移動。當(dāng)相機鏡頭固定不動時,目標(biāo)物體從圖像采集位置A點平移到圖像采集位置B點,采集目標(biāo)物體在不同的點位的圖像,利用這些圖像進行分析即可求取出目標(biāo)物體在空間中的三維坐標(biāo)。我們以目標(biāo)物沿著x軸的方向移動一次為例。物體的移動的距離已知。如圖2所示,將被測物體在初始位置時某一特征點的位置設(shè)為A點,將物體在移動后同一特征
點的位置稱為B點。我們假設(shè)相機坐標(biāo)系與世界坐標(biāo)系重合,設(shè)點為相機光心,、分別為A點,B點在平面上的投影點,直線與z軸相交于點,圖像平面坐標(biāo)系原點設(shè)為。
以求解B點三維坐標(biāo)為例,先確定其軸坐標(biāo)和軸坐標(biāo)。對于平面,如圖3所示。
可以直接從圖像中得出,即B點的圖像平面y軸坐標(biāo)。
2? 相機標(biāo)定
相機標(biāo)定的目的是利用空間物體上的某點位的三維坐標(biāo)與它在圖像上對應(yīng)點之間的相互對應(yīng)關(guān)系來確定相機的內(nèi)部參數(shù)與外部參數(shù)[2]。相機需要標(biāo)定的參數(shù)如下:
外部參數(shù)R為正交矩陣,共有9個未知數(shù);t為三維平移向量,共有3個未知數(shù)。
內(nèi)部參數(shù)包括相機的內(nèi)參數(shù)矩陣和相應(yīng)的畸變系數(shù),它包括有效焦距;主點坐標(biāo),畸變系數(shù)。
本文提出的基于目S移動的單目立體視覺系統(tǒng)中只需要一個相機,且該相機固定不動,因此我們將此單目相機坐標(biāo)系與世界坐標(biāo)系重合,進而只需要標(biāo)定出相機的內(nèi)部參數(shù)。本文的單目標(biāo)定實驗部分采用了經(jīng)典的張正友平面標(biāo)定法[3],它從平面的單應(yīng)性著手,提出了一種根據(jù)拍攝不同位置和朝向的平面棋盤格圖像模板來求解相機的內(nèi)參數(shù)和畸變參數(shù),相較于其他方法更為穩(wěn)定。
2.1? 張正友平面標(biāo)定
張正友平面標(biāo)定法的標(biāo)定步驟如下:
固定相機位置不改變,從多個角度任意轉(zhuǎn)動棋盤格標(biāo)定板,同時保證標(biāo)定板在相機視野內(nèi),分別拍攝得到若干張它的圖像。隨后分別檢測出圖像中的特征點并做好標(biāo)記[4],再利用相關(guān)公式或者使用軟件求取相機內(nèi)部參數(shù)和畸變系數(shù);
2.2? 標(biāo)定實驗
采用MATLAB標(biāo)定工具箱來進行基礎(chǔ)的單目視覺標(biāo)定工作,以獲取所使用的單目相機的內(nèi)部參數(shù)[5]。將標(biāo)定板放置于三軸運動控制器的物體平臺上,前后翻轉(zhuǎn)較小角度,共采集15張圖片。
本系統(tǒng)中使用的標(biāo)定板的黑白棋盤格方格大小為20 mm20 mm,圖案陣列為89,如圖5所示。
將MATLAB工具箱配置好。MATLAB工具箱的功能包括了單目標(biāo)定以及雙目標(biāo)定所需的各種內(nèi)容[6]:圖片讀取、角點提取、誤差分析、畸變校正、標(biāo)定參數(shù)計算和立體標(biāo)定等。把單目相機拍攝到的標(biāo)定圖像導(dǎo)入MATLAB工具箱中,MATLAB工具箱會對每一張圖片進行角點提取,然后通過MATLAB標(biāo)定工作箱中的Calibration函數(shù)進行相機的單目標(biāo)定運算。如圖6所示。
標(biāo)定得到的具體參數(shù)如表1所示。
3? 立體匹配
圖像匹配的功能是將物體在移動前后的特征點一一對應(yīng),由此計算出物體在圖像中的移動的距離與方向,并與物體實際運動的數(shù)據(jù)、相機的焦距等數(shù)值計算得出物體的三維坐標(biāo)。因此,使用優(yōu)秀的圖像匹配算法能夠使計算所得數(shù)據(jù)更為準確,提升系統(tǒng)的穩(wěn)定性。
本文采用基于窗口的稀疏點匹配方法,得到目標(biāo)的特征點的三維信息。以下先介紹基于窗口的匹配原則。
假如對圖像點和進行匹配計算,那么對它們的匹配結(jié)果與以和點為中心的窗口內(nèi)的圖像點之間進行匹配計算得到匹配結(jié)果是一致的[7]。該方法能夠把匹配誤差有效地規(guī)避掉。
先考慮點。將點所在窗口內(nèi)所有點的灰度值轉(zhuǎn)換成向量,如圖7所示。同理獲得所在窗口所有點灰度值構(gòu)成的向量。
向量與的夾角大小是判斷匹配度的度量標(biāo)注,和的匹配度越高,兩向量、之間的夾角越小。兩向量的夾角計算如式所示:
其中,θ為兩向量的夾角。時表示兩向量匹配最佳,則表示是最差匹配,如圖所示。匹配時將的最小值設(shè)為0.9,不大于0.9時就認為是不匹配點。
基于窗口的稀疏點的匹配選取可以明顯反映出圖像本質(zhì)屬性的特征點,使其作為匹配對象。當(dāng)特征點的數(shù)量越多,匹配的結(jié)果也就越可靠,進而其精度也就越高。因此,可靠的特征點的數(shù)量對于匹配效果具有決定性作用。
在完成了特征點的提取后,以物體單次運動之前的視圖作為基準,匹配物體單次運動之后的視圖。實現(xiàn)的過程如下:先在前視圖中選定物體的一個特征點,并對它與后視圖中同一行里所有的特征點進行向量夾角的計算,得到特征點的匹配點對。記兩點間軸上的間距為視差值,越大則表示三維點離相機的距離越近,相反則越遠。
4? 系統(tǒng)實驗
以物體在x軸上運動為例設(shè)計實驗驗證。選用一個小球作為目標(biāo)物體,經(jīng)游標(biāo)卡尺測量得其直徑為28.8 mm。將其放置于三軸運動控制器的物體平臺上并固定[8]。保持三軸運動控制器的物體平臺的y、z軸位置不變,變化三軸運動控制器的物體平臺在x軸上的位置。具體步驟如下:
首先使用控制器將設(shè)定小球放置的物體平臺的當(dāng)前位置為基準位置,在三軸運動控制器中此位置的坐標(biāo)被設(shè)為了,而當(dāng)前位置在相機坐標(biāo)系下的坐標(biāo)是未知的。在基準位置使用單目相機對小球進行拍攝,如圖9所示。
然后使用控制器將三軸運動控制器的物體平臺的x軸向正方向移動50 mm,并再次拍攝圖像。繼續(xù)移動,重復(fù)此步驟5次。共得到小球在x軸上的6個不同位置的圖像。使用本文所述的基于目標(biāo)移動的單目立體視覺系統(tǒng)的算法對移動前后的圖片兩兩間進行特征點匹配與數(shù)據(jù)計算,并使用前文求得的單目相機焦距,得到小球的一個特征點在6個位置的實際空間位置坐標(biāo)。
由實驗數(shù)據(jù)可以發(fā)現(xiàn),由于圖像的噪聲等干擾,在圖像經(jīng)過預(yù)處理后仍然會存在特征點的匹配有所誤差,導(dǎo)致該特征點的圖像坐標(biāo)變化不同,影響到計算得出的特征點的深度[9],進而影響到該點的空間的橫縱坐標(biāo)。計算該點的y軸與z軸坐標(biāo)的的最大與最小值之差與均值之比,得到其誤差均在3%以內(nèi)。
5? 結(jié)論
本文建立了一套基于目標(biāo)移動的單目立體視覺系統(tǒng),使用新的方法分別對單目相機標(biāo)定、目標(biāo)物位置求取算法等進行了研究,并通過初步實驗驗證,整套系統(tǒng)基本滿足需求。實驗部分使物體在x軸上進行已知設(shè)定位置的運動,通過基于目標(biāo)物移動的單目三維坐標(biāo)確定原理的算法得到物體實際坐標(biāo)。分析比對通過計算得到的實際坐標(biāo)與現(xiàn)實測量得到的坐標(biāo)的誤差。下一步可以使物體在多軸方向上同時運動,使用該系統(tǒng)求取其實際位置。
參考文獻
[1]董志如. 基于生物學(xué)啟示的視觸三維重構(gòu)方法研究及應(yīng)用[D]. 河北: 河北工業(yè)大學(xué), 2009.
[2]湯溢, 陳曦, 劉祥磊. OpenCV的相機標(biāo)定在高速相機中的應(yīng)用[J]. 北京測繪, 2018, 5: 578-582.
[3]劉玉婷, 徐祥宇, 王超, 等. 攝像機標(biāo)定系統(tǒng)方法的研究[J]. 智能計算機與應(yīng)用, 2019, 3: 133-136, 141.
[4]劉曉. 基于圖像處理的包裝袋快速定位方法研究[D]. 山東: 山東科技大學(xué), 2015.
[5]汪永超, 耿麗清. 攝像機標(biāo)定系統(tǒng)方法研究[J]. 天津職業(yè)技術(shù)師范大學(xué)學(xué)報, 2019, 2: 59-62.
[6]崔韜. 基于立體視覺的零件三維尺寸測量[D]. 河北: 河北工業(yè)大學(xué), 2015.
[7]周鵬. 基于OpenCV的雙目立體視覺系統(tǒng)定標(biāo)與三維重構(gòu)技術(shù)研究[D]. 寧夏: 寧夏大學(xué), 2015.
[8]劉建群, 劉綠山, 羅繼合. 嵌入式四軸運動控制器的設(shè)計[J]. 制造業(yè)自動化, 2008, 2: 51-53.
[9]張開洪, 羅林, 顏禹. 基于立體視覺的橋梁裂縫自動檢測系統(tǒng)研究[J]. 重慶交通大學(xué)學(xué)報(自然科學(xué)版), 2014, 5: 37-41, 110.