跳到主要内容

Reconstruct3D - 三维重建

概述

Reconstruct3D 接口用于从空三结果生成二维和三维模型。通常与 ReconstructAT 配合使用,完成完整的重建流程。该接口支持多种输出格式、分块处理和精细的参数控制。

适用场景
  • 从空三结果生成三维模型
  • 生成正射影像和数字表面模型
  • 大规模数据的分块重建
  • 需要特定输出格式

接口调用

命令行调用

reconstruct_full_engine.exe -reconstruct_type 2 -task_json 3d_config.json

参数说明

  • reconstruct_type: 固定为 2(表示 Reconstruct3D)
  • task_json: 配置文件路径

配置参数

必需参数

参数名类型说明
license_idintSDK 许可证代码,统一为 9200
working_dirstring工作目录(必须与空三相同)
gdal_folderstringGDAL 数据路径
input_image_typeint图像类型:1=RGB,2=多光谱,3=红外
image_meta_dataJSON Array输入图像的元数据信息
resolution_levelint重建精度:1=高精度,2=中精度,3=低精度

可选参数

基础参数

参数名类型默认值说明
reconstruct_modeint0重建模式:0=一般场景,1=环绕场景,2=电力线场景
min_avali_memory_sizedouble0最小可用内存(GB),用于控制分块数量
fast_modeboolfalse快速模式,提高效率但降低细节
keep_undistort_imagesboolfalse是否保留去畸变图像

输出格式控制

参数名类型默认值说明
generate_osgbboolfalse生成 OSGB 格式三维模型
generate_3d_tilesboolfalse生成 3D Tiles (b3dm) 格式
generate_lasboolfalse生成 LAS 格式点云
generate_pc_plyboolfalse生成 PLY 格式点云
generate_pc_osgbboolfalse生成 OSGB 格式点云 LOD
generate_pc_pntsboolfalse生成 pnts 格式点云 LOD
generate_objboolfalse生成 OBJ 格式纹理网格
generate_plyboolfalse生成 PLY 格式纹理网格
generate_geotiffboolfalse生成 GeoTIFF 格式正射影像
generate_tile_2Dboolfalse对正射影像进行瓦片切分
generate_2D_from_3D_modelboolfalse从三维模型生成二维正射影像

高级参数

参数名类型默认值说明
use_draco_compressionbooltrue3D Tiles 是否使用 Draco 压缩
tex_image_type_3dtilesint03D Tiles 纹理格式:0=JPEG,1=WebP
use_gcj02boolfalse是否将正射影像瓦片转换为 GCJ02 坐标系
coordinate_system_3dJSON-输出三维结果的坐标系
coordinate_system_2dJSON-输出二维结果的坐标系
roi_for_2dJSON-二维重建的感兴趣区域
roi_for_3dJSON-三维重建的感兴趣区域
roi_coordinate_systemJSONWGS84ROI 的坐标系

数据结构说明

相机元数据

