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について勉強し始めた↓



スポンサーリンク

関連記事

Unity ARKitプラグインサンプルのチュートリアルを読む
3Dデータ処理ライブラリ『Open3D』
リファレンス画像専用ビューア『PureRef』
機械学習手法『SVM(Support Vector Machine)』
ZBrushで仮面ライダー3号を造る 仮面編 Dam Standardブラシでディティールを彫る
OpenCVでカメラ画像から自己位置認識 (Visual Odometry)
ちょっと凝り過ぎなWebキャンペーン:全日本バーベイタム選手権 (MITSUBISHI KAGAKU...
オープンソースの顔の動作解析ツールキット『OpenFace』
RefineNet (Multi-Path Refinement Network):ディープラーニン...
人型3Dキャラクターアニメーション制作サービス『Mixamo』で遊ぶ
C#で使える可読性重視のディープラーニングライブラリ『KelpNet』
物理ベースレンダリングのためのマテリアル設定チートシート
オープンソースのStructure from Motionツール『Regard3D』
OpenCVで平均顔を作るチュートリアル
Maya 2015から標準搭載されたMILA
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
ニューラルネットワークの構造を可視化するフレームワーク『TensorSpace.js』
素敵なパーティクル
ディープラーニング
Unityの薄い本
顔モデリングのチュートリアル
OpenCVの顔検出過程を可視化した動画
書籍『OpenCV 3 プログラミングブック』を購入
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
ZBrushで仮面ライダー3号を造る 仮面編 PolyGroupを分割する
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
iPadをハンディ3Dスキャナにするガジェット『iSense 3D Scanner』
書籍『仕事ではじめる機械学習』を読みました
データサイエンティストって何だ?
SSII 2014 デモンストレーションセッションのダイジェスト動画
ZBrushCore
OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』
Unityの新しいGUI作成システム『uGUI』
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
ディープラーニングに対応したPythonの機械学習ライブラリ『Pylearn2』
Maya API Reference
実写と実写の合成時の色の馴染ませテクニック
MeshroomでPhotogrammetry
Faceshiftで表情をキャプチャしてBlender上でMakeHumanのメッシュを動かすデモ
クリエイターのための機械学習ツール『Runway ML』
第20回 文化庁メディア芸術祭『3DCG表現と特撮の時代』
人体モデリングできるBlenderアドオン『ManuelBastioniLAB』

コメント