本リポジトリでは、2024~2025年度に Project PLATEAU で開発した「PLATEAU-SNAP-App」のソースコードを公開しています。
「PLATEAU-SNAP-App」は、スマートフォンで撮影した画像から3D都市モデルへのテクスチャ付与を行うシステム (PLATEAU SNAP) のモバイルアプリケーションです。
スマートフォンで撮影した画像をもとに 3D 都市モデルの建築物のテクスチャ(地物の外観)を抽出・生成し、PLATEAU SNAPのデータベースに登録・蓄積可能なツールを開発しました。
本システムは、PLATEAU SNAP のテクスチャ用画像の撮影ツールです。スマートフォンの位置や姿勢を高精度で推定する VPS 機能に加えて、撮影可能な建物の面をカメラ映像上に AR 表示する機能や撮影した画像の品質を評価する機能、撮影画像をアップロードする機能を提供します。 技術詳細は、ProjectPLATEAU公式ホームページ内に技術検証レポートとして記載をしています。
各リポジトリの役割は以下の通りです。
- PLATEAU-SNAP-App: 画像の撮影・アップロード
- PLATEAU-SNAP-Server: データの蓄積、画像処理、モデル生成(バックエンド処理)
- PLATEAU-SNAP-CMS: テクスチャの生成・貼り付け、データベース更新、データ出力
尚、本スマートフォンアプリを利用するためにビルドが必要なのは、PLATEAU-SNAP-Appのみです。
本ツールにより登録されたテクスチャデータは、PLATEAU SNAP のデータベースに蓄積されますが、
G空間情報センターや PLATEAU VIEW で公開されている 3D 都市モデル自体を直接更新するものではありません。
作成したテクスチャデータはエクスポートすることが可能であり、独自の用途で活用することが可能です。
なお、本ツールで生成したデータを独自利用する場合の取り扱いや公開可否等については、必要に応じて Project PLATEAU へご確認ください。
問い合わせ先については、Project PLATEAUの公式窓口をご参照ください。
本システムの構築手順及び利用手順については操作マニュアルを参照してください。
| 機能名 | 機能説明 |
|---|---|
| VPS 機能 | カメラ映像を解析し、周囲の建物やランドマークを基にカメラの位置や向きを高精度に推定する機能 |
| AR での面表示機能 | クラウドから撮影可能な建物の面を取得し、カメラ映像上に AR 表示する機能 |
| 建物撮影機能 | AR で表示された建物の面を選択し、その面の画像を撮影する機能 |
| 品質評価機能 | 撮影した画像がテクスチャ素材として適切かどうか評価する機能 |
| 画像アップロード機能 | 撮影画像と貼り付け先の面情報をデータベースにアップロードする機能 |
| 正射変換機能 | 斜めから撮影した建物画像を対象面に対して正面から撮影したように補正する機能 |
| 項目 | 名称 | バージョン | 内容 |
|---|---|---|---|
| 開発プラットフォーム | Unity | 2022.3.44f1 | モバイルアプリの開発に使用 |
| 使用言語 | C# | 9.0 | Unity のサポート言語 |
- ランタイム
- ランタイムの実行に必要な Unity の依存パッケージです。
| 名称 | バージョン | 内容 |
|---|---|---|
| PLATEAU.SNAP.Server | 0.0.1 | SNAP のサーバーサイド |
| AR Foundation | 5.1.5 | AR 機能実装に使用 |
| Google ARCore XR Plugin | 5.1.5 | AR 機能実装(Geospatial)に使用 |
| ARCore Extensions | 1.22.3 | AR 機能の拡張を提供(ARCore が依存) |
| UniTask | 2.5.10 | 非同期タスクの実装に使用 |
| R3 | 1.2.9 | リアクティブな実装に使用 |
| Geometry | 0.0.5 | メッシュ描画に使用 |
| Mesh2d | 0.0.9 | メッシュ描画に使用 |
| Triangulation | 0.0.8 | メッシュ描画に使用 |
- サンプル
- サンプルの実行に必要な Unity の依存パッケージです。
- ランタイムに併せて必要です。
| 名称 | バージョン | 内容 |
|---|---|---|
| Addressables | 1.22.3 | リソース管理に使用 |
| Localization | 1.5.4 | 文字列のローカライズに使用 |
| TextMeshPro | 3.0.6 | 文字列 UI 描画(メッシュベース)に使用 |
| VContainer | 1.16.8 | Dependency Injection に使用 |
| Polly | 8.5.2 | OpenAPI で生成されたコードのコンパイルに必要 |
- テストデバイス
- iPhone 13 Pro(iOS 18.3.1)
- 推奨環境
- Geospatial API に対応しているiOS デバイス(※すべてのデバイスでの動作を保証するものではありません。)
- 最新の iOS バージョン
- ネットワーク要件
- 本システムは 3D 都市モデルの座標情報の取得および画像データの送信のため、インターネット接続が必要です。
| フォルダ名 | 詳細 | 関連情報 |
|---|---|---|
| SnapForUnity | Unity プロジェクト | 構成 |
| .config | .NET の環境設定 | クライアントの API ドキュメントの作成方法 |
| .github | GitHub の設定ファイル | プルリクエストの作成手順 |
| OpenAPI | API 通信用のコード生成関連 | サンプルの API 通信用のクライアントコードの更新方法 |
| docs | アプリの API ドキュメント | クライアントの API ドキュメントの作成方法 |
- ソースコード及び関連ドキュメントの著作権は国土交通省に帰属します。
- 本ドキュメントはProject PLATEAU のサイトポリシー(CCBY4.0 及び政府標準利用規約 2.0)に従い提供されています。
- 本リポジトリは参考資料として提供しているものです。動作保証は行っていません。
- 本リポジトリについては予告なく変更又は削除をする可能性があります。
- 本リポジトリの利用により生じた損失及び損害等について、国土交通省はいかなる責任も負わないものとします。
