Saltar al contenido principal

OptimizeAT - Optimización AT Restringida por Puntos de Control

Descripción General

La interfaz OptimizeAT se utiliza para optimizar resultados de triangulación aérea usando puntos de control. Esta interfaz se llama después de completar la medición de puntos de enlace, mejorando la precisión absoluta de AT mediante la introducción de puntos de control terrestre (GCP).

Casos de Uso
  • Proyectos de topografía que requieren alta precisión absoluta
  • Proyectos con datos de puntos de control terrestre
  • Necesidad de verificar y mejorar la precisión AT
  • Topografía de ingeniería y cartografía profesional

Flujo de Trabajo

Llamada de Interfaz

Llamada por Línea de Comandos

reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_config.json

Descripción de Parámetros

  • reconstruct_type: Fijo como 3 (indica OptimizeAT)
  • task_json: Ruta del archivo de configuración

Parámetros de Configuración

OptimizeAT usa los mismos parámetros que ReconstructAT, con parámetros adicionales de puntos de control:

Parámetros Requeridos

Todos los parámetros requeridos de ReconstructAT, más:

ParámetroTipoDescripción
control_pointJSONInformación del grupo de puntos de control

Estructura de Datos de Puntos de Control

ControlPointGroup

{
"coordinate_system": { // Sistema de coordenadas de puntos de control
"type": 3, // Usualmente sistema de coordenadas proyectado
"epsg_code": 32650 // ej., UTM Zone 50N
},
"points": [ // Lista de puntos de control
// Array de objetos ControlPoint
]
}

ControlPoint

{
"id": "GCP001", // Nombre del punto de control
"coordinate": [x, y, z], // Coordenadas del punto de control
"usage": 0, // 0=punto de control, 1=punto de verificación, 2=deshabilitado
"observations": [ // Observaciones de imagen
{
"id": 1, // ID de imagen
"uv": [1234.5, 2345.6] // Coordenadas de píxel
}
]
}

Ejemplos de Configuración Completa

Optimización Básica de Puntos de Control

{
"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": [...], // Mismo que ReconstructAT
"image_meta_data": [...], // Mismo que 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 de verificación
"observations": [
{
"id": 2,
"uv": [1567.8, 2345.6]
}
]
}
]
}
}

Configuración de Proyecto de Topografía de Alta Precisión

{
"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 precisión
"position_constant": false // Permitir optimización
}
}
],
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 4978 // ECEF para alta precisión
},
"points": [
// Múltiples puntos de control distribuidos 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": [...]
}
]
}
}

Principios de Colocación de Puntos de Control

1. Requisitos de Cantidad

  • Mínimo: 3 puntos de control (requeridos para la solución)
  • Recomendado: 5-8 puntos de control + 2-3 puntos de verificación
  • Área grande: Al menos 1 punto de control por 50-100 imágenes

2. Requisitos de Distribución

Distribución ideal de puntos de control:

+-----+-----+-----+
| GCP | GCP | GCP |
+-----+-----+-----+
| GCP | CHK | GCP | GCP: Punto de Control
+-----+-----+-----+ CHK: Punto de Verificación
| GCP | GCP | GCP |
+-----+-----+-----+

3. Distribución de Elevación

  • Colocar puntos de control en diferentes niveles de elevación
  • Evitar todos los puntos de control en el mismo plano
  • Prestar atención especial a cambios de elevación en proyectos montañosos

Requisitos de Precisión de Medición

Precisión de Píxel

  • Ideal: < 1 píxel
  • Aceptable: < 2 píxeles
  • Necesita mejora: > 3 píxeles

Observaciones Multi-Vista

  • Cada punto de control visible en al menos 2 imágenes
  • Idealmente 3-5 imágenes
  • Diferencia de ángulo de visión > 15°

Consideraciones del Sistema de Coordenadas

1. Consistencia del Sistema de Coordenadas

{
// Posiciones de imágenes usualmente en WGS84
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},

// Puntos de control usualmente en sistema de coordenadas proyectado local
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 32650 // Elegir basado en ubicación del proyecto
}
}
}

2. Sistemas de Coordenadas Comunes

RegiónEPSGDescripción
China4490CGCS2000 Geográfico
China4547-4554Proyección Gauss CGCS2000
Global32601-32660UTM Hemisferio Norte
Global32701-32760UTM Hemisferio Sur

Evaluación de Calidad

1. Interpretación del Informe de Optimización

Después de la optimización, verifique el informe de precisión en los registros:

[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. Estándares de Precisión

Tipo de ProyectoPrecisión HorizontalPrecisión Vertical
Cartografía Topográfica< 0.05m< 0.10m
Topografía de Ingeniería< 0.10m< 0.15m
Aplicaciones Generales< 0.30m< 0.50m

Mejores Prácticas

1. Recolección de Puntos de Control

  • Use equipos de alta precisión como RTK/Estación Total
  • Elija características estables y fácilmente identificables
  • Registre descripciones detalladas de puntos y fotos

2. Proceso de Medición

  1. Cargar imágenes en el visor de resultados AT
  2. Encontrar características correspondientes para puntos de control
  3. Marcar posiciones de píxel con precisión
  4. Verificar consistencia multi-vista

3. Optimización Iterativa

# Primera optimización
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v1.json

# Verificar resultados, ajustar puntos anómalos

# Segunda optimización
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v2.json

4. Manejo de Problemas Comunes

Residuos Grandes

  • Verificar precisión de medición
  • Verificar coordenadas de puntos de control
  • Considerar establecer el punto como punto de verificación

Sesgo Sistemático

  • Verificar configuraciones del sistema de coordenadas
  • Verificar sistema de coordenadas de puntos de control
  • Considerar problemas de calibración de cámara

Resultados de Salida

Los resultados AT optimizados se guardan en la misma ubicación:

  • milestones/mvs_optimized.xml - Formato interno optimizado
  • products/AT/block_exchange_optimized.xml - Formato de intercambio optimizado
  • log/optimization_report.txt - Informe de optimización

Ejemplo: Flujo de Trabajo Completo

import subprocess
import json

# 1. Ejecutar AT inicial
at_config = {
"license_id": 9200,
"working_dir": "C:/Project",
# ... otros parámetros
}
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. Realizar medición de puntos de control (usualmente hecho en software externo)

# 3. Preparar configuración de optimización
optimize_config = at_config.copy()
optimize_config["control_point"] = {
"coordinate_system": {"type": 3, "epsg_code": 32650},
"points": [
# Datos de puntos de control
]
}
with open("optimize_config.json", "w") as f:
json.dump(optimize_config, f)

# 4. Ejecutar optimización
subprocess.run(["reconstruct_full_engine.exe", "-reconstruct_type", "3", "-task_json", "optimize_config.json"])

# 5. Usar resultados optimizados para reconstrucción 3D
# ...

Próximos Pasos


Consejo: Los puntos de control son clave para asegurar la precisión de la cartografía. La colocación adecuada de puntos de control y la medición precisa son la base para obtener resultados de alta precisión.