CGのためのディープラーニング

もう半年前のことですが、昨年12月に東京国際フォーラムで開催されたSiggraph Asia 2018 Tokyoで聴講したCourse CreativeAI:Deep Learning for Graphicsの復習を(今頃)しておこうかと。
「CGのためのディープラーニング」とか「CGに使えるディープラーニング」という趣旨でしょうか。
途中休憩を挟んだとはいえ、3時間を超えるセッションは結構しんどくもあり、すぐに咀嚼できなかったのである。

幸い、Courseの資料はWebで公開されている↓

CreativeAI:Deep Learning for Graphics

CreativeAI

近年、古くからコンピューターグラフィックス分野で課題とされてきたことの多くが、データドリブンな手法 ディープラーニングの登場によって上手く扱えるようになってきた。deep networkは様々な課題設定で利用され、従来のハンドクラフトな手法に圧倒的な差をつけてstate-of-the-artを達成している。
本チュートリアルでは、ディープラーニングの理論、実践、そしてグラフィックス分野へ応用事例を解説する。

いつのまにやらページが更新されていた。このCourseはSiggraph Asia 2018だけでなく、Eurographics 2018でもやってたんですね。
そして、どうやら今年の夏のSiggraph 2019でもこのCourseが設けられるらしい。CG分野でもディープラーニングの注目度はかなり高いようだ。

Courseのサンプルコード(Jupyter)も公開されている↓
https://github.com/smartgeometry-ucl/dl4g


スポンサーリンク


とりあえず、Siggraph Asia 2018で使われた資料で復習していこう。
すでに機械学習やニューラルネットワーク、識別モデル(Discriminative Model)の基本的な知識があるなら、Part 14は読み飛ばして、教師なし学習、生成モデル(Generative Model)についてのPart 5ぐらいから読み始めれば良い。

というか、オイラ自身がまだ教師なし学習や生成モデルについてあんまりよく知らないのである。
http://kento1109.hatenablog.com/entry/2018/01/10/111249

今のところ生成モデルについては
あるドメインの確率分布を学習した生成モデルに任意のパラメータを与えると、必ずそのドメインに収まる生成結果が出力される。
というレンダラのような存在と理解している。

GANの勉強しようと思ってたけど、Autoencoderからちゃんと見て行った方が良さそうだ。


スポンサーリンク
  • Autoencoder
  • VAE:Variational Autoencoder
  • GAN:Generative Adversarial Networks

Part 6で紹介されているように、生成モデルのグラフィックスへの応用は画像がかなり先行している。これはディープラーニングの識別モデルで画像を扱う研究が盛んな恩恵か。畳み込みニューラルネットワークが大活躍。

Part 7では、CG分野で使われる3Dデータをニューラルネットワークで扱えるベクトルの形に落とし込んで畳み込むための様々な工夫が紹介されている。
最近、GitHubで3Dのデータを扱った機械学習手法をまとめているリポジトリの存在を知った↓
https://github.com/timzhang642/3D-Machine-Learning

Part 8ではモーションのパラメータを少ない次元に圧縮して表現したり、粗い流体シミュレーションを超解像化したり。
そういえば、流体シミュレーションを機械学習で近似して高速化するアプローチもありましたね↓


『Deep Fluids』流体シミュレーションをディープラーニングで近似する
チューリッヒ工科大学(ETH Zurich)、ミュンヘン工科大学、Pixarによるディープラーニングで流体シミュレーションを近似する研究 Deep Fluids: A Generative Network for Parameterized...


う〜ん、復習しようにも案外スライドに載っている情報は少なかったな…

このCourseでは触れられてなかったけど、CGレンダリングの各プロセスを微分可能にするアプローチはどういうジャンルなんだろう。
TensorFlowでCGを微分できる『TensorFlow Graphics』
Google I/Oでの発表に合わせて、TensorFlowのネットワークでCG Rendererを扱うためのライブラリ TensorFlow Graphicsが公開された。最近の3DCG系のディープラーニングでよく聞く「微分可能なRend...


Neural 3D Mesh Rendererが有名だけど。
https://qiita.com/no_more_syakai/items/f1358e33e8376ae1766d
http://ai-scholar.tech/treatise/renderer-ai-215/

とりあえずPyTorch実装を読んでみるか?
https://github.com/daniilidis-group/neural_renderer

CGのためのディープラーニングについて、もうちょっと詳しい情報がないかと探していたら、電子情報通信学会の総合大会で筑波大学の金森先生が講演したスライドが公開されていた↓

CG分野は人間が手作業で多次元のパラメータを編集していると考えると狂気の世界だけど、CGって従来そういう人達が牽引してきた産業なのよね。
パラメータをいじってはレンダリング結果を確かめる試行錯誤って、機械学習と似ている気もする。

追記:とりあえずGANについて勉強し始めた↓



スポンサーリンク

関連記事

書籍『イラストで学ぶ ディープラーニング』
Windows Server 2008にAutodesk Maya 2009をインストール
布のモデリング
Maya LTのQuick Rigを試す
AnacondaとTensorFlowをインストールしてVisual Studio 2015で使う
複数画像から3次元形状を再構築するライブラリ『Multi-View Environment』
Subsurface scatteringの動画
オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』
人型3Dキャラクターアニメーション制作サービス『Mixamo』で遊ぶ
ZBrush 2018での作業環境を整える
OpenCV 3.1から追加されたSfMモジュール
Adobe Photoshop CS4 Extendedの3Dモデル編集機能
Point Cloud Libraryに動画フォーマットが追加されるらしい
Unity ARKitプラグインサンプルのチュートリアルを読む
『Deep Fluids』流体シミュレーションをディープラーニングで近似する
SIGGRAPH ASIAのマスコット
Unityで360度ステレオVR動画を作る
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
オープンソースの顔の動作解析ツールキット『OpenFace』
TensorFlowでCGを微分できる『TensorFlow Graphics』
ポリゴン用各種イテレータと関数セット
takminさんが機械学習・画像認識の便利ツールを公開しています
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
MPC社によるゴジラ(2014)のVFXブレイクダウン
ディープラーニング
ラクガキの立体化 モールドの追加
Vancouver Film Schoolのデモリール
Unityで強化学習できる『Unity ML-Agents』
UnityのAR FoundationでARKit 3
全脳アーキテクチャ勉強会
自前Shaderの件 解決しました
この本読むよ
『パシフィック・リム: アップライジング』のVFXブレイクダウン まとめ
『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン まとめ
ニューラルネットワークと深層学習
ラクガキの立体化 1年半ぶりの続き
Mayaのシェーディングノードの区分
中学3年生が制作した短編映像作品『2045』
Faster R-CNN:ディープラーニングによる一般物体検出手法
NICOGRAPHって有名?
ラクガキの立体化 背中の作り込み・手首の移植
参考になりそうなサイト

コメント