Skip to content

地物属性や密集度等のパラメータ、衛星画像・沿道画像(任意)を入力として、3D都市モデルを生成するツール

License

Notifications You must be signed in to change notification settings

Project-PLATEAU/3D-City-Model-Generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D都市モデル生成シミュレータ

概要画像

1. 概要

本リポジトリでは、2023年度のProject PLATEAUで開発した「3D都市モデル生成ツール」のソースコードを公開しています。

「3D都市モデル生成ツール」は、建物フットプリントデータやユーザーが指定するパラメータに基づき、3D都市モデル(建築物、道路、植生、都市設備、地形)を自動で生成するWebオーサリングツールです。
このツールは、実際の都市データ及び白紙からの仮想都市モデルの作成に対応しており、詳細レベル(LOD)の向上機能を備えています。

※本プロジェクトは、令和5年度「都市デジタルツインの実現に向けた研究開発及び実証調査業務」(内閣府/研究開発とSociety5.0との橋渡しプログラム(BRIDGE))の一部として実施されました。

2. 「3D都市モデル生成ツール」について

「3D都市モデル生成シミュレータ開発」プロジェクトは、3D都市モデルのアクセシビリティとスケーラビリティを高め、都市デジタルツインの作成コストを大幅に削減することを目指しています。 この目標達成のために、最新の自動生成技術を核とする3D都市モデル生成シミュレータが開発されました。

このシミュレータは、生成AIの技術を活用し、建築物、道路、都市設備、植生、地形を含む主要なモデルを網羅し、LOD(詳細レベル)、形状、高さ、種別などのパラメータをユーザーが自由に設定できる設計になっています。 また、生成された3D都市モデルをCityGML形式で出力し、ツール上での視覚化も可能です。

3. 利用手順

本システムの構築手順及び利用手順については利用チュートリアルを参照してください。

4. システム概要

【3D都市モデル生成】

①衛星画像リファレンス機能(実都市のみ)

  • 衛星画像に基に、道路・植生の3D都市モデルを生成し、これらの空間分布を反映した建築物の配置を行います。
  • セマンティックセグメンテーションを用いたアルゴリズムを採用しています。

②パラメータ設定機能

  • スケール、対象地物、乱数シードなどの汎用的なパラメータを設定可能です。
  • 各地物特有のパラメータ設定も可能です。

③実際の都市における仮想3D建築物モデル生成機能

  • 実際の都市データ形状とパラメータ(L0D, 屋根形状,高さ)に基づいて、多様な3D建築物を生成し、CityGML(PLATEAU v3)形式で出力します。
  • PLATEAUの3D建築物モデルを学習し、建物フットプリントデータからLODや屋根タイプ別の3D建築物モデルを生成します。

④仮想の都市における3D建築物モデル生成機能 

  • ユーザーが設定したパラメータ(L0D, 屋根形状,高さ)に基づいて、建物モデルを生成し配置します。
  • PLATEAUの3D建築物モデルをテンプレートとして利用しCityGML(PLATEAU v3)形式で出力されます。

⑤道路モデル生成機能

  • ユーザが設定したパラメータ(L0D, 道路種別,幅員)に基づいて、道路モデルを生成し配置します。
  • CityGML(PLATEAU v3)形式で出力されます。

⑥植生モデル生成機能 

  • ユーザが設定したパラメータ(L0D,種別)に基づいて、植生モデルを生成し配置します。
  • CityGML(PLATEAU v3)形式で出力されます。

⑦都市設備モデル生成機能 

  • ユーザが設定した入力パラメータ(LOD, 種別)に基づいて、都市設備モデルを生成し配置します。
  • CityGML(PLATEAU v3)形式で出力されます。

⑧地形機能 

  • ユーザが設定したLODに基づいて、地形モデルを生成し、配置します。
  • CityGML(PLATEAU v3)形式で出力されます。

⑨可視化機能 

  • 生成した3D都市モデルはツール上で可視化されます。

5. 利用技術

