サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GWの過ごし方
yuki-koyama.hatenablog.com
EigenはC++で書かれた線形代数ライブラリである。特徴の一つとして、式の実装にtemplate機能を活用している点があり、これにより 遅延評価 (lazy evaluation) を実現している。遅延評価を適切に使うことで、計算コストを削減できることがある。 Eigen Eigenの遅延評価については公式ドキュメントの次のページが詳しいため、本記事では厳密性・網羅性よりも概要の理解しやすさを重視する。 Eigen: Lazy Evaluation and Aliasing なお、以下のコード例では using namespace Eigen; が暗黙的に実行されているとする。 Eigenにおける遅延評価 演算の返り値の型に注目する 行列を表す MatrixXd 型の変数 a があり、その転置を表現するために MatrixXd a = ...; ... = a.transpose();
色差の指標 CIEDE2000 色差、つまり2つの色の距離を計算する方法はいくつかあるが、人間の知覚を考慮した指標である CIEDE2000 を用いるのが良いことが多い。 Color difference - Wikipedia 新しい色差式(CIE DE2000)について。-楽しく学べる知恵袋 | コニカミノルタ 知覚を考慮しているとは、例えば人間にとって見分けのつきにくい色同士は (たとえ RGB の値が遠くても) 距離が近く、人間にとって見分けのつきやすい色同士は距離が遠くなるように設計されていることを意味している。 CIEDE2000 を用いることで、より人間の知覚に沿った色差を計算できる。両ペアは RGB 色空間では等しい距離を持つが、人間には左のペアの方が色が遠く、右のペアの方が色が近いと知覚されることが CIEDE2000 の計算に反映されている。*1 CIEDE2000 の
ベクトルや行列に関する微分演算でよく使う式です。 小文字ボールド体はベクトル、大文字ボールド体は行列を表しています。 基本 応用(基本の式から導出可能) その他 参考URL Matrix calculus - Wikipedia http://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/IFEM.AppF.d/IFEM.AppF.pdf http://nlp.dse.ibaraki.ac.jp/~shinnou/zemi2012/kernel/vector-bibun.pdf 共分散行列を含む多次元のガウス関数の微分 - yuki-koyama's blog 優決定系の線形方程式の最小二乗解を与える際の式変形(導出) - yuki-koyama's blog matrices - Gradient of squared Frobeni
この記事の概要 現在用いられる物理エンジンの多くは position-based dynamics (PBD) [Muller et al. 2007] を基礎としている *1 近年提案された projective dynamics [Bouaziz et al. 2014] は PBD より優れた性質を持っているらしい そこで projective dynamics の追実装を行った上で、その将来性について検討する Projective dynamics による布のシミュレーション なお projective dynamics は以下の記事でも取り上げたことがあります。今回は前回よりさらにマニアックな内容になっています。 論文読み: Projective Dynamics: Fusing Constraint Projections for Fast Simulation (SIGGRA
この記事では以下の文献の第一章の最初の方をざっと読んで得た知識を簡単にメモしています。事前に断っておくと、私は情報検索 (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
目的:ガウス関数の微分 共分散行列 (バンド幅行列) を用いて表された多次元 (多変量) で異方性のガウス関数 (多変量正規分布) の微分 (勾配) を考えます。微分したいガウス関数の形は だとします。ただし は正値対称な共分散行列 (バンド幅行列) で、 です。これはPRMLなどの機械学習の参考書でも見られるガウス分布の表し方です。 共分散行列を 、中心を とするような多次元のガウス関数 のイメージ。 ちなみにバンド幅が によって表された を中心とする 1 次元のガウス関数 の微分は http://www.ms.is.ritsumei.ac.jp/profile/staff/ijiri/study/gaussianDerivatives.html ときわ台学/統計学/正規分布 などでも紹介されている通り、 となります。今回はこれの 次元への拡張、さらにバンド幅が等方性ではなく異方性のもの
概要 UnityといえばC#で開発するのが基本ですが、Native Pluginという機能を使えば、他の言語 (C++など) で書かれたコードを呼び出すことができます。 今回はじめてNative Pluginを作ってみたので、調べたことなどをメモしておきたいと思います。 C++のライブラリ (Eigenとlibigl) を用いてUnity上でメッシュのガウス曲率を可視化した例 背景と動機 普段はC++でコンピュータグラフィクス関連の研究をしています(プロダクトの開発は行なっていません)。私がC++を使う主な理由は 過去に自分で書いたコードを使いまわしたいから 優秀な数学演算のライブラリや高度なジオメトリ処理のライブラリを使えるから 高速化がしやすいから などです。一方でUnityを使うこともあります。私がUnityを使う際の主な理由は 優秀なリアルタイムレンダリングが予め用意されているから
はじめに RBF 補間とは RBF 補間とは、RBF (放射基底関数, radial basis function) を用いて入力となる散布データ (scattered data) の値を補間することです。または、与えられた散布データを元に非線形な関数をフィッティング (または近似) することだと考えることもできます。 どういうときに使えるか 下図のように、 個の点列 が与えられ、それらの点を通るような滑らかな関数 を求めたいときに、RBF 補間が使えます。 また、より高次元 ( 次元とします) の空間における補間も可能です。この場合は 個の点列 が与えられたときに関数 を求めることになります。 どういう特徴があるか RBF 補間はノンパラメトリックなフィッティングの一種です。 与えられた点列を必ず通るような関数を求めることができます。 ノイズが多く密度の高いデータに対しては過学習 (ov
昨日 (2013/4/25) にわかに twitter や facebook で話題になった SIGGRAPH 論文があったので、それについてメモしておこうと思います。 今回扱う論文について 昨日話題になったのは NVIDIA による以下の論文(のデモビデオ)です。 Miles Macklin, Matthias Mueller Fischer Position Based Fluids SIGGRAPH '13 実は時間がなくてまだ論文概要しか読んでいません。もう少し時間的に余裕が出てから本文を精読していきたいと思います。そのときはこの記事に読んだ内容を追記していこうと思います。 動画 どちらも公開から数時間にも関わらず (論文の添付動画としては) 驚異的な再生数を誇っています。 概要 リアルタイムで計算可能な粒子ベースの流体 (水など) シミュレーションです。 流体シミュレーションには
始めに断っておきますが、この記事には誤った内容や解釈が含まれているかもしれませんので注意して下さい。 先日、ふとしたきっかけで初めて Unity 4 を触ってみました。そこで、どうしても Unity の組み込みの物理エンジン (Rigidbody など) を使わずに物理演算を実現したいという欲求にかられてしまったので、自分で物理エンジンを一から実装してみました。 実はこの記事を執筆している段階ではまだ実装は完了していないのですが、とりあえず現段階で (自分の思考を整理するために) 文章化しておこうと思います。 前置き: Unity とは Unity は今最も注目されているゲームエンジンの一つで、三次元グラフィクスを用いたゲームの開発を支援するものです。 Unity を使うことで簡単に三次元シーンを作成したり、物理エンジンを用いて物理演算を行ったり、三次元シーンをレンダリングしたり、ゲームの
ゲーム物理エンジンに関する技術の集大成的論文 今回取り上げるのは今年の SIGGRAPH で発表される予定の論文です。正式な publication date は7月ですが、既に著者らがウェブ上で論文と動画を公開しています。 Miles Macklin, Matthias Müller, Nuttapong Chentanez, Tae-Yong Kim. Unified Particle Physics for Real-Time Applications. SIGGRAPH '14 (to appear) http://blog.mmacklin.com/flex/ この論文はこれまで個別に提案されてきたゲーム物理の技術を統合的に扱うという手法を提案しており、まさに集大成的な論文と言えると思います。公開されている動画も非常に印象的なものとなっています。 論文概要 短いので論文概要 (A
はじめに 三次元的な回転や方向を表現する方法として、四元数 (Quaternion) は大変重要なツールです。先日、四元数同士を補間するプログラムを書いていて、ある不具合が起き、原因が分からずしばらく悩んでいました。日本語での情報が少ないようでなので、その件について簡単に紹介したいと思います。 四元数とは 四元数の基本については Wikipedia を参考にして下さい。 コンピュータグラフィクスやゲームプログラミングの文脈で四元数が登場するのは、方向 (Orientation) や回転 (Rotation) を扱うときです。四元数それ自体は方向や回転を扱うためのものではないのですが、単位四元数 (長さが 1 になるように正規化された四元数) は方向や回転を記述するために利用できるということです。 四元数による方向や回転についてはこちらの記事で大変丁寧に解説されています。 四元数同士の補間
リアルタイム向けのスキニング手法として良く知られている Dual Quaternion*1 を用いた手法に関する論文を読みました。このスキニング手法は Maya などのソフトウェアでも標準で採用されています*2。 手法の具体的な中身についてはここでは触れませんが、論文の導入部分も (ざっと読んだだけでも) すごく良い勉強になったので、何点かメモを残しておきます。 読んだ論文について 読んだのは以下の2つの論文です。 Ladislav Kavan, Steven Collins, Jiri Zara, Carol O’Sullivan Skinning with Dual Quaternions I3D '07 Ladislav Kavan, Steven Collins, Jiri Zara, Carol O’Sullivan Geometric Skinning with Approxi
このページを最初にブックマークしてみませんか?
『yuki-koyama's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く