Saltar al contenido principal

Reconstruct3D - Reconstrucción 3D

Resumen

La interfaz Reconstruct3D se utiliza para generar modelos 2D y 3D a partir de resultados de triangulación aérea. Normalmente se usa con ReconstructAT para completar el flujo de trabajo de reconstrucción completo. Esta interfaz admite múltiples formatos de salida, procesamiento de bloques y control de parámetros de grano fino.

Escenarios Aplicables
  • Generar modelos 3D a partir de resultados de triangulación aérea
  • Generar ortofotos y modelos digitales de superficie
  • Reconstrucción de bloques para datos a gran escala
  • Necesidad de formatos de salida específicos

Uso de la Interfaz

Uso de Línea de Comandos

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

Descripción de Parámetros

  • reconstruct_type: Fijo como 2 (indica Reconstruct3D)
  • task_json: Ruta del archivo de configuración

Parámetros de Configuración

Parámetros Requeridos

ParámetroTipoDescripción
license_idintCódigo de licencia SDK, unificado como 9200
working_dirstringDirectorio de trabajo (debe ser igual al de triangulación aérea)
gdal_folderstringRuta de datos GDAL
input_image_typeintTipo de imagen: 1=RGB, 2=Multiespectral, 3=Infrarrojo
image_meta_dataJSON ArrayInformación de metadatos de imágenes de entrada
resolution_levelintPrecisión de reconstrucción: 1=Alta precisión, 2=Precisión media, 3=Baja precisión

Parámetros Opcionales

Parámetros Básicos

ParámetroTipoPor DefectoDescripción
reconstruct_modeint0Modo de reconstrucción: 0=Escena general, 1=Escena circundante, 2=Escena de línea eléctrica
min_avali_memory_sizedouble0Tamaño mínimo de memoria disponible (GB), usado para controlar cantidad de bloques
fast_modeboolfalseModo rápido, mejora la eficiencia pero reduce detalles
keep_undistort_imagesboolfalseSi mantener imágenes sin distorsión

Control de Formato de Salida

ParámetroTipoPor DefectoDescripción
generate_osgbboolfalseGenerar modelo 3D formato OSGB
generate_3d_tilesboolfalseGenerar formato 3D Tiles (b3dm)
generate_lasboolfalseGenerar nube de puntos formato LAS
generate_pc_plyboolfalseGenerar nube de puntos formato PLY
generate_pc_osgbboolfalseGenerar nube de puntos LOD formato OSGB
generate_pc_pntsboolfalseGenerar nube de puntos LOD formato pnts
generate_objboolfalseGenerar malla texturizada formato OBJ
generate_plyboolfalseGenerar malla texturizada formato PLY
generate_geotiffboolfalseGenerar ortofoto formato GeoTIFF
generate_tile_2DboolfalseRealizar corte de mosaicos en ortofoto
generate_2D_from_3D_modelboolfalseGenerar ortofoto 2D a partir de modelo 3D

Parámetros Avanzados

ParámetroTipoPor DefectoDescripción
use_draco_compressionbooltrueSi usar compresión Draco para 3D Tiles
tex_image_type_3dtilesint0Formato de textura 3D Tiles: 0=JPEG, 1=WebP
use_gcj02boolfalseSi convertir mosaicos de ortofoto a sistema de coordenadas GCJ02
coordinate_system_3dJSON-Sistema de coordenadas para salida 3D
coordinate_system_2dJSON-Sistema de coordenadas para salida 2D
roi_for_2dJSON-Región de interés para reconstrucción 2D
roi_for_3dJSON-Región de interés para reconstrucción 3D
roi_coordinate_systemJSONWGS84Sistema de coordenadas para ROI

Descripción de Estructura de Datos

Metadatos de Cámara

