M TUM-Facade・Semantic3D:点群データセットの概要とダウンロード用Pythonコード

TUM-Facade・Semantic3D:点群データセットの概要とダウンロード用Pythonコード

1. エグゼクティブサマリー

本記事は,点群データセット2種(TUM-Facade,Semantic3D)の概要と,それぞれのダウンロードを行うPythonコードを掲載する。

各データセットは静的地上レーザースキャナおよび車載MLSにより取得された屋外点群データであり,ファサードセグメンテーション,セマンティックセグメンテーションなどの研究・教育用途に用いることができる。総点数は約3億3,300万点から40億点以上まで異なり,クラス数・座標系・フォーマット・ライセンスもデータセットごとに異なる。

Pythonコードは,大学アーカイブサーバなどの各データセットの公式配布元からファイルをダウンロードする。ダウンロード済みファイルのスキップ機能とファイルサイズ表示機能を備えている。ダウンロード対象のファイル数・推定サイズ・必要ツールの一覧は第4章冒頭に掲載している。

2. 前準備(必要ソフトウェアの入手)

本記事のPythonコードは標準ライブラリ(osbase64subprocessurllib.request)で動作する。

7-Zipは、Paris-Lille-3D,TUM-Facade,Semantic3D で使用する。 s5cmdは、Argoverse 2 で使用する。

Python 3.12 のインストール(Windows 上) [クリックして展開]

以下のいずれかの方法で Python 3.12 をインストールする。Python がインストール済みの場合、この手順は不要である。

方法1:winget によるインストール

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

winget install -e --id Python.Python.3.12 --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 AssociateFiles=1 InstallLauncherAllUsers=1"

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。

方法2:インストーラーによるインストール

  1. Python 公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンから Windows 用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」に必ずチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

AIエディタ Windsurf のインストール(Windows 上) [クリックして展開]

Pythonプログラムの編集・実行には、AIエディタの利用を推奨する。ここでは、Windsurfのインストールを説明する。Windsurf がインストール済みの場合、この手順は不要である。

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

winget install -e --id Codeium.Windsurf --scope machine --accept-source-agreements --accept-package-agreements --custom "/SUPPRESSMSGBOXES /MERGETASKS=!runcode,addtopath,associatewithfiles,!desktopicon"
powershell -Command "$env:Path=[System.Environment]::GetEnvironmentVariable('Path','Machine')+';'+[System.Environment]::GetEnvironmentVariable('Path','User'); windsurf --install-extension MS-CEINTL.vscode-language-pack-ja --force; windsurf --install-extension ms-python.python --force; windsurf --install-extension Codeium.windsurfPyright --force"

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。

関連する外部ページ

Windsurf の公式ページ: https://windsurf.com/

7-Zip のインストール [クリックして展開]

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

REM 7-Zip をシステム領域にインストール
winget install --scope machine --id 7zip.7zip -e --silent --accept-source-agreements --accept-package-agreements --force
REM 7-Zip のパス設定
powershell -NoProfile -Command "$p='C:\Program Files\7-Zip'; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and $c -notlike \"*$p*\"){[Environment]::SetEnvironmentVariable('Path',\"$p;$c\",'Machine')}"

s5cmd のインストール [クリックして展開]

管理者権限コマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。

pip install -U s5cmd

3. 実行のための準備とその確認手順(Windows 前提)

3.1 プログラムファイルの準備

第5章に掲載するソースコードをテキストエディタ(メモ帳,Windsurf 等)に貼り付け実行する(文字コード:UTF-8)。

3.2 動作確認チェックリスト

確認項目期待される結果
ダウンロード開始時「ダウンロード中...」または「ダウンロード中: (ファイル名)」と表示される
ダウンロード完了後「完了」と表示され,ファイルサイズ(GB単位)が出力される
再実行時(ファイル既存)「スキップ」を含むメッセージが表示され,再ダウンロードされない
保存先ディレクトリ./datasets/ 以下にファイルと展開済みデータが存在する

4. 概要・使い方・実行上の注意

各データセットの概要,属性,ライセンス,注意点を以下に記載する。ソースコードは第5章に掲載している。

4.0 ダウンロード一覧

以下の表は,第5章の各ソースコードが実際にダウンロードするファイルの一覧である。データセット自体の総点数やクラス数ではなく,コードを実行した際に取得されるファイル数・推定サイズ・必要ツールをまとめている。

データセット ダウンロードファイル数 ダウンロード内容 推定合計サイズ(圧縮時) 展開後の形式 保存先 必要ツール
TUM-Facade 1 tum_facade.zip(TUM mediaTUM経由,内部に24ファイル) 約16 GB .pcd ./datasets/tum_facade/ 7-Zip
Semantic3D 21 訓練データ15個(.7z),訓練ラベル1個(.7z),テストデータ4個(.7z),テストラベル1個(.zip) 約20 GB(ファイルにより0.2〜2.7 GB) ASCII テキスト(.txt + .labels) ./datasets/semantic3d/ 7-Zip

補足:

4.1 TUM-Facade

TUM-Facadeは,ミュンヘン工科大学(TUM)キャンパス周辺の建物ファサードに対するセグメンテーション用点群データセットである。窓,ドア,バルコニー,モールディング等のファサード要素にラベルが付与されている。

項目内容
総点数約3億3,300万点(アノテーション済み)
対象33棟のアノテーション済みファサード+8棟の未アノテーション
クラス数ファサード要素クラス(Wall, Window, Door, Balcony, Molding, Deco, Column, Arch, Stair, Ground surface, Terrain, Roof, Blinds, Outer ceiling surface, Interior, Other)
フォーマット.pcd
座標系ローカル座標系およびUTM座標系
ライセンスCC BY 4.0

4.2 Semantic3D

