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 | OSGB 형식 3D 모델 생성 |
generate_3d_tiles | bool | false | 3D Tiles (b3dm) 형식 생성 |
generate_las | bool | false | LAS 형식 점군 생성 |
generate_pc_ply | bool | false | PLY 형식 점군 생성 |
generate_pc_osgb | bool | false | OSGB 형식 점군 LOD 생성 |
generate_pc_pnts | bool | false | pnts 형식 점군 LOD 생성 |
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 | 3D 모델에서 2D 정사영상 생성 |
고급 매개변수
매개변수 | 타입 | 기본값 | 설명 |
---|---|---|---|
use_draco_compression | bool | true | 3D Tiles에 Draco 압축 사용 여부 |
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/
- OSGB 형식 모델 및 LODmodel-b3dm/
- 3D Tiles 형식 (tileset.json 포함)model-obj/
- OBJ 형식 모델 및 텍스처point-las/
- LAS 형식 점군point-ply/
- PLY 형식 점군point-osgb/
- OSGB 형식 점군 LODpoint-pnts/
- 3D Tiles 점군 형식
2D 제품 출력 (products/2D/
)
geotiffs/
- GeoTIFF 형식 정사영상 및 DSMdom_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 압축 사용
- GIS 분석: GeoTIFF 및 LAS 생성
- 전문 소프트웨어: OSGB 형식 사용
- 편집 및 처리: OBJ 또는 PLY 내보내기
3. 좌표계 설정
- 3D 모델은 일반적으로 투영 좌표계 사용 (예: UTM)
- 정사영상은 필요에 따라 지리 또는 투영 시스템 사용 가능
- 웹 애플리케이션의 경우 WGS84 사용 고려
4. ROI 사용법
- 항공 삼각측량에서 생성된 ROI를 기준으로 사용
- 필요에 따라 범위 조정
- 2D와 3D에 대해 별도 ROI 설정
성능 최적화
빠른 처리
{
"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
}
자주 묻는 질문
Q: "항공 삼각측량 결과를 찾을 수 없습니다" 오류
A: 다음을 확인하세요:
working_dir
이 ReconstructAT에서 사용한 것과 동일한지- 항공 삼각측량이 성공적으로 완료되었는지
- milestones 디렉토리에 mvs.xml 파일이 있는지
Q: 메모리 부족 오류
A:
min_avali_memory_size
를 설정하여 메모리 사용량 제한resolution_level
감소- 사전 블록화를 위해 DivideTiles 사용
Q: 출력 좌표가 올바르지 않음
A:
coordinate_system_3d/2d
설정 확인- ROI 좌표계가 데이터와 일치하는지 확인
- GDAL 데이터 경로가 올바른지 검증
다음 단계
- 출력 형식 세부사항 확인
- 대규모 데이터를 위한 블록 처리 학습
- 재구성 품질 최적화를 위한 기본 개념 연구
참고: Reconstruct3D는 풍부한 출력 옵션을 제공합니다. 먼저 낮은 정확도로 검증한 후 고품질 재구성을 진행하는 것을 권장합니다.