Files
massive-cloud/alg/平整度、平面度、轮廓测量v1.5/packaging/README.md
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

140 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# geometry-measure 打包说明
这个目录只负责打包,不存放数据集;仅包含已接入统一 CLI 的必要归档工作流。
## 本地开发安装
在项目根目录执行:
```bash
python packaging/build_package.py
pip install -e packaging/build
geometry-measure --help
```
也可以进入 `packaging/` 后执行:
```bash
python build_package.py
pip install -e build
geometry-measure --help
```
## 构建 wheel
需要先安装构建工具:
```bash
pip install build
```
然后执行:
```bash
python packaging/build_package.py
python -m build packaging/build
```
构建产物会出现在:
```text
packaging/build/dist/
```
## 运行示例
从项目根目录运行:
```bash
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 窗口展示。
使用配置文件:
```bash
geometry-measure --config config.yaml full --no-visualize
```
如果使用打包生成的默认配置,构建脚本会把默认路径改为:
```text
datasets/CAD/11.step
datasets/Mesh/11.stl
datasets/PointCloud/11.ply
datasets/Noise_PointCloud/11_noisy.ply
```
## 数据要求
wheel 不包含 `datasets/`,运行时需要自己提供数据路径。建议保持以下结构:
```text
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` 默认认为输入点云已经与参考模型对齐。
大规模点云可能运行较慢。可以通过配置文件调整:
```yaml
evaluation:
chunk_size: 2048
triangle_chunk_size: 4096
cad_mesh_deflection: 0.1
```
`chunk_size` 控制点云分块,`triangle_chunk_size` 控制三角面分块,`cad_mesh_deflection` 控制 STEP 三角化精度。
## 输出建议
建议把日志和可视化产物放到项目根目录的 `vis/`:
```bash
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
```
如果需要保存命令行指标,可以使用重定向:
```bash
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 环境:
```bash
conda env create -f environment.yml
conda activate point-porj
pip install -r requirements.txt
```
如果环境已存在,则执行:
```bash
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`。