Slide 1

Slide 1 text

【初心者歓迎】NeRF: 3次元×機械学習入門 ―注目の3次元化技術をやさしく解説 板倉健太(農学博士)

Slide 2

Slide 2 text

~2017年3月 京都大学農学部 (指導教員:近藤直 先生) 2017年4月~ 東京大学大学院 (指導教員:細井文樹 先生) 2019年4月~ 同 博士課程 (指導教員:細井文樹 先生) 学術振興会特別研究員(DC1) シンガポール国立大客員研究員 マッセー大学客員研究員 シンガポール科学技術庁客員研究員 など 2020年8月 スキャン・エックス株式会社 インターンシップ ⇒ リードデータサイエンティスト 2023年10月 ImVisionLabs 株式会社 創業 自己紹介:板倉健太 2  出身:大阪

Slide 3

Slide 3 text

3次元点群とは? 3  多数の点の集まりで対象の形状や色情報を表現する

Slide 4

Slide 4 text

上空から取得した樹木の解析について 4

Slide 5

Slide 5 text

上空から取得した樹木の解析について 5  より広範囲のデータの解析が可能  UAVレーザー測量により森林を計測し、樹木解析を実行 ※東京都より公開されている 東京都デジタルツイン実現プロジェクトの データを利用しています

Slide 6

Slide 6 text

3次元データの利活用の広まり 6  出来形管理:構造物が設計通りに作られているかどうかを3次元データを利用して効率化 図出展 :建設ITガイドモバイル端末で点群計測を手軽に簡単に実現 http://it.kensetsu-plaza.com/cad/pickup/cad/8149 図出展 : Optim GeoScan https://www.optim.co.jp/construction/optim-geo-scan/  国交省の出来形管理要領に準拠したアプリも複数存在する

Slide 7

Slide 7 text

3次元データの利活用の広まり 7  自動運転のための高精度マップ: 図出展 高精度3次元地図データ(HDマップ) https://www.dynamic-maps.co.jp/service/hdmap/index.html 区画線や道路標識など現実世界に存在する地物のデータを参照することで 自己位置推定の精度向上などをサポート

Slide 8

Slide 8 text

3次元データの利活用の広まり 8  考古学:遺跡の探索や記録に利用される 図出展 大阪大学考古学研究室:3次元形状データの統合 https://www.let.osaka-u.ac.jp/kouko/2007/syofukuziCDVer1.0/3d/3d_research.html • 互いの空間的な位置関係を確かめるといったことも可能 • 航空機から3次元データを取得することで、マヤ文明の遺跡400ヶ所を発見した例 Inomata, T., Triadan, D., Vázquez López, V. A., Fernandez-Diaz, J. C., Omori, T., Méndez Bauer, M. B., ... & Nasu, H. (2020). Monumental architecture at Aguada Fénix and the rise of Maya civilization. Nature, 582(7813), 530-533.

Slide 9

Slide 9 text

3次元データについて 9  3次元を表すデータの形式は複数存在するが、その中でも3次元点群が有名  近年は、iPhoneやiPadにも3次元点群データを取得できるLiDARセンサーが搭載され、 私たちも気軽に3次元計測ができるようになってきた  本講演では、1) 3次元点群データやその取得方法について、2) これまでの取得方法とは異な る新たな3次元データの生成方法であるNeRFについて紹介します 画像出典: KDDIトビラ 「iPhone 12 Pro / Pro Maxに搭載の『LiDARスキャナ』とは?その仕組みや機能について解説」 https://time-space.kddi.com/ict-keywords/20201204/3020

Slide 10

Slide 10 text

3次元点群とは? 10 バックパック型スキャナー iPhone12 LiDAR  点の群れによって、3Dの情報を表現するもの(図[a])  XYZ座標を持つ点(例:エクセルの1行)が大量にあるイメージ (図[b])  1つ1つの点を集めてみると対象の形状が復元される(図[c]) 点群のデータ形式のイメージ 点が集まると対象の形状になる 点群の例 [動画]

Slide 11

Slide 11 text

