第二章:投影系统与相机模型

各位同学好,我是老张。今天咱们聊聊结构光系统里最基础、也最绕不开的部分——投影仪和相机的数学模型。

说实话,我刚开始做3D测量那会儿,觉得标定就是个麻烦事。后来踩过几次坑才明白:模型建得对不对,直接决定了你的重建精度。你想想看,投影仪和相机本质上都是成像设备,它们遵循的物理规律其实是一样的。

2.1 针孔模型——最朴素的成像原理

先说说针孔模型。说白了,就是一个小孔让光线通过,在后面的平面上成像。这个模型虽然简单,但它是所有现代相机模型的基础。

数学上,一个三维点 \(P = (X, Y, Z)\) 投影到图像平面上的点 \(p = (u, v)\),可以写成:

u = f * X / Z + u0
v = f * Y / Z + v0

这里 \(f\) 是焦距,\((u0, v0)\) 是主点坐标。嗯,这里要注意:实际镜头会有畸变,但针孔模型假设没有畸变,是个理想情况。

核心要点:针孔模型是线性模型,但真实世界是非线性的。我们后面会用畸变模型来补偿这个差异。

我在项目中遇到过一个问题:用针孔模型标定后,重建出来的点云在边缘区域总是有偏差。后来发现是畸变参数没加进去。所以啊,别偷懒,该加的模型参数一个都不能少。

2.2 投影仪——反向的相机

投影仪和相机有什么区别?从数学模型上看,投影仪其实就是个反向的相机。相机是把三维世界投影到二维图像上,投影仪是把二维图案投射到三维物体上。

但实际操作中,投影仪没法直接"看到"物体。所以我们得把它当成一个虚拟相机来处理。怎么做呢?

  • 投影仪的像素坐标 \((u_p, v_p)\) 对应着某个三维空间点
  • 这个三维点又被相机拍到,得到相机像素坐标 \((u_c, v_c)\)
  • 两者之间通过极线几何关联起来

我个人习惯把投影仪和相机看作一对"双目系统"。只不过其中一个眼睛是主动发光的,另一个是被动接收的。

小技巧:标定投影仪时,可以用棋盘格标定板。投影仪投射棋盘格图案,相机同时拍摄。这样就能同时得到投影仪和相机的内外参。

2.3 内外参标定——给设备定个位

标定分两部分:内参和外参。

内参是设备自身的参数,包括焦距、主点、畸变系数。这些参数一旦标定好,只要不拆镜头,基本不会变。

外参是设备之间的相对位置关系,包括旋转矩阵 \(R\) 和平移向量 \(t\)。每次重新安装设备,外参都得重新标。

标定流程大概是这样的:

  1. 准备一个高精度棋盘格标定板
  2. 从不同角度拍摄10-20张图像
  3. 提取角点坐标
  4. 用张正友标定法求解内参
  5. 固定内参,求解外参

我曾经犯过一个低级错误:标定板打印出来没贴平,结果标定出来的参数全是错的。后来我学乖了,标定板一定要贴在刚性平面上,最好用玻璃板压着。

避坑指南:标定图像不要都在同一个角度拍。要覆盖整个视场,特别是边缘区域。我曾经只拍了中心区域的图像,结果边缘重建误差大得离谱。

2.4 极线几何基础——匹配的数学桥梁

极线几何解决的是"匹配"问题。在结构光系统中,我们需要知道投影仪的某个像素对应相机的哪个像素。

核心概念就三个:

  • 极线:相机图像上的一条直线,投影仪上的一个点只能出现在这条线上
  • 本质矩阵 \(E\):描述了两个相机之间的几何关系,只与旋转和平移有关
  • 基础矩阵 \(F\):本质矩阵加上内参信息,直接关联像素坐标

数学关系是这样的:

p_c^T * F * p_p = 0

其中 \(p_c\) 和 \(p_p\) 分别是相机和投影仪上的对应点。这个公式告诉我们:匹配点一定满足极线约束。

你想想看,有了这个约束,搜索范围就从整幅图像缩小到一条线上了。效率提升可不是一星半点。

实际应用:在结构光解码时,我们先用极线约束缩小匹配范围,再用相位信息精确定位。两步走,又快又准。

2.5 本章知识体系

下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一遍应该就能明白整个流程。

投影系统与相机模型知识体系 相机针孔模型 投影仪模型 极线几何 内参 焦距 f, 主点 (u0,v0) 畸变系数 (k1,k2,p1,p2) 外参 旋转 R, 平移 t 虚拟相机模型 像素坐标 ↔ 空间点 投影图案编码 标定方法 棋盘格 + 相位法 核心矩阵 本质矩阵 E 基础矩阵 F 应用 极线约束 → 匹配加速 输出:三维点云 三个模块相互依赖:相机和投影仪各自标定后,通过极线几何建立对应关系 最终实现从二维图像到三维点云的转换

这张图里,三个模块是环环相扣的。相机模型和投影仪模型各自独立标定,然后通过极线几何建立联系。没有这一步,后面的三维重建就是空中楼阁。

2.6 实际标定中的注意事项

最后分享几个我这些年积累的经验:

项目 建议 原因
标定板尺寸 覆盖视场的60%以上 太小了外参不准,太大了边缘畸变难标
拍摄张数 15-20张 太少解不稳定,太多浪费时间
角度变化 俯仰角±30°,偏航角±30° 覆盖不同视角,提高标定鲁棒性
光照条件 均匀照明,避免反光 反光会导致角点提取偏差

嗯,差不多就这些。标定这事儿,说难不难,说简单也不简单。关键是多动手、多验证。我刚开始做的时候,标定一次要花一整天,现在熟练了,半小时搞定。

记住一句话:标定精度决定了你的系统上限。后面所有的工作,都是在这个基础上展开的。


专注资料整理