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:
- ✅ SDK instalado (veja o Guia de Instalação)
- ✅ 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:
- Usará imagens de amostra de
sample-images - Criará diretório de saída
- Iniciará o processo de reconstrução 3D
- 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 Posicionamento | Precisão X/Y (m) | Precisão Z (m) | Cenário de Aplicação |
|---|---|---|---|
| Solução Fixa RTK/PPK | 0.02-0.05 | 0.05-0.10 | Levantamento de alta precisão |
| GPS Regular | 2-5 | 3-8 | Aplicações gerais |
📊 Visualizar Resultados de Saída
Após a conclusão da reconstrução, o diretório de saída conterá:
- 📁
3D/- Modelos 3Dmodel-b3dm/- 3D Tiles (Cesium)model-osgb/- Formato OSGBmodel-obj/- Formato OBJpoint-las/- Nuvem de pontos LAS
- 📁
2D/- Produtos 2Ddom_tiles/- Tiles de ortofotodsm_tiles/- Tiles de modelo digital de superfíciegeotiffs/- 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:
{
"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: 3para 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.