3次元点群の取得方法について 11 • レーザービームを打つ方法では,LiDAR (Light Detection and Ranging) と呼ばれる装置がよく用いられる 16 beams θ 10 Hz 10 Hz [b] 横から見た図 [c] 上から見た図 Pan et al, Eco-Engineering., 29(1), 17-22, 2016 http://velodynelidar.com/vlp-16.html [a] 1)の方法の装置の例 • 図 [d] のように対象にレーザービームを照射し,反射して 返ってくるまでの時間を利用して対象までの距離を計測 動画出展:Lidar 101 from Velodyne Lidar https://www.youtube.com/watch?v=NZKvf1cXe8s&t=58s [動画]  有名なものでは,1) レーザービームを打つ方法,2) 写真から3D復元する方法がある

Slide 12

Slide 12 text

3次元点群の取得方法について  写真測量(Structure from Motion): 画像を多くの角度から撮影し, それらの画像をつなぎ合わせることで 3D点群を構築できる [c] [d] [e] [a] [b] [動画] 図出展 [a]: Photogrammetry: 3D Scanning with a camera https://wikifactory.com/+bitfab/stories/photogrammetry-3d-scanning-with-a-camera

Slide 13

Slide 13 text

3次元点群の表現について 13  各点に単一の色情報が与えられるため、見る方向からの色の違いは反映されない  赤枠の箇所は同一の場所:別の角度から見ると異なる見え方をする NeRFと呼ばれる手法を利用することで、角度に応じた見え方を再現することができる

Slide 14

Slide 14 text

NeRFについて (Mildenhall et al., ECCV, 2020) 14  好きな方向から対象を見た時にどのような見え方をするかを推定することができる (novel view synthesis)  (ある程度は)カメラで撮影していない方向から見ることも可能  ナイフの反射の度合いなどが見る角度によって異なって見える

Slide 15

Slide 15 text

NeRFについて (Mildenhall et al., ECCV, 2020) 15  バスケットボールチームの動画でも使われているそうです https://twitter.com/LumaLabsAI/status/1720087485546655969

Slide 16

Slide 16 text

NeRFについて (Mildenhall et al., ECCV, 2020) 16  注意点 • 本発表では、Mildenhall et al. (2020) の方法に基づいて説明をします。後続研究にて別の方 法が利用されていたり、品質が向上している可能性があります。 • 本手法では、撮影した範囲について3次元化します。物体の裏側などの撮影していない部分を 画像生成のような方法で補間はしません

Slide 17

Slide 17 text

NeRFの実行方法 17  手軽な方法: iPhoneで利用できるアプリ(LumaAI・Luma Flythroughts)  NeRFの訓練や推論のために、nerfstudioというツールも便利 ※現在はバージョンアップに伴い、別の手法が使われている場合もあるため注意が必要です

Slide 18

Slide 18 text

NeRFを実行するまでの大まかな流れ カメラの位置と向きを推定(SfM) 対象の画像(動画)を撮影 (カメラの内部パラメータの推定) 撮影する対象を選択 図出典:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 光線上の点の色と密度を計算 訓練:予測したピクセルの色と実 際の値の差分を計算 訓練:ニューラルネットワークの 重みを更新 推論:任意のカメラの位置を指定し、 その画像を生成

Slide 19

Slide 19 text

NeRFの処理の概要 19  対象の点をある方向から見たときの色と密度(点の存在度合い)を推定  仮想的なカメラの中心と各ピクセルを結ぶ線上の各点に対して推定  対象の点と見る方向を入力をして学習・推論を行う 図出典:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

Slide 20

Slide 20 text

NeRFの前準備について:NeRFを実行する前 カメラの位置と向きを推定(SfM) 対象の画像(動画)を撮影 (カメラの内部パラメータの推定) 撮影する対象を選択 図出典:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 光線上の点の色と密度を計算 訓練:予測したピクセルの色と実 際の値の差分を計算 訓練:ニューラルネットワークの 重みを更新 推論:任意のカメラの位置を指定し、 その画像を生成

Slide 21

Slide 21 text

NeRFの前準備: 内部パラメータの推定 21  焦点距離やレンズの歪みなど、カメラの特性に関する値を計算する  白黒のボード(チェッカーボード)やタグ(AprilTag)を利用することができる  角の点の座標を利用して、内部パラメータの行列を計算する

Slide 22

Slide 22 text

NeRFの前準備: 内部パラメータの推定 22  角の点は画像処理により自動的に検出が可能  右の行列を求める(fは焦点距離、cは光学的中心、sはせん断の係数)

