Passa al contenuto principale

Avvio Rapido

Questa guida ti aiuterà a iniziare rapidamente con l'SDK MipMapEngine. Forniamo script di esempio completi che ti permettono di eseguire il tuo primo compito di ricostruzione 3D in pochi minuti.

📋 Prerequisiti

Prima di iniziare, assicurati di avere:

  1. ✅ Installato l'SDK (vedi Guida all'Installazione)
  2. ✅ Attivato la tua licenza

🚀 Esperienza Rapida: Utilizzo degli Script di Esempio SDK

L'SDK fornisce esempi completi e script di esecuzione con un clic nella directory example:

example/
├── 1_reconstruct_full_basic.json # Esempio di ricostruzione base
├── 2_group_cameras.json # Esempio gruppi multi-camera
├── 3_custom_image_pos.json # Esempio posizione personalizzata
├── sample-images/ # Immagini campione
├── 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

Esegui la Tua Prima Ricostruzione

Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat

Lo script automaticamente:

  1. Userà le immagini campione da sample-images
  2. Creerà la directory di output
  3. Avvierà il processo di ricostruzione 3D
  4. Genererà risultati in formati multipli

🎯 Dettagli degli Esempi

Esempio 1: Ricostruzione Base con Drone

Questo è il modo più semplice da usare, adatto per immagini aeree standard da drone.

Caratteristiche:

  • ✅ Configurazione minima, pronto all'uso, adatto per la maggior parte delle applicazioni
  • ✅ Perfettamente compatibile con i principali droni da rilevamento DJI

File di Configurazione (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"
}
// ... più immagini
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_las": true,
"generate_obj": true,
"generate_geotiff": true
}

Esecuzione Manuale:

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

Esempio 2: Ricostruzione con Gruppi Multi-Camera

Adatto per camere oblique multi-lente o operazioni collaborative multi-drone.

Step4_Run_Example2_Multi_Camera_Groups_EN.bat

Scenari di Applicazione:

  • 🔸 Sistemi di camere oblique a cinque lenti
  • 🔸 Operazioni collaborative multi-drone
  • 🔸 Combinazioni di camere con diverse lunghezze focali
  • 🔸 Raccolta congiunta terrestre + aerea

Configurazione Chiave:

{
"image_meta_data": [
{
"id": 1,
"path": "image1.jpg",
"group": "camera_1" // Raggruppamento camere
},
{
"id": 2,
"path": "image2.jpg",
"group": "camera_2" // Gruppo camera diverso
}
]
}

Esempio 3: Posizioni Immagine Personalizzate

Adatto per posizionamento ad alta precisione o scenari senza GPS.

Step5_Custom_Image_Positions_EN.bat

Scenari di Applicazione:

  • 📍 Dati di posizionamento ad alta precisione PPK/RTK
  • 📍 Ambienti interni o con segnale GPS scarso
  • 📍 Necessità di personalizzare i pesi di precisione posizione

Configurazione Chiave:

{
"image_meta_data": [
{
"id": 1,
"path": "image.jpg",
"meta_data": {
"width": 4000,
"height": 3000,
"pos": [114.123456, 22.123456, 100.5], // [Longitudine, Latitudine, Elevazione]
"pos_sigma": [0.03, 0.03, 0.06] // [Precisione X, Precisione Y, Precisione Z] metri
}
}
]
}

Riferimento Precisione:

Metodo di PosizionamentoPrecisione X/Y (m)Precisione Z (m)Scenario di Applicazione
Soluzione Fissa RTK/PPK0.02-0.050.05-0.10Rilevamento ad alta precisione
GPS Normale2-53-8Applicazioni generali

📊 Visualizza Risultati di Output

Dopo il completamento della ricostruzione, la directory di output conterrà:

  • 📁 3D/ - Modelli 3D
    • model-b3dm/ - 3D Tiles (Cesium)
    • model-osgb/ - Formato OSGB
    • model-obj/ - Formato OBJ
    • point-las/ - Nuvola di punti LAS
  • 📁 2D/ - Prodotti 2D
    • dom_tiles/ - Tiles ortofoto
    • dsm_tiles/ - Tiles modello digitale di superficie
    • geotiffs/ - Formato GeoTIFF
  • 📁 AT/ - Risultati AT
  • 📁 report/ - Report qualità
  • 📁 logs/log.txt - Log di elaborazione

