
本リポジトリでは、令和6年度のProject PLATEAUで開発した「3D都市モデル生成ツール」のソースコードを公開しています。
「3D都市モデル生成ツール」は、建物フットプリントデータやユーザーが指定するパラメータに基づき、3D都市モデル(建築物、道路、植生、都市設備)を自動で生成するWebオーサリングツールです。このツールは、衛星画像や沿道画像の範囲の3D都市モデルの作成に対応しており、詳細レベル(LOD)の向上機能(LOD1-3)を備えています。
※本プロジェクトは、令和6年度「都市デジタルツインの実現に向けた研究開発及び実証調査業務」(内閣府/研究開発とSociety5.0との橋渡しプログラム(BRIDGE))の一部として実施されました。
「3D都市モデル生成シミュレータ」プロジェクトは、3D都市モデルのアクセシビリティとスケーラビリティを高め、都市デジタルツインの作成コストを大幅に削減することを目指しています。この目標達成のために、最新の自���生成AI技術を核とする3D都市モデル生成シミュレータが開発されました。
このシミュレータは、建築物、道路、都市設備、植生を含む主要なモデルを網羅し、LOD(詳細レベル)、形状、高さ、種別などのパラメータをユーザーが自由に設定できる設計になっています。また、生成された3D都市モデルをCityGML形式で出力し、ツール上での視覚化も可能です。
本システムの構築手順及び利用手順については利用チュートリアルを参照してください。
衛星画像リファレンス機能
沿道映像リファレンス機能 (LOD3のみ)
パラメータ設定機能
実際の都市における仮想3D建築物モデル生成機能
道路モデル生成機能
植生モデル生成機能
都市設備モデル生成機能
可視化機能
| 種別 | 名称 | バージョン | 内容 |
|---|---|---|---|
| ソフトウェア | PyCharm Community | - | Pythonで開発する際に使用するソフトウェア |
| Visual Studio Code | - | C++で開発する際に使用するソフトウェア | |
| Feature Manipulation Engine (FME) | - | 建物GMLファイルをOBJに変換する際に使用するソフトウェア | |
| ライブラリ | Computational Geometry Algorithms Library (CGAL) | - | メッシュを生成、最適化する際に使用するライブラリ |
| OpenCV | 4.7.0.72 | 二次元画像データに関する処理に効果的なライブラリ | |
| Point Cloud Library (PCL) | - | 三次元点群データに関する処理に効果的なライブラリ | |
| CCCoreLib | - | 建物OBJファイルを点群にサンプリングする際に使用するライブラリ | |
| PyTorch | 2.5.0 | 生成的モデルの実行に必要となり、基本的な深層学習モジュールも提供されるライブラリ | |
| torchvision | 0.20.0 | 画像の読み込み、前処理、モデル訓練、評価などのタスクを簡素化するライブラリ | |
| cudatoolkit | - | GPU高速計算をサポートし、CUDAプログラミングや複数GPUでの並列処理を実現するライブラリ | |
| conda-forge | - | Conda環境におけるバージョン管理、環境隔離、クロスプラットフォーム互換性などを実現するライブラリ | |
| yacs | - | 設定ファイルを定義・管理するためのライブラリ | |
| pyyaml | - | YAML形式のデータを読み込み、修正し、書き込むために使用されるライブラリ | |
| scipy | 1.9.1 | numpyに基づく科学計算ライブラリ。線形代数、積分・微分方程式、信号処理などの数学アルゴリズムを提供 | |
| numpy | - | 大量の次元配列と行列演算をサポートするライブラリ | |
| openmim | - | OpenMMLabコミュニティ開発のコマンドラインツール。機械学習モデルやアルゴリズムライブラリの管理を簡素化する | |
| mmcv-full | 2.2.0 | コンピュータビジョン研究と深層学習プロジェクトの基本機能とツールを提供し、CUDA操作をサポートするライブラリ | |
| mmsegmentation | - | 深層学習による画像分割モデルの訓練と推論フレームワークを提供するオープンソースのセグメンテーションライブラリ | |
| mmdet | - | 目標検出ライブラリ。深層学習による画像分割モデルの訓練と推論フレームワークの提供に特化している | |
| timm | 0.6.11 | PyTorchに基づく深層学習画像モデルライブラリ。多数の現代の画像認識・分類モデルの実装が含まれている | |
| gdal | 3.4.1 | 多様な空間データ形式を読み書きするために使用されるライブラリ | |
| ogr (GDALのサブセット) | - | GDALのサブセット。ベクターデータの処理に特化している | |
| pandas | 1.5.3 | 高性能で使いやすいデータ構造とデータ分析ツール。DataFrameやSeriesをサポートし、CSV、Excel、JSON、HTMLなどの処理が可能 | |
| geopandas | 0.10.2 | pandasを拡張し、地理空間データの処理に特化したライブラリ | |
| shapely | - | 平面オブジェクトの作成、空間分析、トポロジー分析機能を含むライブラリ | |
| argparse | - | Python標準ライブラリ。プログラム実行時のオプションとパラメータを指定可能にする | |
| albumentations | - | 画像の前処理とデータ拡張のために設計されたライブラリ | |
| pytorch-lightning | - | PyTorchの複雑さを簡素化することを目指す高度な深層学習フレームワーク | |
| omegaconf | - | 軽量な設定ライブラリ。YAMLやJSONなどの設定ファイルのマージ、補間、型チェック機能を提供 | |
| test-tube | - | 機械学習実験の結果追跡・整理・分析、ハイパーパラメータの最適化と実験のバージョン管理をサポート | |
| einops | - | テンソル操作とリシェイプを直感的に行うためのライブラリ。多次元データの再配置、次元変換、スケーリングを処理 | |
| transformers | 4.38.2 | 自然言語処理(NLP)ライブラリ。BERT、GPT、RoBERTaなどの事前訓練済みモデルの実装を提供 | |
| kornia | - | PyTorchに基づくコンピュータビジョンライブラリ。微分可能な視覚変換関数を提供し、GPU加速と自動微分をサポート | |
| open_clip_torch | - | OpenAI CLIPに似た機能を提供するPyTorchベースのライブラリ。自然言語プロンプトを用いた画像検索・理解を実現 | |
| torchmetrics | - | モデル評価用の標準指標(正確性、精度、再現率など)を提供し、性能評価を統一するライブラリ | |
| addict | - | Pythonのdictを拡張し、属性アクセスで動的にネストされたdictを扱いやすくするライブラリ | |
| yapf | - | Pythonコードフォーマットツール。PEP 8スタイルに準拠し、コードの可読性と一貫性を向上させる | |
| trimesh | 4.5.3 | 三次元メッシュの読み込み、処理、表示、分析を行うライブラリ。多様なファイル形式に対応 | |
| random | - | 擬似乱数生成ライブラリ。整数、浮動小数点数、シーケンスから要素選択、ランダムな文字生成を提供 | |
| lxml | 5.1.0 | XML及びHTMLドキュメントの解析用ライブラリ。迅速なアクセス、修正、作成が可能 | |
| earcut | 1.1.5 | 軽量な多角形三角形分割ツール。複雑な多角形を三角形メッシュに変換する際に使用 | |
| math | - | Python標準ライブラリ。一連の数学関数と定数を提供(例:三角関数、対数関数、指数関数など) | |
| detectron2 | - | 画像認識や物体検出モデルの構築に使用するライブラリ | |
| onnx | - | 深層学習モデルの相互運用性を実現するためのオープンフォーマット | |
| onnxruntime | 1.14.1 | ONNX形式の深層学習モデルの高速推論に使用するランタイム | |
| xgboost | 1.6.2 | 勾配ブースティングを用いた機械学習モデルの構築に使用するライブラリ | |
| classifier_free_guidance_pytorch | 0.6.10 | 生成モデルのガイダンスにおいてクラス分類を使用しない手法を実装するためのPyTorchライブラリ | |
| open3d | 0.19.0 | 3次元データの処理や可視化に使用するライブラリ | |
| sentencepiece | 0.2.0 | 自然言語処理におけるサブワード単位のトークン化を実現するライブラリ | |
| optimum | 1.23.2 | Transformerモデル等の機械学習モデルの推論最適化に使用するライブラリ | |
| triangle | - | 2次元メッシュ生成お���び最適な三角分割を実現するために使用するライブラリ |
| 項目 | 最小動作環境 | 推奨動作環境 |
|---|---|---|
| OS | Ubuntu 20.08 | 同左 |
| GPU | メモリ16GB以上 | NVIDIA A100推奨 |
| Python | Anaconda | 同左 |
| CUDA | CUDA>=11.3 | CUDA==12.4 |
| フォルダ名 | 詳細 |
|---|---|
| bg_extract | 衛星画像から植生・道路自動抽出機能 |
| Building_Generation_Opening | 街路画像から建物開口部と窓口位置情報推定及びメッシュ単位LOD3建物モデル生成機能 |
| data_src | Plateauテンプレートデータ |
| Para_calc | 建物高さを推定する機能 |
| Roof_classification_inference | 建物フォトプリント自動抽出及び屋根タイプ自動判別機能 |
| res_example | 結果図例 |
| util | データ中間処理で使うツール |
関連する論文