Slide 23

Slide 23 text

NeRFの前準備: 外部パラメータの推定 23  カメラがどの位置で、どの方向を向いているかを示す  NeRFとは別の、Structure from Motion (SfM) と呼ばれる方法を利用する

Slide 24

Slide 24 text

NeRFの前準備: 外部パラメータの推定 24  カメラの位置や向きを推定するためには、各画像間の対応関係を知ることが重要  以下の画像ペアの中で対応点を見ることで、カメラの相対的な位置関係を推定可能

Slide 25

Slide 25 text

NeRFの前準備: 外部パラメータの推定 25  対応点を知るために、第一に画像の中で特徴的な点(特徴点)を計算する  SURFやSHIFTといったアルゴリズムが有名:特徴点は高次元のベクトル(特徴量)で記述される

Slide 26

Slide 26 text

NeRFの前準備: 外部パラメータの推定 26  画像間である点どうしが対応しているかを知るためのシンプルな方法として、 特徴量ベクトルの差分(例:ユークリッド距離)を計算することが考えられる  特徴量ベクトルの差分が小さいと、それらの点が対応点である可能性が高い 画像出典: ディジタル画像処理 Kindle版 11章

Slide 27

Slide 27 text

NeRFの前準備: 外部パラメータの推定 27  以下の画像は、異なる視点から取得された画像の特徴点同士をマッチングしたときの例  対応点を探索するために、RANSACと呼ばれるアルゴリズムが利用される場合が多い

Slide 28

Slide 28 text

NeRFの前準備: 外部パラメータの推定 28  1つの固定されたカメラに対して、もう1つのカメラの相対的な位置は、回転行列Rと平行移動の ベクトル t で表すことができる  対応点のペアを得ると、2つのカメラに対する式を得ることができる 画像出典: ディジタル画像処理 Kindle版 14章

Slide 29

Slide 29 text

NeRFの前準備: 外部パラメータの推定 29  未知数: 1) 特徴点の位置XYZ→3つ 2) 2つのカメラの位置関係を回転行列で表したときのパラメータ →XYZ軸に対する回転で3つ 3) 2つのカメラの関係を表すための平行移動のパラメータ→XYZ方向で3つ 4)原理上、スケール(縮尺)に関する値が定まらない→パラメータ数が1つ減る →特徴点の数ごとに3つの未知数が増え、そのカメラの位置関係に関して5つの未知数 画像出典: ディジタル画像処理 Kindle版 14章

Slide 30

Slide 30 text

NeRFの前準備: 外部パラメータの推定 30  1つの対応点のペアを得た場合 ・2つのカメラに対してそれぞれXYに関する2つの式の合計4式が得られる ・特徴点の位置XYZの3つの未知数が増える 画像出典: ディジタル画像処理 Kindle版 14章 → n個の特徴点のペアを得た場合、未知数は3n+5個で、式は4n個 → 3n+5≦4n つまり n≧5であれば解が求まる(5点アルゴリズム) (参考)エピポーラ幾何による拘束条件を与え、別の解き方ができる ・8点アルゴリズム

Slide 31

Slide 31 text

NeRFの前準備について:NeRFを実行する前 カメラの位置と向きを推定(SfM) 対象の画像(動画)を撮影 (カメラの内部パラメータの推定) 撮影する対象を選択 図出典:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 光線上の点の色と密度を計算 訓練:予測したピクセルの色と実 際の値の差分を計算 訓練:ニューラルネットワークの 重みを更新 推論:任意のカメラの位置を指定し、 その画像を生成

Slide 32

Slide 32 text

NeRFの前準備について:NeRFを実行する前 カメラの位置と向きを推定(SfM) 対象の画像(動画)を撮影 (カメラの内部パラメータの推定) 撮影する対象を選択 図出典:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 光線上の点の色と密度を計算 訓練:予測したピクセルの色と実 際の値の差分を計算 訓練:ニューラルネットワークの 重みを更新 推論:任意のカメラの位置を指定し、 その画像を生成

Slide 33

Slide 33 text

NeRFの処理の概要(再掲) 33  対象の点をある方向から見たときの色と密度(点の存在度合い)を推定  仮想的なカメラの中心と各ピクセルを結ぶ線上の各点に対して推定  対象の点と見る方向を入力をして学習・推論を行う 図出典:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

