想象你在一个完全黑暗的房间里,手握一把会发光的激光卷尺。每按一次扳机,一束激光打到墙上又弹回来,卷尺上的数字告诉你这面墙离你多远。如果让这把“激光卷尺”自动旋转,一圈一圈地测量,你就能得到成百上千个“到墙距离”的数字。把这些数字连起来,房间的轮廓就会像星座一样亮起来——这就是LiDAR扫描的秘密。 LiDAR扫描重建,就像是给现实世界拍一张三维立体照:先用激光脉冲给物体表面“盖章”,生成密密麻麻的点云(点的海洋);再把不同角度拍到的“点云拼图”对齐拼接;接着用一层透明薄膜般的网格把这些点包起来;最后给每个区块贴上“门”“墙”“管道”的标签,变成一栋可以在电脑里走进去的“数字孪生建筑”。从激光出发到数字双胞胎诞生,这条路就是空间计算的地基。

岗位关联

为什么值得学:在智能建筑、自动驾驶、工业数字孪生中,LiDAR扫描重建是“把物理世界搬进电脑”的起点。掌握它,你就能从二维开发升级为三维空间计算工程师,直接参与最前沿的虚实融合项目。

目录
  1. 可视化演示
  2. LiDAR原理
  3. 点云生成
  4. 多视角配准
  5. 网格重建
  6. 语义分割
  7. 数字孪生
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示LiDAR激光扫描、点云生成、多视角配准与网格重建四个阶段,支持步进切换查看各阶段细节。

本节配有交互动效(进入视口后自动加载,约 3KB)。

激光扫描 旋转激光脉冲测距 回波生成表面点 d=c*t/2 主动式测量不依赖光照

LiDAR原理

还记得那把“会发光的激光卷尺”吗?它的核心动作只有两个:发射和接收。激光器瞬间打出一束极窄的光脉冲,光碰到墙壁后反射回来,接收器精确记录这趟旅程用了多长时间。因为光速是恒定不变的,时间乘以速度再除以二,就是激光器到墙面的距离。这个原理,英文叫“飞行时间法”(Time of Flight,ToF)。

把单个脉冲升级成扫描仪:仪器内部的反射镜不停旋转,让激光束像手电筒一样扫过整个空间。每一束激光都测出一个“到某个点”的距离,同时记录当时的角度。于是,一个点、两个点、成千上万个点不断累积,房间的立体轮廓就渐渐显形了。LiDAR(Light Detection and Ranging)正是“用光来探测和测距”的缩写。

最核心的测距公式非常简单:

其中,\( c \) 是光速(约为 \( 3 \times 10^8 \) 米/秒),\( \Delta t \) 是激光从发出到接收的时间间隔。

所以,每一束激光都像黑暗里的一声回音:你喊一声,听到回音的时间越久,说明对面的墙越远。LiDAR 就是把这个经验变成每秒几万次的“光学回声定位”。

d=c⋅Δt2\displaystyle d = \frac{c \cdot \Delta t}{2}
这个公式说明:激光雷达测的不是“距离”这个数本身,而是“时间”。时间乘以光速得到往返路程,再除 2 才是雷达与目标之间的单程距离。
  1. 记录时间差激光在发射瞬间记下时刻 \( t_{\text{emit}} \),接收到回波时记下时刻 \( t_{\text{receive}} \),二者的差就是往返时间:
    Δt=treceive−temit\Delta t = t_{\text{receive}} - t_{\text{emit}}
  2. 计算往返距离光速乘以时间,得到光脉冲走的总路程,这是“发射—反射—接收”的往返长度:
    dround=c⋅Δtd_{\text{round}} = c \cdot \Delta t
  3. 折算单程往返路程是整个回路的长度,除以 2 才是扫描仪到目标的真实单程距离:
    d=dround2d = \frac{d_{\text{round}}}{2}

点云生成

