ReconstructAT - Воздушная Триангуляция
Обзор
Интерфейс ReconstructAT используется для выполнения Воздушной Триангуляции (Аэротриангуляции) и является предпочтительным интерфейсом для профессиональных пользователей, требующих точного контроля. Этот интерфейс предоставляет детальные настройки параметров и поддерживает продвинутые функции, такие как группировка камер, импорт POS и импорт контрольных точек.
Применимые Сценарии
- Необходим точный контроль параметров воздушной триангуляции
- Необходимо проверить и оптимизировать результаты воздушной триангуляции
- Реконструкция многокамерной системы
- Необходимо интегрировать контрольные точки
Использование Интерфейса
Использование Командной Строки
reconstruct_full_engine.exe -reconstruct_type 1 -task_json at_config.json
Описание Параметров
reconstruct_type
: Фиксированное значение1
(указывает ReconstructAT)task_json
: Путь к файлу конфигурации
Параметры Конфигурации
Обязательные Параметры
Параметр | Тип | Описание |
---|---|---|
license_id | int | Код лицензии SDK, унифицированный как 9200 |
working_dir | string | Рабочий каталог для промежуточных файлов и конечных результатов |
gdal_folder | string | Путь к данным GDAL (папка внешних данных SDK) |
coordinate_system | JSON | Система координат для позиций входных изображений |
image_meta_data | JSON Array | Информация метаданных входных изображений |
camera_meta_data | JSON Array | Информация метаданных камеры |
Дополнительные Параметры
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
input_image_type | int | 1 | Тип изображения: 1=RGB, 2=Мультиспектральный, 3=Инфракрасный |
remove_small_part | bool | false | Удалять ли малые связные компоненты из результатов AT |
output_tie_point_las | bool | false | Выводить ли связующие точки в формате LAS |
output_block_change_xml | bool | true | Выводить ли результаты AT в формате XML ContextCapture |
coordinate_system_AT | JSON | - | Система координат для выходных результатов AT в формате XML |
fast_mode | bool | false | Быстрый режим, подходящий для данных с GPS |
use_image_position_constraint | bool | true | Использовать ли информацию о позиции изображения как ограничения |
use_voc_index | bool | true | Использовать ли поиск изображений для поиска пар сопоставления |
use_spatial_index | bool | true | Использовать ли расстояние GPS для поиска пар сопоставления |
Описание Структуры Данных
Метаданные Изображения
{
"id": 1, // Уникальный ID изображения
"path": "path/to/image.jpg", // Абсолютный путь к изображению
"group": "camera_1", // ID группы камеры (опционально)
"meta_data": { // Информация об изображении (обязательно)
"width": 6000, // Ширина изображения (пиксели)
"height": 4000, // Высота изображения (пиксели)
"camera_id": 1, // Соответствующий ID камеры (опционально, будет перезаписан метаданными камеры, если предоставлен 'pre_calib_param')
"pos": [lon, lat, alt], // Позиция [долгота, широта, высота]
"pos_sigma": [1.0, 1.0, 2.0], // Точность позиции (метры)
"orientation": [...], // Матрица поворота (9 значений, опционально)
"position_constant": false, // Фиксировать ли позицию
"relative_altitude": 100.0, // Относительная высота полета (опционально)
"focal_length_in_35mm": 24, // Эквивалентное фокусное расстояние 35мм
"pre_calib_param": [...], // Параметры предварительной калибровки (опционально, будет перезаписан, если предоставлен 'focal_length_in_35mm')
"dewarp_flag": false // Флаг коррекции искажений (опционально, из данных DJI XMP)
}
}
Метаданные Камеры
{
"id": 1, // Уникальный ID камеры
"meta_data": {
"camera_name": "DJI FC6310", // Название камеры
"width": 6000, // Ширина сенсора (пиксели)
"height": 4000, // Высота сенсора (пиксели)
"parameters": [ // Внутренние параметры камеры (опционально, массив из 10 элементов, placeholder_param в настоящее время является параметром-заполнителем)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}
Система Координат
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected, 4=ECEF
"epsg_code": 4326, // Код EPSG (требуется для Geographic/Projected/ECEF)
"wkt": "...", // Строка WKT (может заменить epsg_code)
"origin_point": [lon, lat, alt], // Начало координат LocalENU (нужно только для type=0)
"offset": [0, 0, 0] // Смещение относительно начала системы координат
}
Полные Примеры Конфигурации
Базовая Конфигурация Воздушной Триангуляции
{
"license_id": 9200,
"working_dir": "C:/Projects/AT_Task",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "DJI FC6310",
"width": 5472,
"height": 3648
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "C:/Images/DJI_0001.JPG",
"meta_data": {
"width": 5472,
"height": 3648,
"camera_id": 1,
"pos": [114.123456, 22.123456, 100.5],
"pos_sigma": [2.0, 2.0, 3.0]
}
},
{
"id": 2,
"path": "C:/Images/DJI_0002.JPG",
"meta_data": {
"width": 5472,
"height": 3648,
"camera_id": 1,
"pos": [114.123556, 22.123456, 100.8],
"pos_sigma": [2.0, 2.0, 3.0]
}
}
],
"output_tie_point_las": true,
"output_block_change_xml": true
}
Конфигурация Группы Многокамерной Системы
{
"license_id": 9200,
"working_dir": "C:/Projects/MultiCamera_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "Camera_Nadir",
"width": 6000,
"height": 4000
}
},
{
"id": 2,
"meta_data": {
"camera_name": "Camera_Oblique",
"width": 6000,
"height": 4000
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "nadir/IMG_0001.JPG",
"group": "nadir",
"meta_data": {
"width": 6000,
"height": 4000,
"camera_id": 1,
"pos": [114.123456, 22.123456, 200.0],
"pos_sigma": [0.05, 0.05, 0.10]
}
},
{
"id": 2,
"path": "oblique/IMG_0001.JPG",
"group": "oblique_forward",
"meta_data": {
"width": 6000,
"height": 4000,
"camera_id": 2,
"pos": [114.123456, 22.123456, 200.0],
"pos_sigma": [0.05, 0.05, 0.10]
}
}
],
"fast_mode": true
}
Высокоточная Конфигурация RTK/PPK
{
"license_id": 9200,
"working_dir": "C:/Projects/RTK_AT",
"gdal_folder": "C:/MipMap/SDK/data",
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "DJI P1",
"width": 8192,
"height": 5460,
"parameters": [8839.5, 8839.5, 4096, 2730, 0, 0, 0, 0, 0, 0]
}
}
],
"image_meta_data": [
{
"id": 1,
"path": "C:/RTK_Images/IMG_0001.JPG",
"meta_data": {
"width": 8192,
"height": 5460,
"camera_id": 1,
"pos": [114.12345678, 22.12345678, 150.123],
"pos_sigma": [0.02, 0.02, 0.05], // Высокоточный RTK
"orientation": [
// Матрица поворота 3x3 (если доступны данные IMU)
]
}
}
],
"use_image_position_constraint": true
}
Выходные Результаты
После завершения воздушной триангуляции в рабочем каталоге будет создано следующее:
1. Каталог Промежуточных Результатов (milestones/
)
mvs.xml
- Результаты воздушной триангуляции во внутреннем форматеmvs_undistort.xml
- Результаты воздушной триангуляции без искаженийroi.json
- Автоматически вычисленная область интересаcs.json
- Информация о системе координатtie_points.las
- Облако связующих точек (если включено)
2. Результаты Экспорта (products/AT/
)
block_exchange.xml
- Результаты воздушной триангуляции в формате ContextCapture (если включено)
3. Файлы Журнала (log/
)
log.txt
- Подробный журнал обработки
Описание Использования ROI
Созданный после воздушной триангуляции roi.json
содержит три типа ROI:
{
"rois": [
{
"type": "Smart", // Интеллектуально вычислен на основе разреженных точек
"roi": {
"boundary": [...], // Вершины 2D границы
"min_z": 100.0, // Минимальная высота
"max_z": 200.0 // Максимальная высота
}
},
{
"type": "Maximal", // На основе позиций изображений и разреженных точек
"roi": {...}
},
{
"type": "Frustum", // На основе пирамид видимости изображений
"roi": {...}
}
]
}
Лучшие Практики
1. Подготовка Изображений
- Убедитесь, что EXIF изображения содержит полную информацию GPS
- Рекомендуемое перекрытие изображений >60%
- Избегайте размытых или переэкспонированных изображений
2. Оптимизация Параметров
- Стандартный GPS: Используйте стандартный
pos_sigma
[2.0, 2.0, 3.0] - RTK/PPK: Установите меньший
pos_sigma
например [0.05, 0.05, 0.10] - Быстрый Режим: Включите
fast_mode
когда доступен GPS
3. Обработка Многокамерной Системы
- Используйте параметр
group
для идентификации разных камер - Используйте независимый
camera_id
для каждой группы камер - Убедитесь, что параметры камеры точны
4. Оптимизация Больших Наборов Данных
- Включите
fast_mode
для ускорения обработки - Рассмотрите использование
remove_small_part
для очистки результатов - Установите разумные ограничения использования памяти
Часто Задаваемые Вопросы
В: Воздушная триангуляция не удалась с ошибкой "недостаточное соответствие изображений"
О: Проверьте:
- Достаточно ли перекрытие изображений (>60%)?
- Точна ли информация GPS?
- Хорошо ли качество изображений?
В: Как улучшить точность воздушной триангуляции?
О:
- Используйте высокоточные данные POS (RTK/PPK)
- Установите подходящие значения
pos_sigma
- Используйте OptimizeAT для добавления контрольных точек
В: Как настроить многокамерные системы?
О:
- Создайте независимые
camera_meta_data
для каждой камеры - Используйте параметр
group
для различения изображений от разных камер - Убедитесь, что внутренние параметры камеры точны
Следующие Шаги
- Используйте OptimizeAT для оптимизации результатов воздушной триангуляции
- Используйте Reconstruct3D для 3D реконструкции
- Проверьте Основные Концепции для понимания полного рабочего процесса
Примечание: ReconstructAT обеспечивает максимальную гибкость, но также требует больше настроек параметров. Если вам нужна только быстрая реконструкция, мы рекомендуем использовать ReconstructFull.