サイトアイコン NegativeMindException

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

もう半年前のことですが、昨年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 14は読み飛ばして、教師なし学習、生成モデル(Generative Model)についてのPart 5ぐらいから読み始めれば良い。

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

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

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


スポンサーリンク

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



2020年6月 追記:Hands-on Workshop Machine Learning and Neural Networksの動画が公開されたぞ↓



スポンサーリンク

関連記事

  • ラクガキの立体化
  • Facebookの顔認証技術『DeepFace』
  • ラクガキの立体化 進捗
  • Multi-View Environment:複数画像から3次元形状を再構築するライブラリ
  • Kaolin:3Dディープラーニング用のPyTorchライブラリ
  • geometry3Sharp:Unity C#で使えるポリゴン操作ライブラリ
  • ZBrushでゴジラ2001を作ってみる 側頭部のボリュームを探る
  • フリーのUV展開ツール Roadkill UV Tool
  • Adobe Photoshop CS4 Extendedの3Dモデル編集機能
  • Unityの薄い本
  • 全脳アーキテクチャ勉強会
  • 生物の骨格
  • Raytracing Wiki
  • OpenCV 3.1から追加されたSfMモジュール
  • Windows Server 2008にAutodesk Maya 2009をインストール
  • Alice Vision:オープンソースのPhotogrammetryフレームワーク
  • Deep Learningとその他の機械学習手法の性能比較
  • PythonでMayaのShapeノードプラグインを作る
  • Cartographer:オープンソースのSLAMライブラリ
  • CGALDotNet:計算幾何学ライブラリ CGALのC#ラッパー
  • 無料で使える人体3DCG作成ツール
  • fSpy:1枚の写真からカメラパラメーターを割り出すツール
  • 書籍『The Art of Mystical Beasts』を購入
  • 参考になりそうなサイト
  • ZBrushで仮面ライダー3号を造る 仮面編 リファレンス画像の表示
  • Kinect for Windows V2のプレオーダー開始
  • BlenderでPhotogrammetryできるアドオン
  • 中学3年生が制作した短編映像作品『2045』
  • Point Cloud Libraryに動画フォーマットが追加されるらしい
  • UnityでPoint Cloudを表示する方法
  • 『ハン・ソロ/スター・ウォーズ・ストーリー』のVFXブレイクダウン まとめ
  • ディープラーニングに対応したPythonの機械学習ライブラリ『Pylearn2』
  • 画像認識による位置情報取得 - Semi-Direct Monocular Visual Odome...
  • 3Dスキャンに基づくプロシージャルフェイシャルアニメーション
  • OpenMesh:オープンソースの3Dメッシュデータライブラリ
  • trimesh:PythonでポリゴンMeshを扱うライブラリ
  • Ambient Occlusionを解析的に求める
  • OpenCVの三角測量関数『cv::triangulatepoints』
  • 色んな三面図があるサイト
  • SSII 2014 デモンストレーションセッションのダイジェスト動画
  • Digital Emily Project:人間の顔をそっくりそのままCGで復元する
  • ZBrush 2018での作業環境を整える
  • モバイルバージョンを終了