现在想象一把“会喷荧光墨水的印章枪”。激光笔每打到物体表面一下,就在那个位置印下一个发光的墨点。当墨点足够多、足够密时,一个物体的立体草图就浮现出来——这些墨点的集合,就是“点云”。

在 LiDAR 系统中,每个墨点不仅记录距离 \( r \),还记录当时激光束的水平偏转角 \( \theta \) 和垂直仰角 \( \phi \)。把这三个量用三角函数组合起来,就能得到该点在三维空间中的坐标:

除了坐标,点云中的每个点还附带“强度值”,表示目标表面反射激光的强弱。金属、玻璃、木材的反射率各不相同,因此强度值就像“墨水的深浅”,能帮助后续识别材质。有些系统还会叠加彩色摄像头数据,给每个点染上真实的 RGB 颜色。

这些散落在空间里的“墨点”构成了三维世界的第一份数字化草稿。它还不是模型,只是个无比详细的草图,等待着后续加工。

x=rcos⁡ϕcos⁡θ,y=rcos⁡ϕsin⁡θ,z=rsin⁡ϕ\displaystyle x = r\cos\phi\cos\theta,\qquad y = r\cos\phi\sin\theta,\qquad z = r\sin\phi
点云是“成千上万张距离照片”的集合。每个点代表物体表面一个微小区域的采样,采样越密、噪声越小,重建出的模型就越细腻。
  1. 水平投影先用仰角 \( \phi \) 把斜向距离 \( r \) 投影到水平面上,得到水平距离 \( r\cos\phi \):
    rhoriz=rcos⁡ϕr_{\text{horiz}} = r\cos\phi
  2. 分解水平坐标再用水平角 \( \theta \) 把水平距离分解到 \( x \) 轴和 \( y \) 轴:
    x=rhorizcos⁡θ,y=rhorizsin⁡θx = r_{\text{horiz}}\cos\theta,\qquad y = r_{\text{horiz}}\sin\theta
  3. 计算高度垂直方向上直接用 \( \sin\phi \) 得到点的高程:
    z=rsin⁡ϕz = r\sin\phi

多视角配准

在黑暗里给一座雕像做“墨点印章”,站在正面只能印到正面,绕到背面才能印到背面。真正的扫描重建从来不是一次完成的,而是从多个角度多次扫描,再把结果拼在一起。这个拼合过程,就像玩一盒巨大的立体拼图:每片拼图都是独立视角的点云,你要找到它们重叠的部分,并把它们严丝合缝地对上。

这里的关键技术叫 ICP 算法(Iterative Closest Point,迭代最近点)。它的思路非常朴素:先把两片点云粗略摆在一起,然后反复执行两步——为每个点找到另一片中的最近邻点,计算旋转和平移让整体误差最小;再重新找最近邻点,再更新变换。如此迭代几十次,两片点云就“咬合”在一起了。

ICP 的优化目标可以写成:

其中 \( p_i \) 是源点云中的点,\( q_i \) 是目标点云中与 \( p_i \) 对应的最近点,\( R \) 是旋转矩阵,\( t \) 是平移向量。

需要注意,ICP 很依赖初始位置。如果两片点云一开始摆得差太远,它可能卡在错误的拼接上。因此工程上往往先在点云上放置标靶球或用手工测量做“粗配准”,再用 ICP 做“精配准”。多片点云还会做全局优化,把误差均匀分配到每一帧,避免“越拼越歪”。

