【論文読み会】BuildingNet: Learning to Label 3D Buildings

241 Views

March 06, 24

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

2023年度論文読み会#9(3Dデータ論文読み会#3) GNNによる建築物の3Dメッシュラベリング 京都大学理学部 3回生 松田拓巳 0

2.

■3D論文読み会について ⚫ 週1回ペースで3D×機械学習に関連する論文読み会を実施 ⚫ 全7回を予定し、3回分は認識系、4回分は生成系を読む ⚫ 発表予定の1週間前までに発表する旨を#generalで告知 ⚫ • 発表する日時(基本は火曜19時~ですが都合により変更も可) • 論文名とそのリンク • 認識系 or 生成系 発表希望者がいない回は松田が発表します 1

3.

■論文の探し方(例) ⚫ Google Scholar や X,arXiv,CVPR,Microsoft Academicなど で検索して探す ⚫ • “3D deep learning” • “3D recognition” • 興味のある分野のwordを入れても良いかも(ex. 自動運転) Paper with codeのBrowse State-of-the-Artで性能の良い モデルの論文を探す 2

4.

BuildingNet: Learning to Label 3D Buildings 目次 1. 論文の概要 2. BuildingNet 3. BuildingGNN 4. 精度検証 3

5.

1. 論文の概要 4

6.

1. 論文の概要 1.1 論文のポイント ⚫ 建築物の外装をラベル付けした大規模な3Dメッシュデータセット BuildingNet を構築した ⚫ GNNにより建築3Dメッシュのラベリングにおいて高精度を達成した 5

7.

1. 論文の概要 1.2 メッシュとは 点群 メッシュ ボクセル RGBD ⚫ 単純な図形(四角形や三角形など)で構成された3Dモデル 6

8.

1. 論文の概要 1.3 GNN(Graph Neural Network)とは ⚫ グラフはエッジとノードからなるデータ構造 ⚫ エッジ・ノードの値を集約したりMLPに通したりしてエッジ・ノードの値を更新する 𝒏1 𝒏1 𝒏2 𝒆3,1 𝒏2 message passing 𝒆2,3 𝒆3,2 𝒏3 𝒆3,4 𝒆4,2 𝒆3,1 ・・・ 𝒆2,3 𝒆3,2 𝒏3 𝒏4 𝒆3,4 𝒆4,2 𝒏4 画像出典:https://www.slideshare.net/ssuser0c8361/20200212-227754437 7

9.

1. 論文の概要 1.4 背景 ⚫ “建築物” の特徴 • 複数の部品で構成され、多様性や複雑さが大きい • ShapeNetやScanNetにあるような物体に比べて大きい ⚫ 大規模な公開3D建築モデルは今までに存在しなかった ⚫ 3Dメッシュを扱うNNアーキテクチャはそんなに多くない • Geodesic CNN • Anisotropic CNN • FCN+CRF ⚫ 建築のセマンティックセグメンテーションの研究が少ない 画像出典:https://arxiv.org/abs/1612.02808 https://arxiv.org/abs/1501.06297 8

10.

2. BuildingNet 9

11.

2. BuildingNet 2.1 BuildingNetの概要 ⚫ 2000棟の建築物のアノテーション済み3Dメッシュデータ(BuildingNet - Mesh) • RGB情報もある ⚫ 点群データも用意されている(BuildingNet - Points) • Poisson Disk Samplingを使って3Dメッシュから10万点を生成 画像出典: https://github.com/marmakoide/mesh-blue-noise-sampling 10

12.

2. BuildingNet 2.1 BuildingNetの概要 ⚫ 建物は5種類に分類 • 住宅・商業施設・宗教施設・市民施設・城 ⚫ ラベルは31種類 • 窓、植物、壁、屋根、手すり、乗り物、ドア、… 11

13.

2. BuildingNet 2.2 アノテーション画面 12

14.

3. BuildingGNN 13

15.

3. BuildingGNN 3.1 グラフの定義 ⚫ ノード:各mesh subgroupを1つのノードとする ⚫ エッジ:近いノード、支持関係にあるノード、類似ノード、 subgroup 包含関係にあるノードを接続する* 出典:https://arxiv.org/abs/1812.02713 類似 近い 出典:https://buildingnet.org/ 支持 14

16.

