『日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
物体の形状や環境(構造物や背景)の3次元情報をどのように表現するかは難しい問題である。基本的な問題に思えるが実際どのように表現するかを考えてみると難しい。
形状表現は少ない容量(パラメータ数)で表すことができ、衝突判定や法線計算など様々な処理が高速に行えるか、似た部品や形状を共通に扱えるかが問題となる。

現在広く使われている表現方法として、点群、メッシュ、ボクセル、陰関数表現などがある。これらについて簡単に紹介しよう。
点群は物体が存在する領域をその物体の表面や内部に属する点の集合で表した手法だ。この点群は任意の形状を表すことができるが複雑な形状を表そうと思うと点数を増やす必要があり、保存容量が大きくなる。
また衝突判定や法線推定などの処理も、その計算量はその点数に比例し大きくなってしまう問題がある。高速化のためのデータ構造、例えばKD木などを使って計算量を削減することもできるが最悪計算量を抑えることは困難であるし、実際にも計算量は大きい。
メッシュは物体の表面を三角形やn角系の集合で表現する。単純な形状であれば少ない数の三角形で近似できるた め、点群に比べてずっと少ないパラメータ数で形状を表現できる。また、様々な処理もメッシュ数に比例する計算量で実現でき、計算効率も高い。一方で複雑な図形を表現する場合はメッシュ数は急激に大きくなる。また与えられた形状に対して、それに対応するメッシュ表現に変換することは容易ではない。多くの場合、システムが出した候補解を人手で修正する必要がある。
ボクセルは立方体の集合で形状を表現する。異なるサイズの立法体を組み合わせることも多い。ボクセル表現では他の表現と比べて表面だけでなく物体内部など立体情報の情報を表せる利点がある。一方、ボクセルは容量は大きくなりがちであり、また複雑な形状を表そうと思った場合、多数の小さな立方体を利用する必要があり、容量や計算量が大きくなりやすい。
陰関数は関数を利用して物体を表現する。具体的には座標$u = (x,y,z)$を与えてそれが物体の表面であれば$0$、内部であれば負、外部であれば正を返すような関数$f(u;\theta)$を用いる(様々な変種が存在する)。この表現では物体の表面といった情報は明示的に表現されないため、物体表面上の点の座標を求めるにはやや複雑な計算が必要となる。一方で複雑な形状であってもうまく関数を選ぶことで少ない数のパラメータで表現できる。レンダリング時に任意の解像度を選択できることも特長である。
これらの形状表現において、ニューラルネットワークを使った手法が成功を収めている。ここではメッシュを生成するPolyGen1)、陰関数を使った物体の表現2)、またそれに輝度情報も加えて任意の視点からの写実的なシーンの復元を可能としたNeRF3)、そして基本的な図形の組み合わせで複雑な環境を復元できるBSP-Net4)を紹介しよう。
メッシュを生成するニューラルネットワーク
はじめに、メッシュを生成するニューラルネットワークであるPoyGen1)を紹介する。PolyGenは画像などを入力とし条件付けした上で、メッシュの生成モデルを定義し、メッシュをサンプリングすることができる。離散的な情報であるメッシュをはじめて高精度に生成できるようになったモデルである。
メッシュの生成モデルを考える場合、頂点数や面数が可変であるため、固定次元上で定義される確率モデル(例えばVAEやFlowベースモデル)が使えない。PolyGenは、これまで生成した頂点に条件付けして次の頂点を逐次的に生成する自己回帰モデルを利用する。各頂点を生成した後に、そこで生成を止めるかも確率的に決めることで可変数の頂点集合に対する生成分布を定義できる。
人手で設計したメッシュデータなどに基づいて、各頂点の生成の尤度を最大化するモデルを学習する。もともとのメッシュデータに生成順はないが、この研究では頂点はz軸順に従って頂点を順に生成する。
次にどの位置に頂点を生成するかは空間を量子化し、多項分布上の確率分布をモデル化し、そこからサンプリングすることで生成する。連続空間上で生成する場合は、ガウシアン分布が使われることが多いが、形状には対称性があり、次の頂点の生成分布は多峰性になりやすい(例えば右手を生成するか、左手を生成するか)。そのため連続分布上の生成分布ではなく、多峰性も含め分布の表現力の高い離散分布上の確率分布を利用する。
また過去に生成した頂点にどのように条件付けするのかが問題となる。ここでは自然言語処理で成功を収めているTransformer(自己注意機構)を利用し、過去に生成したどの頂点に注目した上で生成するかを決められるようにしている。Transformerは可変個の要素に条件づけできることに注意されたい。
このPolyGenは机や椅子などの形状に対応するメッシュデータを直接生成できる。既存のメッシュ生成手法に比べて、複雑な形状に対応できるだけでなく、既存手法でありがちだった非最適なメッシュ分割がみられることも少ない。また、2つの形状をなめらかに補間してモーフィングのように変形しながらそれぞれの場合のメッシュも生成できる。
陰関数による形状表現
次に陰関数を使った形状表現を紹介する。陰関数による表現では座標$u = (x, y,z)$を入力とし、その座標が物体の外部か表面か内部かを返す関数$f(u)$を利用して物体を表現する。より情報量の多い物体表面までの符号付き距離を返すSDF(signed distance function)も多く利用される。形状表面は$\{u | f(u) = 0\}$となる座標集合で表せる。
複雑な形状を表現しようと思うと、関数も高い表現力を持つ必要がある。そのため、高い表現力を持つニューラルネットワークを使った陰関数表現が期待されてきた。そして、この数年で、ニューラルネットワークを陰関数として使った形状表現はこれまでの関数では不可能だった複雑な形状も表現できることが分かってきた。
この形状を表現する陰関数を学習する際には、法線(陰関数の入力に対する勾配)のノルムの大きさを$1$とする正則化が有効であることが分かっている2)。この正則化によって人体など非常に複雑な形状も正確に表現できるようになる。
一方でニューラルネットワークは、可能な限り単純な関数を学習するという性質がある。この性質は一般の学習問題においては汎化として役立つが、複雑な関数を表現させようと思った場合、高周波成分、つまり物体形状が急激に変わるような場所を表現しにくい問題がある。
これに対し、Transformerなどで用いられている位置符号化を使うことで高周波成分も正確に表現できるようになる3)。位置符号化は位置情報を位置周波数成分毎の表現で表す手法であり、異なる周波数の三角関数を使って座標を変換する手法である。
形状だけでなく、視点方向に依存した輝度も返すようにすることで写実的な画像を生成することもできる3)。生成された画像はこれまでのニューラルネットワークを使った画像復元に比べて、現実と見極めがつかないぐらい写実的であり、DCGANやGQNに匹敵する大きなブレークスルーだと考えられる(図1)。ここでは省略するが、この手法ではその問題を解く過程で、深度推定や形状推定など多くの問題が教師なしで解けることを示している。
単純な形状の組み合わせで表すBSP-Net
これまで紹介してきた手法は、形状が組み合わせ可能だという性質を利用していない。実際、世の中にみられる多くの形状は単純な形状や既存の形状の組み合わせである。このような単純な形状の組み合わせであることをうまく表現できると、その上で学習した手法が汎化しやすくなる。
BSP-Net4)は単純な形状の組合せで形状表現することを学習で獲得する。単純な形状自体は陰関数表現を使う。
BSP-Netは3層から成る。1層目は空間を分割する平面を生成する。平面であれば直線($ax + by + c = 0$)、空間であれば平面($ax + by + cz + d = 0$)を表現するパラメータ$(a, b, c)$または$(a,b, c, d)$を生成する。この関数の値が負であるような座標の集合が物体内部である。2層目は生成された平面のANDをとった凸領域を学習する。複数の領域のAND領域はmaxで表現される。陰関数表現では負の値を持つ領域は物体内部であり、2つの関数が同時に負である領域は、この2つの関数それぞれが表す領域のAND領域を意味する。複数の領域のANDをとった場合の結果は凸形状を表すことができる。3層目ではこの凸形状のORを扱う。これは先程の逆でmin操作で扱える。最終的にはmax,minを使うが、学習時にはこれらの操作では勾配が消失してしまうので、それぞれ勾配が消失しない表現を使って学習する。このようにして学習されたネットワークは陰関数表現で形状を表現するが、1層目、2層目は単純な形状に対応するような帰納バイアスを与えている。
BSP-Netでは、陰関数表現や他手法に比べて少ないパラメータ数で表現できるだけでなく、共通した部分的な形状を持つ場合も同じ表現で表すことができる。
形状表現の可能性
これら形状は画像や他の情報を基に条件付き生成することもできる。例えばNeRF3)は複数の視点付き画像から環境の3次元情報を精緻に復元することができる。車載カメラやGPS情報付き画像などから都市や地域全体といった大規模の形状をニューラルネットワークで表現することも将来的には可能だろう。今後、ロボットの軌道生成時の衝突回避や、レイトレーシングCG、モデリングなど様々な分野で利用が進むと考えられる。
2)A. Gropp et al.,“Implicit Geometric Regularization for Learning Shapes,” https://arxiv.org/abs/2002.10099
3)B. Mildenhall et al.,“NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis,” https://arxiv.org/abs/2003.08934
4)Z. Chen et al.,“BSP-Net: Generating Compact Meshes via Binary Space Partitioning,” https://arxiv.org/abs/1911.06971
Preferred Networks 代表取締役副社長
