OptimizeAT - Otimização AT Restrita por Pontos de Controle
Visão Geral
A interface OptimizeAT é usada para otimizar resultados de triangulação aérea usando pontos de controle. Esta interface é chamada após completar a medição de pontos de ligação, melhorando a precisão absoluta da AT através da introdução de pontos de controle terrestre (GCP).
Casos de Uso
- Projetos de levantamento que requerem alta precisão absoluta
- Projetos com dados de pontos de controle terrestre
- Necessidade de verificar e melhorar a precisão AT
- Levantamento de engenharia e mapeamento profissional
Fluxo de Trabalho
Chamada da Interface
Chamada por Linha de Comando
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_config.json
Descrição dos Parâmetros
reconstruct_type
: Fixo como3
(indica OptimizeAT)task_json
: Caminho do arquivo de configuração
Parâmetros de Configuração
OptimizeAT usa os mesmos parâmetros que ReconstructAT, com parâmetros adicionais de pontos de controle:
Parâmetros Obrigatórios
Todos os parâmetros obrigatórios do ReconstructAT, mais:
Parâmetro | Tipo | Descrição |
---|---|---|
control_point | JSON | Informações do grupo de pontos de controle |
Estrutura de Dados dos Pontos de Controle
ControlPointGroup
{
"coordinate_system": { // Sistema de coordenadas dos pontos de controle
"type": 3, // Geralmente sistema de coordenadas projetado
"epsg_code": 32650 // ex., UTM Zone 50N
},
"points": [ // Lista de pontos de controle
// Array de objetos ControlPoint
]
}
ControlPoint
{
"id": "GCP001", // Nome do ponto de controle
"coordinate": [x, y, z], // Coordenadas do ponto de controle
"usage": 0, // 0=ponto de controle, 1=ponto de verificação, 2=desabilitado
"observations": [ // Observações da imagem
{
"id": 1, // ID da imagem
"uv": [1234.5, 2345.6] // Coordenadas do pixel
}
]
}
Exemplos de Configuração Completa
Otimização Básica de Pontos de Controle
{
"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": [...], // Mesmo que ReconstructAT
"image_meta_data": [...], // Mesmo 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, // Ponto de verificação
"observations": [
{
"id": 2,
"uv": [1567.8, 2345.6]
}
]
}
]
}
}
Configuração de Projeto de Levantamento de Alta Precisão
{
"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 precisão
"position_constant": false // Permitir otimização
}
}
],
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 4978 // ECEF para alta precisão
},
"points": [
// Múltiplos pontos de controle distribuídos 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": [...]
}
]
}
}
Princípios de Colocação de Pontos de Controle
1. Requisitos de Quantidade
- Mínimo: 3 pontos de controle (necessários para a solução)
- Recomendado: 5-8 pontos de controle + 2-3 pontos de verificação
- Área grande: Pelo menos 1 ponto de controle por 50-100 imagens
2. Requisitos de Distribuição
Distribuição ideal de pontos de controle:
+-----+-----+-----+
| GCP | GCP | GCP |
+-----+-----+-----+
| GCP | CHK | GCP | GCP: Ponto de Controle
+-----+-----+-----+ CHK: Ponto de Verificação
| GCP | GCP | GCP |
+-----+-----+-----+
3. Distribuição de Elevação
- Colocar pontos de controle em diferentes níveis de elevação
- Evitar todos os pontos de controle no mesmo plano
- Prestar atenção especial às mudanças de elevação em projetos montanhosos
Requisitos de Precisão de Medição
Precisão de Pixel
- Ideal: < 1 pixel
- Aceitável: < 2 pixels
- Precisa melhorar: > 3 pixels
Observações Multi-Vista
- Cada ponto de controle visível em pelo menos 2 imagens
- Idealmente 3-5 imagens
- Diferença de ângulo de visão > 15°
Considerações do Sistema de Coordenadas
1. Consistência do Sistema de Coordenadas
{
// Posições das imagens geralmente em WGS84
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
// Pontos de controle geralmente em sistema de coordenadas projetado local
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 32650 // Escolher baseado na localização do projeto
}
}
}
2. Sistemas de Coordenadas Comuns
Região | EPSG | Descrição |
---|---|---|
China | 4490 | CGCS2000 Geográfico |
China | 4547-4554 | Projeção Gauss CGCS2000 |
Global | 32601-32660 | UTM Hemisfério Norte |
Global | 32701-32760 | UTM Hemisfério Sul |
Avaliação de Qualidade
1. Interpretação do Relatório de Otimização
Após a otimização, verifique o relatório de precisão nos logs:
[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. Padrões de Precisão
Tipo de Projeto | Precisão Horizontal | Precisão Vertical |
---|---|---|
Mapeamento Topográfico | < 0.05m | < 0.10m |
Levantamento de Engenharia | < 0.10m | < 0.15m |
Aplicações Gerais | < 0.30m | < 0.50m |
Melhores Práticas
1. Coleta de Pontos de Controle
- Use equipamentos de alta precisão como RTK/Estação Total
- Escolha características estáveis e facilmente identificáveis
- Registre descrições detalhadas dos pontos e fotos
2. Processo de Medição
- Carregue imagens no visualizador de resultados AT
- Encontre características correspondentes para pontos de controle
- Marque posições de pixel com precisão
- Verifique consistência multi-vista
3. Otimização Iterativa
# Primeira otimização
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v1.json
# Verificar resultados, ajustar pontos anômalos
# Segunda otimização
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v2.json
4. Tratamento de Problemas Comuns
Grandes Resíduos
- Verificar precisão de medição
- Verificar coordenadas dos pontos de controle
- Considerar definir o ponto como ponto de verificação
Viés Sistemático
- Verificar configurações do sistema de coordenadas
- Verificar sistema de coordenadas dos pontos de controle
- Considerar problemas de calibração da câmera
Resultados de Saída
Resultados AT otimizados são salvos no mesmo local:
milestones/mvs_optimized.xml
- Formato interno otimizadoproducts/AT/block_exchange_optimized.xml
- Formato de intercâmbio otimizadolog/optimization_report.txt
- Relatório de otimização
Exemplo: Fluxo de Trabalho Completo
import subprocess
import json
# 1. Executar AT inicial
at_config = {
"license_id": 9200,
"working_dir": "C:/Project",
# ... outros 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 medição de pontos de controle (geralmente feito em software externo)
# 3. Preparar configuração de otimização
optimize_config = at_config.copy()
optimize_config["control_point"] = {
"coordinate_system": {"type": 3, "epsg_code": 32650},
"points": [
# Dados dos pontos de controle
]
}
with open("optimize_config.json", "w") as f:
json.dump(optimize_config, f)
# 4. Executar otimização
subprocess.run(["reconstruct_full_engine.exe", "-reconstruct_type", "3", "-task_json", "optimize_config.json"])
# 5. Usar resultados otimizados para reconstrução 3D
# ...
Próximos Passos
- Use resultados AT otimizados para Reconstruct3D
- Aprenda sobre processamento de ladrilhamento de dados em larga escala
- Verifique Conceitos Básicos para entender o uso de pontos de controle
Dica: Os pontos de controle são a chave para garantir a precisão do mapeamento. A colocação adequada de pontos de controle e medição precisa são a base para obter resultados de alta precisão.