Pular para o conteúdo principal

Início Rápido

Este guia ajudará você a começar rapidamente com o SDK MipMapEngine. Fornecemos scripts de exemplo completos que permitem executar sua primeira tarefa de reconstrução 3D em minutos.

📋 Pré-requisitos

Antes de começar, certifique-se de ter:

  1. ✅ SDK instalado (veja o Guia de Instalação)
  2. ✅ Licença ativada

🚀 Experiência Rápida: Usando Scripts de Exemplo do SDK

O SDK fornece exemplos completos e scripts de execução com um clique no diretório example:

example/
├── 1_reconstruct_full_basic.json # Exemplo de reconstrução básica
├── 2_group_cameras.json # Exemplo de grupos multi-câmera
├── 3_custom_image_pos.json # Exemplo de posição personalizada
├── sample-images/ # Imagens de amostra
├── Step1_Hardware_Check_EN.bat
├── Step2_License_Manager_EN.bat
├── Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat
├── Step4_Run_Example2_Multi_Camera_Groups_EN.bat
└── Step5_Custom_Image_Positions_EN.bat

Execute Sua Primeira Reconstrução

Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat

O script automaticamente:

  1. Usará imagens de amostra de sample-images
  2. Criará diretório de saída
  3. Iniciará o processo de reconstrução 3D
  4. Gerará resultados em múltiplos formatos

🎯 Detalhes dos Exemplos

Exemplo 1: Reconstrução Básica com Drone

Esta é a maneira mais simples de usar, adequada para imagens aéreas padrão de drone.

Características:

  • ✅ Configuração mínima, pronto para uso, adequado para a maioria das aplicações
  • ✅ Perfeitamente compatível com os principais drones de mapeamento DJI

Arquivo de Configuração (1_reconstruct_full_basic.json):

{
"working_dir": "./output/reconstruct_full_basic",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 3,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": [
{
"id": 1,
"path": "../sample-images/DJI_20250507103417_0124_V.JPG"
},
{
"id": 2,
"path": "../sample-images/DJI_20250507103421_0125_V.JPG"
}
// ... mais imagens
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_las": true,
"generate_obj": true,
"generate_geotiff": true
}

Execução Manual:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json 1_reconstruct_full_basic.json

Exemplo 2: Reconstrução com Grupos Multi-Câmera

Adequado para câmeras oblíquas multi-lente ou operações colaborativas multi-drone.

Step4_Run_Example2_Multi_Camera_Groups_EN.bat

Cenários de Aplicação:

  • 🔸 Sistemas de câmeras oblíquas de cinco lentes
  • 🔸 Operações colaborativas multi-drone
  • 🔸 Combinações de câmeras com diferentes distâncias focais
  • 🔸 Coleta conjunta terrestre + aérea

Configuração Principal:

{
"image_meta_data": [
{
"id": 1,
"path": "image1.jpg",
"group": "camera_1" // Agrupamento de câmeras
},
{
"id": 2,
"path": "image2.jpg",
"group": "camera_2" // Grupo de câmera diferente
}
]
}

Exemplo 3: Posições de Imagem Personalizadas

Adequado para posicionamento de alta precisão ou cenários sem GPS.

Step5_Custom_Image_Positions_EN.bat

Cenários de Aplicação:

  • 📍 Dados de posicionamento de alta precisão PPK/RTK
  • 📍 Ambientes internos ou com sinal GPS fraco
  • 📍 Necessidade de personalizar pesos de precisão de posição

Configuração Principal:

{
"image_meta_data": [
{
"id": 1,
"path": "image.jpg",
"meta_data": {
"width": 4000,
"height": 3000,
"pos": [114.123456, 22.123456, 100.5], // [Longitude, Latitude, Elevação]
"pos_sigma": [0.03, 0.03, 0.06] // [Precisão X, Precisão Y, Precisão Z] metros
}
}
]
}

Referência de Precisão:

Método de PosicionamentoPrecisão X/Y (m)Precisão Z (m)Cenário de Aplicação
Solução Fixa RTK/PPK0.02-0.050.05-0.10Levantamento de alta precisão
GPS Regular2-53-8Aplicações gerais

📊 Visualizar Resultados de Saída

Após a conclusão da reconstrução, o diretório de saída conterá:

  • 📁 3D/ - Modelos 3D
    • model-b3dm/ - 3D Tiles (Cesium)
    • model-osgb/ - Formato OSGB
    • model-obj/ - Formato OBJ
    • point-las/ - Nuvem de pontos LAS
  • 📁 2D/ - Produtos 2D
    • dom_tiles/ - Tiles de ortofoto
    • dsm_tiles/ - Tiles de modelo digital de superfície
    • geotiffs/ - Formato GeoTIFF
  • 📁 AT/ - Resultados AT
  • 📁 report/ - Relatório de qualidade
  • 📁 logs/log.txt - Log de processamento

🛠️ Gerador de Configuração Interativo

Se você não quiser escrever manualmente arquivos de configuração JSON, pode usar nossa ferramenta interativa para gerá-los rapidamente:

🔧 Gerador Interativo de Configuração

Utilize o formulário abaixo para gerar o seu ficheiro de configuração:

Definições Básicas

Parâmetros de Processamento

Definições do Sistema de Coordenadas

Formatos de Saída

Modelo 3D
Nuvem de Pontos
Ortofotografia 2D
Outros Formatos

