Deep Fluids:流体シミュレーションをディープラーニングで近似する

チューリッヒ工科大学(ETH Zurich)、ミュンヘン工科大学、Pixarによるディープラーニングで流体シミュレーションを近似する研究 Deep Fluids: A Generative Network for Parameterized Fluid Simulationsプロジェクトページソースコードが公開されている。

Deep Fluids

本研究では、削減済みのパラメータセットから流体シミュレーションを合成する新しい生成モデルを提案します。畳み込みニューラルネットワークを離散パラメータ化した流体シミュレーションの速度場(velocity fields)で訓練しました。

訓練データの代表的な特徴を学習するディープラーニングアーキテクチャの特性により、本研究の生成モデルは訓練データセットを正確に近似しつつ、中間値をもっともらしく補間することができます。この生成モデルは、全ての時刻で速度場(velocity fields)の無発散(divergence-free)を保証する新しい損失関数を導入することで流体に最適化されています。

本研究ではさらに、複雑なパラメータを削減した空間で扱えること、潜在空間(latent space)で第2のネットワークと統合することでシミュレーションをリアルタイムに実現できることを示します。
本手法では流体の多種多様な挙動をモデル化しているため、高速なシミュレーション構築、異なるパラメータを持つ流体の補間、タイムリサンプリング、潜在空間(latent space)シミュレーション、シミュレーションデータの圧縮などに応用できます。

本手法による速度場の再構築は、同データをCPUで再シミュレーションするよりも最大で700倍高速に生成でき、圧縮率は最大1300倍となります。


スポンサーリンク

5月に開催されるEurographics 2019で発表されるそうです。


スポンサーリンク


ETH Zurichといえば、数年前にRegression Forestベースの流体シミュレーション近似手法Pysics Forestsを発表していましたね↓
機械学習で流体シミュレーションを近似する『Physics Forests』
CG分野(特にレンダリング)では、現実の物体・現象の性質をモデル化して扱う。計算リソースには限りがあるので、大抵の場合は視覚に大きく影響する要素だけをモデル化して関数などで表現する。実測値や物理法則に基づいた計算を行う「物理モデル」に対...


機械学習による流体シミュレーション近似を突き詰めていくと、やっぱりニューラルネットワークに行き着くということなのだろうか。

GitHubで公開されているDeep Fluidsのソースコードを見ると、TensorFlowベースで実装されているようだ↓
https://github.com/byungsook/deep-fluids

mantaflowという流体シミュレーションのフレームワークを使って訓練用のデータセットを用意するんですね↓

mantaflow

mantaflowは、コンピューターグラフィックスでの流体シミュレーションの研究を対象としたオープンソースのフレームワークです。
並列化されたC++のsolverコア、pythonシーン定義のインターフェイス、プラグインシステムにより、新しいアルゴリズムの迅速なプロトタイピング・テストが可能です。mantaflowには広範囲のNavier-Storkes solverの変種が含まれています。
mantaflowはとても用途が広く、ディープラーニングのフレームワーク(例:numpyを介してTensorFlow)と連携してインポート/エクスポートを可能な他、matlabのプラグインとしてスタンドアローンにコンパイルすることもできます。
最新版のダウンロードはこちら

Physics Forestsで著者の1人にDisney Research所属の人がいたように、Deep Fluidsの著者の中にはPixar所属の人がいますね。

CGで一昔前は物理ベースと言われていたジャンルが、演算コストが頭打ちになってだんだんナレッジ(知識)ベースへと移ってきているということだろうか。
大きな目で見ると、現象をデフォルメして軽い処理で近似していた時代に戻っているような気もする。

多次元パラメータを扱う関数の多いCG分野はディープラーニング(というかニューラルネットワーク)に向いてるのかもな。
畳み込みって、テクスチャマッピングやShading処理そのものだし、GPUとの相性も良い。
https://shiropen.com/seamless/deep-fluids

NVIDIAがGPGPUと言い始めたころ、その使用例は流体計算が多かった気がするけど、時代を経て手を変え品を変え、結局GPUで流体計算しているのも何だか不思議。


スポンサーリンク

関連記事

無料で使える人体3DCG作成ツール
Open Shading Language (OSL)
BlenderProc:Blenderで機械学習用の画像データを生成するPythonツール
トランスフォーマーロストエイジのメイキング
SIGGRAPH論文へのリンクサイト
参考書
ZBrushで仮面ライダー3号を造る 仮面編 Clay Polish
iOSデバイスと接続して連携するガジェットの開発方法
CNN Explainer:畳み込みニューラルネットワーク可視化ツール
MRenderUtil::raytrace
SVM (Support Vector Machine)
オープンソースのStructure from Motionライブラリ『Theia』
Two Minute Papers:先端研究を短時間で紹介するYouTubeチャンネル
オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...
中学3年生が制作した短編映像作品『2045』
After Effects全エフェクトの解説(6.5)
Googleが画像解析旅行ガイドアプリのJetpac社を買収
ラクガキの立体化 背中の作り込み・手首の移植
書籍『イラストで学ぶ ディープラーニング』
顔追跡による擬似3D表示『Dynamic Perspective』
ブラウザ操作自動化ツール『Selenium』を試す
OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる
Vancouver Film Schoolのデモリール
色んな三面図があるサイト
HerokuでMEAN stack
Mean Stack開発の最初の一歩
2012のメイキングまとめ(途中)
オープンソースのStructure from Motionツール『Regard3D』
人間の顔をそっくりそのままCGで復元する『Digital Emily Project』
Mayaのポリゴン分割ツールの進化
FreeMoCap Project:オープンソースのマーカーレスモーションキャプチャ
頭蓋骨からの顔復元と進化過程の可視化
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
Seleniumを使ったFXや株の自動取引
MVStudio:オープンソースのPhotogrammetryツール
ZBrushでアヴァン・ガメラを作ってみる 歯茎を別パーツへ分割
ZBrushCoreのTransposeとGizmo 3D
天体写真の3D動画
Ambient Occlusionを解析的に求める
ディープラーニングに対応したPythonの機械学習ライブラリ『Pylearn2』
チャットツール用bot開発フレームワーク『Hubot』
『パシフィック・リム: アップライジング』のVFXブレイクダウン まとめ

コメント