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 como2
(indica Reconstruct3D)task_json
: Caminho do ficheiro de configuração
Parâmetros de Configuração
Parâmetros Obrigatórios
Parâmetro | Tipo | Descrição |
---|---|---|
license_id | int | Código de licença SDK, unificado como 9200 |
working_dir | string | Diretório de trabalho (deve ser igual ao da triangulação aérea) |
gdal_folder | string | Caminho dos dados GDAL |
input_image_type | int | Tipo de imagem: 1=RGB, 2=Multiespectral, 3=Infravermelho |
image_meta_data | JSON Array | Informações de metadados das imagens de entrada |
resolution_level | int | Precisã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âmetro | Tipo | Padrão | Descrição |
---|---|---|---|
reconstruct_mode | int | 0 | Modo de reconstrução: 0=Cena geral, 1=Cena circundante, 2=Cena de linha elétrica |
min_avali_memory_size | double | 0 | Tamanho mínimo de memória disponível (GB), usado para controlar quantidade de blocos |
fast_mode | bool | false | Modo rápido, melhora eficiência mas reduz detalhes |
keep_undistort_images | bool | false | Se manter imagens não distorcidas |
Controlo de Formato de Saída
Parâmetro | Tipo | Padrão | Descrição |
---|---|---|---|
generate_osgb | bool | false | Gerar modelo 3D formato OSGB |
generate_3d_tiles | bool | false | Gerar formato 3D Tiles (b3dm) |
generate_las | bool | false | Gerar nuvem de pontos formato LAS |
generate_pc_ply | bool | false | Gerar nuvem de pontos formato PLY |
generate_pc_osgb | bool | false | Gerar nuvem de pontos LOD formato OSGB |
generate_pc_pnts | bool | false | Gerar nuvem de pontos LOD formato pnts |
generate_obj | bool | false | Gerar malha texturizada formato OBJ |
generate_ply | bool | false | Gerar malha texturizada formato PLY |
generate_geotiff | bool | false | Gerar ortofoto formato GeoTIFF |
generate_tile_2D | bool | false | Realizar corte de mosaicos na ortofoto |
generate_2D_from_3D_model | bool | false | Gerar ortofoto 2D a partir do modelo 3D |
Parâmetros Avançados
Parâmetro | Tipo | Padrão | Descrição |
---|---|---|---|
use_draco_compression | bool | true | Se usar compressão Draco para 3D Tiles |
tex_image_type_3dtiles | int | 0 | Formato de textura 3D Tiles: 0=JPEG, 1=WebP |
use_gcj02 | bool | false | Se converter mosaicos de ortofoto para sistema de coordenadas GCJ02 |
coordinate_system_3d | JSON | - | Sistema de coordenadas para saída 3D |
coordinate_system_2d | JSON | - | Sistema de coordenadas para saída 2D |
roi_for_2d | JSON | - | Região de interesse para reconstrução 2D |
roi_for_3d | JSON | - | Região de interesse para reconstrução 3D |
roi_coordinate_system | JSON | WGS84 | Sistema 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 OSGBmodel-b3dm/
- Formato 3D Tiles (com tileset.json)model-obj/
- Modelo e texturas formato OBJpoint-las/
- Nuvem de pontos formato LASpoint-ply/
- Nuvem de pontos formato PLYpoint-osgb/
- Nuvem de pontos LOD formato OSGBpoint-pnts/
- Formato nuvem de pontos 3D Tiles
Saída de Produto 2D (products/2D/
)
geotiffs/
- Ortofoto e DSM formato GeoTIFFdom_tiles/
- Mosaicos de ortofotodsm_tiles/
- Mosaicos de modelo digital de superfície
Resultados Intermédios (milestones/
)
undistorted/
- Imagens não distorcidas (se mantidas)depth_maps/
- Mapas de profundidademesh/
- Dados de malha intermédios
Descrição do Nível de Resolução
Nível | Descrição | Tempo de Processamento Relativo | Cenários de Aplicação |
---|---|---|---|
1 | Precisão ultra-alta | 3-5x | Levantamento profissional, proteção de património cultural |
2 | Alta precisão | 1x | Aplicações de engenharia geral |
3 | Pré-visualização rápida | 0.2-0.3x | Validaçã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
- Verificar Detalhes de Formato de Saída
- Aprender sobre Processamento de Blocos para dados em grande escala
- Estudar Conceitos Básicos para otimizar qualidade de reconstrução
Nota: Reconstruct3D fornece opções de saída ricas. É recomendado validar primeiro com baixa precisão, depois proceder com reconstrução de alta qualidade.