Opções Avançadas

Opções de Mosaicos 3D
Opções de Mosaicos 2D

Pontos de Controlo Terrestre (GCP)

Sistema de Coordenadas de Saída (Opcional)

Ficheiro de Configuração Gerado

Guarde o JSON abaixo como task.json

task.json
{
"license_id": 9200,
"working_dir": "C:/Projects/MyProject",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"type_name": "Geographic",
"label": "WGS 84",
"epsg_code": 4326
},
"generate_obj": false,
"generate_ply": false,
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_fbx": false,
"generate_las": false,
"generate_pc_ply": false,
"generate_pc_osgb": false,
"generate_pc_pnts": false,
"generate_gs_ply": false,
"generate_gs_splats": false,
"generate_geotiff": true,
"generate_tile_2D": true,
"generate_2D_from_3D_model": false,
"generate_dsm_tile": false,
"fast_mode": false,
"use_image_position_constraint": true,
"min_avali_memory_size": 16,
"output_block_change_xml": false,
"output_tie_point_las": false,
"keep_undistort_images": false,
"use_draco_compression": true,
"tex_image_type_3dtiles": 0,
"use_gcj02": false,
"image_meta_data": [
{
"id": 1,
"path": "path/to/image1.jpg"
},
{
"id": 2,
"path": "path/to/image2.jpg"
}
]
}

Validar e Executar

1. Primeiro valide o ficheiro de configuração:

task_json_check.exe -task_json task.json

2. Depois de validar, execute a reconstrução:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json task.json

🎯 Personalize Seu Primeiro Projeto

Com base nos exemplos, crie seu próprio arquivo de configuração:

1. Copiar Configuração de Exemplo

copy 1_reconstruct_full_basic.json my_project.json

2. Modificar Caminhos de Imagem

Edite my_project.json e altere os caminhos de imagem para suas imagens:

{
"image_meta_data": [
{
"id": 1,
"path": "C:/MyImages/DJI_0001.JPG"
},
{
"id": 2,
"path": "C:/MyImages/DJI_0002.JPG"
}
// ... adicione todas as imagens
]
}

3. Validar Arquivo de Configuração

Antes de executar a reconstrução, use a ferramenta task_json_check.exe para validar o arquivo de configuração:

task_json_check.exe my_project.json

Se houver erros no arquivo de configuração, a ferramenta exibirá mensagens de erro específicas. Erros comuns incluem:

  • Caminho da imagem não existe
  • Erro de parâmetro do sistema de coordenadas
  • Campos obrigatórios ausentes

4. Executar Reconstrução

Depois que o arquivo de configuração passar na validação, execute a tarefa de reconstrução:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json my_project.json

📊 Monitorar Progresso

Saída do Console

Mostra as etapas de processamento e a porcentagem de progresso.

Arquivo de Log

output/logs/log.txt contém informações detalhadas de processamento.

Script de Monitoramento de Progresso

import re
import time

def monitor_progress(log_file):
with open(log_file, 'r') as f:
while True:
line = f.readline()
if '[PROGRESS]' in line:
match = re.search(r'\[PROGRESS\] (\d+)%', line)
if match:
print(f"Progresso atual: {match.group(1)}%")
time.sleep(1)

monitor_progress("output/logs/log.txt")

❓ Problemas Comuns

P: A reconstrução falhou com "Número insuficiente de imagens"

R: Certifique-se de que:

  • Pelo menos 5 imagens são fornecidas
  • Sobreposição suficiente entre imagens (recomendado >60%)
  • As imagens contêm informações GPS ou você fornece posições manualmente
P: Como melhorar a qualidade da reconstrução?

R: Ajuste o nível de resolução:

"resolution_level": 1  // Usar a mais alta precisão
P: Reconstrução muito lenta?

R: Estratégias de otimização:

  • Use resolution_level: 3 para visualização rápida
  • Ative fast_mode: true
  • Considere usar processamento em blocos

💡 Dicas Práticas

Geração de Configuração em Lote

Para um grande número de imagens, use scripts para gerar configurações automaticamente:

import json
import os
from glob import glob

def create_task_json(image_folder, output_file):
images = glob(os.path.join(image_folder, "*.JPG"))

task_config = {
"working_dir": "./output/my_project",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": []
}

for idx, img_path in enumerate(images, 1):
task_config["image_meta_data"].append({
"id": idx,
"path": img_path.replace("\\", "/")
})

with open(output_file, 'w', encoding='utf-8') as f:
json.dump(task_config, f, indent=2, ensure_ascii=False)

print(f"Arquivo de configuração gerado: {output_file}")
print(f"Contém {len(images)} imagens")

# Uso
create_task_json("C:/MyImages", "batch_task.json")

🚀 Próximos Passos

Parabéns! Você dominou o uso básico do SDK MipMapEngine. Em seguida, você pode:

  • 📚 Aprender Conceitos Básicos - Compreender profundamente os princípios de reconstrução 3D
  • 🔧 Verificar Referência da API - Explorar mais recursos avançados
  • 💡 Revisar Conceitos Básicos - Compreender profundamente os princípios de reconstrução 3D
  • 🎯 Tentar processamento de cenas especiais - Cenários desafiadores como textura fraca, baixa taxa de sobreposição

Precisa de ajuda? Verifique o guia de solução de problemas ou entre em contato com o suporte técnico.