Zum Hauptinhalt springen

Reconstruct3D - 3D-Rekonstruktion

Überblick

Die Reconstruct3D-Schnittstelle wird verwendet, um 2D- und 3D-Modelle aus Aerialtriangiulationsergebnissen zu generieren. Sie wird typischerweise mit ReconstructAT verwendet, um den vollständigen Rekonstruktions-Workflow zu vervollständigen. Diese Schnittstelle unterstützt mehrere Ausgabeformate, Blockverarbeitung und feingranulare Parameterkontrolle.

Anwendbare Szenarien
  • Generierung von 3D-Modellen aus Aerialtriangiulationsergebnissen
  • Erzeugung von Orthophotos und digitalen Oberflächenmodellen
  • Blockrekonstruktion für großmaßstäbliche Daten
  • Bedarf an spezifischen Ausgabeformaten

Schnittstellennutzung

Kommandozeilennutzung

reconstruct_full_engine.exe -reconstruct_type 2 -task_json 3d_config.json

Parameterbeschreibung

  • reconstruct_type: Festgelegt als 2 (zeigt Reconstruct3D an)
  • task_json: Konfigurationsdateipfad

Konfigurationsparameter

Erforderliche Parameter

ParameterTypBeschreibung
license_idintSDK-Lizenzcode, einheitlich als 9200
working_dirstringArbeitsverzeichnis (muss dasselbe wie Aerialtrixeanguler sein)
gdal_folderstringGDAL-Datenpfad
input_image_typeintBildtyp: 1=RGB, 2=Multispektral, 3=Infrarot
image_meta_dataJSON ArrayEingabebild-Metadateninformationen
resolution_levelintRekonstruktionsgenauigkeit: 1=Hohe Genauigkeit, 2=Mittlere Genauigkeit, 3=Niedrige Genauigkeit

Optionale Parameter

Grundparameter

ParameterTypStandardBeschreibung
reconstruct_modeint0Rekonstruktionsmodus: 0=Allgemeine Szene, 1=Umgebungsszene, 2=Stromleitung-Szene
min_avali_memory_sizedouble0Mindestens verfügbarer Speicher (GB), zur Kontrolle der Blockmenge
fast_modeboolfalseSchnellmodus, verbessert Effizienz aber reduziert Details
keep_undistort_imagesboolfalseOb unverzerrte Bilder behalten werden sollen

Ausgabeformat-Kontrolle

ParameterTypStandardBeschreibung
generate_osgbboolfalseOSGB-Format 3D-Modell generieren
generate_3d_tilesboolfalse3D Tiles (b3dm) Format generieren
generate_lasboolfalseLAS-Format Punktwolke generieren
generate_pc_plyboolfalsePLY-Format Punktwolke generieren
generate_pc_osgbboolfalseOSGB-Format Punktwolke LOD generieren
generate_pc_pntsboolfalsepnts-Format Punktwolke LOD generieren
generate_objboolfalseOBJ-Format texturiertes Mesh generieren
generate_plyboolfalsePLY-Format texturiertes Mesh generieren
generate_geotiffboolfalseGeoTIFF-Format Orthophoto generieren
generate_tile_2DboolfalseTile-Schnitt auf Orthophoto durchführen
generate_2D_from_3D_modelboolfalse2D-Orthophoto aus 3D-Modell generieren

Erweiterte Parameter

ParameterTypStandardBeschreibung
use_draco_compressionbooltrueOb Draco-Kompression für 3D Tiles verwendet werden soll
tex_image_type_3dtilesint03D Tiles Texturformat: 0=JPEG, 1=WebP
use_gcj02boolfalseOb Orthophoto-Tiles zu GCJ02-Koordinatensystem konvertiert werden sollen
coordinate_system_3dJSON-Koordinatensystem für 3D-Ausgabe
coordinate_system_2dJSON-Koordinatensystem für 2D-Ausgabe
roi_for_2dJSON-Interessensbereich für 2D-Rekonstruktion
roi_for_3dJSON-Interessensbereich für 3D-Rekonstruktion
roi_coordinate_systemJSONWGS84Koordinatensystem für ROI

Datenstrukturbeschreibung

Kamera-Metadaten