Semantic3Dは,ETH Zurichが提供した大規模点群分類ベンチマークである。静的地上レーザースキャナで取得された高密度点群で,教会,街路,鉄道,広場など多様なシーンを含む。2025年8月にベンチマークが終了し,テストラベルを含む全データが公開された。

項目内容
総点数40億点以上
クラス数8(man-made terrain, natural terrain, high vegetation, low vegetation, buildings, hard scape, scanning artefacts, cars)+unlabeled
フォーマットASCII(x, y, z, intensity, r, g, b),7zip圧縮
ライセンスCC BY-NC-SA 3.0

reduced-8(縮小テストセット版)の全ファイルをダウンロードする。展開に7-Zipが必要である。

5. ソースコード

5.1 TUM-Facade

"""TUM-Facade ダウンロード(TUM mediaTUM経由)"""
import os
import subprocess
import urllib.request

DOWNLOAD_DIR = "./datasets/tum_facade"
URL = "https://dataserv.ub.tum.de/index.php/s/m1636761.003/download"

os.makedirs(DOWNLOAD_DIR, exist_ok=True)
path = os.path.join(DOWNLOAD_DIR, "tum_facade.zip")
if not os.path.exists(path):
    print("ダウンロード中...")
    urllib.request.urlretrieve(URL, path)
    print(f"完了({os.path.getsize(path) / 1e9:.2f} GB)")
    subprocess.run(["7z", "x", path, f"-o{DOWNLOAD_DIR}", "-y"])
else:
    print("スキップ: tum_facade.zip(ダウンロード済み)")

5.2 Semantic3D

"""Semantic3D ダウンロード(reduced-8,ETH Zurich アーカイブ経由)"""
import os
import subprocess
import urllib.request

DOWNLOAD_DIR = "./datasets/semantic3d"
BASE = "https://share.phys.ethz.ch/~pf/semantic3d/data"
TRAIN = [
    "bildstein_station1_xyz_intensity_rgb",
    "bildstein_station3_xyz_intensity_rgb",
    "bildstein_station5_xyz_intensity_rgb",
    "domfountain_station1_xyz_intensity_rgb",
    "domfountain_station2_xyz_intensity_rgb",
    "domfountain_station3_xyz_intensity_rgb",
    "neugasse_station1_xyz_intensity_rgb",
    "sg27_station1_intensity_rgb",
    "sg27_station2_intensity_rgb",
    "sg27_station4_intensity_rgb",
    "sg27_station5_intensity_rgb",
    "sg27_station9_intensity_rgb",
    "sg28_station4_intensity_rgb",
    "untermaederbrunnen_station1_xyz_intensity_rgb",
    "untermaederbrunnen_station3_xyz_intensity_rgb",
]
TEST = [
    "MarketplaceFeldkirch_Station4_rgb_intensity-reduced.txt",
    "StGallenCathedral_station6_rgb_intensity-reduced.txt",
    "sg27_station10_rgb_intensity-reduced.txt",
    "sg28_Station2_rgb_intensity-reduced.txt",
]

os.makedirs(DOWNLOAD_DIR, exist_ok=True)

def dl(url, dest):
    if os.path.exists(dest):
        print(f"  スキップ: {os.path.basename(dest)}(ダウンロード済み)")
        return False
    print(f"  ダウンロード中: {os.path.basename(dest)}")
    urllib.request.urlretrieve(url, dest)
    print(f"  完了({os.path.getsize(dest) / 1e9:.2f} GB)")
    return True

print("訓練データ:")
for name in TRAIN:
    p = os.path.join(DOWNLOAD_DIR, f"{name}.7z")
    if dl(f"{BASE}/point-clouds/training1/{name}.7z", p):
        subprocess.run(["7z", "x", p, f"-o{DOWNLOAD_DIR}", "-y"])

print("訓練ラベル:")
p = os.path.join(DOWNLOAD_DIR, "sem8_labels_training.7z")
if dl(f"{BASE}/sem8_labels_training.7z", p):
    subprocess.run(["7z", "x", p, f"-o{DOWNLOAD_DIR}", "-y"])

print("テストデータ(reduced-8):")
for name in TEST:
    p = os.path.join(DOWNLOAD_DIR, f"{name}.7z")
    if dl(f"{BASE}/point-clouds/testing2/{name}.7z", p):
        subprocess.run(["7z", "x", p, f"-o{DOWNLOAD_DIR}", "-y"])

print("テストラベル:")
p = os.path.join(DOWNLOAD_DIR, "reduced-8-test.zip")
if dl(f"{BASE}/reduced-8-test.zip", p):
    subprocess.run(["7z", "x", p, f"-o{DOWNLOAD_DIR}", "-y"])

print("完了")

6. まとめ

6.1 取得方式と規模

本記事の2つのデータセットは,車載MLSおよび静的地上レーザースキャナにより収集されており,約3億3,300万点(TUM-Facade)から40億点以上(Semantic3D)の規模を持つ。

6.2 セマンティックラベルとベンチマーク

各データセットには建物,植生,車両,ファサード要素などのクラスが付与されている。Semantic3Dでは2025年8月のベンチマーク終了後にテストラベルが公開された。

6.3 座標系とデータ前処理

TUM-Facadeではローカル座標系とUTM座標系の両方が提供されている。

6.4 配布形式とダウンロード手段

配布元はTUM mediaTUM,ETH Zurichアーカイブサーバである。ダウンロード対象の一覧(ファイル数・推定サイズ・必要ツール)は第4章冒頭の表を参照されたい。

6.5 ライセンス

各データセットのライセンスはCC BY 4.0(TUM-Facade),CC BY-NC-SA 3.0(Semantic3D)である。Semantic3Dには非商用条件が付されている。商用利用を検討する場合は個別に条件を確認する必要がある。