Pular para o conteúdo principal

Reconstruct3D - Reconstrução 3D

Visão Geral

A interface Reconstruct3D é utilizada para gerar modelos 2D e 3D a partir de resultados de triangulação aérea. É tipicamente usada com ReconstructAT para completar o fluxo de trabalho de reconstrução completo. Esta interface suporta múltiplos formatos de saída, processamento de blocos e controlo granular de parâmetros.

Cenários Aplicáveis
  • Gerar modelos 3D a partir de resultados de triangulação aérea
  • Gerar ortofotos e modelos digitais de superfície
  • Reconstrução de blocos para dados em grande escala
  • Necessidade de formatos de saída específicos

Uso da Interface

Uso de Linha de Comando

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

Descrição de Parâmetros

  • reconstruct_type: Fixo como 2 (indica Reconstruct3D)
  • task_json: Caminho do ficheiro de configuração

Parâmetros de Configuração

Parâmetros Obrigatórios

ParâmetroTipoDescrição
license_idintCódigo de licença SDK, unificado como 9200
working_dirstringDiretório de trabalho (deve ser igual ao da triangulação aérea)
gdal_folderstringCaminho dos dados GDAL
input_image_typeintTipo de imagem: 1=RGB, 2=Multiespectral, 3=Infravermelho
image_meta_dataJSON ArrayInformações de metadados das imagens de entrada
resolution_levelintPrecisão de reconstrução: 1=Alta precisão, 2=Precisão média, 3=Baixa precisão

Parâmetros Opcionais

Parâmetros Básicos

ParâmetroTipoPadrãoDescrição
reconstruct_modeint0Modo de reconstrução: 0=Cena geral, 1=Cena circundante, 2=Cena de linha elétrica
min_avali_memory_sizedouble0Tamanho mínimo de memória disponível (GB), usado para controlar quantidade de blocos
fast_modeboolfalseModo rápido, melhora eficiência mas reduz detalhes
keep_undistort_imagesboolfalseSe manter imagens não distorcidas

Controlo de Formato de Saída

ParâmetroTipoPadrãoDescrição
generate_osgbboolfalseGerar modelo 3D formato OSGB
generate_3d_tilesboolfalseGerar formato 3D Tiles (b3dm)
generate_lasboolfalseGerar nuvem de pontos formato LAS
generate_pc_plyboolfalseGerar nuvem de pontos formato PLY
generate_pc_osgbboolfalseGerar nuvem de pontos LOD formato OSGB
generate_pc_pntsboolfalseGerar nuvem de pontos LOD formato pnts
generate_objboolfalseGerar malha texturizada formato OBJ
generate_plyboolfalseGerar malha texturizada formato PLY
generate_geotiffboolfalseGerar ortofoto formato GeoTIFF
generate_tile_2DboolfalseRealizar corte de mosaicos na ortofoto
generate_2D_from_3D_modelboolfalseGerar ortofoto 2D a partir do modelo 3D

Parâmetros Avançados

ParâmetroTipoPadrãoDescrição
use_draco_compressionbooltrueSe usar compressão Draco para 3D Tiles
tex_image_type_3dtilesint0Formato de textura 3D Tiles: 0=JPEG, 1=WebP
use_gcj02boolfalseSe converter mosaicos de ortofoto para sistema de coordenadas GCJ02
coordinate_system_3dJSON-Sistema de coordenadas para saída 3D
coordinate_system_2dJSON-Sistema de coordenadas para saída 2D
roi_for_2dJSON-Região de interesse para reconstrução 2D
roi_for_3dJSON-Região de interesse para reconstrução 3D
roi_coordinate_systemJSONWGS84Sistema de coordenadas para ROI

Descrição da Estrutura de Dados

Metadados da Câmera

{
"id": 1, // ID único da câmera
"meta_data": {
"camera_name": "Camera-1", // Nome da câmera
"projection_model": 0, // Modelo de projeção (opcional)
"width": 4000, // Largura do sensor (pixels)
"height": 3000, // Altura do sensor (pixels)
"parameters": [ // Intrínsecos da câmera (array de 10 elementos)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}

ROI (Região de Interesse)

{
"boundary": [ // Limite de polígono 2D (sentido anti-horário)
[x1, y1],
[x2, y2],
[x3, y3]
// ...
],
"min_z": 100.0, // Elevação mínima (opcional)
"max_z": 500.0 // Elevação máxima (opcional)
}

Configurações do Sistema de Coordenadas de Saída

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

Exemplos de Configuração Completa

Reconstrução 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
}

Configuração de Reconstrução de Alta Precisão

{
"license_id": 9200,
"working_dir": "C:/Projects/HighQuality_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1, // Máxima precisão
"reconstruct_mode": 0, // Cena geral
"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
}
}

Reconstrução de Blocos de Dados em Grande 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 bloco a máximo 16GB memória
"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 compressão de textura WebP
}

