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_point | JSON | Информация о группе контрольных точек |
Структура данных контрольных точек
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 | Описание |
---|---|---|
Китай | 4490 | CGCS2000 Географическая |
Китай | 4547-4554 | CGCS2000 проекция Гаусса |
Глобальная | 32601-32660 | UTM Северное полушарие |
Глобальная | 32701-32760 | UTM Южное полушарие |
Оценка качества
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. Процесс измерения
- Загрузите изображения в просмотрщик результатов AT
- Найдите соответствующие объекты для контрольных точек
- Точно отметьте позиции пикселей
- Проверьте многоракурсную согласованность
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 реконструкции
# ...
Следующие шаги
- Используйте оптимизированные результаты AT для Reconstruct3D
- Изучите обработку тайлинга крупномасштабных данных
- Проверьте Основные концепции для понимания использования контрольных точек
Совет: Контрольные точки являются ключом к обеспечению точности картографирования. Правильное размещение контрольных точек и точные измерения - основа получения высокоточных результатов.