{
"id": 1, // 相机唯一 ID
"meta_data": {
"camera_name": "Camera-1", // 相机名称
"projection_model": 0, // 投影模型(可选)
"width": 4000, // 传感器宽度(像素)
"height": 3000, // 传感器高度(像素)
"parameters": [ // 相机内参(10元素数组)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}

ROI(感兴趣区域)

{
"boundary": [ // 2D 多边形边界(逆时针)
[x1, y1],
[x2, y2],
[x3, y3]
// ...
],
"min_z": 100.0, // 最小高程(可选)
"max_z": 500.0 // 最大高程(可选)
}

输出坐标系设置

{
"coordinate_system_3d": {
"type": 3, // 投影坐标系
"epsg_code": 32650 // UTM Zone 50N
},
"coordinate_system_2d": {
"type": 2, // 地理坐标系
"epsg_code": 4326 // WGS84
}
}

完整配置示例

基础三维重建

{
"license_id": 9200,
"working_dir": "C:/Projects/3D_Task",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"image_meta_data": [
{
"id": 1,
"path": "C:/Images/DJI_0001.JPG"
},
{
"id": 2,
"path": "C:/Images/DJI_0002.JPG"
}
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_las": true,
"generate_geotiff": true
}

高精度重建配置

{
"license_id": 9200,
"working_dir": "C:/Projects/HighQuality_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1, // 最高精度
"reconstruct_mode": 0, // 一般场景
"image_meta_data": [...],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_obj": true,
"generate_geotiff": true,
"generate_tile_2D": true,
"coordinate_system_3d": {
"type": 3,
"epsg_code": 32650 // UTM 50N
},
"coordinate_system_2d": {
"type": 2,
"epsg_code": 4326 // WGS84
}
}

大规模数据分块重建

{
"license_id": 9200,
"working_dir": "C:/Projects/LargeScale_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"min_avali_memory_size": 16.0, // 限制每块使用最大 16GB 内存
"image_meta_data": [...],
"roi_for_3d": {
"boundary": [
[114.12, 22.12],
[114.13, 22.12],
[114.13, 22.13],
[114.12, 22.13]
],
"min_z": 0,
"max_z": 500
},
"generate_3d_tiles": true,
"use_draco_compression": true,
"tex_image_type_3dtiles": 1 // 使用 WebP 压缩纹理
}

特殊场景配置

环绕物体重建

{
"license_id": 9200,
"working_dir": "C:/Projects/Object_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1,
"reconstruct_mode": 1, // 环绕场景模式
"image_meta_data": [...],
"generate_obj": true,
"generate_ply": true,
"coordinate_system_3d": {
"type": 1 // Local 坐标系
}
}

仅生成正射影像

{
"license_id": 9200,
"working_dir": "C:/Projects/Ortho_Only",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"image_meta_data": [...],
"generate_geotiff": true,
"generate_tile_2D": true,
"generate_2D_from_3D_model": true,
"roi_for_2d": {
"boundary": [...] // 指定正射影像范围
},
"coordinate_system_2d": {
"type": 3,
"epsg_code": 32650
}
}

输出结果

三维模型输出 (products/3D/)

  • model-osgb/ - OSGB 格式模型和 LOD
  • model-b3dm/ - 3D Tiles 格式(含 tileset.json)
  • model-obj/ - OBJ 格式模型和纹理
  • point-las/ - LAS 格式点云
  • point-ply/ - PLY 格式点云
  • point-osgb/ - OSGB 格式点云 LOD
  • point-pnts/ - 3D Tiles 点云格式

二维产品输出 (products/2D/)

  • geotiffs/ - GeoTIFF 格式正射影像和 DSM
  • dom_tiles/ - 正射影像瓦片
  • dsm_tiles/ - 数字表面模型瓦片

中间结果 (milestones/)

  • undistorted/ - 去畸变图像(如果保留)
  • depth_maps/ - 深度图
  • mesh/ - 中间网格数据

分辨率等级说明

等级说明相对处理时间适用场景
1超高精度3-5x专业测绘、文物保护
2高精度1x一般工程应用
3快速预览0.2-0.3x快速验证、预览

精度与效率平衡

  • resolution_level=1:最高几何细节和纹理清晰度
  • resolution_level=2:平衡质量和效率,推荐大多数应用
  • resolution_level=3:快速处理,适合初步验证

最佳实践

1. 内存管理

对于大规模数据:

{
"min_avali_memory_size": 24.0, // 根据可用内存设置
"resolution_level": 2 // 考虑降低精度
}

2. 输出格式选择

  • Web 展示:使用 3D Tiles + Draco 压缩
  • GIS 分析:生成 GeoTIFF 和 LAS
  • 专业软件:使用 OSGB 格式
  • 编辑处理:导出 OBJ 或 PLY

3. 坐标系设置

  • 三维模型通常使用投影坐标系(如 UTM)
  • 正射影像可根据需求选择地理或投影坐标系
  • Web 应用考虑使用 WGS84

4. ROI 使用

  • 使用空三生成的 ROI 作为基础
  • 可根据需求调整范围
  • 分别设置 2D 和 3D 的 ROI

性能优化

快速处理

{
"resolution_level": 3,
"fast_mode": true,
"generate_3d_tiles": true, // 仅生成必要格式
"use_draco_compression": true
}

高质量输出

{
"resolution_level": 1,
"fast_mode": false,
"keep_undistort_images": true, // 保留中间结果供检查
"generate_obj": true, // 生成高质量网格
"generate_geotiff": true
}

常见问题

Q: 提示"找不到空三结果"

A: 确保:

  • working_dir 与 ReconstructAT 使用的相同
  • 空三已成功完成
  • milestones 目录包含 mvs.xml 文件

Q: 内存不足错误

A:

  • 设置 min_avali_memory_size 限制内存使用
  • 降低 resolution_level
  • 使用 DivideTiles 进行预分块

Q: 输出坐标不正确

A:

  • 检查 coordinate_system_3d/2d 设置
  • 确认 ROI 坐标系与数据匹配
  • 验证 GDAL 数据路径正确

下一步


提示:Reconstruct3D 提供了丰富的输出选项。建议先用低精度快速验证,再进行高质量重建。