新手法「球面CNN」。3D形状の変形が理解できる可能性

CNNは特に画像データに扱われるAI(深層学習モデル)ですが、最近では他にも映像データや時系列データ、グラフ構造など幅広いデータに対して用いられています。
今回は新しく「3次元形状」に適用可能なCNNが提案されました。

本日扱う論文

目次
(1) 身近な3D形状データ
(2) 球面CNN
1.データ処理の流れ
2.結果
(3)まとめ

(1) 身近な3D形状データ

今回紹介するのは「3次元形状」に適用可能なAIです。具体的なタスクとして論文中では3Dデータの分類を例にしています。

https://www.shapenet.org/

3Dデータと聞いた時、上図のようなゲームやシミュレータで用いられるようなデータをイメージしがちですが、よく考えてみるとこのようなデータはもともと名前がついているので分類する必要はありません。今回真に扱いたい3Dデータとして以下のようなものを想定すると良いでしょう。(※1)

まず例としてあげられるのが、Google Map内3D地図です。

空撮技術の発達のおかげで構造物の3D情報を自動的に収集できるようになり、結果的に、何の建物なのかあるいは木なのかといったラベル付けがされていない情報が大量に作られるようになりました。

この3D地図をもとに地震の影響をシミュレーションしようとした場合、それぞれの構造物が何なのかや、一概にビルと言ってもどのタイプの形のビルなのか、などといった情報を3D形状から細かく把握できることが求められるかもしれません。

https://www.google.co.jp/maps/

もう一つの例として、スマートフォンを使った3Dスキャンが上げられます。近年のVR,AR技術の発達を受けて、3Dデザイナーの専門家ではなくても3Dモデルが簡単に作れるよう、スキャンによるモデリングができるようになってきています。この手法で作られるデータは品質が保証されていないので、質の高い3Dデータか、他のモノも一緒に写ってしまっていないか、など識別した上で使う必要が出てくるかもしれません。

このように近年3D形状データが扱われる場面が広がっており、そのデータの数は急速に増えています。そして今、その形情報をうまく扱い、形情報から重要な特徴量を見つけ出すような手法が求められはじめています。

(2) 球面CNN

3Dデータを扱うことの難しさは、「様々な方向から観察する必要がある」こと、「全体的な形が重要なこともあれば細かい形が重要なこともある」こと、「回転しても同じものは同じだと見極める必要がある(回転不変性を保つ)」ということがあげられます。

「様々な方向から観察する必要がある」についてですが、複雑な形状の場合は多方向から見ても隠れて見えない部分があるかもしれませんし、全体を観察できたとしても扱うデータ量が必要以上に多くなってしまいます。また違うスケールの特徴を見つけることと回転不変性を保つことについては有効な手法がこれまでほとんどありませんでした。

論文の提案手法「球面CNN」は、これらの課題を克服するようなモデルとなっています。

1. データ処理の流れ

球面CNNはその流れが通常の画像に使うCNNにかなり似ています。

一番異なる点は、はじめに3D形状を球面に変換するところです。先行研究によると、3D形状から球面に変換できる関数があり、別の関数を使うと球面から3D形状に復元できるというような便利な関数のペアがあるそうです(※2)。これを主に使って3Dを球面にした後、通常のCNNと同じように、局所的な部分に注目して特徴を抽出したり(畳み込み)、近くの特徴同士で平均を取って特徴量の数を減らしたり(プーリング)することを繰り返すことによって、最終的にもとの3D形状が何なのかを予測します。

通常のCNNと同じように、1回だけの畳み込み計算で局所的な特徴(短い線や細かい陰影など)を抽出することができ、複数回畳み込みを繰り返すことで、だんだん大域的な特徴(例えば指、爪などが考えられます)を抽出できます。つまり、様々なスケールの特徴を得ることができるのです。

また、プーリングを繰り返して特徴量を減らしていくことで、元々どの場所にどのような特徴量があったかという情報は最終的に捨てられ、結果的に3Dデータが回転しても同じものは同じと見なせる(回転不変性を保つ)ようになっています。

このようにして球面CNNはこれまでの3Dデータを扱う上での課題をうまく克服できました。

2. 結果

上図は「手」や「メガネ」など、形が定まっていないものを分類するタスクを行った様子です。非常にうまく分類することができていることがわかります。

ここで興味深いのは、例えばメガネに注目してみて下さい。上を向いているメガネと奥を向いている眼鏡とでは、その形情報を構成する生のデータ(頂点の位置等)は全く異なっているはずです。というのも上を向いている眼鏡では、3Dモデルの中心から上の方にその構造の大部分があり、奥を向いているメガネは、3Dモデルの中心から奥に向かった方向にその大部分があります。このように元々の生のデータをひと目見ただけでは全く違うはずの形を、球面CNNは正しく似ているものと認識できています。これは、球面CNNが3Dモデルの表面的な形だけではなく、その可動部分や変形のありかたを暗黙のうちに理解しているためということができるでしょう。

(3) まとめ

新手法「球面CNN」とその可能性について紹介しました。3D形状をうまく扱うことへのニーズはこれからさらに高まり、より複雑なタスク遂行が求められるようになるでしょう。

少し最後に触れましたが、3D形状の変形を画像に変換せず3Dのまま理解するというのは、家庭用ロボットなどに必要な能力でもあります。球面CNNのような3D形状を扱うAIは実に幅広い分野での応用が期待されているのです。

※1) 論文中にはgoogle mapやスキャンした3Dデータなどの例は上げられていませんでしたがライターなりに考えました。
ただ誤解しないでいただきたいのは、名前がわかっている3Dデータに対してCNNを用いることにも大きな意味があります。

※2) 論文では種数0に限っています。


AIメディアライターを大募集中!

ライターとして早速働きたいライター希望で、まずは相談したいライターではなく、メディアディレクターをやりたいその他