原文链接: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.记录每次激光线与黑色竖线的交点坐标。
一条竖线计算来标定会引入很多误差,也可以设计多条竖线,用极大似然估计来减少误差。