Перейти к основному содержимому

OptimizeAT - Оптимизация AT с ограничениями по контрольным точкам

Обзор

Интерфейс OptimizeAT используется для оптимизации результатов аэротриангуляции с использованием контрольных точек. Этот интерфейс вызывается после завершения измерения связующих точек, улучшая абсолютную точность AT путем введения наземных контрольных точек (GCP).

Случаи использования
  • Съемочные проекты, требующие высокой абсолютной точности
  • Проекты с данными наземных контрольных точек
  • Необходимость проверки и улучшения точности AT
  • Инженерная съемка и профессиональное картографирование

Рабочий процесс

Вызов интерфейса

Вызов из командной строки

reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_config.json

Описание параметров

  • reconstruct_type: Фиксированное значение 3 (указывает OptimizeAT)
  • task_json: Путь к файлу конфигурации

Параметры конфигурации

OptimizeAT использует те же параметры, что и ReconstructAT, с дополнительными параметрами контрольных точек:

Обязательные параметры

Все обязательные параметры из ReconstructAT, плюс:

ПараметрТипОписание
control_pointJSONИнформация о группе контрольных точек

Структура данных контрольных точек

ControlPointGroup

{
"coordinate_system": { // Система координат контрольных точек
"type": 3, // Обычно проецируемая система координат
"epsg_code": 32650 // например, UTM Zone 50N
},
"points": [ // Список контрольных точек
// Массив объектов ControlPoint
]
}

ControlPoint

{
"id": "GCP001", // Имя контрольной точки
"coordinate": [x, y, z], // Координаты контрольной точки
"usage": 0, // 0=контрольная точка, 1=проверочная точка, 2=отключена
"observations": [ // Наблюдения изображений
{
"id": 1, // ID изображения
"uv": [1234.5, 2345.6] // Пиксельные координаты
}
]
}

Полные примеры конфигурации

Базовая оптимизация контрольных точек

{
"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": [...], // То же, что в ReconstructAT
"image_meta_data": [...], // То же, что в 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, // Проверочная точка
"observations": [
{
"id": 2,
"uv": [1567.8, 2345.6]
}
]
}
]
}
}

Конфигурация высокоточного съемочного проекта

{
"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 высокая точность
"position_constant": false // Разрешить оптимизацию
}
}
],
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 4978 // ECEF для высокой точности
},
"points": [
// Несколько равномерно распределенных контрольных точек
{
"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": [...]
}
]
}
}

Принципы размещения контрольных точек

1. Требования к количеству

  • Минимум: 3 контрольные точки (требуется для решения)
  • Рекомендуется: 5-8 контрольных точек + 2-3 проверочные точки
  • Большая область: Как минимум 1 контрольная точка на 50-100 изображений

2. Требования к распределению

Идеальное распределение контрольных точек:

+-----+-----+-----+
| GCP | GCP | GCP |
+-----+-----+-----+
| GCP | CHK | GCP | GCP: Контрольная точка
+-----+-----+-----+ CHK: Проверочная точка
| GCP | GCP | GCP |
+-----+-----+-----+

3. Высотное распределение

  • Размещать контрольные точки на разных высотных уровнях
  • Избегать размещения всех контрольных точек в одной плоскости
  • Уделять особое внимание изменениям высот в горных проектах

Требования к точности измерений

Точность пикселей

  • Идеально: < 1 пиксель
  • Приемлемо: < 2 пикселей
  • Требует улучшения: > 3 пикселей

Многоракурсные наблюдения

  • Каждая контрольная точка видна как минимум на 2 изображениях
  • Идеально 3-5 изображений
  • Разность углов обзора > 15°

Соображения по системе координат

1. Согласованность системы координат

{
// Позиции изображений обычно в WGS84
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},

// Контрольные точки обычно в локальной проецируемой системе координат
"control_point": {
"coordinate_system": {
"type": 3,
"epsg_code": 32650 // Выбирать на основе местоположения проекта
}
}
}

2. Общие системы координат

РегионEPSGОписание
Китай4490CGCS2000 Географическая
Китай4547-4554CGCS2000 проекция Гаусса
Глобальная32601-32660UTM Северное полушарие
Глобальная32701-32760UTM Южное полушарие

Оценка качества

1. Интерпретация отчета оптимизации

После оптимизации проверьте отчет о точности в логах:

[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. Стандарты точности

Тип проектаГоризонтальная точностьВертикальная точность
Топографическое картографирование< 0.05m< 0.10m
Инженерная съемка< 0.10m< 0.15m
Общие приложения< 0.30m< 0.50m

Лучшие практики

1. Сбор контрольных точек

  • Используйте высокоточное оборудование, такое как RTK/Тахеометр
  • Выбирайте стабильные, легко идентифицируемые объекты
  • Ведите подробные описания точек и фотографии

2. Процесс измерения

  1. Загрузите изображения в просмотрщик результатов AT
  2. Найдите соответствующие объекты для контрольных точек
  3. Точно отметьте позиции пикселей
  4. Проверьте многоракурсную согласованность

3. Итеративная оптимизация

# Первая оптимизация
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v1.json

# Проверить результаты, скорректировать аномальные точки

# Вторая оптимизация
reconstruct_full_engine.exe -reconstruct_type 3 -task_json optimize_v2.json

4. Обработка общих проблем

Большие невязки

  • Проверить точность измерений
  • Проверить координаты контрольных точек
  • Рассмотреть установку точки как проверочной

Систематическое смещение

  • Проверить настройки системы координат
  • Проверить систему координат контрольных точек
  • Рассмотреть проблемы калибровки камеры

Результаты вывода

Оптимизированные результаты AT сохраняются в том же месте:

  • milestones/mvs_optimized.xml - Оптимизированный внутренний формат
  • products/AT/block_exchange_optimized.xml - Оптимизированный формат обмена
  • log/optimization_report.txt - Отчет оптимизации

Пример: Полный рабочий процесс

import subprocess
import json

# 1. Выполнить начальную AT
at_config = {
"license_id": 9200,
"working_dir": "C:/Project",
# ... другие параметры
}
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. Выполнить измерение контрольных точек (обычно делается во внешнем ПО)

# 3. Подготовить конфигурацию оптимизации
optimize_config = at_config.copy()
optimize_config["control_point"] = {
"coordinate_system": {"type": 3, "epsg_code": 32650},
"points": [
# Данные контрольных точек
]
}
with open("optimize_config.json", "w") as f:
json.dump(optimize_config, f)

# 4. Выполнить оптимизацию
subprocess.run(["reconstruct_full_engine.exe", "-reconstruct_type", "3", "-task_json", "optimize_config.json"])

# 5. Использовать оптимизированные результаты для 3D реконструкции
# ...

Следующие шаги


Совет: Контрольные точки являются ключом к обеспечению точности картографирования. Правильное размещение контрольных точек и точные измерения - основа получения высокоточных результатов.