||
分享之前写的关于深度相机和三维重建的技术文档。
做个摘要,并加上链接,方便查阅。
一.关于RGBD相机
1. 深度相机(RGBD相机)
深度相机(又称 3D 相机 / RGBD 相机)是能实时获取场景深度(Depth)信息的传感器,它输出的“深度图”本质上是一个距离矩阵。与传统 2D 相机仅捕获颜色不同,它通过主动 / 被动测距技术为每个像素赋予毫米级距离值,生成 “RGB 图像 + D深度图”,可构建场景 3D 点云,核心解决 “物体空间位置与几何结构感知” 难题。核心解决 “物空间位置与几何结构感知” 难题,可以精确重构场景的三维几何结构,广泛用于机器人导航、三维重建、人机交互等领域。
2. 知名消费级深度相机产品
以下是目前市面上主流的几种消费级深度相机方案和代表产品:
| 技术原理 | 优点 | 缺点 | 代表产品 |
|---|---|---|---|
结构光 (Structure light) | 近距离精度高,技术成熟 | 易受强光干扰,有效距离较短(通常在几米内) | 奥比中光 Astra系列、iPhone的Face ID原深感摄像头 |
| 双目立体视觉 | 依赖自然光,室内外均可使用 | 依赖纹理,在弱纹理区域(如白墙)效果差 | ZED系列、Intel RealSense D4xx系列(主动红外增强) |
| 飞行时间法(TOF) | 测量距离远,抗干扰性强,精度不随距离剧烈变化 | 传统方案成本较高,分辨率通常较低 | 微软Azure Kinect等产品 |
RGBD相机在开发过程中遇到的一般问题,我总结了一个文档,
内容是关于深度图像格式存储、查看,相机模型内参和外参的几何意义,测量精度和深度点云平面拟合示例等内容。
二.关于点云拼接
利用深度相机获取三维点云后,之后的步骤往往是进行三维重建。
其中ICP算法是最基础的算法,目的是估计点云之间的外参并进行拼接,
这是我在奥比开发者论坛上写的技术文档:
1.两帧点云刚性配准的ICP算法:
https://developer.orbbec.com.cn/v/forum_detail/1521
2.多帧点云拼接的全局ICP算法【附Matlab代码链接】
https://developer.orbbec.com.cn/v/forum_detail?id=1462
如果带法线的点云,拼接完毕后放在一个坐标系中,如果噪声足够小,
可以直接调用泊松重建进行三维表面重建,得到物体表面的三维网格表示。
整个三维重建流程还包括:点云去噪,网格修补,纹理贴图等算法,说起来也是一言难尽。
三.关于纹理展开或称网格参数化
前些年学习过的三维网格参数化算法,之前做过一些笔记,现在借助AI工具进行完善。
1.三维网格纹理参数化的谱共形方法:
https://zhuanlan.zhihu.com/p/1981727251847464122
将三维三角网格映射到平面参数域,本质是狄利克雷能量最小化问题,通过求解拉普拉斯矩阵(以余切权为主)的齐次方程实现,谱方法需结合瑞利商最小化求解特征向量(费德勒向量)。拉普拉斯矩阵是对称半正定矩阵,零空间由常数向量张成;可加入面积最大化约束构造新矩阵,或引入边界点矩阵优化边界行为,均通过 MATLAB 的eigs函数求解特征向量获取参数化坐标。与 LSCM 等方法类似,无法完全避免局部网格的覆盖和翻折问题,可用于三维人脸等模型的纹理展开。
2.用极简例子讲解刘利刚团队的ASAP三维网格展开方法:
https://zhuanlan.zhihu.com/p/1970834054376068771
我用一个四面体三面壳的简单三维网格为例子,讲解ASAP原方法中局部和全局两个步骤的迭代收敛过程。局部三角面片刚体映射把空间三角形投影到平面上,全局坐标求解步骤还是求解一个泊松方程组,使网格展开尽可能保角或共形。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-12-12 19:02
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社