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).
- 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 como3(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ámetro | Tipo | Descripción |
|---|---|---|
control_point | JSON | Informació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ón | EPSG | Descripción |
|---|---|---|
| China | 4490 | CGCS2000 Geográfico |
| China | 4547-4554 | Proyección Gauss CGCS2000 |
| Global | 32601-32660 | UTM Hemisferio Norte |
| Global | 32701-32760 | UTM 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 Proyecto | Precisión Horizontal | Precisió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
- Cargar imágenes en el visor de resultados AT
- Encontrar características correspondientes para puntos de control
- Marcar posiciones de píxel con precisión
- 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 optimizadoproducts/AT/block_exchange_optimized.xml- Formato de intercambio optimizadolog/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
- Use resultados AT optimizados para Reconstruct3D
- Aprenda sobre procesamiento de teselado de datos a gran escala
- Revise Conceptos Básicos para entender el uso de puntos de control
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.