Files
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
..

geometry-measure 打包说明

这个目录只负责打包,不存放数据集;仅包含已接入统一 CLI 的必要归档工作流。

本地开发安装

在项目根目录执行:

python packaging/build_package.py
pip install -e packaging/build
geometry-measure --help

也可以进入 packaging/ 后执行:

python build_package.py
pip install -e build
geometry-measure --help

构建 wheel

需要先安装构建工具:

pip install build

然后执行:

python packaging/build_package.py
python -m build packaging/build

构建产物会出现在:

packaging/build/dist/

运行示例

从项目根目录运行:

geometry-measure contour --pointcloud datasets/PointCloud/11.ply --cad datasets/CAD/11.step --no-visualize
geometry-measure contour --cad datasets/CAD/11.step --pointcloud datasets/Noise_PointCloud/11_noisy.ply --save vis/11_contour.ply --excel-output --no-visualize
geometry-measure registration --pointcloud datasets/Noise_PointCloud/11_noisy.ply --mesh datasets/Mesh/11.stl --no-visualize
geometry-measure denoise --pointcloud datasets/PointCloud/11.ply --noise-std 4 --no-visualize

contour 是轮廓/平整度/平面度评估的统一入口,本质上是点云到 STEP CAD 或 Mesh 的距离计算。需要保存距离热力图时传 --save,需要保存 Excel 时传 --excel-output。如需单独指定网格,可显式传入 --mesh datasets/Mesh/11.stl。 contour --excel-output 不带值时会保存 excel/contour.xlsx;只传文件名时会自动放到 excel/ 文件夹。Excel 默认读取 excel/测量结果.xlsx 模板,按任务号迁移对应行,表头保持模板一致,只写入本次 测量结果 和 测量结论。可用 --result-template 指定其它模板。 contour 也支持批量运行:--tasks 13,31,40 执行指定任务,其中 13 会自动匹配 13_1、13_2 等样本;--tasks 13_1 只运行单个样本。--all 优先执行 datasets/Mesh 下全部样本,没有 Mesh 时退回 datasets/CAD 下全部 STEP;批量模式用 --pointcloud-kind noise|clean 选择加噪点云或干净点云。所有成功热力图会按原始坐标额外保存成一个合并 PLY:未传 --save 时为 vis/combined_contour.ply,--save vis/contour 时为 vis/contour/combined_contour.ply。合并点云默认加入 datasets/train/train_2_10M.ply,可用 --combined-context-pointcloud 切换为 train_2_100M.ply 或 train_2_1T.ply。未传 --no-visualize 时,合并结果也会按原始坐标在一个 Open3D 窗口展示。

使用配置文件:

geometry-measure --config config.yaml full --no-visualize

如果使用打包生成的默认配置,构建脚本会把默认路径改为:

datasets/CAD/11.step
datasets/Mesh/11.stl
datasets/PointCloud/11.ply
datasets/Noise_PointCloud/11_noisy.ply

数据要求

wheel 不包含 datasets/,运行时需要自己提供数据路径。建议保持以下结构:

datasets/
  CAD/                 # STEP CAD,例如 11.step
  Mesh/                # STL/OBJ/PLY Mesh,例如 11.stl
  PointCloud/          # 原始点云 PLY,例如 11.ply
  Noise_PointCloud/    # 加噪或待配准点云 PLY,例如 11_noisy.ply

CAD、Mesh 和点云需要处在同一坐标系和同一单位下。示例数据按毫米量级处理。contour 默认认为输入点云已经与参考模型对齐。

大规模点云可能运行较慢。可以通过配置文件调整:

evaluation:
  chunk_size: 2048
  triangle_chunk_size: 4096
  cad_mesh_deflection: 0.1

chunk_size 控制点云分块,triangle_chunk_size 控制三角面分块,cad_mesh_deflection 控制 STEP 三角化精度。

输出建议

建议把日志和可视化产物放到项目根目录的 vis/:

mkdir -p vis
geometry-measure curvature --pointcloud datasets/PointCloud/11.ply --save vis/11_curvature.ply --no-visualize
geometry-measure contour --cad datasets/CAD/11.step --pointcloud datasets/Noise_PointCloud/11_noisy.ply --save vis/11_contour.ply --excel-output 11_contour.xlsx --no-visualize
geometry-measure contour --tasks 13,31,40 --data-root datasets --pointcloud-kind noise --save vis/contour --excel-output selected_contour.xlsx --no-visualize

如果需要保存命令行指标,可以使用重定向:

geometry-measure contour --pointcloud datasets/PointCloud/11.ply --cad datasets/CAD/11.step --no-visualize > vis/contour.log 2>&1

CAD 转换依赖

基础安装不强制安装 CAD 转换依赖。需要使用 cad2mesh 时,建议使用项目根目录的 environment.yml 创建或更新独立 Python 3.10 环境:

conda env create -f environment.yml
conda activate point-porj
pip install -r requirements.txt

如果环境已存在,则执行:

conda env update -n point-porj -f environment.yml
pip install git+https://github.com/AutodeskAILab/occwl

pythonocc-core 在很多平台无法通过 pip 安装,请使用 conda 方式。pythonocc-core=7.5.1 不支持 Python 3.12,如果 base 环境被固定为 Python 3.12,请新建 Python 3.10 环境。

说明

  • datasets/ 不会打进 wheel,请通过命令行参数或配置文件指定本地数据路径。
  • 只有 translate-align 依赖的归档脚本会打进 wheel,其他 archive/ 实验脚本不会打包。
  • 根目录源码保持原样;packaging/build_package.py 会生成临时标准包 geometry_measure。