もう半年前のことですが、昨年12月に東京国際フォーラムで開催されたSiggraph Asia 2018 Tokyoで聴講したCourse CreativeAI:Deep Learning for Graphicsの復習を(今頃)しておこうかと。
「CGのためのディープラーニング」とか「CGに使えるディープラーニング」という趣旨でしょうか。
途中休憩を挟んだとはいえ、3時間を超えるセッションは結構しんどくもあり、すぐに咀嚼できなかったのである。
幸い、Courseの資料はWebで公開されている↓
CreativeAI:Deep Learning for Graphics
近年、古くからコンピューターグラフィックス分野で課題とされてきたことの多くが、データドリブンな手法 ディープラーニングの登場によって上手く扱えるようになってきた。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 1〜4は読み飛ばして、教師なし学習、生成モデル(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ではモーションのパラメータを少ない次元に圧縮して表現したり、粗い流体シミュレーションを超解像化したり。
そういえば、流体シミュレーションを機械学習で近似して高速化するアプローチもありましたね↓
う〜ん、復習しようにも案外スライドに載っている情報は少なかったな…
このCourseでは触れられてなかったけど、CGレンダリングの各プロセスを微分可能にするアプローチはどういうジャンルなんだろう。
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について勉強し始めた↓
2020年6月 追記:Hands-on Workshop Machine Learning and Neural Networksの動画が公開されたぞ↓
関連記事
OpenCVで平均顔を作るチュートリアル
Kinect for Windows V2のプレオーダー開始
ZBrushでゴジラ2001を作ってみる 姿勢の変更
SIGGRAPH ASIA 2009で学生ボランティア募集し...
フォトンの放射から格納までを可視化した動画
UnityでShaderの入力パラメータとして行列を渡す
MRenderUtil::raytrace
『パシフィック・リム: アップライジング』のVFXブレイクダ...
PGGAN:段階的に解像度を上げて学習を進めるGAN
生物の骨格
OpenMesh:オープンソースの3Dメッシュデータライブラ...
ZBrushで仮面ライダーBLACK SUNを作る 頭部~バ...
SIGGRAPH 2020はオンライン開催
オープンソースの人体モデリングツール『MakeHuman』の...
『ローグ・ワン/スター・ウォーズ・ストーリー』のVFXブレイ...
Google Earth用の建物を簡単に作れるツール Goo...
RefineNet (Multi-Path Refineme...
UnrealCV:コンピュータビジョン研究のためのUnrea...
ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身...
Facebookの顔認証技術『DeepFace』
Dlib:C++の機械学習ライブラリ
OpenCVの顔検出過程を可視化した動画
Photo Bash:複数の写真を組み合わせて1枚のイラスト...
CGレンダラ研究開発のためのフレームワーク『Lightmet...
ZBrushでアヴァン・ガメラを作ってみる 首回りの修正・脚...
日立のフルパララックス立体ディスプレイ
UnityでPoint Cloudを表示する方法
ZBrushの作業環境を見直す
書籍『開田裕治 怪獣イラストテクニック』
映画『ゴジラ-1.0』 メイキング情報まとめ
OpenCVで顔のランドマークを検出する『Facemark ...
OpenCV 3.1のsfmモジュールのビルド再び
NumSharp:C#で使えるNumPyライクな数値計算ライ...
株式会社ヘキサドライブの研究室ページ
ベイズ推定とグラフィカルモデル
オープンソースのテクスチャマッピングシステム『Ptex』
Cartographer:オープンソースのSLAMライブラリ
ZBrushでアヴァン・ガメラを作ってみる 口のバランス調整
2D→3D復元技術で使われる用語まとめ
スクラッチで既存のキャラクターを立体化したい
OpenFace:Deep Neural Networkによ...
機械学習での「回帰」とは?
コメント