日本人研究者によるSIGGRAPH論文
概要
日本人研究者によるSIGGRAPH論文 (2014--2015年分) の情報を以下のページにまとめました。せっかくなので公開します:
SIGGRAPH Papers by Japanese Researchers
YouTube動画の埋め込みや著者の個人ページへのリンクも含んでおり、日本人研究者の活躍ぶりをまとめて把握する上で役に立つかもしれません。
SIGGRAPH論文
当該ページの冒頭にも書きましたが、SIGGRAPHはコンピュータグラフィクスの分野のトップカンファレンスとして知られ、またSIGGRAPHに論文が採択されることは非常に難しいことで有名です。SIGGRAPHに論文が採択されると、分野の研究者だけでなくメディアなどを通じて様々な人の目に触れることになります。
ちなみに、SIGGRAPH AsiaやACM Transactions on Graphicsも"uniform high quality"であると明示的に宣言されており、まとめて「SIGGRAPH論文」と表現することも多いです。SIGGRAPHやSIGGRAPH Asiaで発表された論文は自動的にACM Transactions on Graphicsに掲載され、またACM Transactions on Graphicsに掲載された論文はSIGGRAPHやSIGGRAPH Asiaで発表する権利が与えられます。
また、ここでの論文とは正式にはTechnical Papersと表記されるものであり、Emerging TechnologiesやPostersとは別のものです。
なお、Eigenfactor scoreによると、ACM Transactions on Graphicsはコンピュータグラフィクス分野だけでなくComputer Science, Software Engineering分野においてもトップジャーナルなのだそうです。
日本人研究者
例年、SIGGRAPHに採択される日本人研究者による論文は片手で数えられる程度、0件であることも珍しいことではないようです。例えば、直近だとSIGGRAPH Asia 2014では日本人研究者による論文は採択されなかったようです。ただし今年のSIGGRAPHには非常に多くの論文が日本から採択されたようです。
なお、日本人がSIGGRAPHに論文が採択されると、コンピュータグラフィクスの国内シンポジウムの一つVisual Computing/グラフィクスとCAD合同シンポジウム (VC/GCAD) にて招待講演を依頼されるという制度があります。しかしながら、ACM Transactions on GraphicsやSIGGRAPH Asiaの論文は取りこぼしがあるようで、完全ではありません。
そこで、日本人研究者(海外に在住する人や、外国籍でも日本に深い縁のある人を含む)によるSIGGRAPH論文を、YouTube動画や著者の個人ページへのリンクも含めて集めてみました。収集手法は目grep法を用いたため、精度に問題があるかもしれません。情報に欠けを見つけた場合はご連絡ください。当該ページは、今後順次更新していくかもしれないし、現状のまま放置するかもしれません。
論文読み: Solid Simulation with Oriented Particles (SIGGRAPH 2011)
今回は古い論文の紹介です。
2年前にこの手法を実装したことがあるのですが、そのときにキャプチャした動画もいくつか紹介します。
Matthias Müller and Nuttapong Chentanez
Solid Simulation with Oriented Particles
SIGGRAPH 2011
研究概要
Position-Based Dynamics の上で動く、ロバストで高速な変形可能物体の物理シミュレーション手法「Oriented Particles 法」を提案しています。
これは Shape Matching 法と呼ばれる手法の拡張になっていて、従来は三次元的な構造(ソリッド)しか扱うことができなかったのに対して、布などの二次元的な構造(シェル)やひもなどの一次元的な構造(ロッド)など、様々な構造を統一的に扱うことができるようになった点が特徴的です。
Position-Based Dynamics については以下を参照してください。
実装してみた
2年ほど前、ちょうど私が情報処理推進機構の未踏IT人材発掘・育成事業でのプロジェクトで物理エンジンを開発していたころ、実際にこの Oriented Particles 法を実装したことがあります。
以下がそのときにキャプチャした動画です。いずれも当時の普通の MacBook Air でリアルタイムに計算しています。C++ と OpenGL を用いて実装しています。
三次元的な構造 (ソリッド)
Shape Matching 法と同様、ソリッドな構造をシミュレーションできます。パーティクルのサイズを小さく設定した場合には Shape Matching 法とほぼ同等の挙動となります。
二次元的な構造 (シェル)
布のシミュレーションをしています。非伸縮制約 (inextensibility) をいれていないため、引っ張るとよく伸びます。非伸縮制約を入れた場合は、これが伸びの挙動を主に決定して、Oriented Particles 法による制約が曲げの挙動を主に決定することになります。
一次元的な構造 (ロッド)
ひものシミュレーションをしています。伸びや曲げについては良い具合にシミュレートできていますが、ねじったときの複雑な挙動は再現することができません。
Unity に移植してみた
当時急速に人気になりつつあった Unity に移植してみました。外部ライブラリとしてではなく、C# で直接書いています。
Unity 上で物理エンジンを実装しようとして試行錯誤している最中に書いた記事はこちらです。
ちなみにこの Unity 移植版を元に別の手法の研究開発を行い、その後学術論文として発表したりしました。
Yuki Koyama and Takeo Igarashi
View-Dependent Control of Elastic Rod Simulation for 3D Character Animation
SCA '13
http://www-ui.is.s.u-tokyo.ac.jp/~koyama/project/ViewDependentRodSimulation/index.html
またこの成果を「こだわり物理エンジン」という名称でパッケージにまとめたものが以下になります。
Web ページ:こだわり物理エンジン
その他:最近の研究動向と私見
Oriented Particles 法は 2011 年の夏に発表された研究です。それから3年半も経っていますから、当然リアルタイム物理シミュレーションの動向もだいぶ変わってきています。
ソリッドな弾性体をシミュレーションしたい場合
基本的な選択肢としては Shape Matching 法か Oriented Particles 法の2択になりそうです。
Oriented Particles 法の方が
- データ構造の拡張が必要
- 計算がほんの少しだけ重い
という小さなデメリットがある反面、
- 極端な変形に対してもロバストに動く
- 各パーティクルが回転情報を保持しているため、スキニングの際に利用できる
といったメリットがあります。特にゲーム等での利用を考えると2個目のメリットは大きそうです。
また Position-Based Dynamics の拡張として以下のような研究もありますが、Oriented Particles 法に比べて巨大な行列を保持しておく必要があったり、実行時速度が不十分だったりします。
布をシミュレーションしたい場合
Oriented Particles 法は使うべきではないと思います。
Oriented Particles 法は3行3列の行列の特異値分解 (SVD) または極分解 (polar decomposition) をパーティクルの数だけ毎フレーム行う必要があります。それに対し、特異値分解を必要としないより高速な布の表現手法が多数存在します。
Tae-Yong Kim, Nuttapong Chentanez, Matthias Müller
Long Range Attachments - A Method to Simulate Inextensible Clothing in Computer Games
SCA '12
ひもをシミュレーションしたい場合
これも、Oriented Particles 法は使うべきではないと思います。
再び、Oriented Particles 法は特異値分解を必要とするため、効率的ではありません。それに対し、特異値分解を必要とせず、さらにねじりに対する非線形なひもの振る舞いをモデル化できている手法が最近提案されました。
Nobuyuki Umetani, Ryan Schmidt, Jos Stam
Position-based Elastic Rods
SCA '14
Oriented Particles 法が役に立つシナリオ
複合的な構造
ソリッド・シェル・ロッドが組み合わさっているような物体をシミュレーションするときには Oriented Particles 法は最もシンプルで良い解決法だと思います。例えばこの記事の冒頭で掲載した動画ではタコをシミュレーションしていますが、胴体はソリッド、足の部分はロッドのような構造になっています。Oriented Particles 法ではソリッドもロッドも特に区別せず統一的に扱うことができます。
メッシュを用意するのが難しい場合
Oriented Particles 法ではパーティクル同士が形成しているネットワーク (パーティクルを頂点とするグラフ構造) を対象にシミュレーションを走らせることができる点も利点の一つです。通常のシミュレーションではメッシュ (三角形メッシュや四面体メッシュ) を用意する必要があるのに対して、グラフ構造は生成が簡単です (例えば各パーティクルをある一定の距離以下に存在するパーティクルと接続すると簡単にグラフ構造を作れる)。メッシュを用意するのが大変な状況においても Oriented Particles 法は役に立つといえます。なおこのような考え方を ``mesh-less'' だとか ``mesh-free'' と表現したりするようです。
情報検索のための Learning to Rank の概要
この記事では以下の文献の第一章の最初の方をざっと読んで得た知識を簡単にメモしています。事前に断っておくと、私は情報検索 (Information Retrieval, IR) の専門家でもありませんし、機械学習の専門家でもありません。誤り等ありましたらコメント欄にてご教示ください。
Tie-Yan Liu
Learning to Rank for Information Retrieval
Foundations and Trends in Information Retrieval: Vol. 3: No. 3, pp 225-331. (2009)
http://www.nowpublishers.com/article/Details/INR-016
導入
情報検索とは情報のデータ群の中からクエリ (query) に合う要素を取り出すことだそうです。
情報検索 - Wikipedia
情報検索には
- 協調フィルタリング (collaborative filtering)
- 質問応答システム (question answering)
- マルチメディア検索 (multimedia retrieval)
- 文書要約 (text summarization)
など様々な応用があり得ますが、この文献では特にウェブページの検索エンジンを想定して議論を進めています。
この情報検索について、近年急速に流行っているのが Learning to Rank というアプローチだそうです。特に 2005 年以降
- SIGIR
- ICML
- NIPS
- WWW
などの国際会議において流行っていることが丁寧に説明されています。
ちなみにこの Learning to Rank はどうやら日本語ではランキング学習などと訳されるようです。
従来の情報検索
Learning to Rank の定義について説明する前に、それ以前の情報検索手法について簡単に説明を加えています。
Relevance Ranking Models (関連度によるモデル)
このモデルではクエリとデータの関連度を計算し、関連度の高いものを検索結果として提示するというアプローチをとります。
関連度の計算としては、ベクトル空間モデル (Vector Space Model, VSM) がまず取り上げられています。VSM ではクエリとデータの両方がベクトルとして表されており、その関連度は例えば両者の内積などによって計算するというものです。
VSM の具体的な実装として、ここでは TF-IDF モデルが紹介されていました。
tf-idf - Wikipedia
別のアプローチとして Latent Semantic Indexing (LSI) や Probabilistic Ranking Models についても言及されていましたが、ここでは省略します。
Importance Ranking Models (重要度によるモデル)
このモデルではデータそのものの重要度を計算し、重要度の高いものを優先的に検索結果として採用するというアプローチをとります。
その具体例として、PageRank が紹介されていました。
ページランク - Wikipedia
ちなみに私の理解では以下の論文が PageRank を提案しているということになっているのですが、この文献の中では何も引用されていませんでした。PageRank はもはや引用なしで議論できるほど有名になっているということでしょうか。
Brin, S. and Page, L.
The Anatomy of a Large-Scale Hypertextual Web Search Engine
WWW '98
The Anatomy of a Large-Scale Hypertextual Web Search Engine - Stanford InfoLab Publication Server
Learning to Rank による情報検索
さて、従来の情報検索手法における問題点を挙げるとするなら、それはパラメタのチューニングが必要であるという点でした。例えば PageRank では damping factor と呼ばれるパラメタを適切にチューニングしてやる必要があります。
そこで登場するのが、機械学習を活用した情報検索という流れです。機械学習によって、パラメタの自動チューニングや、複数の手法を適切な重みで組み合わせるといったことが可能となります。
Learning to Rank の定義
一般的には、情報検索の問題を機械学習の手法によって解決することを目指すような一連の手法を Learning to Rank と呼んでしまうことが多いことが指摘されています。例えば機械学習によるパラメタの自動チューニングなども Learning to Rank に含まれることがあります。
しかしながら、この文献ではより狭い定義で Learning to Rank という言葉を使おうとしています。より具体的には、以下の 2 つの特徴を持つ手法を Learning to Rank であると定義しています:
- Feature Based: データが全て特徴量を用いて表現されていること。
- Discriminative Training: 学習のプロセスが一般的な (教師付き) 機械学習のフレームワークによく沿っていること。
この辺りの読み込みが甘く、厳密な理解はできていませんが、簡単に言って、Learning to Rank は「(教師付き) 機械学習によって特徴量の最適な組み合わせ方を発見する一連の手法群」と考えることができそうです。
Learning to Rank のフレームワーク
ここから先はよく読み込めていないので省略しますが、多くの手法は以下の 3 種類に大別できるそうです:
- The Pointwise Approach
- The Pairwise Approach
- The Listwise Approach
"Character Animation" セッション論文紹介 (SIGGRAPH Asia 2014)
来週月曜日(2014年12月15日)、私が所属する五十嵐研究室にて SIGGRAPH セミナーが行われます。
SIGGRAPH Asia 2014 - SIGGRAPH Seminar
これは、SIGGRAPH Asia 2014 で発表された全ての論文について、1セッションあたり15分以内にまとめて参加者同士で紹介し合うことで、最先端のグラフィクス研究を網羅的に俯瞰しようという会です。どなたでも参加可能です。
この記事では、私が担当する Character Animation のセッションについて、少しずつまとめていきたいと思います。
勉強会当日まで随時更新していきます。
セッション全体について
キャラクタ(主に人間)のモーションに関する研究を集めたセッションです。
最初の2つの論文は実世界の人間のモーションをいかに正確にキャプチャするかという研究です。
更に、最近の流行りである筋肉や腱のシミュレーションによるモーションの生成(論文3)や、アーティストが大量のモーションデータを組み合わせて効率良くアニメーションを制作するためのの手法(論文4)などを含んでいます。
論文1:少ないマーカーでモーションとシェイプの両方をキャプチャする手法
Matthew Loper, Naureen Mahmood, Michael J. Black
MoSh: Motion and Shape Capture from Sparse Markers
SIGGRAPH Asia 2014
目的:少ない数のマーカでモーキャプ
人間のモーションをキャプチャするのが目標です。モーションキャプチャには
- 体に少数(40〜80程度)のマーカをつけてビデオを撮影する
- 体に大量(数百)のマーカをつけてビデオを撮影する
- デプスセンサなど他の入力手法を使う(または併用する)
など色々なアプローチがありますが、今回は少数(47個、または67個)のマーカからモーキャプすることを目標にしています。このアプローチのメリットは、
- データの取得が簡単である
- 既存のモーションデータベースが活用できる
などです。
キーアイデア:パラメトリックモデルを使ってシェイプも取得する
MoSh の一番のキーとなるアイデアは、ビデオデータから動き (Motion) だけでなく体格 (Shape) も同時に推定するという点にあります。
しかし少数のマーカからシェイプを推定するのは困難です。そこで彼らは SCAPE と呼ばれる人間の体格のパラメトリックモデルを用います。
D. Anguelov, P. Srinivasan, D. Koller, S. Thrun, J. Rodgers, J. Davis
SCAPE: Shape Completion and Animation of People
SIGGRAPH 2005
http://robotics.stanford.edu/~drago/Projects/scape/scape.html
つまりマーカの位置を元に、SCAPE のパラメタもフィッティングするということです。実際に最適化問題を解く際には
- SCAPE のパラメタ
- ポーズ
- マーカの正確な位置
の3つを同時に最適化していくことになります。
論文2:デプスカメラと圧力センサを用いたモーションキャプチャ手法
Peizhao Zhao, Kristin Siu, Jianjie Zhang, C. Karen Liu, Jinxiang Chai
Leveraging Depth Cameras and Wearable Pressure Sensors for Full-body Kinematics and Dynamics Capture
SIGGRAPH Asia 2014
目的とアプローチ
論文1 (MoSh) では体にマーカをつけて撮影するアプローチでしたが、この論文は
- デプスセンサなど他の入力手法を使う(または併用する)
のアプローチによって精度の高いモーションキャプチャを実現することを目標にしています。
具体的には
- 3台の Kinect (赤外線方式)
- 両足に圧力センサ
を使ってモーションキャプチャを実現しています。この組み合わせのメリットは
- 比較的安価である
- 設定が容易である(全自動)
- 体にマーカなどを装着する必要がない (non-intrusive)
などが挙げられています。圧力センサをつけた靴を着用する必要があるため、真の意味で non-intrusive ではないと思いますが、それでも他のシステムに比べるとずっと non-intrusive です。
既存研究との比較
直接の比較対象として引用されているのは以下の論文です。
Xiaolin Wei, Peizhao Zhang, Jinxiang Chai
Accurate Realtime Full-body Motion Capture Using a Single Depth Camera
SIGGRAPH Asia 2012
この既存研究との共通点は
- デプスセンサを用いたモーキャプである
- 全身のモーキャプである
などが挙げられます。逆に差分としては
- デプスセンサの台数が多いので点群データの情報量が多い
- 圧力センサによって床との接触を正確に制約として解くことができる
- 体型(シェイプ)を最初にスキャンし、モーキャプ時に考慮している
- ダイナミクス(この場合は physics-based motion modeling)まで考慮している
などが挙げられます。
この既存研究に比べ圧倒的に良い結果が得られていることが論文で報告されているのですが、果たして上記4つの差分のうちどの要素がどの程度結果に貢献したかは判断が難しいところです。
余談:Kinect 同士で干渉しないのか
赤外線方式の初代 Kinect は、複数台同時に使用すると赤外線同士が干渉し合ってまともにデータが取れなくなるというのは常識 (?) だと思われていました。
しかし、論文には
We also found that in this configuration, interference of structured lights between cameras is not a major issue because each camera receives very little infrared (IR) light from other cameras.
と書かれています。つまり、実はあまり干渉しないそうです。これは盲点でした。実際にやってみるものですね。
論文3:沢山の筋肉をシミュレートすることによるモーションの生成と制御
Yoonsang Lee, Moon Seok Park, Taesoo Kwon, Jehee Lee
Locomotion Control for Many-Muscle Humanoids
SIGGRAPH Asia 2014
目的と背景:筋肉の働きを考慮する
物理シミュレーションによって、人間の動きをリアリスティックに再現し、制御することが目的です。
従来から簡単なモデル化(各関節にかかる力を直接考える)による人間の動きの生成・制御は行われてきたのですが、よりリアリスティックな結果を得るために、近年ではより現実世界に忠実なモデル化(各筋肉が生じさせる力から考える)が行われるようになってきました。
Jack M. Wang, Samuel R. Hamner, Scott L. Delpm Vladlen Koltun
Optimizing Locomotion Controllers Using Biologically-Based Actuators and Objectives
SIGGRAPH 2012
筋肉の力から考えることで、例えば「筋肉への負担を最小限にする歩き方」などを最適化によって生成することができたりする利点があります。
今回紹介する研究も、同様に筋肉を考慮した人間の動きの生成と制御に関するものになっています。
筋肉ベースだと何が難しいか(一般論)
1. 劣決定系の問題 (underdetermined system) である。体全体の自由度に対して筋肉の数が多い。
2. 筋肉の振る舞い (ヒル型 (Hill-type) の筋肉モデル) が非線形である。
3. コントローラのデザインが難しい。既存の関節ベースのものは使えず、筋肉のダイナミクスを考慮する必要がある。
提案手法
筋肉のシミュレーションによって動きを生成するロコモーション・コントローラを提案しています。
- 沢山の筋肉(100以上)に対しても動作する
- 非線形な筋肉モデルのダイナミクスを(線形近似したり自由度を制限せずに)扱っている
- 様々な目的関数を設定できる(例:消費エネルギーの最小化、怪我部位への負担の最小化)
などが従来研究との違いです。
研究としての貢献
個々の要素技術 (online quadratic programming, step-based balance mechanism, ...) というよりも、要素技術の組み合わせによって非常に良い結果 (robustness and applicability) が得られたという点が研究としての貢献だそうです。
論文4:複数キャラクタがインタラクションする複雑なシーンを効率良く作るためのシステム
Jungdam Won, Kyungho Lee, Jessica Hodgins, Carol O'Sullivan, Jehee Lee
Generating and Ranking Diverse Multi-Character Interactions
SIGGRAPH Asia 2014
目的:ラフなシーンの記述からキャラクタアニメーションを作る
例えば三次元グラフィクスを使ったアニメーション映画を製作しているスタジオがあったとして、ある映画の初期構想段階では
- 監督(または脚本家)がラフなシーンの記述を考える
- それをもとにアニメータ(または振り付け師)がラフなキャラクタアニメーションをつける
という工程が発生することがあり得ます。
ラフなシーンの記述とは、例えば
トムとジョンがぶつかる。
トムがジョンに指摘する。
トムがジョンを蹴り飛ばす。
デビッドが喧嘩に加わる。
などのハイレベル(抽象度の高い)な記述のことを指しています。
この研究の目的は、このようなハイレベルなシーンの記述からキャラクタアニメーションを製作するのを支援することです。論文ではそのためのシステム(インタフェースとアルゴリズム)を提案しています。
特に複数人がインタラクションするようなシーンを製作するのは
- キャラクタ同士の時間的同期をとる必要がある
- キャラクタ同士が空間的に正しく配置されている必要がある
などの理由でより困難です。この研究では特に複数のキャラクタがインタラクションを行うシーンに特化したシステムを提案しています。
全自動ではなく、半自動
提案システムは全自動ではなく、あくまで半自動のものとなっています。具体的には、入力に対して沢山の候補が提示され、ユーザはその中の一つを選択し、更に必要があれば編集を加えます。
全自動にしない理由は、
- 入力 (= 制約) に対する解集合の空間があまりにも大きすぎることから、そもそも一つの解を求めることがナンセンスであること
- 逆にその解空間から「良い」解を更に発見する余地を残しておくことでアニメータが感性や創造性を発揮できること
などが挙げられます。
提案インタフェース:ハイレベルな指示をグラフによって入力する
上述のようなハイレベルな記述を入力するために、イベントグラフを構築するためのユーザインタフェースを提案しています。
ここでのイベントグラフとは、各ノードがイベント (e.g. 歩く、蹴る、ぶつかる) などに対応している有向グラフです。ユーザはイベントを配置し、各キャラクタがどのイベントを通るかを有向エッジで結んでいくことで、ハイレベルな記述を翻訳していきます。
このイベントグラフは、データフロー記述言語かつビジュアルプログラミング言語と見なすことができると思います。
提案アルゴリズム:Generate-and-Rank アプローチ
提案システムは、入力されたイベントグラフを元にキャラクタアニメーションを生成します。
そこで彼らは、ただ結果を生成するだけでなく、generate-and-rank というアプローチをとります。これは名前の通り、
- 沢山の候補を生成する
- 候補のランキングを考え、上位のいくつかをユーザに提示する
というアイデアによるものです。これ自体は古くから用いられているアイデアだと思いますが、ランキングをどのようにつけるかが重要となってきます。
ランキングの計算
生成された大量のキャラクタアニメーションに対してランキングをつける際に、ランキングの上位いくつかについて
- 多様性がある(似たものがない)
- 解空間全体をバランス良くカバーしている
という条件を満たしている必要があります。これをクリアするために、以下の手法を用いています。
Qiaozhu Mei, Jian Guo, Dragomir Radev
DivRank: the interplay of prestige and diversity in information networks
KDD 2010
SIGKDD の論文が SIGGRAPH で引用されているのは珍しい気がします。
また、ランキングの指標(生成されたキャラクタアニメーションの重要度)として、PageRank を用いています。
Sergey Brin, Lawrence Page
The Anatomy of a Large-Scale Hypertextual Web Search Engine
WWW 1998
ページランク - Wikipedia
これは日本語 Wikipedia で項目があるぐらい有名な手法で、Google の検索エンジンに使われているそうです。論文の引用数も既に 12000 を超えており、コンピュータ科学の分野では非常に重要な手法であると言えます。
PageRank のアイデアは「重要なウェブページからリンクされているウェブページは重要である」というものです。これをキャラクタアニメーションに当てはめるためにはリンクを定義する必要があるのですが、ここではモーションの類似度を用いて重み付きのリンクを定義しています。