E(R,t)=∑i=1n∥Rpi+t−qi∥2\displaystyle E(R, t) = \sum_{i=1}^{n} \lVert R p_i + t - q_i \rVert^2
ICP 就像反复调整两块拼图的姿势:先大致对齐,再看边缘是否吻合,不行就再转一点、再挪一点,直到拼接误差小到肉眼察觉不出。
  1. 建立对应关系对每个源点 \( p_i \),在目标点云中找出离它最近的 \( q_i \):
    qi=arg⁡min⁡q∈Q∥pi−q∥q_i = \arg\min_{q \in Q} \lVert p_i - q \rVert
  2. 求解最优变换用当前对应的点对计算旋转 \( R \) 和平移 \( t \),使得加权距离平方和最小:
    (R,t)=arg⁡min⁡R,t∑i=1n∥Rpi+t−qi∥2(R, t) = \arg\min_{R, t} \sum_{i=1}^{n} \lVert R p_i + t - q_i \rVert^2
  3. 迭代收敛用新求得的变换刷新源点云位置,再回到第 1 步重新寻找最近点,直到误差不再明显下降:
    Ek+1−Ek<ϵE_{k+1} - E_k < \epsilon

网格重建

点云虽然看起来像立体画,但电脑仍然只认识一个个孤立的点。要让模型能被点击、测量、碰撞,还得给这些点“蒙上一层皮肤”。想象你在布满图钉的模型表面轻轻盖上一张湿透的保鲜膜——膜会顺着图钉的起伏贴合下去,最终形成连续光滑的表面。这张“保鲜膜”,就是网格。

网格重建的核心思路是三角剖分:把相邻的三个点连成一个三角形,无数三角形像马赛克一样拼接起来,覆盖整个表面。三角形是最简单的平面单元,任意三个不共线的点都能确定一个平面,因此电脑处理起来又快又稳。

把点云转换成一个点位于三角形内部的表达,可以用重心坐标插值:

这里的 \( p_0, p_1, p_2 \) 是三角形的三个顶点,\( u, v \) 是控制点位置的两个参数。当 \( (u,v) \) 在合法范围内变化时,\( p(u,v) \) 就能填满整个三角形内部。

网格重建之后还要做“美容”:填补点云稀疏造成的空洞、减掉多余的三角面、平滑噪声引起的毛刺,让模型既轻巧又干净。

p(u,v)=(1−u−v)p0+up1+vp2,u≥0, v≥0, u+v≤1\displaystyle p(u, v) = (1-u-v)p_0 + u p_1 + v p_2, \qquad u \ge 0,\ v \ge 0,\ u+v \le 1
网格重建把“海量散点”变成“连续表面”。门得能推开,墙得能测面积,得益于这层由无数三角面片构成的“数字皮肤”。
  1. 确定三角形顶点取三个相邻点作为基础,它们是局部表面的三个锚点:
    p0, p1, p2∈R3p_0, \ p_1, \ p_2 \in \mathbb{R}^3
  2. 重心坐标混合用 \( u, v \) 两个参数把三个顶点按比例混合,得到三角形内部任意位置的点:
    p(u,v)=(1−u−v)p0+up1+vp2p(u, v) = (1-u-v)p_0 + u p_1 + v p_2
  3. 约束合法区域只有 \( u \ge 0, v \ge 0, u+v \le 1 \) 时,点才严格落在三角形内部:
    0≤u, 0≤v, u+v≤10 \le u, \ 0 \le v, \ u+v \le 1

语义分割

一个全是三角形的白模,就像一本没有文字的立体涂色书——你知道它形状像房子,却分不清哪里是门、哪里是窗。要让数字孪生真正可用,机器必须回答一个关键问题:这个点属于什么部件?

语义分割的任务,就是给点云中的每个点贴上一个类别标签。它不像普通图像检测那样画一个框框住“窗户”,而是精细到逐点判断:“这个点是窗框”“这个点是玻璃”“这个点是墙面”。在深度学习时代,常用的做法是让神经网络为每个点计算它在各类别上的得分,再经过 Softmax 函数转换成概率,最后取概率最大的类别作为预测结果:

其中 \( z_{i,c} \) 是网络为第 \( i \) 个点在第 \( c \) 类上的原始得分,\( C \) 是类别总数。

在建筑领域,分割出的标签会进一步映射到 BIM(建筑信息模型)的构件类型上。这样,激光雷达扫描得到的点云就不再是一堆坐标,而是一份“会说话的数字化建筑清单”。