ID 名称 内容
1 PyCharm Community Pythonで開発する際に使用するソフトウェア
2 Visual Studio Code C++で開発する際に使用するソフトウェア
3 Feature Manipulation Engine (FME) 建物GMLファイルをOBJに変換する際に使用するソフトウェア
4 Computational Geometry Algorithms Library (CGAL) メッシュを生成、最適化する際に使用するライブラリ
5 OpenCV 二次元画像データに関する処理に効果的なライブラリ
6 Point Cloud Library (PCL) 三次元点群データに関する処理に効果的なライブラリ
7 CCCoreLib 建物OBJファイルを点群にサンプリングする際に使用するライブラリ
8 PyTorch 生成的モデルの実行に必要となり、基本的な深層学習モジュールも提供されるライブラリ
9 torchvision ツールと方法を提供し、画像の読み込み、前処理、モデル訓練、評価などのタスクを簡素化するライブラリ
10 cudatoolkit GPU高速計算をサポートし、CUDAプログラミングを行い、複数のGPUでの並列アルゴリズムとデータ構造を実現するためのライブラリ
11 conda-forge Conda環境において、バージョン管理、環境隔離、クロスプラットフォーム互換性、統合開発環境を実現するライブラリ
12 yacs コンピュータビジョンプロジェクトにおいて、設定ファイルを定義し管理するためのライブラリ
13 pyyaml YAML形式のデータを読み込み、修正し、書き込むために使用されるライブラリ
14 scipy numpyに基づくオープンソースの科学計算ライブラリで、科学、技術、工学分野に多くの数学アルゴリズムを提供している。例として、線形代数、積分と微分方程式、信号処理などが含まれる
15 numpy 大量の次元配列と行列演算をサポートするために使用される
16 openmim OpenMMLab コミュニティによって開発されたコマンドラインツール、機械学習モデルやアルゴリズムライブラリの管理と使用プロセスを簡素化することを目的としている
17 mmcv-full OpenMMLabプロジェクトを統合するため、コンピュータビジョン研究と深層学習プロジェクトのための一連の基本機能とツールを提供し、CUDA操作をサポートするライブラリ
18 mmsegmentation OpenMMLabコミュニティによって開発されたオープンソースのセグメンテーションライブラリ、深層学習による画像分割モデルの訓練と推論フレームワークの提供に特化している
19 mmdet OpenMMLabコミュニティによって開発されたオープンソースの目標検出ライブラリで、深層学習による画像分割モデルの訓練と推論フレームワークの提供に特化している
20 timm PyTorchに基づく深層学習画像モデルライブラリで、多数の現代の画像認識・分類モデルの実装が含まれており、最新の研究成果を含めて継続的に更新されている
21 gdal 多様な空間データ形式を読み書きするために使用されるライブラリ
22 ogr GDALのサブセットで、ベクターデータの処理に特化している
23 pandas 高性能で使いやすいデータ構造とデータ分析ツールを提供し、DataFrameやSeriesなどをサポートし、CSV、Excel、JSON、HTMLなどのデータの処理が可能のライブラリ
24 geopandas pandasに基づく拡張で、地理空間データの処理に特化しているライブラリ
25 shapely 平面オブジェクト(Points、Lines、Polygonなど)の処理に使用され、平面オブジェクトの作成、空間分析、トポロジー分析機能を含むライブラリ
26 argparse プログラム実行時のオプションとパラメータをユーザーが指定できるようにするPythonの標準ライブラリ
27 albumentations 深層学習および機械学習における画像の前処理とデータ拡張のために設計されたライブラリ
28 pytorch-lightning PyTorchの複雑さを簡素化することを目指す高度な深層学習フレームワーク
29 omegaconf 軽量な設定ライブラリ、YAMLやJSONなどの設定ファイルを扱い、強力なマージ、補間、および型チェック機能を提供し、設定管理を簡単かつ柔軟にする
30 test-tube 機械学習の実験結果を追跡、整理、分析するためのライブラリ、ハイパーパラメータの最適化と実験のバージョン管理をサポートする
31 einops  テンソル操作とリシェイプをより直感的で柔軟に行うためのPythonライブラリ、多次元データの再配置、次元変換、スケーリングを処理するための簡潔な表現方法を提供する
32 transformers オープンソースの自然言語処理(NLP)ライブラリ、BERT、GPT、RoBERTaなどの多数の事前訓練済みモデルの実装を提供し、テキスト分類、生成、翻訳などの多様なNLPタスクに使用され、迅速なデプロイと使いやすいAPIをサポートする
33 kornia  PyTorchに基づくオープンソースのコンピュータビジョンライブラリ、一連の微分可能な視覚変換関数を提供し、画像処理、強化、特徴抽出などの操作を実現し、GPU加速と自動微分をサポートする
34 open_clip_torch PyTorchに基づくオープンソースライブラリ、OpenAI CLIPに似た機能を提供し、自然言語のプロンプトを通じて画像を検索・理解できるようにすることを目的としており、多様な事前訓練モデルとカスタマイズ可能な訓練プロセスをサポートする
35 torchmetrics PyTorchに基づく機械学習の指標ライブラリ、モデル評価用の標準指標(正確性、精度、再現率など)を一連提供し、モデル性能評価プロセスを簡素化し統一することを目的としている
36 addict Pythonのdictを拡張したライブラリ、属性アクセスを通じて動的にネストされたdictを作成およびアクセスできる使いやすいインターフェースを提供し、dict操作の複雑さを簡素化する
37 yapf Pythonコードフォーマットツール、PEP 8スタイルガイドに準拠するようにPythonコードを自動的に再フォーマットし、コードの可読性と一貫性を向上させることを目的とする
38 trimesh 三次元メッシュの読み込み、処理、表示、分析を行うためのライブラリ、多様なファイル形式に対応し、三次元幾何データを扱うためのシンプルなインターフェースを提供する
39 random 擬似乱数を生成するためのライブラリ、整数、浮動小数点数、シーケンスからの要素の選択、ランダムな文字の生成など、さまざまな乱数生成器を提供する
40 lxml XMLおよびHTMLドキュメントを解析するために使用されるライブラリ、XMLおよびHTMLコンテンツに迅速にアクセス、修正、作成するためのシンプルで使いやすいAPIを提供する
41 earcut 軽量な多角形三角形分割ツール、複雑な多角形を三角形メッシュに変換するために使用され、グラフィックレンダリングや地理情報システム(GIS)データ処理によく使用される
42 math 一連の数学関数と定数を提供し、浮動小数点数の数学演算を実行するために使用されるライブラリ。これには、三角関数、対数関数、指数関数などが含まれる

