Passa al contenuto principale

OptimizeAT - Ottimizzazione AT Vincolata a Punti di Controllo

Panoramica

L'interfaccia OptimizeAT viene utilizzata per ottimizzare i risultati della triangolazione aerea utilizzando punti di controllo. Questa interfaccia viene chiamata dopo aver completato la misurazione dei punti di collegamento, migliorando la precisione assoluta dell'AT introducendo punti di controllo a terra (GCP).

Casi d'Uso
  • Progetti di rilevamento che richiedono alta precisione assoluta
  • Progetti con dati di punti di controllo a terra
  • Necessità di verificare e migliorare la precisione AT
  • Rilevamento ingegneristico e cartografia professionale

Flusso di Lavoro

Chiamata Interfaccia

Chiamata a Riga di Comando

reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_config.json

Descrizione Parametri

  • reconstruct_type: Fisso come 3 (indica OptimizeAT)
  • task_json: Percorso file di configurazione

Parametri di Configurazione

OptimizeAT utilizza gli stessi parametri di ReconstructAT, con parametri aggiuntivi per i punti di controllo:

Parametri Richiesti

Tutti i parametri richiesti da ReconstructAT, più:

ParametroTipoDescrizione
control_pointJSONInformazioni gruppo punti di controllo

Struttura Dati Punti di Controllo

ControlPointGroup

{
"coordinate_system": { // Sistema di coordinate punti di controllo
"type": 3, // Solitamente sistema di coordinate proiettato
"epsg_code": 32650 // es., UTM Zone 50N
},
"points": [ // Lista punti di controllo
// Array di oggetti ControlPoint
]
}

ControlPoint

{
"id": "GCP001", // Nome punto di controllo
"coordinate": [x, y, z], // Coordinate punto di controllo
"usage": 0, // 0=punto di controllo, 1=punto di verifica, 2=disabilitato
"observations": [ // Osservazioni immagine
{
"id": 1, // ID immagine
"uv": [1234.5, 2345.6] // Coordinate pixel
}
]
}

Esempi di Configurazione Completa

Ottimizzazione Base Punti di Controllo

{
"license_id": 9200,
"working_dir": "C:/Projects/AT_Optimize",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [...], // Stesso di ReconstructAT
"image_meta_data": [...], // Stesso di ReconstructAT
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 32650 // UTM Zone 50N
},
"points": [
{
"id": "GCP001",
"coordinate": [500123.456, 2500123.456, 123.456],
"usage": 0,
"observations": [
{
"id": 1,
"uv": [2736.5, 1824.3]
},
{
"id": 5,
"uv": [1892.7, 2104.8]
}
]
},
{
"id": "GCP002",
"coordinate": [500223.456, 2500223.456, 125.678],
"usage": 0,
"observations": [
{
"id": 3,
"uv": [3104.2, 1567.9]
},
{
"id": 7,
"uv": [2345.6, 1890.2]
}
]
},
{
"id": "CHECK001",
"coordinate": [500323.456, 2500323.456, 127.890],
"usage": 1, // Punto di verifica
"observations": [
{
"id": 2,
"uv": [1567.8, 2345.6]
}
]
}
]
}
}

Configurazione Progetto Rilevamento Alta Precisione

{
"license_id": 9200,
"working_dir": "C:/Projects/HighPrecision_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [...],
"image_meta_data": [
{
"id": 1,
"path": "IMG_0001.JPG",
"meta_data": {
"pos": [114.123, 22.123, 150.0],
"pos_sigma": [0.05, 0.05, 0.10], // RTK alta precisione
"position_constant": false // Permetti ottimizzazione
}
}
],
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 4978 // ECEF per alta precisione
},
"points": [
// Multipli punti di controllo distribuiti uniformemente
{
"id": "GCP_NW",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_NE",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_SW",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_SE",
"coordinate": [...],
"usage": 0,
"observations": [...]
},
{
"id": "GCP_CENTER",
"coordinate": [...],
"usage": 0,
"observations": [...]
}
]
}
}

Principi di Posizionamento Punti di Controllo

1. Requisiti di Quantità

  • Minimo: 3 punti di controllo (richiesti per la soluzione)
  • Raccomandato: 5-8 punti di controllo + 2-3 punti di verifica
  • Area grande: Almeno 1 punto di controllo per 50-100 immagini

2. Requisiti di Distribuzione

Distribuzione ideale punti di controllo:

+-----+-----+-----+
| GCP | GCP | GCP |
+-----+-----+-----+
| GCP | CHK | GCP | GCP: Punto di Controllo
+-----+-----+-----+ CHK: Punto di Verifica
| GCP | GCP | GCP |
+-----+-----+-----+

