| 項目 | 内容 |
|---|---|
| 入力 | DJI .MP4(+ 同梱 .SRT GPSデータ) |
| 出力 | 頂点カラー付きPLYメッシュ |
| 使用ツール | COLMAP 3.9.1, ffmpeg, exiftool |
| 品質 | max_num_features | 推奨用途 |
|---|---|---|
low(デフォルト) | 2,048 | 4GB GPU / 長尺動画 |
medium | 4,096 | 6GB+ GPU / 短尺動画 |
high | 8,192 | 8GB+ GPU |
長尺動画を MAX_FRAMES_PER_SEG = 35 フレームを基準に自動分割。セグメント間にオーバーラップ(デフォルト10フレーム)を持たせ、繋ぎ目の連続性を確保。
例: 142フレーム(71秒 @ 2fps)→ 5セグメント(各28-38フレーム)
| 項目 | 内容 |
|---|---|
| スクリプト | clean_islands.py |
| 入力 | PLY(頂点カラー付き) |
| 出力 | 最大連結成分のみのPLY |
| 使用ツール | Open3D |
COLMAPのPoisson再構成は浮遊メッシュ片(島)を多数生成する。Open3Dのconnected-component分析で最大連結成分のみを抽出。
例: 0154_Dでは1224島→最大1島(7.6M tris)にまで削減。島除去を先に行うことでベイク時間が大幅短縮・品質向上。
| 項目 | 内容 |
|---|---|
| スクリプト | planar_bake.py |
| 入力 | PLY(頂点カラー付き) |
| 出力 | OBJ + MTL + PNG |
| 使用ツール | Blender 4.4(--background, Cycles CPU) |
| 項目 | 内容 |
|---|---|
| スクリプト | render_preview.py |
| 入力 | OBJ(テクスチャ付き)または PLY(頂点カラー) |
| 出力 | 1920×1080 PNG |
| 使用ツール | Blender 4.4(--background, Cycles) |
| パラメータ | 値 | 説明 |
|---|---|---|
| 注視点 | (cx, cy, z_min + h×0.3) | 下端から30%高さ(地上モデル最適化) |
| 水平距離 | size×2.0 | モデルのbounding box最大径の2倍 |
| カメラ高さ | h/2 + size | 高さ方向中央+サイズ分 |
| 俯角 | 26.8° | 斜め上からの見下ろし |
| レンダラー | Cycles | 32 samples |
| スクリプト | 用途 |
|---|---|
recover_segments.py | 特定セグメントのみ再処理(COLMAP障害復旧) |
merge_and_bake.py | 複数セグメントマージ→島除去→ベイク→プレビューを一括 |
clean_ply.py | PLYヘッダの余分なproperty行を除去 |
ply2obj.py | PLY→OBJ変換(Blender不要) |
merge_sessions.py | 複数セッションをICP位置合わせ→マージ |
turntable_render.py | ターンテーブル動画(MP4, 180fr @ 30fps) |
| ツール | バージョン | 備考 |
|---|---|---|
| COLMAP | 3.9.1 | GPU SIFT非互換(CUDA 13.2)のためCPU SIFT強制 |
| Blender | 4.4 | 常に --background モード使用 |
| Open3D | (Python venv) | 島除去・点群処理 |
| ffmpeg | 8.1 | JPEG marker非互換あり(OpenCV再保存で対応) |
| GPU | — | 4GB VRAM制約あり、全工程でメモリ管理が重要 |
| 用語 | 説明 |
|---|---|
| COLMAP | SfM(Structure from Motion)・MVS(Multi-View Stereo)による3D復元パイプライン |
| SfM | Structure from Motion。異なる視点の画像群から3D構造とカメラ位置を同時に推定 |
| MVS | Multi-View Stereo。SfMで推定したカメラ位置から密な点群を生成 |
| PLY | Polygon File Format。頂点座標+色・法線情報を格納する3Dメッシュ形式 |
| OBJ+MTL+PNG | テクスチャ付き3Dモデルの標準形式(形状・素材定義・テクスチャ画像) |
| 頂点カラー | メッシュ各頂点に直接RGB色が割り当てられた状態 |
| テクスチャベイク | 頂点カラーをUVマップ経由で画像に焼き付ける処理 |
| メッシュ島 | Poisson再構成で発生する、メイン物体と未接続の浮遊メッシュ片 |
| SRT | DJIドローンの字幕ファイル形式。GPS座標・高度・速度情報を含む |
| セグメント | COLMAPパイプラインが長尺動画を自動分割した単位(~35フレーム) |
| 閉包面 | Poisson再構成で点群裏側にできる布状アーチファクト。点群マージ+単一Poissonで解決 |
| Cycles | Blender内蔵の物理ベースレンダラー(パストレーシング方式) |