Slide 34

Slide 34 text

NeRFの処理の概要 34  カメラの位置と方向を定めて、その光線上の各点に対する色と密度を計算  その光線ごとに色を決定し、その計算を光線すべてに対して繰り返す  推論する点の区間(奥行き)をあらかじめ決めておく

Slide 35

Slide 35 text

NeRFの処理の概要 35  カメラから一定間隔で点をサンプリングし、その点XYZに対する色と密度σを求める  以下の図の赤線の上のそれぞれの点に対して、色と密度σを求める。カメラに近いほうから密 度を足し合わせていき、一定の値に到達すれば終了する

Slide 36

Slide 36 text

NeRFのモデルの概要: 損失関数について 36  訓練の際はカメラの画素をランダムに抽出し、それらの画素に対して推論を行う  Hierarchical volume samplingを利用して、N個の等間隔に設置された点に対して、coarseネッ トワークにて計算を行い、さらに、式(5)で定められる重みによって定められる分布から生ずる点 に対して、fineネットワークにて計算を行う。 画像出典:【論文読解】NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections (https://qiita.com/takoroy/items/53e62d303b9743b06801)

Slide 37

Slide 37 text

NeRFのモデルの概要: 損失関数について 37  以下の式(6)のように、色情報で損失を求める。coarseとfineの両方の出力に対して損失を求める。

Slide 38

Slide 38 text

NeRFのモデルの概要: 入力する値について 38  対象点のXYZ座標(赤枠)とその点を見る時の方向(青枠)の2つの入力  全結合層やReLU層などで構成されている

Slide 39

Slide 39 text

NeRFのモデルの概要: 出力する値について 39  対象の点をその方向から見たときの色と密度(点の存在度合い)を推定  実際は、同様の構造のネットワーク(fine, coarse)を2つ利用する

Slide 40

Slide 40 text

NeRFのモデルの概要: 出力する値について 40  色や反射は見る方向によって異なるがその点の密度(存在度合い)はどこから見ても同じ  ネットワーク構造に反映させる • 色は点の座標と見る方向の入力の両方を利用して出力 • 密度は座標のみを考慮して出力 密度 (点の存在度合い) 色情報 対象の点の座標 見る方向

Slide 41

Slide 41 text

NeRFのモデルの概要: 訓練パラメーターについて 41  訓練時に各ミニバッチとして利用する光線の数: 4096本 ・推論時は画像のピクセルごとにスキャンしていくイメージ。そのため、訓練の際は各画像から 限られた数の光線が利用される一方で、推論の際は、カメラの画素分だけ光線が利用される。 ・例えば、画像分類では、画像を32枚ごとに取り出して、それをミニバッチとするが、今回はこ の光線の数がミニバッチに相当する  レンダリングの際の、光線方向にサンプリングする点の数はcoarseネットワークでは64個、fine ネットワークでは128個である  オプティマイザーはAdamを利用した  100–300kの反復が必要であった ・NVIDIA V100 GPUで約1–2日かかった

Slide 42

Slide 42 text

NeRFのモデルの概要: 入力について 42  生のXYZ座標やその光の方向を入力しない  pは位置を表し、位置XYZの場合は、pは例えば (1, 2, 3)のようになる  Positional Encodingと呼ばれる方法で、より高次元に変換してからネットワークにて計算する  このような変換を施すことで、ネットワークの学習がやりやすくなる

Slide 43

Slide 43 text

NeRFのモデルの概要: 入力について 43  今回の手法(Complete Model)では対象をうまく再構成している  “No view dependence”では、ブルドーザーの反射特性がうまく再現できていない  “No Positional Encoding”は右側の部分がぼやけている

Slide 44

Slide 44 text

補足: NeRFを利用した3次元モデルの生成  直接的に深度は出力しないが、密度の情報などを利用して、3次元モデルを生成できる • NeRFの論文ではマーチングキューブ法と呼ばれる方法で点群を3次元モデル(メッシュ)化  任意の位置・角度からの見え方を求めるのではなく、3次元座標を持った物体(モデル)を出力

Slide 45

Slide 45 text

補足: NeRFを利用した3次元モデルの生成  以下の動画は、NeRFにより植物の3次元モデルを生成した時の例

Slide 46

Slide 46 text

補足: NeRFを利用した3次元モデルの生成  NeRFにより任意の視点のシーンを生成した結果(左)と3次元モデルに変換した結果(右)

Slide 47

Slide 47 text

補足: NeRFを利用した3次元モデルの生成  XYZ情報を持った3次元モデルに変換すると3次元点群と同様に処理が可能 • NeRFから3次元モデルを得る場合は、スケール情報(長さ)が定まらないため注意が必要  以下の動画は、NeRFにより生成した樹木を含む3次元モデルから樹木を検出した例 • それぞれの樹木が異なる色で塗られています

Slide 48

Slide 48 text

まとめ: 任意の視点からのシーン生成 NeRFでは、任意の角度から見たときの色や光沢をうまく表現することができる 3次元点群と比較し、より実際の見た目に近い3次元モデルを構築することが可能

Slide 49

Slide 49 text

まとめ: 任意の視点からのシーン生成  任意の視点からのシーンを作成できるため、 立ち入りできない場所から見たような映像も作成することも可能 外側から歩いた時の視点 内側から見たような視点  Unreal EngineなどのソフトウェアにNeRFの結果をインポートすることも可能

Slide 50

Slide 50 text

まとめ: 写真測量との比較の例  各手法を工夫・発展させることで、下表の制限をクリアできる場合も考えられます NeRF(本日紹介した内容) 写真測量 (SfM-MVS) レーザー測量(LiDAR) 色情報 取得可能 取得可能 画像と組み合わせることで 取得可能 角度に依存した 見え方の反映 任意の位置からの見え方を再 現可能 各点には単一の色のみが保 存される 各点には単一の色のみが保 存される 長さ マーカーなどを利用することで 与えられる マーカーや位置情報などを利 用することで与えられる 高精度に計測可能 面積・体積 マーカーなどを利用することで 計算可能 マーカーや位置情報などを利 用することで計算可能 計算可能 手軽さ スマートフォンなどで手軽に実 行可能 スマートフォンや専用のソフト ウェアなどで実行可能 業務用の機材が必要な場合 が多い 暗所での撮影 工夫が必要 工夫が必要 可能  計測や機材の条件などで下表の内容が変わることがあります

Slide 51

Slide 51 text

3D Gaussian Splattingとは 51  NeRFとは異なる自由視点画像生成の手法 Kerbl, B., Kopanas, G., Leimkühler, T., & Drettakis, G. (2023). 3d gaussian splatting for real-time radiance field rendering. ACM Transactions on Graphics (ToG), 42(4), 1-14.  NeRFの発展形の手法と比べても高速・高品質

Slide 52

Slide 52 text

(参考)NeRFと3D Gaussian Splattingの違いについて 2Dに投影 3Dガウスの 数や位置などを調整 実際のカメラ画像と の差分を求める 光線ごとに 対象の色を推定 実際のカメラ画像と の差分を求める ニューラルネット ワークの重みを更新 ニューラルネットワークを 用意 SfMでカメラの位置 と向きを推定 SfMでカメラの位置 と向きを推定 SfMの 特徴点を取り出し 3Dガウシアン カメラ画像 カメラ画像 繰り返し 繰り返し 3D Gaussian Splatting NeRF

Slide 53

Slide 53 text

NeRF(本日の内容) 3DGS(新しい方法) 補足 主な入力 カメラ画像 カメラ画像 NeRFと3DGSで共通 色情報 取得可能 取得可能 カメラの位置 SfM SfM 画像にする方法 αブレンディング αブレンディング SfMでの特徴点 利用しない 利用する* 利用しなくても計算自体は可能 3Dの空間を表す方法 ニューラルネットワーク 3Dガウス 3Dガウシアンはニューラルネット ワークを使わない レンダリングの方法 レイトレーシング* ラスタライズ レイマーチングと3DGSの論文で は記載されている 3Dモデルの取得方法 密度を利用 3Dガウスの位置を利用 1ピクセルごとの計算 する しない 3DGSは計算が速い (参考)NeRFと3D Gaussian Splattingの違いについて

Slide 54

Slide 54 text

補足:3Dガウシアンについて 54