3. Distribuzione Altimetrica

  • Posizionare punti di controllo a diversi livelli di elevazione
  • Evitare tutti i punti di controllo sullo stesso piano
  • Prestare attenzione speciale ai cambiamenti di elevazione nei progetti montani

Requisiti di Precisione di Misurazione

Precisione Pixel

  • Ideale: < 1 pixel
  • Accettabile: < 2 pixel
  • Necessita miglioramento: > 3 pixel

Osservazioni Multi-Vista

  • Ogni punto di controllo visibile in almeno 2 immagini
  • Idealmente 3-5 immagini
  • Differenza angolo di vista > 15°

Considerazioni Sistema di Coordinate

1. Coerenza Sistema di Coordinate

{
// Posizioni immagini solitamente in WGS84
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},

// Punti di controllo solitamente in sistema di coordinate proiettato locale
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 32650 // Scegliere basato su ubicazione progetto
}
}
}

2. Sistemi di Coordinate Comuni

RegioneEPSGDescrizione
Cina4490CGCS2000 Geografico
Cina4547-4554Proiezione Gauss CGCS2000
Globale32601-32660UTM Emisfero Nord
Globale32701-32760UTM Emisfero Sud

Valutazione Qualità

1. Interpretazione Rapporto Ottimizzazione

Dopo l'ottimizzazione, controllare il rapporto di precisione nei log:

[INFO] Control Point Residuals:
GCP001: 0.023m (X), 0.015m (Y), 0.041m (Z)
GCP002: 0.019m (X), 0.022m (Y), 0.038m (Z)

[INFO] Check Point Errors:
CHECK001: 0.045m (X), 0.052m (Y), 0.068m (Z)

[INFO] RMS Error: 0.048m

2. Standard di Precisione

Tipo ProgettoPrecisione OrizzontalePrecisione Verticale
Cartografia Topografica< 0.05m< 0.10m
Rilevamento Ingegneristico< 0.10m< 0.15m
Applicazioni Generali< 0.30m< 0.50m

Migliori Pratiche

1. Raccolta Punti di Controllo

  • Usare attrezzature ad alta precisione come RTK/Stazione Totale
  • Scegliere caratteristiche stabili e facilmente identificabili
  • Registrare descrizioni dettagliate dei punti e foto

2. Processo di Misurazione

  1. Caricare immagini nel visualizzatore risultati AT
  2. Trovare caratteristiche corrispondenti per punti di controllo
  3. Marcare precisamente posizioni pixel
  4. Controllare coerenza multi-vista

3. Ottimizzazione Iterativa

# Prima ottimizzazione
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v1.json

# Controllare risultati, aggiustare punti anomali

# Seconda ottimizzazione
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v2.json

4. Gestione Problemi Comuni

Residui Grandi

  • Controllare precisione misurazione
  • Verificare coordinate punti di controllo
  • Considerare impostare il punto come punto di verifica

Distorsione Sistematica

  • Controllare impostazioni sistema di coordinate
  • Verificare sistema di coordinate punti di controllo
  • Considerare problemi calibrazione fotocamera

Risultati Output

I risultati AT ottimizzati sono salvati nella stessa posizione:

  • milestones/mvs_optimized.xml - Formato interno ottimizzato
  • products/AT/block_exchange_optimized.xml - Formato scambio ottimizzato
  • log/optimization_report.txt - Rapporto ottimizzazione

Esempio: Flusso di Lavoro Completo

import subprocess
import json

# 1. Eseguire AT iniziale
at_config = {
"license_id": 9200,
"working_dir": "C:/Project",
# ... altri parametri
}
with open("at_config.json", "w") as f:
json.dump(at_config, f)

subprocess.run(["reconstruct_full_engine.exe", "-reconstruct_type", "1", "-task_json", "at_config.json"])

# 2. Eseguire misurazione punti di controllo (solitamente fatto in software esterno)

# 3. Preparare configurazione ottimizzazione
optimize_config = at_config.copy()
optimize_config["control_point"] = {
"coordinate_system": {"type": 3, "epsg_code": 32650},
"points": [
# Dati punti di controllo
]
}
with open("optimize_config.json", "w") as f:
json.dump(optimize_config, f)

# 4. Eseguire ottimizzazione
subprocess.run(["reconstruct_full_engine.exe", "-reconstruct_type", "3", "-task_json", "optimize_config.json"])

# 5. Usare risultati ottimizzati per ricostruzione 3D
# ...

Prossimi Passi


Suggerimento: I punti di controllo sono la chiave per assicurare la precisione di mappatura. Il posizionamento appropriato dei punti di controllo e la misurazione precisa sono la base per ottenere risultati ad alta precisione.