Configuração de Cena Especial

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

Gerar Apenas 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 extensão da ortofoto
},
"coordinate_system_2d": {
"type": 3,
"epsg_code": 32650
}
}

Resultados de Saída

Saída de Modelo 3D (products/3D/)

  • model-osgb/ - Modelo e LOD formato OSGB
  • model-b3dm/ - Formato 3D Tiles (com tileset.json)
  • model-obj/ - Modelo e texturas formato OBJ
  • point-las/ - Nuvem de pontos formato LAS
  • point-ply/ - Nuvem de pontos formato PLY
  • point-osgb/ - Nuvem de pontos LOD formato OSGB
  • point-pnts/ - Formato nuvem de pontos 3D Tiles

Saída de Produto 2D (products/2D/)

  • geotiffs/ - Ortofoto e DSM formato GeoTIFF
  • dom_tiles/ - Mosaicos de ortofoto
  • dsm_tiles/ - Mosaicos de modelo digital de superfície

Resultados Intermédios (milestones/)

  • undistorted/ - Imagens não distorcidas (se mantidas)
  • depth_maps/ - Mapas de profundidade
  • mesh/ - Dados de malha intermédios

Descrição do Nível de Resolução

NívelDescriçãoTempo de Processamento RelativoCenários de Aplicação
1Precisão ultra-alta3-5xLevantamento profissional, proteção de património cultural
2Alta precisão1xAplicações de engenharia geral
3Pré-visualização rápida0.2-0.3xValidação rápida, pré-visualização

Equilíbrio Entre Precisão e Eficiência

  • resolution_level=1: Máximo detalhe geométrico e clareza de textura
  • resolution_level=2: Equilibra qualidade e eficiência, recomendado para a maioria das aplicações
  • resolution_level=3: Processamento rápido, adequado para validação preliminar

Melhores Práticas

1. Gestão de Memória

Para dados em grande escala:

{
"min_avali_memory_size": 24.0, // Configurar baseado na memória disponível
"resolution_level": 2 // Considerar redução da precisão
}

2. Seleção de Formato de Saída

  • Visualização Web: Usar 3D Tiles + compressão Draco
  • Análise GIS: Gerar GeoTIFF e LAS
  • Software Profissional: Usar formato OSGB
  • Edição e Processamento: Exportar OBJ ou PLY

3. Configurações do Sistema de Coordenadas

  • Modelos 3D tipicamente usam sistemas de coordenadas projetadas (ex. UTM)
  • Ortofotos podem usar sistemas geográficos ou projetados baseado nas necessidades
  • Considerar usar WGS84 para aplicações web

4. Uso de ROI

  • Usar ROI gerado da triangulação aérea como base
  • Ajustar intervalo conforme necessidades
  • Configurar ROIs separados para 2D e 3D

Otimização de Performance

Processamento Rápido

{
"resolution_level": 3,
"fast_mode": true,
"generate_3d_tiles": true, // Gerar apenas formatos necessários
"use_draco_compression": true
}

Saída de Alta Qualidade

{
"resolution_level": 1,
"fast_mode": false,
"keep_undistort_images": true, // Manter resultados intermédios para inspeção
"generate_obj": true, // Gerar malha de alta qualidade
"generate_geotiff": true
}

Perguntas Comuns

P: Erro "Não é possível encontrar resultados de triangulação aérea"

R: Assegurar:

  • working_dir é o mesmo usado em ReconstructAT
  • Triangulação aérea completada com sucesso
  • Diretório milestones contém ficheiro mvs.xml

P: Erro de memória insuficiente

R:

  • Configurar min_avali_memory_size para limitar uso de memória
  • Reduzir resolution_level
  • Usar DivideTiles para pré-bloco

P: Coordenadas de saída incorretas

R:

  • Verificar configurações coordinate_system_3d/2d
  • Confirmar que sistema de coordenadas ROI corresponde aos dados
  • Verificar que caminho de dados GDAL está correto

Próximos Passos


Nota: Reconstruct3D fornece opções de saída ricas. É recomendado validar primeiro com baixa precisão, depois proceder com reconstrução de alta qualidade.