y^i=arg⁡max⁡cezi,c∑k=1Cezi,k\displaystyle \hat{y}_i = \arg\max_{c} \frac{e^{z_{i,c}}}{\sum_{k=1}^{C} e^{z_{i,k}}}
语义分割让点云从“几何形状”升级为“建筑构件”。电脑终于知道哪些点组成一扇门、哪些点组成一段管道,数字模型才谈得上被计算机理解和操作。
  1. 输出原始得分神经网络为每个点计算出各个类别的初始打分:
    zi,cz_{i,c}
  2. 概率归一化对所有类别的得分取指数,再除以总和,让输出变成总和为 1 的概率分布:
    softmax(zi)c=ezi,c∑k=1Cezi,k\text{softmax}(z_{i})_c = \frac{e^{z_{i,c}}}{\sum_{k=1}^{C} e^{z_{i,k}}}
  3. 选择最大概率概率最高的类别就是该点的语义标签:
    y^i=arg⁡max⁡csoftmax(zi)c\hat{y}_i = \arg\max_{c} \text{softmax}(z_{i})_c

数字孪生

拼图拼完、皮肤蒙好、标签贴齐,一栋老房子的“数字化双胞胎”终于诞生了。但这只是静态的雕塑。真正的数字孪生,不仅外形一模一样,还连着实时数据——门是开是关、灯是亮是灭、车间里的机器转速多少,都能在模型上同步体现。它就像给物理世界配了一个会呼吸的影子。

要把扫描得到的点云放进数字孪生场景,离不开坐标变换。扫描仪在某个位置看到的点,要转换到世界坐标系中,才能和 BIM 模型、传感器数据对齐。这个变换通常表示为旋转加平移:

其中 \( p_{\text{scan}} \) 是扫描仪坐标系中的点,\( R \) 和 \( t \) 将局部坐标映射到全局世界坐标。

从一束激光到一座数字孪生工厂,LiDAR 扫描重建走完了“点—面—语义—空间”的完整旅程。它让物理世界第一次可以被精确地复制、搜索、模拟和预测,也为未来的空间计算铺好了可量化的基石。

pworld=Rpscan+t\displaystyle p_{\text{world}} = R p_{\text{scan}} + t
数字孪生 = 几何模型 + 实时数据 + 仿真算法 + 交互接口。LiDAR 扫描提供了“骨架和外形”,而空间计算的魔力在于,让这些几何体在真实世界的坐标系里彼此关联、响应变化。
  1. 旋转变换先把扫描坐标系下的点按旋转矩阵 \( R \) 调整姿态,使它与世界坐标系的轴向一致:
    protated=Rpscanp_{\text{rotated}} = R p_{\text{scan}}
  2. 平移对齐再加上平移向量 \( t \),把点从局部原点搬到世界坐标原点对应的位置:
    pworld=protated+tp_{\text{world}} = p_{\text{rotated}} + t
  3. 应用到整个点云对点云中的所有点执行同样的变换,整个场景便获得了统一的空间坐标基准:
    Pworld=RPscan+t,P∈Rn×3P_{\text{world}} = R P_{\text{scan}} + t, \qquad P \in \mathbb{R}^{n \times 3}

AI 应用场景

老建筑BIM逆向建模

阶段:点云生成 → 配准 → 网格重建 → 语义分割 → BIM映射

解决的问题:老建筑没有电子图纸,传统方式靠人工拉卷尺测量,又慢又不准。AI 使用 LiDAR 扫描整栋楼,生成百万级点云,再逐步重建为精确的 BIM 模型,为翻修改造、管线布置提供毫米级依据。

具体案例:某百年历史建筑改造前,工程师用背包式 LiDAR 扫完三层楼,耗时仅半天,得到 1.2 亿点;再经过配准和网格重建,在 BIM 软件中生成带墙体、门窗、管道的可编辑模型,为结构加固方案节省了 70% 的测绘时间。

