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