{
"id": 1, // Eindeutige Kamera-ID
"meta_data": {
"camera_name": "Camera-1", // Kameraname
"projection_model": 0, // Projektionsmodell (optional)
"width": 4000, // Sensorbreite (Pixel)
"height": 3000, // Sensorhöhe (Pixel)
"parameters": [ // Kamera-Intrinsik (10-Elemente-Array)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}

ROI (Interessensbereich)

{
"boundary": [ // 2D-Polygongrenze (gegen den Uhrzeigersinn)
[x1, y1],
[x2, y2],
[x3, y3]
// ...
],
"min_z": 100.0, // Mindesthöhe (optional)
"max_z": 500.0 // Maximalhöhe (optional)
}

Ausgabe-Koordinatensystem-Einstellungen

{
"coordinate_system_3d": {
"type": 3, // Projiziertes Koordinatensystem
"epsg_code": 32650 // UTM Zone 50N
},
"coordinate_system_2d": {
"type": 2, // Geografisches Koordinatensystem
"epsg_code": 4326 // WGS84
}
}

Vollständige Konfigurationsbeispiele

Basis-3D-Rekonstruktion

{
"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
}

Hochpräzisions-Rekonstruktionskonfiguration

{
"license_id": 9200,
"working_dir": "C:/Projects/HighQuality_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1, // Höchste Genauigkeit
"reconstruct_mode": 0, // Allgemeine Szene
"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
}
}

Großmaßstäbliche Daten-Blockrekonstruktion

{
"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, // Jeden Block auf maximal 16GB Speicher begrenzen
"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 // WebP-Texturkompression verwenden
}

Spezielle Szenenkonfiguration

Umgebungsobjekt-Rekonstruktion

{
"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, // Umgebungsszenemodus
"image_meta_data": [...],
"generate_obj": true,
"generate_ply": true,
"coordinate_system_3d": {
"type": 1 // Lokales Koordinatensystem
}
}

Nur Orthophoto generieren

{
"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": [...] // Orthophoto-Ausdehnung spezifizieren
},
"coordinate_system_2d": {
"type": 3,
"epsg_code": 32650
}
}

Ausgabeergebnisse

3D-Modell-Ausgabe (products/3D/)

  • model-osgb/ - OSGB-Format Modell und LOD
  • model-b3dm/ - 3D Tiles Format (mit tileset.json)
  • model-obj/ - OBJ-Format Modell und Texturen
  • point-las/ - LAS-Format Punktwolke
  • point-ply/ - PLY-Format Punktwolke
  • point-osgb/ - OSGB-Format Punktwolke LOD
  • point-pnts/ - 3D Tiles Punktwolke Format

2D-Produkt-Ausgabe (products/2D/)

  • geotiffs/ - GeoTIFF-Format Orthophoto und DSM
  • dom_tiles/ - Orthophoto-Tiles
  • dsm_tiles/ - Digitale Oberflächenmodell-Tiles

Zwischenergebnisse (milestones/)

  • undistorted/ - Unverzerrte Bilder (falls behalten)
  • depth_maps/ - Tiefenkarten
  • mesh/ - Zwischen-Mesh-Daten

Auflösungsgrad-Beschreibung

GradBeschreibungRelative VerarbeitungszeitAnwendungsszenarien
1Ultra-hohe Genauigkeit3-5xProfessionelle Vermessung, Kulturerbeschutz
2Hohe Genauigkeit1xAllgemeine Ingenieuranwendungen
3Schnelle Vorschau0.2-0.3xSchnelle Validierung, Vorschau

Balance zwischen Genauigkeit und Effizienz

  • resolution_level=1: Höchstes geometrisches Detail und Texturklarheit
  • resolution_level=2: Balance Qualität und Effizienz, empfohlen für die meisten Anwendungen
  • resolution_level=3: Schnelle Verarbeitung, geeignet für vorläufige Validierung

Beste Praktiken

1. Speicherverwaltung

Für großmaßstäbliche Daten:

{
"min_avali_memory_size": 24.0, // Basierend auf verfügbarem Speicher einstellen
"resolution_level": 2 // Genauigkeit reduzieren erwägen
}

2. Ausgabeformat-Auswahl

  • Web-Anzeige: 3D Tiles + Draco-Kompression verwenden
  • GIS-Analyse: GeoTIFF und LAS generieren
  • Professionelle Software: OSGB-Format verwenden
  • Bearbeitung und Verarbeitung: OBJ oder PLY exportieren

3. Koordinatensystem-Einstellungen

  • 3D-Modelle verwenden typischerweise projizierte Koordinatensysteme (z.B. UTM)
  • Orthophotos können je nach Bedarf geografische oder projizierte Systeme verwenden
  • WGS84 für Web-Anwendungen in Betracht ziehen

4. ROI-Nutzung

  • ROI aus der Aerialtriangulation als Basis verwenden
  • Bereich je nach Bedarf anpassen
  • Separate ROIs für 2D und 3D festlegen

Leistungsoptimierung

Schnelle Verarbeitung

{
"resolution_level": 3,
"fast_mode": true,
"generate_3d_tiles": true, // Nur notwendige Formate generieren
"use_draco_compression": true
}

Hochqualitative Ausgabe

{
"resolution_level": 1,
"fast_mode": false,
"keep_undistort_images": true, // Zwischenergebnisse zur Inspektion behalten
"generate_obj": true, // Hochqualitatives Mesh generieren
"generate_geotiff": true
}

Häufige Fragen

F: Fehler "Kann Aerialtriangulationsergebnisse nicht finden"

A: Sicherstellen:

  • working_dir ist dasselbe wie in ReconstructAT verwendet
  • Aerialtriangulation erfolgreich abgeschlossen
  • milestones-Verzeichnis enthält mvs.xml-Datei

F: Speicher-Überlauf-Fehler

A:

  • min_avali_memory_size einstellen, um Speichernutzung zu begrenzen
  • resolution_level reduzieren
  • DivideTiles für Vor-Blockierung verwenden

F: Falsche Ausgabekoordinaten

A:

  • coordinate_system_3d/2d-Einstellungen überprüfen
  • ROI-Koordinatensystem stimmt mit Daten überein bestätigen
  • GDAL-Datenpfad ist korrekt verifizieren

Nächste Schritte


Hinweis: Reconstruct3D bietet reiche Ausgabeoptionen. Es wird empfohlen, zuerst mit niedriger Genauigkeit zu validieren, dann mit hochqualitativer Rekonstruktion fortzufahren.