智慧工厂数字孪生

阶段:多视角点云配准 → 网格重建 → 实时数据接入

解决的问题:工厂设备密集、产线复杂,传统布局图纸难以反映现状变化。AI 通过 LiDAR 扫描车间并生成数字孪生体,再接入设备传感器实时数据,让管理人员在虚拟工厂中就能监控真实产线。

具体案例:某汽车零部件工厂每年用 LiDAR 扫描一次车间,生成了包含 200 多台设备的数字孪生模型;系统接入温度、振动传感器后,管理人员可在三维场景中定位异常设备,换产规划的会议时间从一周缩短到一天。

室内AR导航与空间计算

阶段:LiDAR实时扫描建图 → 空间定位 → 视觉叠加

解决的问题:商场、机场、地下车库 GPS 信号弱,传统导航失效。AI 利用 LiDAR 实时扫描周围环境,生成轻量点云地图,再通过特征匹配确定设备自身位置,为 AR 眼镜和手机提供厘米级室内导航。

具体案例:某大型机场部署 LiDAR 导航系统,旅客用手机在候机厅扫一扫,AR 箭头就会叠加在真实地面上,引导旅客前往登机口;系统同时感知周围人群密度,在客流高峰自动推荐人少路线。

Python 演示

python59 行
import numpy as np def generate_wall_points(length=10.0, width=8.0, height=3.0, n=1000):    """模拟 LiDAR 扫描房间墙面,生成带噪声的点云"""    pts = []    for _ in range(n):        x = float(np.random.uniform(-length/2, length/2))        y = float(np.random.uniform(-width/2, width/2))        z = float(np.random.uniform(0, height))        wall = np.random.randint(4)        if wall == 0:            pts.append((x, -width/2, z))        elif wall == 1:            pts.append((x, width/2, z))        elif wall == 2:            pts.append((-length/2, y, z))        else:            pts.append((length/2, y, z))    pts = np.array(pts)    return pts + np.random.normal(0, 0.03, pts.shape) def best_fit_transform(src, dst):    ms = src.mean(axis=0)    md = dst.mean(axis=0)    H = (src - ms).T @ (dst - md)    U, _, Vt = np.linalg.svd(H)    R = Vt.T @ U.T    if np.linalg.det(R) < 0:        Vt[-1, :] *= -1        R = Vt.T @ U.T    t = md - R @ ms    return R, t def icp(source, target, max_iter=15):    T = np.eye(4)    src = source.copy()    for _ in range(max_iter):        dist, idx = cKDTree(target).query(src)        R, t = best_fit_transform(src, target[idx])        src = (R @ src.T).T + t        T[:3, :3] = R @ T[:3, :3]        T[:3, 3] = R @ T[:3, 3] + t        if np.mean(dist) < 0.02:            break    return T, src if __name__ == '__main__':    from scipy.spatial import cKDTree    src_pts = generate_wall_points(n=800)    tgt_pts = generate_wall_points(n=1200)    theta = 0.3    R0 = np.array([[np.cos(theta), -np.sin(theta), 0],                   [np.sin(theta), np.cos(theta), 0],                   [0, 0, 1]])    t0 = np.array([1.5, -0.8, 0.2])    src_pts = (R0 @ src_pts.T).T + t0    T, aligned = icp(src_pts, tgt_pts)    dist, idx = cKDTree(tgt_pts).query(aligned)    print("配准后平均点云误差: %.4f m" % np.mean(dist))
目的:生成两片模拟 LiDAR 点云,再通过 ICP 迭代最近点算法自动对齐,演示多视角扫描配准的核心流程。
  1. def generate_wall_points(...)模拟 LiDAR 扫描房间四面墙,生成含高斯噪声的三维点云。
  2. best_fit_transform(src, dst)用 SVD 分解求解两个点集之间的最优旋转和平移。
  3. H = (src - ms).T @ (dst - md)先让两片点云都减去各自的中心,再计算协方差矩阵。
  4. if np.linalg.det(R) < 0检测旋转矩阵是否包含反射,若有则翻转最后一行来修正。
  5. cKDTree(target).query(src)为每个源点快速找到目标点云中的最近邻点,这是 ICP 的“对应点”环节。
  6. T[:3, :3] = R @ T[:3, :3]将本次迭代的旋转矩阵累加到总体变换矩阵中。
  7. if np.mean(dist) < 0.02当平均最近点距离小于 2 厘米时,认为配准已收敛。

