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 als2
(zeigt Reconstruct3D an)task_json
: Konfigurationsdateipfad
Konfigurationsparameter
Erforderliche Parameter
Parameter | Typ | Beschreibung |
---|---|---|
license_id | int | SDK-Lizenzcode, einheitlich als 9200 |
working_dir | string | Arbeitsverzeichnis (muss dasselbe wie Aerialtrixeanguler sein) |
gdal_folder | string | GDAL-Datenpfad |
input_image_type | int | Bildtyp: 1=RGB, 2=Multispektral, 3=Infrarot |
image_meta_data | JSON Array | Eingabebild-Metadateninformationen |
resolution_level | int | Rekonstruktionsgenauigkeit: 1=Hohe Genauigkeit, 2=Mittlere Genauigkeit, 3=Niedrige Genauigkeit |
Optionale Parameter
Grundparameter
Parameter | Typ | Standard | Beschreibung |
---|---|---|---|
reconstruct_mode | int | 0 | Rekonstruktionsmodus: 0=Allgemeine Szene, 1=Umgebungsszene, 2=Stromleitung-Szene |
min_avali_memory_size | double | 0 | Mindestens verfügbarer Speicher (GB), zur Kontrolle der Blockmenge |
fast_mode | bool | false | Schnellmodus, verbessert Effizienz aber reduziert Details |
keep_undistort_images | bool | false | Ob unverzerrte Bilder behalten werden sollen |
Ausgabeformat-Kontrolle
Parameter | Typ | Standard | Beschreibung |
---|---|---|---|
generate_osgb | bool | false | OSGB-Format 3D-Modell generieren |
generate_3d_tiles | bool | false | 3D Tiles (b3dm) Format generieren |
generate_las | bool | false | LAS-Format Punktwolke generieren |
generate_pc_ply | bool | false | PLY-Format Punktwolke generieren |
generate_pc_osgb | bool | false | OSGB-Format Punktwolke LOD generieren |
generate_pc_pnts | bool | false | pnts-Format Punktwolke LOD generieren |
generate_obj | bool | false | OBJ-Format texturiertes Mesh generieren |
generate_ply | bool | false | PLY-Format texturiertes Mesh generieren |
generate_geotiff | bool | false | GeoTIFF-Format Orthophoto generieren |
generate_tile_2D | bool | false | Tile-Schnitt auf Orthophoto durchführen |
generate_2D_from_3D_model | bool | false | 2D-Orthophoto aus 3D-Modell generieren |
Erweiterte Parameter
Parameter | Typ | Standard | Beschreibung |
---|---|---|---|
use_draco_compression | bool | true | Ob Draco-Kompression für 3D Tiles verwendet werden soll |
tex_image_type_3dtiles | int | 0 | 3D Tiles Texturformat: 0=JPEG, 1=WebP |
use_gcj02 | bool | false | Ob Orthophoto-Tiles zu GCJ02-Koordinatensystem konvertiert werden sollen |
coordinate_system_3d | JSON | - | Koordinatensystem für 3D-Ausgabe |
coordinate_system_2d | JSON | - | Koordinatensystem für 2D-Ausgabe |
roi_for_2d | JSON | - | Interessensbereich für 2D-Rekonstruktion |
roi_for_3d | JSON | - | Interessensbereich für 3D-Rekonstruktion |
roi_coordinate_system | JSON | WGS84 | Koordinatensystem 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 LODmodel-b3dm/
- 3D Tiles Format (mit tileset.json)model-obj/
- OBJ-Format Modell und Texturenpoint-las/
- LAS-Format Punktwolkepoint-ply/
- PLY-Format Punktwolkepoint-osgb/
- OSGB-Format Punktwolke LODpoint-pnts/
- 3D Tiles Punktwolke Format
2D-Produkt-Ausgabe (products/2D/
)
geotiffs/
- GeoTIFF-Format Orthophoto und DSMdom_tiles/
- Orthophoto-Tilesdsm_tiles/
- Digitale Oberflächenmodell-Tiles
Zwischenergebnisse (milestones/
)
undistorted/
- Unverzerrte Bilder (falls behalten)depth_maps/
- Tiefenkartenmesh/
- Zwischen-Mesh-Daten
Auflösungsgrad-Beschreibung
Grad | Beschreibung | Relative Verarbeitungszeit | Anwendungsszenarien |
---|---|---|---|
1 | Ultra-hohe Genauigkeit | 3-5x | Professionelle Vermessung, Kulturerbeschutz |
2 | Hohe Genauigkeit | 1x | Allgemeine Ingenieuranwendungen |
3 | Schnelle Vorschau | 0.2-0.3x | Schnelle 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 begrenzenresolution_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
- Ausgabeformat-Details überprüfen
- Über Blockverarbeitung für großmaßstäbliche Daten lernen
- Grundkonzepte studieren, um Rekonstruktionsqualität zu optimieren
Hinweis: Reconstruct3D bietet reiche Ausgabeoptionen. Es wird empfohlen, zuerst mit niedriger Genauigkeit zu validieren, dann mit hochqualitativer Rekonstruktion fortzufahren.