第 2 章 · 几何数据处理 章节摘要:这是全书的主战场。原始三维数据几乎总有毛病:点太密、噪声多、缺法线、没对齐、不成形。本章按数据形态分四节——点云(滤波、降采样、法线、聚类分割、配准)、网格(三大重建算法、简化、平滑、修复)、RGB-D(内参反投影、TSDF 多帧融合)、体素与八叉树——每一节都从"数据现在坏在哪"讲起,给出参数怎么选、坑在哪里。 本节导航 阅读完本章,你应当能够: 为百万级点云设计"降采样 → 去噪 → 法线"的清洗顺序,并说清每步参数的依据; 用 ICP 完成两帧点云配准,并在局部最优时用 RANSAC 全局粗配准兜底; 在泊松、Alpha、球枢三种表面重建算法中按数据质量做选择; 把一串 RGB-D 帧融合成带颜色的稠密网格,理解 TSDF 的体积式思路;
章节摘要:这是全书的主战场。原始三维数据几乎总有毛病:点太密、噪声多、缺法线、没对齐、不成形。本章按数据形态分四节——点云(滤波、降采样、法线、聚类分割、配准)、网格(三大重建算法、简化、平滑、修复)、RGB-D(内参反投影、TSDF 多帧融合)、体素与八叉树——每一节都从"数据现在坏在哪"讲起,给出参数怎么选、坑在哪里。
阅读完本章,你应当能够:
四节共享同一条处理哲学:先洗数据,再动几何,最后成形。下图是本章所有操作在一条流水线上的位置:
三维数据处理没有银弹,但有顺序:数据越脏,越要在早期花时间——后面每一步的错误都会被放大。
最常用的一节:三种降采样、两种去噪、法线定向、DBSCAN 聚类、RANSAC 平面分割与 ICP 配准。日常 80% 的点云需求都在这里。
从点云到网格的三条路(泊松/Alpha/球枢),加上简化、平滑与水密性检查。交付"能渲染、能打印"的模型靠这一节。
深度相机的帧怎么变成点云、多帧怎么融合成完整模型。手持扫描类应用的核心原理。
规则空间划分的两种实现:均匀体素与自适应八叉树。碰撞检测、占据地图、大场景近邻的效率工具。
2.1 是主干,其余三节是"点云之后的三个去向":
┌── 2.2 重建 → 网格(面向渲染与交付) 原始点云 ──清洗──┼── 2.3 融合 → 稠密模型(面向手持扫描) (2.1) └── 2.4 索引 → 体素/八叉树(面向空间查询)
2.1 的法线质量直接决定 2.2 重建成败,2.3 的融合结果又常拿去 2.2 做表面提取——四节是一条藤上的瓜,建议按序读,实战时按需跳。

章首的决策图把「数据要去哪」画成三条岔路,实战中还需要加一条隐含的回环:三条路的产物都可能回到 2.1 节再清洗——重建出的网格可能要采样回点云做比对,融合出的模型可能要降采样后入库,索引用的体素中心本身就是一个新点云。数据在形态间的循环往返是常态而非例外,所以 2.1 节的清洗技能是全书复用率最高的一节。第一次读可以按序走完四节,第二次读建议从任意一节的产物出发,沿着回环走一圈,对「数据形态即任务视角」的理解会深一层。
四节的参数加起来不到二十个,却是日常翻牌率最高的二十个。汇总成一张卡,用的时候回来查:
| 操作 | 参数 | 含义 | 起手值 |
|---|---|---|---|
| 体素降采样 | voxel_size | 格子边长,米 | 包围盒长边÷几百,或 0.05 |
| 统计滤波 | nb_neighbors | 参与统计的近邻数 | 20 |
| 统计滤波 | std_ratio | 标准差倍数阈值 | 2.0 |
| 半径滤波 | radius / nb_points | 邻居半径/最少点数 | 0.05 / 16 |
| 法线估计 | radius / max_nn | 混合搜索半径/邻居上限 | 0.1 / 30 |
| ICP | threshold | 对应点距离阈值 | 平均点距的 2–3 倍 |
| 泊松重建 | depth | 八叉树深度 | 9 |
| TSDF | voxel_length | 体素长 | 2–8 毫米 |
| TSDF | sdf_trunc | 截断距离 | 3–4 倍体素长 |
| DBSCAN | eps / min_points | 成团半径/门槛 | 0.02 / 10 |
这张表也是"调参从哪里下手"的答案:先动起手值那一列,观察结果变化的敏感度,再精调。盲目在陌生参数上大步试探,是数据被毁的经典方式。
四节内容横跨四种数据形态,但有四条心得是贯穿的,先立在这里,读完各节回来对照:
心得一:顺序即正确性。降采样在滤波前、滤波在法线前、清洗在配准前——顺序颠倒不是"慢一点",是结果系统性变坏(噪声进了法线、脏法线毁了配准)。
心得二:可视化是免费的测试。每一步的中间结果都画一眼,比任何数值指标都快地暴露"歪了、反了、缺了"。第三章的离屏渲染还能把它变成归档资产。
心得三:参数有手感才有自由度。每个参数都问三遍"再大一档会怎样、再小一档会怎样、依据是什么",问完之后表格里的起手值才真正属于你。
心得四:算法假设决定适用边界。泊松假设光滑、球枢假设密集、TSDF 假设位姿准——数据违反假设时,再好的参数也救不回来,换算法而不是硬调。
这四条心得比任何单个 API 都值钱,它们是"点云工程师"与"会调点云函数的人"之间的分界线。