Files
massive-cloud/alg/delivery_v1.2.1/underframe_deflection/tools/noise_simulation
lipan 29f1d45d66 feat: 算法升级、整车配准集成与性能分析文档
算法更新: delivery v1.2.1、平整度v1.5、测距v2.2、整车配准v1.3
适配器: vehicle-registration 新增、各算法 manifest 和 adapter 更新
后端: taskCadFiles/source 字段迁移、derivedPointClouds 注册、取消任务联动
前端: ElapsedTime 时长显示、两步算法流程、canRun 逻辑修复
文档: 新增5份算法性能分析报告
2026-06-25 08:22:20 +00:00
..

点云加噪模拟工具(独立,与主算法无关)

给点云每个点加小幅随机高斯噪声,模拟真实扫描仪的抖动。 与挠度测量算法完全解耦,仅用于生成测试数据 / 评估算法对噪声的鲁棒性。

噪声量级

参考:约 2m × 2m 的扫描区域,真实噪声约 50–80 微米(0.05–0.08 mm)每坐标。 噪声沿 x/y/z 三个轴独立施加(各向同性高斯)。

用法

# 随机 σ ∈ [50, 80] um(默认)
python tools/noise_simulation/add_noise.py  input.ply  output_noisy.ply

# 固定 σ = 65 um
python tools/noise_simulation/add_noise.py  input.ply  output_noisy.ply --sigma-um 65

# 指定范围 + 固定种子(可复现)
python tools/noise_simulation/add_noise.py  input.ply  output_noisy.ply \
    --sigma-um-min 50 --sigma-um-max 80 --seed 42
参数 默认 说明
--sigma-um 无 固定噪声标准差(微米)。不给则在区间内随机取一个值
--sigma-um-min / --sigma-um-max 50 / 80 随机 σ 的区间(微米)
--seed 0 随机种子(可复现)
--chunk 4000000 流式分块大小(顶点数),支持超大文件

输入支持 ASCII / binary PLY;输出统一为 binary little-endian PLY(xyz float32)。 12GB 级大文件流式处理,内存占用恒定。

典型流程(评估噪声对挠度的影响)

# 1) 给整车点云加噪
python tools/noise_simulation/add_noise.py train.ply train_noisy.ply --sigma-um 65

# 2) 把加噪后的点云喂给算法
underframe-measure --input-cloud train_noisy.ply \
  --left-roi roi_left_beam.json --right-roi roi_right_beam.json \
  --out-dir out_noisy/

理论挠度为 0 的样本,加 ~65um 噪声后挠度测量结果应仍很小(远小于 mm 级公差), 用于验证算法对扫描噪声的鲁棒性。