ReconstructAT - Triangulation Aérienne
Aperçu
L'interface ReconstructAT est utilisée pour effectuer la Triangulation Aérienne (Aérotriangulation), et c'est l'interface préférée pour les utilisateurs professionnels nécessitant un contrôle fin. Cette interface fournit des paramètres détaillés et supporte des fonctionnalités avancées telles que le regroupement de caméras, l'importation POS et l'importation de points de contrôle.
- Besoin d'un contrôle fin sur les paramètres de triangulation aérienne
- Besoin de vérifier et d'optimiser les résultats de triangulation aérienne
- Reconstruction de système multi-caméras
- Besoin d'intégrer des points de contrôle
Utilisation de l'Interface
Utilisation en Ligne de Commande
reconstruct_full_engine.exe -reconstruct_type 1 -task_json at_config.json
Description des Paramètres
reconstruct_type
: Fixe à1
(indique ReconstructAT)task_json
: Chemin du fichier de configuration
Paramètres de Configuration
Paramètres Requis
Paramètre | Type | Description |
---|---|---|
license_id | int | Code de licence SDK, unifié à 9200 |
working_dir | string | Répertoire de travail pour les fichiers intermédiaires et résultats finaux |
gdal_folder | string | Chemin des données GDAL (dossier de données externes du SDK) |
coordinate_system | JSON | Système de coordonnées pour les positions d'image d'entrée |
image_meta_data | JSON Array | Informations de métadonnées d'image d'entrée |
camera_meta_data | JSON Array | Informations de métadonnées de caméra |
Paramètres Optionnels
Paramètre | Type | Défaut | Description |
---|---|---|---|
input_image_type | int | 1 | Type d'image: 1=RGB, 2=Multispectral, 3=Infrarouge |
remove_small_part | bool | false | S'il faut supprimer les petites composantes connectées des résultats AT |
output_tie_point_las | bool | false | S'il faut générer les points de liaison au format LAS |
output_block_change_xml | bool | true | S'il faut générer les résultats AT au format XML ContextCapture |
coordinate_system_AT | JSON | - | Système de coordonnées pour les résultats AT de sortie au format XML |
fast_mode | bool | false | Mode rapide, adapté aux données avec GPS |
use_image_position_constraint | bool | true | S'il faut utiliser les informations de position d'image comme contraintes |
use_voc_index | bool | true | S'il faut utiliser la récupération d'image pour la recherche de paires de correspondance |
use_spatial_index | bool | true | S'il faut utiliser la distance GPS pour la recherche de paires de correspondance |
Description de la Structure de Données
Métadonnées d'Image
{
"id": 1, // ID unique d'image
"path": "path/to/image.jpg", // Chemin absolu d'image
"group": "camera_1", // ID de groupe de caméra (optionnel)
"meta_data": { // Informations d'image (requis)
"width": 6000, // Largeur d'image (pixels)
"height": 4000, // Hauteur d'image (pixels)
"camera_id": 1, // ID de caméra correspondant (optionnel, sera écrasé par les métadonnées de caméra si 'pre_calib_param' est fourni)
"pos": [lon, lat, alt], // Position [longitude, latitude, élévation]
"pos_sigma": [1.0, 1.0, 2.0], // Précision de position (mètres)
"orientation": [...], // Matrice de rotation (9 valeurs, optionnel)
"position_constant": false, // S'il faut fixer la position
"relative_altitude": 100.0, // Altitude de vol relative (optionnel)
"focal_length_in_35mm": 24, // Distance focale équivalente 35mm
"pre_calib_param": [...], // Paramètres de pré-calibration (optionnel, sera écrasé si 'focal_length_in_35mm' est fourni)
"dewarp_flag": false // Indicateur de correction de distorsion (optionnel, des données DJI XMP)
}
}
Métadonnées de Caméra
{
"id": 1, // ID unique de caméra
"meta_data": {
"camera_name": "DJI FC6310", // Nom de caméra
"width": 6000, // Largeur de capteur (pixels)
"height": 4000, // Hauteur de capteur (pixels)
"parameters": [ // Paramètres intrinsèques de caméra (optionnel, tableau de 10 éléments, placeholder_param est actuellement paramètre de remplacement)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}
Système de Coordonnées
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected, 4=ECEF
"epsg_code": 4326, // Code EPSG (requis pour Geographic/Projected/ECEF)
"wkt": "...", // Chaîne WKT (peut remplacer epsg_code)
"origin_point": [lon, lat, alt], // Origine LocalENU (nécessaire seulement pour type=0)
"offset": [0, 0, 0] // Décalage relatif à l'origine du système de coordonnées
}
Exemples de Configuration Complète
Configuration de Base de Triangulation Aérienne
{
"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
}
Configuration de Groupe Multi-Caméras
{
"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
}
Configuration RTK/PPK Haute Précision
{
"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], // RTK haute précision
"orientation": [
// Matrice de rotation 3x3 (si données IMU disponibles)
]
}
}
],
"use_image_position_constraint": true
}
Résultats de Sortie
Après l'achèvement de la triangulation aérienne, ce qui suit sera généré dans le répertoire de travail:
1. Répertoire de Résultats Intermédiaires (milestones/
)
mvs.xml
- Résultats de triangulation aérienne au format internemvs_undistort.xml
- Résultats de triangulation aérienne non distordusroi.json
- Région d'intérêt calculée automatiquementcs.json
- Informations du système de coordonnéestie_points.las
- Nuage de points de liaison (si activé)
2. Résultats d'Exportation (products/AT/
)
block_exchange.xml
- Résultats de triangulation aérienne au format ContextCapture (si activé)
3. Fichiers de Journal (log/
)
log.txt
- Journal de traitement détaillé
Description d'Utilisation ROI
Le roi.json
généré après la triangulation aérienne contient trois types de ROI:
{
"rois": [
{
"type": "Smart", // Calculé intelligemment basé sur les points épars
"roi": {
"boundary": [...], // Sommets de limite 2D
"min_z": 100.0, // Élévation minimale
"max_z": 200.0 // Élévation maximale
}
},
{
"type": "Maximal", // Basé sur les positions d'image et points épars
"roi": {...}
},
{
"type": "Frustum", // Basé sur les frustums d'image
"roi": {...}
}
]
}
Meilleures Pratiques
1. Préparation des Images
- Assurez-vous que l'EXIF d'image contient des informations GPS complètes
- Chevauchement d'image recommandé >60%
- Évitez les images floues ou surexposées
2. Optimisation des Paramètres
- GPS Standard: Utilisez le
pos_sigma
par défaut [2.0, 2.0, 3.0] - RTK/PPK: Définissez un
pos_sigma
plus petit comme [0.05, 0.05, 0.10] - Mode Rapide: Activez
fast_mode
quand GPS est disponible
3. Traitement Multi-Caméras
- Utilisez le paramètre
group
pour identifier différentes caméras - Utilisez un
camera_id
indépendant pour chaque groupe de caméra - Assurez-vous que les paramètres de caméra sont précis
4. Optimisation de Grand Jeu de Données
- Activez
fast_mode
pour accélérer le traitement - Considérez l'utilisation de
remove_small_part
pour nettoyer les résultats - Définissez des limites raisonnables d'utilisation de mémoire
Questions Fréquentes
Q: La triangulation aérienne a échoué avec "correspondance d'image insuffisante"
R: Vérifiez:
- Le chevauchement d'image est-il suffisant (>60%)?
- Les informations GPS sont-elles précises?
- La qualité d'image est-elle bonne?
Q: Comment améliorer la précision de triangulation aérienne?
R:
- Utilisez des données POS haute précision (RTK/PPK)
- Définissez des valeurs
pos_sigma
appropriées - Utilisez OptimizeAT pour ajouter des points de contrôle
Q: Comment configurer des systèmes multi-caméras?
R:
- Créez des
camera_meta_data
indépendants pour chaque caméra - Utilisez le paramètre
group
pour distinguer les images de différentes caméras - Assurez-vous que les paramètres intrinsèques de caméra sont précis
Prochaines Étapes
- Utilisez OptimizeAT pour optimiser les résultats de triangulation aérienne
- Utilisez Reconstruct3D pour la reconstruction 3D
- Vérifiez Concepts de Base pour comprendre le flux de travail complet
Note: ReconstructAT fournit une flexibilité maximale, mais nécessite aussi plus de paramètres de configuration. Si vous avez juste besoin d'une reconstruction rapide, nous recommandons d'utiliser ReconstructFull.