【導(dǎo)讀】結(jié)構(gòu)光視覺的優(yōu)點(diǎn)包括非接觸、信息量大、測精度高、抗干擾能力強(qiáng)。結(jié)構(gòu)光視覺傳感器參數(shù)的標(biāo)定包括攝像機(jī)參數(shù)標(biāo)定、結(jié)構(gòu)光平面參數(shù)標(biāo)定。
結(jié)構(gòu)光視覺測量原理圖
我們不考慮鏡頭的畸變,將相機(jī)的成像模型簡化為小孔成像模型,則特征點(diǎn)的圖像坐標(biāo)Pf 與其在攝像機(jī)坐標(biāo)系下的三維坐標(biāo)P 之間的關(guān)系可表示為:
其中:(u,v)是特征點(diǎn)的圖像坐標(biāo),(u0,v0) 光軸中心的圖像坐標(biāo),(kx ky )是X 軸,Y 軸方向的放大系數(shù),(xc yc zc) 是特征點(diǎn)在攝像機(jī)坐標(biāo)系下坐標(biāo), Mc 是攝像機(jī)內(nèi)參數(shù)矩陣。
結(jié)構(gòu)光視覺投影成像模型:
設(shè)結(jié)構(gòu)光在攝像頭坐標(biāo)系的平面方程為:
依據(jù)激光條紋特征點(diǎn)圖像坐標(biāo)就可以得到其在攝像機(jī)坐標(biāo)系下的三維坐標(biāo)
相機(jī)參數(shù)標(biāo)定:
采用張正友提出的基于2D平面棋盤格的攝像機(jī)標(biāo)定方法,利用Matlab攝像頭標(biāo)定工具完成相機(jī)參數(shù)的標(biāo)定。
攝像機(jī)標(biāo)定工具箱主窗口:
用于攝像機(jī)標(biāo)定的棋盤格圖像:
相關(guān)參考文獻(xiàn)可以查看張正友的論文:
Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on pattern analysis and machine intelligence, 2000, 22(11): 1330-1334.
得到攝像機(jī)內(nèi)參數(shù)矩陣:
結(jié)構(gòu)光平面參數(shù)標(biāo)定:
首先,激光器投射結(jié)構(gòu)光平面到平面棋盤格上形成激光條紋,并通過CCD 攝像機(jī)采集激光條紋圖像。然后,對圖像進(jìn)行處理,提取激光條紋上的兩個特征點(diǎn)。控制機(jī)器人按照一定的約束進(jìn)行運(yùn)動,從一個標(biāo)定位置移動到另一個位置,從而產(chǎn)生兩條不共線的激光條紋,利用上述相同的圖像處理方法再次提取激光條紋上的兩個特征點(diǎn)。最后,利用結(jié)構(gòu)光平面上的四個點(diǎn)來確定結(jié)構(gòu)光平面方程參數(shù)。該方法可以在攝像機(jī)參數(shù)標(biāo)定過程中,同時完成結(jié)構(gòu)光平面方程參數(shù)的標(biāo)定。同時,該方法不需要加工高精度的三維標(biāo)定靶標(biāo),也不需要手工測量,標(biāo)定過程簡單實(shí)用。
試驗裝備:
一個六自由度機(jī)器人,一個CCD 工業(yè)攝像機(jī),一個激光器和一個平面棋盤格靶標(biāo)。
結(jié)構(gòu)光平面參數(shù)標(biāo)定系統(tǒng)示意圖:
攝像機(jī)坐標(biāo)系位于攝像機(jī)中心,而世界坐標(biāo)系位于平面棋盤格靶標(biāo)上。一個特征點(diǎn)在攝像機(jī)坐標(biāo)系下坐標(biāo)與其在世界坐標(biāo)系下坐標(biāo)之間的對應(yīng)關(guān)系可以用下式來表達(dá):
標(biāo)定過程如下:
(1)圖像獲?。?/div>
圖像的獲取是在攝機(jī)參數(shù)標(biāo)定過程中同時完成。 首先將棋盤格放在工作臺上, 在這個初始位置,利用攝像機(jī)采集一幅圖,如圖 (a) 所示 。保持?jǐn)z像機(jī)和棋盤格的位置姿態(tài)不變,打開激光器讓條紋投射到棋盤格上, 再采集一幅圖像如圖 (b) 所示:
然后改變棋盤格和攝像機(jī)的相對位姿,使前后形成的兩條激光條紋在空間上不共線,即可確定一個唯一的結(jié)構(gòu)光平面。
(2)圖像處理:
圖像處理的目的是提取激光條紋上特征點(diǎn)的圖像坐標(biāo)。
分為圖像感興趣區(qū)域(ROI)確定、自適應(yīng)閾值分割、骨架細(xì)化和特征點(diǎn)計算。
1)圖像ROI確定
通過觀察圖像看出,激光條紋大致平行于圖像的u 軸,而且激光條紋處像素的灰度值高于圖像中其它像素的灰度值,所以圖像的ROI 可以通過對每行像素灰度值進(jìn)行求和得到:
2)閾值分割
閾值分割分為全局閾值分割、局部閾值分割和自適應(yīng)閾值分割。最常用的自適應(yīng)閾值分割是Otsu方法,該方法使用統(tǒng)計學(xué)的方法確定最優(yōu)的閾值,適用于一般的圖像,但是不太適合于棋盤格上激光條紋的分割。
根據(jù)圖像中激光條紋的灰度值高于圖像中其它像素的灰度值以及激光條紋所在區(qū)域比較集中的特點(diǎn),利用圖像ROI 內(nèi)行像素灰度值之和計算激光條紋的自適應(yīng)閾值:
3) 骨架細(xì)化:
自適應(yīng)閾值分割以后的激光條紋具有一定的寬度,直接處理計算量巨大而且精度較低,需要對圖像進(jìn)行骨架細(xì)化得到單像素的線。
采用下面文獻(xiàn)中所提出的快速骨架細(xì)化方法:
Pi分布情況如下:
第二個迭代過程將上述條件的c、d條件更改為:
4)特征提取:
選取激光條紋中心線上的兩個點(diǎn)作為激光條紋的特征點(diǎn),為了提高激光條紋中心線的提取精度,利用最小二乘法擬合方法對細(xì)化后的激光條紋直線進(jìn)行處理。
激光條紋特征點(diǎn)提取過程如下:
標(biāo)定棋盤格平面內(nèi)任意一點(diǎn)與法向量關(guān)系
由上圖可知:
由特征點(diǎn)的圖像坐標(biāo)Pf 與其在攝像機(jī)坐標(biāo)系下的三維坐標(biāo)P 之間的關(guān)系知:
得到棋盤格上任意一點(diǎn)在攝像機(jī)坐標(biāo)系下的zc 坐標(biāo)
得到激光條紋特征點(diǎn)在攝像機(jī)坐標(biāo)系下的坐標(biāo)值
至此,得到四個激光條紋特征點(diǎn)的圖像坐標(biāo),由上式得四個激光條紋特征點(diǎn)在攝像機(jī)坐標(biāo)系下的坐標(biāo),由于三點(diǎn)確定一個平面方程,使用最小二乘法計算結(jié)構(gòu)光平面方程如下:
至此,完成結(jié)構(gòu)光平面方程的參數(shù)的標(biāo)定。
參考文獻(xiàn):基于結(jié)構(gòu)光視覺的焊縫識別與跟蹤技術(shù)研究[D]. 中國科學(xué)院自動化研究所. 中國科學(xué)院大學(xué). 2019.