Reconstruct3D - 3D-реконструкция
Обзор
Интерфейс Reconstruct3D используется для генерации 2D и 3D моделей из результатов воздушной триангуляции. Обычно используется с ReconstructAT для завершения полного рабочего процесса реконструкции. Этот интерфейс поддерживает множественные форматы вывода, блочную обработку и детальное управление параметрами.
Применимые сценарии
- Генерация 3D моделей из результатов воздушной триангуляции
- Генерация ортофотопланов и цифровых моделей поверхности
- Блочная реконструкция для данных большого масштаба
- Необходимость в специфических форматах вывода
Использование интерфейса
Использование командной строки
reconstruct_full_engine.exe -reconstruct_type 2 -task_json 3d_config.json
Описание параметров
reconstruct_type
: Фиксированное значение2
(обозначает Reconstruct3D)task_json
: Путь к файлу конфигурации
Параметры конфигурации
Обязательные параметры
Параметр | Тип | Описание |
---|---|---|
license_id | int | Код лицензии SDK, унифицированный как 9200 |
working_dir | string | Рабочая директория (должна совпадать с воздушной триангуляцией) |
gdal_folder | string | Путь к данным GDAL |
input_image_type | int | Тип изображения: 1=RGB, 2=Мультиспектральный, 3=Инфракрасный |
image_meta_data | JSON Array | Информация метаданных входных изображений |
resolution_level | int | Точность реконструкции: 1=Высокая точность, 2=Средняя точность, 3=Низкая точность |
Опциональные параметры
Базовые параметры
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
reconstruct_mode | int | 0 | Режим реконструкции: 0=Общая сцена, 1=Окружающая сцена, 2=Сцена линии электропередач |
min_avali_memory_size | double | 0 | Минимальный размер доступной памяти (GB), используется для контроля количества блоков |
fast_mode | bool | false | Быстрый режим, улучшает эффективность, но снижает детализацию |
keep_undistort_images | bool | false | Сохранять ли неискаженные изображения |
Управление форматом вывода
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
generate_osgb | bool | false | Генерировать 3D модель в формате OSGB |
generate_3d_tiles | bool | false | Генерировать формат 3D Tiles (b3dm) |
generate_las | bool | false | Генерировать облако точек в формате LAS |
generate_pc_ply | bool | false | Генерировать облако точек в формате PLY |
generate_pc_osgb | bool | false | Генерировать облако точек LOD в формате OSGB |
generate_pc_pnts | bool | false | Генерировать облако точек LOD в формате pnts |
generate_obj | bool | false | Генерировать текстурированную сетку в формате OBJ |
generate_ply | bool | false | Генерировать текстурированную сетку в формате PLY |
generate_geotiff | bool | false | Генерировать ортофотоплан в формате GeoTIFF |
generate_tile_2D | bool | false | Выполнить нарезку тайлов на ортофотоплане |
generate_2D_from_3D_model | bool | false | Генерировать 2D ортофотоплан из 3D модели |
Расширенные параметры
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
use_draco_compression | bool | true | Использовать ли сжатие Draco для 3D Tiles |
tex_image_type_3dtiles | int | 0 | Формат текстуры 3D Tiles: 0=JPEG, 1=WebP |
use_gcj02 | bool | false | Конвертировать ли тайлы ортофотоплана в систему координат GCJ02 |
coordinate_system_3d | JSON | - | Система координат для 3D вывода |
coordinate_system_2d | JSON | - | Система координат для 2D вывода |
roi_for_2d | JSON | - | Область интереса для 2D реконструкции |
roi_for_3d | JSON | - | Область интереса для 3D реконструкции |
roi_coordinate_system | JSON | WGS84 | Система координат для ROI |
Описание структуры данных
Метаданные камеры
{
"id": 1, // Уникальный ID камеры
"meta_data": {
"camera_name": "Camera-1", // Имя камеры
"projection_model": 0, // Модель проекции (опционально)
"width": 4000, // Ширина сенсора (пиксели)
"height": 3000, // Высота сенсора (пиксели)
"parameters": [ // Внутренние параметры камеры (массив из 10 элементов)
// fx, fy, cx, cy, k1, k2, p1, p2, k3,placeholder_param
]
}
}
ROI (Область интереса)
{
"boundary": [ // Граница 2D полигона (против часовой стрелки)
[x1, y1],
[x2, y2],
[x3, y3]
// ...
],
"min_z": 100.0, // Минимальная высота (опционально)
"max_z": 500.0 // Максимальная высота (опционально)
}
Настройки системы координат вывода
{
"coordinate_system_3d": {
"type": 3, // Проекционная система координат
"epsg_code": 32650 // UTM Zone 50N
},
"coordinate_system_2d": {
"type": 2, // Географическая система координат
"epsg_code": 4326 // WGS84
}
}
Примеры полной конфигурации
Базовая 3D реконструкция
{
"license_id": 9200,
"working_dir": "C:/Projects/3D_Task",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"image_meta_data": [
{
"id": 1,
"path": "C:/Images/DJI_0001.JPG"
},
{
"id": 2,
"path": "C:/Images/DJI_0002.JPG"
}
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_las": true,
"generate_geotiff": true
}
Конфигурация высокоточной реконструкции
{
"license_id": 9200,
"working_dir": "C:/Projects/HighQuality_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1, // Максимальная точность
"reconstruct_mode": 0, // Общая сцена
"image_meta_data": [...],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_obj": true,
"generate_geotiff": true,
"generate_tile_2D": true,
"coordinate_system_3d": {
"type": 3,
"epsg_code": 32650 // UTM 50N
},
"coordinate_system_2d": {
"type": 2,
"epsg_code": 4326 // WGS84
}
}
Блочная реконструкция данных большого масштаба
{
"license_id": 9200,
"working_dir": "C:/Projects/LargeScale_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"min_avali_memory_size": 16.0, // Ограничить каждый блок максимум 16GB памяти
"image_meta_data": [...],
"roi_for_3d": {
"boundary": [
[114.12, 22.12],
[114.13, 22.12],
[114.13, 22.13],
[114.12, 22.13]
],
"min_z": 0,
"max_z": 500
},
"generate_3d_tiles": true,
"use_draco_compression": true,
"tex_image_type_3dtiles": 1 // Использовать сжатие текстуры WebP
}
Конфигурация специальной сцены
Реконструкция окружающего объекта
{
"license_id": 9200,
"working_dir": "C:/Projects/Object_3D",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1,
"reconstruct_mode": 1, // Режим окружающей сцены
"image_meta_data": [...],
"generate_obj": true,
"generate_ply": true,
"coordinate_system_3d": {
"type": 1 // Локальная система координат
}
}
Генерация только ортофотоплана
{
"license_id": 9200,
"working_dir": "C:/Projects/Ortho_Only",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"image_meta_data": [...],
"generate_geotiff": true,
"generate_tile_2D": true,
"generate_2D_from_3D_model": true,
"roi_for_2d": {
"boundary": [...] // Указать протяженность ортофотоплана
},
"coordinate_system_2d": {
"type": 3,
"epsg_code": 32650
}
}
Результаты вывода
Вывод 3D модели (products/3D/
)
model-osgb/
- Модель и LOD в формате OSGBmodel-b3dm/
- Формат 3D Tiles (с tileset.json)model-obj/
- Модель и текстуры в формате OBJpoint-las/
- Облако точек в формате LASpoint-ply/
- Облако точек в формате PLYpoint-osgb/
- Облако точек LOD в формате OSGBpoint-pnts/
- Формат облака точек 3D Tiles
Вывод 2D продукта (products/2D/
)
geotiffs/
- Ортофотоплан и DSM в формате GeoTIFFdom_tiles/
- Тайлы ортофотопланаdsm_tiles/
- Тайлы цифровой модели поверхности
Промежуточные результаты (milestones/
)
undistorted/
- Неискаженные изображения (если сохранены)depth_maps/
- Карты глубиныmesh/
- Промежуточные данные сетки
Описание уровня разрешения
Уровень | Описание | Относительное время обработки | Сценарии применения |
---|---|---|---|
1 | Сверхвысокая точность | 3-5x | Профессиональная съемка, охрана культурного наследия |
2 | Высокая точность | 1x | Общие инженерные приложения |
3 | Быстрый предпросмотр | 0.2-0.3x | Быстрая валидация, предпросмотр |
Баланс между точностью и эффективностью
- resolution_level=1: Максимальная геометрическая детализация и четкость текстуры
- resolution_level=2: Баланс качества и эффективности, рекомендуется для большинства приложений
- resolution_level=3: Быстрая обработка, подходит для предварительной валидации
Лучшие практики
1. Управление памятью
Для данных большого масштаба:
{
"min_avali_memory_size": 24.0, // Установить в зависимости от доступной памяти
"resolution_level": 2 // Рассмотреть снижение точности
}
2. Выбор формата вывода
- Веб-отображение: Использовать 3D Tiles + сжатие Draco
- ГИС анализ: Генерировать GeoTIFF и LAS
- Профессиональное ПО: Использовать формат OSGB
- Редактирование и обработка: Экспортировать OBJ или PLY
3. Настройки системы координат
- 3D модели обычно используют проекционные системы координат (например, UTM)
- Ортофотопланы могут использовать географические или проекционные системы в зависимости от потребностей
- Рассмотреть использование WGS84 для веб-приложений
4. Использование ROI
- Использовать ROI, сгенерированный из воздушной триангуляции, как основу
- Корректировать диапазон в соответствии с потребностями
- Установить отдельные ROI для 2D и 3D
Оптимизация производительности
Быстрая обработка
{
"resolution_level": 3,
"fast_mode": true,
"generate_3d_tiles": true, // Генерировать только необходимые форматы
"use_draco_compression": true
}
Высококачественный вывод
{
"resolution_level": 1,
"fast_mode": false,
"keep_undistort_images": true, // Сохранить промежуточные результаты для проверки
"generate_obj": true, // Генерировать высококачественную сетку
"generate_geotiff": true
}
Часто задаваемые вопросы
В: Ошибка "Невозможно найти результаты воздушной триангуляции"
О: Убедиться:
working_dir
тот же, что использовался в ReconstructAT- Воздушная триангуляция завершена успешно
- Директория milestones содержит файл mvs.xml
В: Ошибка нехватки памяти
О:
- Установить
min_avali_memory_size
для ограничения использования памяти - Снизить
resolution_level
- Использовать DivideTiles для предварительного блокирования
В: Неправильные координаты вывода
О:
- Проверить настройки
coordinate_system_3d/2d
- Подтвердить, что система координат ROI соответствует данным
- Проверить корректность пути к данным GDAL
Следующие шаги
- Проверить Детали формата вывода
- Изучить Блочную обработку для данных большого масштаба
- Изучить Базовые концепции для оптимизации качества реконструкции
Примечание: Reconstruct3D предоставляет богатые варианты вывода. Рекомендуется сначала проводить валидацию с низкой точностью, затем переходить к высококачественной реконструкции.