人工知能の力を借り、3Dモデルを共作する – Interactive 3D Modeling with a Generative Adversarial Network –
Interactive 3D Modeling with a Generative Adversarial Network
2017
Overview
人工知能が人の仕事を奪う・・・という言説はよく目にしますが、人工知能は逆にあなたの仕事の可能性を拡げてくれるかもしれません。
Abstract
This paper proposes the idea of using a generative adversarial network (GAN) to assist a novice user in designing real-world shapes with a simple interface. The user edits a voxel grid with a painting interface (like Minecraft). Yet, at any time, he/she can execute a SNAP command, which projects the current voxel grid onto a latent shape manifold with a learned projection operator and then generates a similar, but more realistic, shape using a learned generator network. Then the user can edit the resulting shape and snap again until he/she is satisfied with the result. The main advantage of this approach is that the projection and generation operators assist novice users to create 3D models characteristic of a background distribution of object shapes, but without having to specify all the details. The core new research idea is to use a GAN to support this application. 3D GANs have previously been used for shape generation, interpolation, and completion, but never for interactive modeling. The new challenge for this application is to learn a projection operator that takes an arbitrary 3D voxel model and produces a latent vector on the shape manifold from which a similar and realistic shape can be generated. We develop algorithms for this and other steps of the SNAP processing pipeline and integrate them into a simple modeling tool. Experiments with these algorithms and tool suggest that GANs provide a promising approach to computer-assisted interactive modeling.
Motivation
今回紹介する論文”Interactive 3D Modeling with a Generative Adversarial Network”では、画像の生成を行う手法であるGenerative Adversarial Network(GAN)を利用し、3Dモデル作成者の仕事をサポートすることを試みています。
具体的には、以下のような流れになります。
最初に簡単な3Dモデルを入力します。その後に「SNAP」というコマンドを実行すると、入力された3Dモデルを基により”本物っぽい”モデルへ編集します。その後さらにユーザーが編集して「SNAP」を実行し・・・と繰り返していくことで、より高度な3Dモデルを構築できるようにサポートします。これによって、たとえ3Dモデリング初心者であってもより高精度なモデリングが可能になるということです。
Architecture
本論文では、SNAPでアシストを行った際により本物に近くなるような工夫を行っています。というのも、単にユーザーの入力を基にGANで生成を行っても、まっとうな形状になることは少ないためです。ユーザーの入力が本物に近ければ上手くいくことは多くなりますが、それではサポートという観点からすると本末転倒です。
そこで本論文がとっているのが、ユーザーの入力を「本物に近くなるような」潜在空間に射影するプロセス(関数P(X))を挟んでいる点です。これによって、良好な結果にならないような領域(下図の黄色の領域)を避けて、本物に近いモデルが生成できる空間(下図の赤色の領域)からスタートできるようにしています。
3Dオブジェクト用のGANは”Learning a Probabilistic Latent Space of Object Shapes via 3D Generative-Adversarial Modeling“をベースとしており、データセットはShapeNetをベースにModelNet40、SHREC 2014などから追加を行っているそうです。この辺りは、3Dのデータを使って生成などを行いたい方にはかなり参考なる内容になっていると思います。
Results
実際のアプリケーションは、Voxel Builderというオープンソースをベースにしてそこに組み込んでいます。こちらはマインクラフト的なブロックを積み上げる3Dモデリングが行えるソフトウェアとなっています。
最近は深層学習の研究もオープンソースがベースで行われることが多いので、このようなオープンソースのプラットフォーム上で既存のソフトウェアと研究がミックスされていくような事例は今後も増えていくのではないかと思います。
Further Thoughts
著者らは、本研究をまだ小さな一歩としています。今後研究が進展してくれば、より高度なサポートを受けることも可能になってくると思います。それはきっと、よりゲームやハードウェア制作の間口を広げ、あなたのアイデアを形にするのを助けてくれると思います。