原文鏈接:https://zhuanlan.zhihu.com/p/78512354(建議參考原文鏈接)
https://mp.weixin.qq.com/s?__biz=MzU1MjY4MTA1MQ==&mid=2247485340&idx=1&sn=1b656f13931f2fd6694bab4e0b1c48d2&chksm=fbff2ca8cc88a5be551733cd9efe39d5cbc2c37cf73589aab147d299e57a425219320761ca71&scene=21#wechat_redirect(三維重建原理)
線結構光法是一種可以精確獲得物體三維座標的方法,將線結構光傳感器安裝在機器人上就賦予了機器人視覺感知的能力。本文將從單點激光測距原理、線結構光原理與線結構光標定這三部分對線結構光進行介紹。
- 單點激光測距原理
單點激光測距原理是線結構光的基本原理,通過該方法得到物體距離相機的距離進而得到物體的三維座標。單點激光測距原理圖如下圖所示。
如圖 是激光發射器, 是目標點, 是相機成像面。在該單點激光系統有幾個不變的量, 爲相機光心與激光發射器的距離稱爲基線長, 爲激光線與基線的夾角, 爲焦距長。
目標:獲得 點在相機座標系下三維座標值。
那麼關鍵是獲得 值也就是 點的 值, 的 座標值可以通過相機的透視投影求得。
值如何求解。做兩條輔助線 過相機光心與 平行交相機成像面 , 過目標點與基線 平行。這樣構造成兩個相似三角形,根據相似三角形有如下公式:
基線長 , 角認爲是已知量,下面標定講到如何標定得到。
可以由像素、光心座標與像元大小得到。
最後計算得:
- 線結構光原理
以上討論的單點激光,下面討論線結構光。
線結構光分爲兩種形式如下圖所示,其區別在於激光與相機的位置擺放不同(位置不同只與標定有關)。
本文只討論第一種方式。第一種方式的模型如圖所示。
激光 射出一個面激光照射在物體上形成一條激光線。現假設地面與相機感光面平行, 點與 點是激光線上的位置不同的兩點,其中 點在相機上的成像在圖像的 軸的中心點上(不準確)。面 與地面垂直,那麼 是地面到光心 的高,同時也是點 的高,也就是 方向的值。
- 線結構光測高
面 可以通過上面單點激光方法求得值,這是線結構光法求高。
- 線結構光測距
這裏有一個容易混淆的地方,高與距離,點 的高是 值,而點 到相機的距離是 。
此時基線與激光面的夾角 (oap)變爲 (oap')。
現舉例如何求激光線上任意點的高。如圖是激光線。
黑色線是激光線由於照射在不規則的物體上形成的圖像。紅色線是相機x軸方向的中心點(是光心在成像平面上投影的x值,不一定是圖像像素中心)。激光線上任意一點的高(z值)是其所在相同高度平面激光中心點的高。那就將問題轉化爲單點激光測距問題。
利用單點激光測距公式 , 可通過圖像上激光點的y值確定。
- 線結構光標定
線結構光標定的目的是爲了獲得幾個不變的量,焦距 、基線長 、角度 。
如圖單點激光測距。
公式 表示這幾個量之間的關係,此時焦距 、基線長 、角度 變成了未知數。爲求解這幾個未知數,假設有Object1、Object2、Object3這些點,這些點的高度差都爲L,L爲已知量,那麼每一個點都可以由上面的公式得到:
那麼有4個未知量,至少有4個方程來求解。如圖是標定板。
黑色豎線是畫在標定板上,紅色橫線表示相機在不同高度的位置。
標定方法如下:
1.調整相機與標定板平行,相機中軸線與黑色豎線平行;
2.調整相機高度上升或下降使激光線沿黑色豎線上升或下降,每次調整相機都拍照;
3.記錄每次激光線與黑色豎線的交點座標。
一條豎線計算來標定會引入很多誤差,也可以設計多條豎線,用極大似然估計來減少誤差。