🛠️ Generatore di Configurazione Interattivo

Se non vuoi scrivere manualmente file di configurazione JSON, puoi usare il nostro strumento interattivo per generarli rapidamente:

🔧 Generatore interattivo di configurazione

Usa il modulo sottostante per generare il tuo file di configurazione:

Impostazioni di base

Parametri di elaborazione

Impostazioni del sistema di coordinate

Formati di output

Modello 3D
Nuvola di punti
Ortofoto 2D
Altri formati

Opzioni avanzate

Opzioni 3D Tiles
Opzioni 2D Tiles

Punti di controllo a terra (GCP)

Sistema di coordinate di output (opzionale)

File di configurazione generato

Salva il seguente JSON come 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"
}
]
}

Valida ed esegui

1. Prima valida il file di configurazione:

task_json_check.exe -task_json task.json

2. Dopo la convalida, esegui la ricostruzione:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json task.json

🎯 Personalizza il Tuo Primo Progetto

Basandoti sugli esempi, crea il tuo file di configurazione:

1. Copia Configurazione di Esempio

copy 1_reconstruct_full_basic.json my_project.json

2. Modifica Percorsi Immagini

Modifica my_project.json e cambia i percorsi delle immagini con le tue immagini:

{
"image_meta_data": [
{
"id": 1,
"path": "C:/MyImages/DJI_0001.JPG"
},
{
"id": 2,
"path": "C:/MyImages/DJI_0002.JPG"
}
// ... aggiungi tutte le immagini
]
}

3. Valida File di Configurazione

Prima di eseguire la ricostruzione, usa lo strumento task_json_check.exe per validare il file di configurazione:

task_json_check.exe my_project.json

Se ci sono errori nel file di configurazione, lo strumento mostrerà messaggi di errore specifici. Gli errori comuni includono:

  • Il percorso dell'immagine non esiste
  • Errore parametro sistema di coordinate
  • Campi richiesti mancanti

4. Esegui Ricostruzione

Dopo che il file di configurazione passa la validazione, esegui il compito di ricostruzione:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json my_project.json

📊 Monitora Progresso

Output Console

Mostra i passaggi di elaborazione e la percentuale di progresso.

File Log

output/logs/log.txt contiene informazioni dettagliate sull'elaborazione.

Script Monitoraggio 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 attuale: {match.group(1)}%")
time.sleep(1)

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

❓ Problemi Comuni

D: La ricostruzione è fallita con "Numero insufficiente di immagini"

R: Assicurati che:

  • Siano fornite almeno 5 immagini
  • Sovrapposizione sufficiente tra le immagini (consigliato >60%)
  • Le immagini contengano informazioni GPS o fornisci manualmente le posizioni
D: Come migliorare la qualità della ricostruzione?

R: Regola il livello di risoluzione:

"resolution_level": 1  // Usa la massima precisione
D: Ricostruzione troppo lenta?

R: Strategie di ottimizzazione:

  • Usa resolution_level: 3 per anteprima rapida
  • Abilita fast_mode: true
  • Considera l'uso dell'elaborazione a blocchi

💡 Consigli Pratici

Generazione Configurazione in Batch

Per un gran numero di immagini, usa script per generare automaticamente configurazioni:

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"File di configurazione generato: {output_file}")
print(f"Contiene {len(images)} immagini")

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

🚀 Prossimi Passi

Congratulazioni! Hai padroneggiato l'uso base dell'SDK MipMapEngine. Successivamente puoi:

  • 📚 Imparare i Concetti Base - Comprendere profondamente i principi di ricostruzione 3D
  • 🔧 Controllare il Riferimento API - Esplorare più funzionalità avanzate
  • 💡 Rivedere i Concetti Base - Comprendere profondamente i principi di ricostruzione 3D
  • 🎯 Provare elaborazione scene speciali - Scenari impegnativi come texture debole, basso tasso di sovrapposizione

Hai bisogno di aiuto? Controlla la guida alla risoluzione dei problemi o contatta il supporto tecnico.