常见误区

误区我刚拿到扫描仪,采完点云导出文件,不就能直接拖进游戏引擎用了吗?为什么还要做什么配准和网格重建?

正解点云只是一堆离散的坐标点,没有连续的表面、没有拓扑结构,游戏引擎和CAD软件无法直接使用。必须经过网格重建生成三角面片后,它才成为“模型”。另外,单次扫描往往只覆盖物体一部分,还要多视角配准才能得到完整几何。点云好比一堆零散的拼图块,离“成品拼图”还有几步。

为何常见:很多LiDAR演示软件会实时渲染出密集的点云,视觉上已经很接近立体模型,让人误以为点云就是最终结果。

误区我请人用了最高精度的扫描仪,每秒几百万个点,这么多数据肯定能重建出完美模型,再贵也值。

正解点云密度高会带来两个问题:一是数据量过大会把内存和网络带宽压垮,二是过密点云中的噪声会被放大,反而让网格表面出现大量毛刺。工程上需要根据项目精度需求合理采样,常常通过体素降采样,把太密的区域抽稀、太稀疏的区域补扫。

为何常见:人们容易以为“数据多=信息多=结果好”,忽略了处理成本与噪声代价之间的平衡。

误区ICP这么强大,我只要把两片点云输入进去,它总会自动找对位置吧?开局随便摆就行。

正解ICP本质上是局部优化,它只有在初始位置已经很接近真实对齐时才能收敛到正确结果。如果两片点云初始相差太大,ICP会陷入局部最优,把墙拼到地板上还自我感觉良好。实际工程中,要先通过标靶球、特征点或人工方式做粗配准,给ICP一个“大致不错”的起跑线。

为何常见:许多教程展示的都是已经初对齐后的数据,掩盖了“初始化”这一步的巨大影响。

误区语义分割不就是把点云里的一扇门圈出来框个颜色吗?跟目标检测差不多吧。

正解语义分割是逐点分类,每个点都要被赋予一个类别标签,输出的是“点是门、点是窗”的精细结果;而目标检测输出的是矩形包围盒,盒内还混着背景和其他物体。对建筑模型而言,只有逐点分类才能准确计算墙面面积、门窗数量,乃至驱动BIM构件识别。

为何常见:二维图像中的目标检测框太过深入人心,让人容易把“框选物体”的思维套用到三维点云上。

误区我把建筑扫描好了,网格也重建完了,放进VR里很酷炫,这就是数字孪生了吧?

正解数字孪生强调物理世界与虚拟模型之间的双向数据流动:模型要接收真实传感器数据,实时更新状态,并能反过来支持仿真和决策。静态网格模型只是“数字雕刻”,不是“数字孪生”。LiDAR扫描是孪生体的骨架,而数据和算法才是让它活起来的血液。

为何常见:商业演示中常见的“写实三维漫游”让大众误以为高精度模型就等于数字孪生,忽略了数据联动这一核心特征。

面试题

Q1. LiDAR 测量距离所依赖的核心物理量是什么?

单选题 · easy

  • A.激光脉冲的颜色
  • B.激光脉冲的飞行时间← 正确答案
  • C.激光器的发射频率
  • D.环境的温度与湿度

答案:B。LiDAR 通过记录激光从发射到接收的时间差,再乘以光速来求距离。颜色、频率和温度都不直接参与测距计算,因此选 B。

Q2. 激光雷达计算单程距离的正确公式是?

