본문으로 건너뛰기

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_idintSDK 라이선스 코드, 9200으로 통일
working_dirstring작업 디렉토리 (항공 삼각측량과 동일해야 함)
gdal_folderstringGDAL 데이터 경로
input_image_typeint이미지 타입: 1=RGB, 2=다중분광, 3=적외선
image_meta_dataJSON Array입력 이미지 메타데이터 정보
resolution_levelint재구성 정확도: 1=고정확도, 2=중정확도, 3=저정확도

선택적 매개변수

기본 매개변수

매개변수타입기본값설명
reconstruct_modeint0재구성 모드: 0=일반 장면, 1=주변 장면, 2=전력선 장면
min_avali_memory_sizedouble0최소 사용 가능 메모리 (GB), 블록 수량 제어에 사용
fast_modeboolfalse고속 모드, 효율성을 향상시키지만 세부사항 감소
keep_undistort_imagesboolfalse왜곡 보정 이미지를 유지할지 여부

출력 형식 제어

매개변수타입기본값설명
generate_osgbboolfalseOSGB 형식 3D 모델 생성
generate_3d_tilesboolfalse3D Tiles (b3dm) 형식 생성
generate_lasboolfalseLAS 형식 점군 생성
generate_pc_plyboolfalsePLY 형식 점군 생성
generate_pc_osgbboolfalseOSGB 형식 점군 LOD 생성
generate_pc_pntsboolfalsepnts 형식 점군 LOD 생성
generate_objboolfalseOBJ 형식 텍스처 메시 생성
generate_plyboolfalsePLY 형식 텍스처 메시 생성
generate_geotiffboolfalseGeoTIFF 형식 정사영상 생성
generate_tile_2Dboolfalse정사영상에서 타일 절단 수행
generate_2D_from_3D_modelboolfalse3D 모델에서 2D 정사영상 생성

고급 매개변수

매개변수타입기본값설명
use_draco_compressionbooltrue3D Tiles에 Draco 압축 사용 여부
tex_image_type_3dtilesint03D Tiles 텍스처 형식: 0=JPEG, 1=WebP
use_gcj02boolfalse정사영상 타일을 GCJ02 좌표계로 변환할지 여부
coordinate_system_3dJSON-3D 출력용 좌표계
coordinate_system_2dJSON-2D 출력용 좌표계
roi_for_2dJSON-2D 재구성을 위한 관심 영역
roi_for_3dJSON-3D 재구성을 위한 관심 영역
roi_coordinate_systemJSONWGS84ROI용 좌표계

데이터 구조 설명

카메라 메타데이터

{
"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 형식 모델 및 LOD
  • model-b3dm/ - 3D Tiles 형식 (tileset.json 포함)
  • model-obj/ - OBJ 형식 모델 및 텍스처
  • point-las/ - LAS 형식 점군
  • point-ply/ - PLY 형식 점군
  • point-osgb/ - OSGB 형식 점군 LOD
  • point-pnts/ - 3D Tiles 점군 형식

2D 제품 출력 (products/2D/)

  • geotiffs/ - GeoTIFF 형식 정사영상 및 DSM
  • dom_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는 풍부한 출력 옵션을 제공합니다. 먼저 낮은 정확도로 검증한 후 고품질 재구성을 진행하는 것을 권장합니다.