画像から、好みのメッシュの3Dモデルを作成する -Neural 3D Mesh Renderer-
Neural 3D Mesh Renderer
2017
Overview
絵を描くのは得意、という方でも3Dモデルを作成したことがある方は少ないのではないでしょうか。一方、近年UnityやAppleのARKitなど、3Dモデルの活用の場はますます広がっています。このギャップを埋めるのに、ニューラルネットワークが一役かってくれるかもしれません。
Abstract
For modeling the 3D world behind 2D images, which 3D representation is most appropriate? A polygon mesh is a promising candidate for its compactness and geometric properties. However, it is not straightforward to model a polygon mesh from 2D images using neural networks because the conversion from a mesh to an image, or rendering, involves a discrete operation called rasterization, which prevents back-propagation. Therefore, in this work, we propose an approximate gradient for rasterization that enables the integration of rendering into neural networks. Using this renderer, we perform single-image 3D mesh reconstruction with silhouette image supervision and our system outperforms the existing voxel-based approach. Additionally, we perform gradient-based 3D mesh editing operations, such as 2D-to-3D style transfer and 3D DeepDream, with 2D supervision for the first time. These applications demonstrate the potential of the integration of a mesh renderer into neural networks and the effectiveness of our proposed renderer.
Motivation
“Neural 3D Mesh Renderer“は、二次元の画像から3Dのメッシュモデルの作成を可能にします。それだけでなく、Googleが公開し話題になったStyle Transferのように好みの画像を使いメッシュのスタイルをコントロールできます。
Architecture
この研究では、二次元の画像を元に3Dモデルを作成し、作成したモデルのシルエットを本物シルエットと比較することで学習を行っています。
ただ、この過程において一つ問題になるところがあります。それが上図の「シルエットを生成」というプロセスです。3Dモデルから2D画像(シルエット)を生成するにはラスタライズという手法が用いられます。このラスタライズとは、3Dを構成する頂点と面の情報を元に、ピクセルを描画する処理です。
ニューラルネットワークは誤差(この場合生成したシルエットと本物のシルエットの間の差異)を伝搬していくことで学習しますが、このラスタライズの処理は変化量を後ろに伝えることができません。その理由を見てみましょう。以下の図は、頂点の位置が変化することでポイントPのピクセルの色がどう変化するかを表したものです。
頂点がある位置まで移動すると、ポイントPのピクセルの色は一気に失われます。このような直角な変化は勾配が0になってしまうため、後ろのプロセスに変化量が伝わらなくなってしまいます。そこで、こちらの研究では線形補間を行うことで、急な変化がなだらかに起こったことにしています。
もちろん、変化は色がつく場合となくなる場合の2種類があります。これは符号のパラメーターで制御し、ちょうど切り替わる頂点では変化量が0になるようにしています。この定義により、ラスタライズの処理を行っても逆伝搬の際に変化量が失われることなく、学習を行うことができます。
メッシュのスタイル転移については、メッシュ内の頂点を維持しつつ、与えられた画像のスタイル(特徴マップ)に近づけるという形で転移を行っています。
Further Thoughts
こうした研究が発展していけば、イラストを書いてすぐにゲームキャラとして動かしたり、今までにないテクスチャーをつけたりすることができるようになるかもしれません。