■補足|エッジ特徴量の詳細 ⚫ Proximity edges(近いsubgroupを接続するエッジ) • subgroup間の距離が、両者のOBBの対角線平均の1%以下かどうか・2.5%以下かどう か・5%以下かどうか・10%以下かどうかのone-hot(=4次元ベクトル) ⚫ Support edges(支持関係にあるsubgroupを接続するエッジ) • あるsubgroupの底面が別のsubgroupのOBBの上面の上にある面積の割合 • 両者の距離はOBBの高さ平均の1%/2.5%/5%/10%とする(→4次元ベクトルに) ⚫ Similarity edges(似ているsubgroupを接続するエッジ) • 1 – (Chamfer距離) ⚫ Containment edges(包含関係にあるsubgroupを接続するエッジ) • ① (共通部分の体積) • ② (共通部分の体積)÷(和集合の体積) 15

17.

3. BuildingGNN 3.2 全体像 メッシュをもとに点を Group化してpooling メッシュ U-Net系モデル 点群 グラフ表現 各点の特徴量 出典:https://buildingnet.org/ 16

18.

3. BuildingGNN 3.3 値の更新 ノード𝑖の値 (𝑡) 𝐡𝑖 を更新する ノード 𝑖 と繋がっているエッジ/ノードをconcatしたものを (𝑡+1) MLPに入れた結果の和が更新後の値 𝐡𝑖 出典:https://buildingnet.org/ 17

19.

3. BuildingGNN 3.4 更新式 ⚫ 𝑙 = 0 のとき (0) 𝐡𝑖,𝑗 = 𝑀𝐿𝑃 𝐞𝑖,𝑗 ; 𝐰 0 , (0) 𝐡𝑖 ノードの初期特徴量 = 𝐧𝑖 (subgroupの重心位置などをconcatしたベクトル) エッジの特徴量 MLPの重みパラメータ ⚫ 𝑙 ≥ 1 のとき (𝑙+1) 𝐡𝑖,𝑗 = 𝑀𝐿𝑃 (𝑙) (𝑙) (𝑙) 𝐡𝑖 , 𝐡𝑗 , 𝐡𝑖,𝑗 ; 𝐰 𝑙 1 (𝑙+1) = ෍ 𝐡𝑖,𝑗 |𝑁(𝑖)| (𝑙+1) 𝐡𝑖 , 𝑗∈𝒩(𝑖) 𝐧𝑖 (0) 𝐞𝑗,𝑖 (0) 𝐧𝑗 𝐡𝑖 𝐡𝑗,𝑖 𝐧𝑘 (1) (0) 𝐡𝑗 (0) 𝐡𝑘,𝑖 𝐞𝑘,𝑖 (1) 𝐡𝑖 𝐡𝑗,𝑖 (1) 𝐡𝑘,𝑖 (0) 𝐡𝑘 (1) 𝐡𝑗 …… (1) 𝐡𝑘 18

20.

■補足|BuildingGNNのアーキテクチャ 19

21.

4. 精度検証 20

22.

4. 精度検証 4.1 従来手法との比較(点群のみを使った場合) ⚫ MinkowskiNetが最も精度が高かった ⚫ 色情報を含めると精度が上がる ⚫ 全体的に精度が低い • PartNetでは、PointNet++の精度はPart IoU=30~70%程度 • BuildingNetでは、最高精度のMinkowskiNetでもPart IoU=29.9%にとどまる 入力に色情報を含むかどうか 21

23.

4. 精度検証 4.2 従来手法との比較(点群とメッシュを使った場合) ⚫ triangle-pooling • メッシュ単位(三角形)ごとに点群特徴量をaverage-pooling ⚫ subgroup-pooling • 部品ごとに点群特徴量をaverage-pooling ⚫ 色情報の有無によらず、BuildingNet – MinkNet の組み合わせが最強だった GNNで 15.4ポイント 精度UP 22

24.

■補足|Max-PoolingかAvg-Poolingか? ⚫ Avg-Poolingのほうが精度が良かった 23

25.

4. 精度検証 4.3 各モデルの予測例 GNN使用 最高精度 正解ラベル 24

26.

BuildingNet: Learning to Label 3D Buildings まとめ まとめ1 大規模な公開3D建築モデルBuildingNetを構築した まとめ2 GNNを導入しベースライン精度より大きく改善 25