メインコンテンツまでスキップ

クイックスタート

このガイドは、MipMapEngine SDKをすばやく開始するのに役立ちます。完全なサンプルスクリプトを提供し、数分で最初の3D再構築タスクを実行できます。

📋 前提条件

開始する前に、以下を確認してください:

  1. ✅ SDKをインストール済み(インストールガイド参照)
  2. ✅ ライセンスをアクティベート済み

🚀 クイック体験:SDKサンプルスクリプトの使用

SDKはexampleディレクトリに完全なサンプルとワンクリック実行スクリプトを提供しています:

example/
├── 1_reconstruct_full_basic.json # 基本再構築サンプル
├── 2_group_cameras.json # マルチカメラグループサンプル
├── 3_custom_image_pos.json # カスタム位置サンプル
├── sample-images/ # サンプル画像
├── Step1_Hardware_Check_EN.bat
├── Step2_License_Manager_EN.bat
├── Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat
├── Step4_Run_Example2_Multi_Camera_Groups_EN.bat
└── Step5_Custom_Image_Positions_EN.bat

最初の再構築を実行

Step3_Run_Example1_Basic_Drone_Reconstruction_EN.bat

スクリプトは自動的に:

  1. sample-imagesからサンプル画像を使用
  2. 出力ディレクトリを作成
  3. 3D再構築プロセスを開始
  4. 複数のフォーマットで結果を生成

🎯 サンプルの詳細

サンプル1:基本的なドローン再構築

これは最も簡単な使用方法で、標準的なドローン空撮画像に適しています。

特徴

  • ✅ 最小限の設定、すぐに使用可能、ほとんどのアプリケーションに適合
  • ✅ 主要なDJI測量ドローンとシームレスに互換

設定ファイル (1_reconstruct_full_basic.json):

{
"working_dir": "./output/reconstruct_full_basic",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 3,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": [
{
"id": 1,
"path": "../sample-images/DJI_20250507103417_0124_V.JPG"
},
{
"id": 2,
"path": "../sample-images/DJI_20250507103421_0125_V.JPG"
}
// ... より多くの画像
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_las": true,
"generate_obj": true,
"generate_geotiff": true
}

手動実行

reconstruct_full_engine.exe -reconstruct_type 0 -task_json 1_reconstruct_full_basic.json

サンプル2:マルチカメラグループ再構築

マルチレンズ斜めカメラまたはマルチドローン協調作業に適しています。

Step4_Run_Example2_Multi_Camera_Groups_EN.bat

アプリケーションシナリオ

  • 🔸 5レンズ斜めカメラシステム
  • 🔸 マルチドローン協調作業
  • 🔸 異なる焦点距離カメラの組み合わせ
  • 🔸 地上+空中共同収集

主要設定

{
"image_meta_data": [
{
"id": 1,
"path": "image1.jpg",
"group": "camera_1" // カメラグループ化
},
{
"id": 2,
"path": "image2.jpg",
"group": "camera_2" // 異なるカメラグループ
}
]
}

サンプル3:カスタム画像位置

高精度測位またはGPSなしのシナリオに適しています。

Step5_Custom_Image_Positions_EN.bat

アプリケーションシナリオ

  • 📍 PPK/RTK高精度測位データ
  • 📍 屋内またはGPS信号が弱い環境
  • 📍 位置精度の重みをカスタマイズする必要がある

主要設定

{
"image_meta_data": [
{
"id": 1,
"path": "image.jpg",
"meta_data": {
"width": 4000,
"height": 3000,
"pos": [114.123456, 22.123456, 100.5], // [経度、緯度、標高]
"pos_sigma": [0.03, 0.03, 0.06] // [X精度、Y精度、Z精度] メートル
}
}
]
}

精度リファレンス

測位方法X/Y精度 (m)Z精度 (m)アプリケーションシナリオ
RTK/PPK固定解0.02-0.050.05-0.10高精度測量
通常のGPS2-53-8一般的なアプリケーション

📊 出力結果の表示

再構築が完了すると、出力ディレクトリには以下が含まれます:

  • 📁 3D/ - 3Dモデル
    • model-b3dm/ - 3D Tiles (Cesium)
    • model-osgb/ - OSGB形式
    • model-obj/ - OBJ形式
    • point-las/ - LAS点群
  • 📁 2D/ - 2D製品
    • dom_tiles/ - オルソフォトタイル
    • dsm_tiles/ - デジタル表面モデルタイル
    • geotiffs/ - GeoTIFF形式
  • 📁 AT/ - AT結果
  • 📁 report/ - 品質レポート
  • 📁 logs/log.txt - 処理ログ

🛠️ インタラクティブ設定ジェネレーター

JSON設定ファイルを手動で書きたくない場合は、インタラクティブツールを使用して素早く生成できます:

🔧 インタラクティブ設定ジェネレーター

下記のフォームを使って設定ファイルを作成します。

基本設定

処理パラメータ

座標系設定

出力フォーマット

3Dモデル
点群
2Dオルソ画像
その他のフォーマット

詳細オプション

3Dタイルオプション
2Dタイルオプション

