ReconstructAT - Aerotriangulation
Überblick
Die ReconstructAT-Schnittstelle wird für die Durchführung der Aerotriangulation verwendet und ist die bevorzugte Schnittstelle für professionelle Anwender, die eine feine Kontrolle benötigen. Diese Schnittstelle bietet detaillierte Parametereinstellungen und unterstützt erweiterte Funktionen wie Kamera-Gruppierung, POS-Import und Kontrollpunkt-Import.
Anwendungsszenarien
- Benötigen feine Kontrolle über Aerotriangulations-Parameter
- Müssen Aerotriangulations-Ergebnisse überprüfen und optimieren
- Multi-Kamera-System-Rekonstruktion
- Müssen Kontrollpunkte integrieren
Schnittstellennutzung
Kommandozeilen-Nutzung
reconstruct_full_engine.exe -reconstruct_type 1 -task_json at_config.json
Parameterbeschreibung
reconstruct_type
: Fest als1
(zeigt ReconstructAT an)task_json
: Konfigurationsdatei-Pfad
Konfigurationsparameter
Erforderliche Parameter
Parameter | Typ | Beschreibung |
---|---|---|
license_id | int | SDK-Lizenzcode, einheitlich als 9200 |
working_dir | string | Arbeitsverzeichnis für Zwischendateien und finale Ergebnisse |
gdal_folder | string | GDAL-Datenpfad (SDK-externe Datenordner) |
coordinate_system | JSON | Koordinatensystem für Eingabebildpositionen |
image_meta_data | JSON Array | Eingabebild-Metadateninformationen |
camera_meta_data | JSON Array | Kamera-Metadateninformationen |
Optionale Parameter
Parameter | Typ | Standard | Beschreibung |
---|---|---|---|
input_image_type | int | 1 | Bildtyp: 1=RGB, 2=Multispektral, 3=Infrarot |
remove_small_part | bool | false | Ob kleine verbundene Komponenten aus AT-Ergebnissen entfernt werden sollen |
output_tie_point_las | bool | false | Ob Verknüpfungspunkte im LAS-Format ausgegeben werden sollen |
output_block_change_xml | bool | true | Ob AT-Ergebnisse im ContextCapture XML-Format ausgegeben werden sollen |
coordinate_system_AT | JSON | - | Koordinatensystem für XML-Format AT-Ausgabeergebnisse |
fast_mode | bool | false | Schnellmodus, geeignet für Daten mit GPS |
use_image_position_constraint | bool | true | Ob Bildpositionsinformationen als Einschränkungen verwendet werden sollen |
use_voc_index | bool | true | Ob Bildabruf für Matching-Paar-Suche verwendet werden soll |
use_spatial_index | bool | true | Ob GPS-Distanz für Matching-Paar-Suche verwendet werden soll |
Datenstruktur-Beschreibung
Bild-Metadaten
{
"id": 1, // Eindeutige Bild-ID
"path": "path/to/image.jpg", // Absoluter Bildpfad
"group": "camera_1", // Kamera-Gruppen-ID (optional)
"meta_data": { // Bildinformationen (erforderlich)
"width": 6000, // Bildbreite (Pixel)
"height": 4000, // Bildhöhe (Pixel)
"camera_id": 1, // Entsprechende Kamera-ID (optional, wird durch Kamera-Metadaten überschrieben, wenn 'pre_calib_param' bereitgestellt wird)
"pos": [lon, lat, alt], // Position [Längengrad, Breitengrad, Höhe]
"pos_sigma": [1.0, 1.0, 2.0], // Positionsgenauigkeit (Meter)
"orientation": [...], // Rotationsmatrix (9 Werte, optional)
"position_constant": false, // Ob Position fixiert werden soll
"relative_altitude": 100.0, // Relative Flughöhe (optional)
"focal_length_in_35mm": 24, // 35mm-äquivalente Brennweite
"pre_calib_param": [...], // Vor-Kalibrierungsparameter (optional, wird überschrieben, wenn 'focal_length_in_35mm' bereitgestellt wird)
"dewarp_flag": false // Verzerrungskorrektur-Flag (optional, aus DJI XMP-Daten)
}
}
Kamera-Metadaten
{
"id": 1, // Eindeutige Kamera-ID
"meta_data": {
"camera_name": "DJI FC6310", // Kameraname
"width": 6000, // Sensorbreite (Pixel)
"height": 4000, // Sensorhöhe (Pixel)
"parameters": [ // Kamera-Intrinsics (optional, 10-Elemente-Array, placeholder_param ist derzeit Platzhalter-Parameter)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}
Koordinatensystem
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected, 4=ECEF
"epsg_code": 4326, // EPSG-Code (erforderlich für Geographic/Projected/ECEF)
"wkt": "...", // WKT-String (kann epsg_code ersetzen)
"origin_point": [lon, lat, alt], // LocalENU-Ursprung (nur für type=0 benötigt)
"offset": [0, 0, 0] // Versatz relativ zum Koordinatensystem-Ursprung
}
Vollständige Konfigurationsbeispiele
Basis-Aerotriangulation-Konfiguration
{
"license_id": 9200,
"working_dir": "C:/Projects/AT_Task",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "DJI FC6310",
"width": 5472,
"height": 3648
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "C:/Images/DJI_0001.JPG",
"meta_data": {
"width": 5472,
"height": 3648,
"camera_id": 1,
"pos": [114.123456, 22.123456, 100.5],
"pos_sigma": [2.0, 2.0, 3.0]
}
},
{
"id": 2,
"path": "C:/Images/DJI_0002.JPG",
"meta_data": {
"width": 5472,
"height": 3648,
"camera_id": 1,
"pos": [114.123556, 22.123456, 100.8],
"pos_sigma": [2.0, 2.0, 3.0]
}
}
],
"output_tie_point_las": true,
"output_block_change_xml": true
}
Multi-Kamera-Gruppenkonfiguration
{
"license_id": 9200,
"working_dir": "C:/Projects/MultiCamera_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "Camera_Nadir",
"width": 6000,
"height": 4000
}
},
{
"id": 2,
"meta_data": {
"camera_name": "Camera_Oblique",
"width": 6000,
"height": 4000
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "nadir/IMG_0001.JPG",
"group": "nadir",
"meta_data": {
"width": 6000,
"height": 4000,
"camera_id": 1,
"pos": [114.123456, 22.123456, 200.0],
"pos_sigma": [0.05, 0.05, 0.10]
}
},
{
"id": 2,
"path": "oblique/IMG_0001.JPG",
"group": "oblique_forward",
"meta_data": {
"width": 6000,
"height": 4000,
"camera_id": 2,
"pos": [114.123456, 22.123456, 200.0],
"pos_sigma": [0.05, 0.05, 0.10]
}
}
],
"fast_mode": true
}
Hochpräzisions-RTK/PPK-Konfiguration
{
"license_id": 9200,
"working_dir": "C:/Projects/RTK_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "DJI P1",
"width": 8192,
"height": 5460,
"parameters": [8839.5, 8839.5, 4096, 2730, 0, 0, 0, 0, 0, 0]
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "C:/RTK_Images/IMG_0001.JPG",
"meta_data": {
"width": 8192,
"height": 5460,
"camera_id": 1,
"pos": [114.12345678, 22.12345678, 150.123],
"pos_sigma": [0.02, 0.02, 0.05], // Hochpräzisions-RTK
"orientation": [
// 3x3-Rotationsmatrix (falls IMU-Daten verfügbar)
]
}
}
],
"use_image_position_constraint": true
}
Ausgabeergebnisse
Nach Abschluss der Aerotriangulation wird folgendes im Arbeitsverzeichnis generiert:
1. Zwischenergebnis-Verzeichnis (milestones/
)
mvs.xml
- Aerotriangulations-Ergebnisse in internem Formatmvs_undistort.xml
- Unverzerrte Aerotriangulations-Ergebnisseroi.json
- Automatisch berechneter Interessensbereichcs.json
- Koordinatensystem-Informationentie_points.las
- Verknüpfungspunkt-Wolke (falls aktiviert)
2. Export-Ergebnisse (products/AT/
)
block_exchange.xml
- ContextCapture-Format Aerotriangulations-Ergebnisse (falls aktiviert)
3. Log-Dateien (log/
)
log.txt
- Detailliertes Verarbeitungsprotokoll
ROI-Nutzungsbeschreibung
Die nach der Aerotriangulation generierte roi.json
enthält drei ROI-Typen:
{
"rois": [
{
"type": "Smart", // Intelligent basierend auf spärlichen Punkten berechnet
"roi": {
"boundary": [...], // 2D-Grenzscheitelpunkte
"min_z": 100.0, // Minimale Höhe
"max_z": 200.0 // Maximale Höhe
}
},
{
"type": "Maximal", // Basierend auf Bildpositionen und spärlichen Punkten
"roi": {...}
},
{
"type": "Frustum", // Basierend auf Bild-Frustums
"roi": {...}
}
]
}
Beste Praktiken
1. Bildvorbereitung
- Stellen Sie sicher, dass Bild-EXIF vollständige GPS-Informationen enthält
- Empfohlene Bildüberlappung >60%
- Vermeiden Sie unscharfe oder überbelichtete Bilder
2. Parameteroptimierung
- Standard-GPS: Verwenden Sie Standard
pos_sigma
[2.0, 2.0, 3.0] - RTK/PPK: Setzen Sie kleinere
pos_sigma
wie [0.05, 0.05, 0.10] - Schnellmodus: Aktivieren Sie
fast_mode
, wenn GPS verfügbar ist
3. Multi-Kamera-Verarbeitung
- Verwenden Sie
group
-Parameter zur Identifizierung verschiedener Kameras - Verwenden Sie unabhängige
camera_id
für jede Kameragruppe - Stellen Sie sicher, dass Kameraparameter genau sind
4. Große Datensatz-Optimierung
- Aktivieren Sie
fast_mode
zur Beschleunigung der Verarbeitung - Erwägen Sie die Verwendung von
remove_small_part
zur Ergebnisbereinigung - Setzen Sie vernünftige Speichernutzungsgrenzen
Häufige Fragen
F: Aerotriangulation fehlgeschlagen mit "unzureichende Bildabstimmung"
A: Überprüfen Sie:
- Ist die Bildüberlappung ausreichend (>60%)
- Sind GPS-Informationen genau
- Ist die Bildqualität gut
F: Wie kann die Aerotriangulations-Genauigkeit verbessert werden?
A:
- Verwenden Sie hochpräzise POS-Daten (RTK/PPK)
- Setzen Sie angemessene
pos_sigma
-Werte - Verwenden Sie OptimizeAT zum Hinzufügen von Kontrollpunkten
F: Wie werden Multi-Kamera-Systeme eingerichtet?
A:
- Erstellen Sie unabhängige
camera_meta_data
für jede Kamera - Verwenden Sie
group
-Parameter zur Unterscheidung von Bildern verschiedener Kameras - Stellen Sie sicher, dass Kamera-Intrinsics genau sind
Nächste Schritte
- Verwenden Sie OptimizeAT zur Optimierung der Aerotriangulations-Ergebnisse
- Verwenden Sie Reconstruct3D für 3D-Rekonstruktion
- Überprüfen Sie Grundkonzepte, um den vollständigen Workflow zu verstehen
Hinweis: ReconstructAT bietet maximale Flexibilität, erfordert aber auch mehr Parametereinstellungen. Wenn Sie nur eine schnelle Rekonstruktion benötigen, empfehlen wir die Verwendung von ReconstructFull.