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:
- ✅ Installato l'SDK (vedi Guida all'Installazione)
- ✅ 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:
- Userà le immagini campione da
sample-images - Creerà la directory di output
- Avvierà il processo di ricostruzione 3D
- 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 Posizionamento | Precisione X/Y (m) | Precisione Z (m) | Scenario di Applicazione |
|---|---|---|---|
| Soluzione Fissa RTK/PPK | 0.02-0.05 | 0.05-0.10 | Rilevamento ad alta precisione |
| GPS Normale | 2-5 | 3-8 | Applicazioni generali |
📊 Visualizza Risultati di Output
Dopo il completamento della ricostruzione, la directory di output conterrà:
- 📁
3D/- Modelli 3Dmodel-b3dm/- 3D Tiles (Cesium)model-osgb/- Formato OSGBmodel-obj/- Formato OBJpoint-las/- Nuvola di punti LAS
- 📁
2D/- Prodotti 2Ddom_tiles/- Tiles ortofotodsm_tiles/- Tiles modello digitale di superficiegeotiffs/- 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:
{
"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: 3per 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.