单选题 · easy

  • A.\( d = c \cdot \Delta t \)
  • B.\( d = c \cdot \Delta t / 2 \)← 正确答案
  • C.\( d = c / \Delta t \)
  • D.\( d = 2 c \cdot \Delta t \)

答案:B。光速乘以时间得到的是往返总距离,所以必须除以 2 才是发射点到目标物的单程距离,故选 B。

Q3. LiDAR 点云中的“强度”属性主要指什么?

单选题 · easy

  • A.点的三维坐标大小
  • B.目标表面对激光的反射强弱← 正确答案
  • C.扫描仪的旋转速度
  • D.点云文件的内存占用

答案:B。强度值反映目标材质对激光的反射能力,金属强、玻璃弱,常用于辅助表面分类,故选 B。

Q4. ICP 算法的核心目标是什么?

单选题 · mid

  • A.增加点云中的点数量
  • B.迭代求解旋转和平移,使两片点云误差最小← 正确答案
  • C.删除点云中的全部离群点
  • D.将点云直接转换为 BIM 模型

答案:B。ICP 通过反复找最近邻点并求解变换,最小化源点云到目标点云的距离误差。它的输出是旋转和平移矩阵,故选 B。

Q5. 两片点云进行 ICP 精配准之前,通常先要做哪一步?

单选题 · mid

  • A.直接随机旋转
  • B.粗配准以提供初始位姿← 正确答案
  • C.把所有点统一为白色
  • D.删除所有非墙面点

答案:B。ICP 是局部优化,初值不准很容易陷入局部最优。工程上常用标靶或特征点做粗配准,给 ICP 一个可靠起点,故选 B。

Q6. 点云语义分割本质上属于哪类机器学习任务?

单选题 · mid

  • A.回归任务
  • B.逐点分类任务← 正确答案
  • C.聚类任务
  • D.生成任务

答案:B。语义分割要为每个点输出离散类别标签(如墙、门、窗),本质是分类任务,故选 B。

Q7. 下列哪种方法常用于点云网格重建?

单选题 · hard

  • A.线性回归拟合直线
  • B.泊松表面重建← 正确答案
  • C.指数平滑滤波
  • D.欧拉角姿态估计

答案:B。泊松表面重建通过求解隐式函数场提取等值面,是点云重建连续网格的经典方法。线性回归和指数平滑都不适合生成三维表面,故选 B。

Q8. LiDAR 点云中常见的属性包括哪些?

多选题 · mid

  • A.三维坐标 (x, y, z)← 正确答案
  • B.反射强度← 正确答案
  • C.采集时间戳← 正确答案
  • D.CPU 缓存信息

答案:ABC。每个点都包含空间坐标、反射强度和采集时刻,这些是后续配准和分割的依据。CPU 缓存是硬件内部信息,与点云无关。

Q9. 关于 ICP 配准算法,下列说法正确的有哪些?

多选题 · hard

  • A.需要较好的初始位姿才能保证收敛← 正确答案
  • B.可能陷入局部最优← 正确答案
  • C.要求两片点云存在重叠区域← 正确答案
  • D.点云必须完全无噪声

答案:ABC。ICP 依赖初始位姿,且在多峰分布时容易陷入局部最优;它通过重叠区域的最近邻对应来求解变换,因此必须有重叠。轻微噪声可通过迭代或滤波容忍,零噪声不是前提。

Q10. 构建一座智慧工厂的数字孪生,通常包含哪些关键环节?

多选题 · extreme

  • A.多视角 LiDAR 点云配准← 正确答案
  • B.网格重建与语义分割← 正确答案
  • C.接入设备实时传感器数据← 正确答案
  • D.全程手工建模且无需自动扫描

答案:ABC。数字孪生既要通过 LiDAR 扫描重建静态几何,也要接入实时数据实现动态联动。全程手工建模不仅效率低,而且无法精确反映真实空间和变化状态。