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

ReconstructAT - 空中三角測量

概要

ReconstructATインターフェースは空中三角測量(Aerotriangulation)を実行するために使用され、細かい制御を必要とするプロフェッショナルユーザーに適したインターフェースです。このインターフェースは詳細なパラメータ設定を提供し、カメラグループ化、POS読み込み、制御点読み込みなどの高度な機能をサポートしています。

適用シナリオ
  • 空中三角測量パラメータの細かい制御が必要
  • 空中三角測量結果の確認と最適化が必要
  • マルチカメラシステムの再構築
  • 制御点の統合が必要

インターフェース使用方法

コマンドライン使用方法

reconstruct_full_engine.exe -reconstruct_type 1 -task_json at_config.json

パラメータ説明

  • reconstruct_type: 1に固定(ReconstructATを示す)
  • task_json: 設定ファイルパス

設定パラメータ

必須パラメータ

パラメータ説明
license_idintSDKライセンスコード、9200に統一
working_dirstring中間ファイルと最終結果の作業ディレクトリ
gdal_folderstringGDALデータパス(SDK外部データフォルダ)
coordinate_systemJSON入力画像位置の座標系
image_meta_dataJSON Array入力画像メタデータ情報
camera_meta_dataJSON Arrayカメラメタデータ情報

オプションパラメータ

パラメータデフォルト説明
input_image_typeint1画像タイプ: 1=RGB、2=マルチスペクトル、3=赤外線
remove_small_partboolfalseAT結果から小さな連結成分を除去するかどうか
output_tie_point_lasboolfalseタイポイントをLAS形式で出力するかどうか
output_block_change_xmlbooltrueAT結果をContextCapture XML形式で出力するかどうか
coordinate_system_ATJSON-XML形式AT出力結果の座標系
fast_modeboolfalse高速モード、GPSありデータに適用
use_image_position_constraintbooltrue画像位置情報を制約として使用するかどうか
use_voc_indexbooltrueマッチングペア検索に画像検索を使用するかどうか
use_spatial_indexbooltrueマッチングペア検索に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, // 35mm換算焦点距離
"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には3つの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: [0.05, 0.05, 0.10]などのより小さなpos_sigmaを設定
  • 高速モード: GPSが利用可能な場合はfast_modeを有効化

3. マルチカメラ処理

  • 異なるカメラを識別するためにgroupパラメータを使用
  • 各カメラグループに独立したcamera_idを使用
  • カメラパラメータが正確であることを確認

4. 大規模データセット最適化

  • 処理を高速化するためにfast_modeを有効化
  • 結果をクリーンアップするためにremove_small_partの使用を検討
  • 合理的なメモリ使用量制限を設定

よくある質問

Q: 空中三角測量が「画像マッチング不足」で失敗しました

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

  • 画像オーバーラップが十分か(>60%)
  • GPS情報が正確か
  • 画像品質が良いか

Q: 空中三角測量の精度を向上させるには?

A:

  • 高精度POSデータ(RTK/PPK)を使用
  • 適切なpos_sigma値を設定
  • OptimizeATを使用して制御点を追加

Q: マルチカメラシステムを設定するには?

A:

  • 各カメラに独立したcamera_meta_dataを作成
  • 異なるカメラからの画像を区別するためにgroupパラメータを使用
  • カメラ内部パラメータが正確であることを確認

次のステップ

  • OptimizeATを使用して空中三角測量結果を最適化
  • Reconstruct3Dを使用して3D再構築を実行
  • 基本概念を確認して完全なワークフローを理解

注意: ReconstructATは最大の柔軟性を提供しますが、より多くのパラメータ設定も必要です。迅速な再構築のみが必要な場合は、ReconstructFullの使用をお勧めします。