6. 動作環境

項目 最小動作環境 推奨動作環境
OS Ubuntu 20.08 同左
GPU メモリ16GB以上 NVIDIA A100推奨
Python Anaconda 同左
CUDA CUDA>=10.2 CUDA==12.1

7. 本リポジトリのフォルダ構成

【実都市】

フォルダ名  詳細
annotator ControlNetをトレーニングするためのデータツール
bg_extract 衛星画像から植生・道路自動抽出機能
cldm ControlNetのネットワーク基礎構成要素(controlled latent diffusion model)
data_src Plateauテンプレートデータ
gen3D_realCity_testData データ例、衛生画像と建物フットプリント
ldm Stable Diffusionのネットワーク基礎構成要素(latent diffusion model)
model ControlNetのネットワーク構築
res_example 結果図例
util データ中間処理

【仮想都市】

フォルダ・ファイル名  詳細
res_example 結果図例
gen_mesh.py 仮想都市生成機能

8. ライセンス

  • ソースコード及び関連ドキュメントの著作権は国土交通省に帰属します。
  • 本ドキュメントはProject PLATEAUのサイトポリシー(CCBY4.0及び政府標準利用規約2.0)に従い提供されています。

9. 注意事項

  • 本リポジトリは参考資料として提供しているものです。動作保証は行っていません。
  • 本リポジトリについては予告なく変更又は削除をする可能性があります。
  • 本リポジトリの利用により生じた損失及び損害等について、国土交通省はいかなる責任も負わないものとします。

10. 参考資料

About

地物属性や密集度等のパラメータ、衛星画像・沿道画像(任意)を入力として、3D都市モデルを生成するツール

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages