ReconstructAT - 空中三角測量
概要
ReconstructATインターフェースは空中三角測量(Aerotriangulation)を実行するために使用され、細かい制御を必要とするプロフェッショナルユーザーに適したインターフェースです。このインターフェースは詳細なパラメータ設定を提供し、カメラグループ化、POS読み込み、制御点読み込みなどの高度な機能をサポートしています。
適用シナリオ
- 空中三角測量パラメータの細かい制御が必要
- 空中三角測量結果の確認と最適化が必要
- マルチカメラシステムの再構築
- 制御点の統合が必要
インターフェース使用方法
コマンドライン使用方法
reconstruct_full_engine.exe -reconstruct_type 1 -task_json at_config.json
パラメータ説明
reconstruct_type
:1
に固定(ReconstructATを示す)task_json
: 設定ファイルパス
設定パラメータ
必須パラメータ
パラメータ | 型 | 説明 |
---|---|---|
license_id | int | SDKライセンスコード、9200に統一 |
working_dir | string | 中間ファイルと最終結果の作業ディレクトリ |
gdal_folder | string | GDALデータパス(SDK外部データフォルダ) |
coordinate_system | JSON | 入力画像位置の座標系 |
image_meta_data | JSON Array | 入力画像メタデータ情報 |
camera_meta_data | JSON Array | カメラメタデータ情報 |
オプションパラメータ
パラメータ | 型 | デフォルト | 説明 |
---|---|---|---|
input_image_type | int | 1 | 画像タイプ: 1=RGB、2=マルチスペクトル、3=赤外線 |
remove_small_part | bool | false | AT結果から小さな連結成分を除去するかどうか |
output_tie_point_las | bool | false | タイポイントをLAS形式で出力するかどうか |
output_block_change_xml | bool | true | AT結果をContextCapture XML形式で出力するかどうか |
coordinate_system_AT | JSON | - | XML形式AT出力結果の座標系 |
fast_mode | bool | false | 高速モード、GPSありデータに適用 |
use_image_position_constraint | bool | true | 画像位置情報を制約として使用するかどうか |
use_voc_index | bool | true | マッチングペア検索に画像検索を使用するかどうか |
use_spatial_index | bool | true | マッチングペア検索に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の使用をお勧めします。