{
"id": 1, // ID único de cámara
"meta_data": {
"camera_name": "Camera-1", // Nombre de la cámara
"projection_model": 0, // Modelo de proyección (opcional)
"width": 4000, // Ancho del sensor (píxeles)
"height": 3000, // Alto del sensor (píxeles)
"parameters": [ // Intrínsecos de cámara (array de 10 elementos)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}

ROI (Región de Interés)

{
"boundary": [ // Límite de polígono 2D (sentido antihorario)
[x1, y1],
[x2, y2],
[x3, y3]
// ...
],
"min_z": 100.0, // Elevación mínima (opcional)
"max_z": 500.0 // Elevación máxima (opcional)
}

Configuraciones de Sistema de Coordenadas de Salida

{
"coordinate_system_3d": {
"type": 3, // Sistema de coordenadas proyectadas
"epsg_code": 32650 // UTM Zone 50N
},
"coordinate_system_2d": {
"type": 2, // Sistema de coordenadas geográficas
"epsg_code": 4326 // WGS84
}
}

Ejemplos de Configuración Completa

Reconstrucción 3D Básica

{
"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
}

Configuración de Reconstrucción de Alta Precisión

{
"license_id": 9200,
"working_dir": "C:/Projects/HighQuality_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1, // Máxima precisión
"reconstruct_mode": 0, // Escena general
"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
}
}

Reconstrucción de Bloques de Datos a Gran Escala

{
"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, // Limitar cada bloque a máximo 16GB memoria
"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 // Usar compresión de textura WebP
}

Configuración de Escena Especial

Reconstrucción de Objeto Circundante

{
"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, // Modo de escena circundante
"image_meta_data": [...],
"generate_obj": true,
"generate_ply": true,
"coordinate_system_3d": {
"type": 1 // Sistema de coordenadas local
}
}

Generar Solo Ortofoto

{
"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": [...] // Especificar extensión de ortofoto
},
"coordinate_system_2d": {
"type": 3,
"epsg_code": 32650
}
}

Resultados de Salida

Salida de Modelo 3D (products/3D/)

  • model-osgb/ - Modelo y LOD formato OSGB
  • model-b3dm/ - Formato 3D Tiles (con tileset.json)
  • model-obj/ - Modelo y texturas formato OBJ
  • point-las/ - Nube de puntos formato LAS
  • point-ply/ - Nube de puntos formato PLY
  • point-osgb/ - Nube de puntos LOD formato OSGB
  • point-pnts/ - Formato nube de puntos 3D Tiles

Salida de Producto 2D (products/2D/)

  • geotiffs/ - Ortofoto y DSM formato GeoTIFF
  • dom_tiles/ - Mosaicos de ortofoto
  • dsm_tiles/ - Mosaicos de modelo digital de superficie

Resultados Intermedios (milestones/)

  • undistorted/ - Imágenes sin distorsión (si se mantienen)
  • depth_maps/ - Mapas de profundidad
  • mesh/ - Datos de malla intermedia

Descripción de Nivel de Resolución

NivelDescripciónTiempo de Procesamiento RelativoEscenarios de Aplicación
1Precisión ultra-alta3-5xTopografía profesional, protección del patrimonio cultural
2Alta precisión1xAplicaciones de ingeniería general
3Vista previa rápida0.2-0.3xValidación rápida, vista previa

Equilibrio Entre Precisión y Eficiencia

  • resolution_level=1: Máximo detalle geométrico y claridad de textura
  • resolution_level=2: Equilibra calidad y eficiencia, recomendado para la mayoría de aplicaciones
  • resolution_level=3: Procesamiento rápido, adecuado para validación preliminar

Mejores Prácticas

1. Gestión de Memoria

Para datos a gran escala:

{
"min_avali_memory_size": 24.0, // Configurar basado en memoria disponible
"resolution_level": 2 // Considerar reducir precisión
}

2. Selección de Formato de Salida

  • Visualización Web: Usar 3D Tiles + compresión Draco
  • Análisis GIS: Generar GeoTIFF y LAS
  • Software Profesional: Usar formato OSGB
  • Edición y Procesamiento: Exportar OBJ o PLY

3. Configuraciones de Sistema de Coordenadas

  • Los modelos 3D típicamente usan sistemas de coordenadas proyectadas (ej. UTM)
  • Las ortofotos pueden usar sistemas geográficos o proyectados según las necesidades
  • Considerar usar WGS84 para aplicaciones web

4. Uso de ROI

  • Usar ROI generado desde triangulación aérea como base
  • Ajustar rango según necesidades
  • Configurar ROIs separados para 2D y 3D

Optimización de Rendimiento

Procesamiento Rápido

{
"resolution_level": 3,
"fast_mode": true,
"generate_3d_tiles": true, // Generar solo formatos necesarios
"use_draco_compression": true
}

Salida de Alta Calidad

{
"resolution_level": 1,
"fast_mode": false,
"keep_undistort_images": true, // Mantener resultados intermedios para inspección
"generate_obj": true, // Generar malla de alta calidad
"generate_geotiff": true
}

Preguntas Comunes

P: Error "No se pueden encontrar resultados de triangulación aérea"

R: Asegurar:

  • working_dir es el mismo usado en ReconstructAT
  • Triangulación aérea completada exitosamente
  • El directorio milestones contiene archivo mvs.xml

P: Error de memoria insuficiente

R:

  • Configurar min_avali_memory_size para limitar uso de memoria
  • Reducir resolution_level
  • Usar DivideTiles para pre-bloqueo

P: Coordenadas de salida incorrectas

R:

  • Verificar configuraciones coordinate_system_3d/2d
  • Confirmar que el sistema de coordenadas ROI coincide con los datos
  • Verificar que la ruta de datos GDAL es correcta

Próximos Pasos


Nota: Reconstruct3D proporciona opciones de salida ricas. Se recomienda validar primero con baja precisión, luego proceder con reconstrucción de alta calidad.