地上基準点(GCP)

出力座標系(任意)

生成された設定ファイル

下記のJSONを次の名前で保存してください task.json

task.json
{
"license_id": 9200,
"working_dir": "C:/Projects/MyProject",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"type_name": "Geographic",
"label": "WGS 84",
"epsg_code": 4326
},
"generate_obj": false,
"generate_ply": false,
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_fbx": false,
"generate_las": false,
"generate_pc_ply": false,
"generate_pc_osgb": false,
"generate_pc_pnts": false,
"generate_gs_ply": false,
"generate_gs_splats": false,
"generate_geotiff": true,
"generate_tile_2D": true,
"generate_2D_from_3D_model": false,
"generate_dsm_tile": false,
"fast_mode": false,
"use_image_position_constraint": true,
"min_avali_memory_size": 16,
"output_block_change_xml": false,
"output_tie_point_las": false,
"keep_undistort_images": false,
"use_draco_compression": true,
"tex_image_type_3dtiles": 0,
"use_gcj02": false,
"image_meta_data": [
{
"id": 1,
"path": "path/to/image1.jpg"
},
{
"id": 2,
"path": "path/to/image2.jpg"
}
]
}

検証して実行

1. まず設定ファイルを検証してください:

task_json_check.exe -task_json task.json

2. 検証後、再構成を実行してください:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json task.json

🎯 最初のプロジェクトをカスタマイズ

サンプルに基づいて、独自の設定ファイルを作成します:

1. サンプル設定をコピー

copy 1_reconstruct_full_basic.json my_project.json

2. 画像パスを変更

my_project.jsonを編集し、画像パスを自分の画像に変更します:

{
"image_meta_data": [
{
"id": 1,
"path": "C:/MyImages/DJI_0001.JPG"
},
{
"id": 2,
"path": "C:/MyImages/DJI_0002.JPG"
}
// ... すべての画像を追加
]
}

3. 設定ファイルの検証

再構築を実行する前に、task_json_check.exeツールを使用して設定ファイルを検証します:

task_json_check.exe my_project.json

設定ファイルにエラーがある場合、ツールは特定のエラーメッセージを表示します。一般的なエラーには以下が含まれます:

  • 画像パスが存在しない
  • 座標系パラメーターエラー
  • 必須フィールドの欠落

4. 再構築を実行

設定ファイルが検証に合格したら、再構築タスクを実行します:

reconstruct_full_engine.exe -reconstruct_type 0 -task_json my_project.json

📊 進行状況の監視

コンソール出力

処理ステップと進行率を表示します。

ログファイル

output/logs/log.txtには詳細な処理情報が含まれています。

進行状況監視スクリプト

import re
import time

def monitor_progress(log_file):
with open(log_file, 'r') as f:
while True:
line = f.readline()
if '[PROGRESS]' in line:
match = re.search(r'\[PROGRESS\] (\d+)%', line)
if match:
print(f"現在の進行状況: {match.group(1)}%")
time.sleep(1)

monitor_progress("output/logs/log.txt")

❓ よくある問題

Q: 「画像数が不十分」で再構築が失敗しました

A: 以下を確認してください:

  • 少なくとも5枚の画像が提供されている
  • 画像間に十分なオーバーラップがある(推奨>60%)
  • 画像にGPS情報が含まれているか、手動で位置を提供している
Q: 再構築品質を向上させるには?

A: 解像度レベルを調整します:

"resolution_level": 1  // 最高精度を使用
Q: 再構築が遅すぎる?

A: 最適化戦略:

  • クイックプレビューにはresolution_level: 3を使用
  • fast_mode: trueを有効化
  • ブロック処理の使用を検討

💡 実用的なヒント

バッチ設定生成

大量の画像に対して、スクリプトを使用して自動的に設定を生成します:

import json
import os
from glob import glob

def create_task_json(image_folder, output_file):
images = glob(os.path.join(image_folder, "*.JPG"))

task_config = {
"working_dir": "./output/my_project",
"gdal_folder": "../gdal_data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": []
}

for idx, img_path in enumerate(images, 1):
task_config["image_meta_data"].append({
"id": idx,
"path": img_path.replace("\\", "/")
})

with open(output_file, 'w', encoding='utf-8') as f:
json.dump(task_config, f, indent=2, ensure_ascii=False)

print(f"設定ファイルを生成しました: {output_file}")
print(f"{len(images)}枚の画像を含みます")

# 使用方法
create_task_json("C:/MyImages", "batch_task.json")

🚀 次のステップ

おめでとうございます!MipMapEngine SDKの基本的な使用方法を習得しました。次は以下ができます:

  • 📚 基本概念を学ぶ - 3D再構築の原理を深く理解
  • 🔧 APIリファレンスを確認 - より高度な機能を探索
  • 💡 基本概念を復習 - 3D再構築の原理を深く理解
  • 🎯 特殊シーン処理を試す - 弱いテクスチャ、低オーバーラップ率などの挑戦的なシナリオ

ヘルプが必要ですか?トラブルシューティングガイドを確認するか、技術サポートにお問い合わせください。