$$ \def\v{\boldsymbol} \def\m{\boldsymbol} \def\trans{^\mathsf{T}} \def\inv{^{-1}} \def\bmat{\begin{pmatrix}} \def\emat{\end{pmatrix}} \def\diag{\operatorname{diag}} \def\tr{\operatorname{tr}} \def\ad{\operatorname{ad}} \def\Ad{\operatorname{Ad}} \def\E{\operatorname{E}} \def\det#1{| #1 |} \def\her{^\mathsf{H}} \def\wed{\wedge} \def\given{\mid} \def\defeq{\triangleq} \def\Ys{{\cal Y}} \def\argmin{\mathop{\mathrm{argmin}}} \def\argmax{\mathop{\mathrm{argmax}}} \def\blockdiag{\mathop{\mathrm{blockdiag}}} \def\inner#1{\langle #1 \rangle} $$

CV・CG・ロボティクスのためのリー群・リー代数入門: (0) 目次

講演の機会を頂きました.関係各位に感謝します.

コンピュータビジョン (CV), コンピュータグラフィクス (CG), ロボティクスなどで,特に姿勢推定や姿勢制御などを扱う際にリー群,リー代数の知識が必要になることがある.

具体的には,論文などを読んでいると,回転行列,剛体変換行列,射影変換行列などを表す際に当たり前のように行列指数関数が出てきて,何が何だかわからない (AA略),ということがしばしば起きる.これを何とか理解したい.


いくつか例を挙げると

The matrix $E_\mathcal{CW}$ contains a rotation and a translation component and is a member of the Lie group $SE(3)$, the set of 3D rigid-body transformations.

...

Changes to camera pose are represented by left-multiplication with a $4 \times 4$ camera motion $M$:
$$
E'_\mathcal{CW} = M E_\mathcal{CW} = \exp(\v{\mu}) E_\mathcal{CW}
$$ where the camera motion is also a member of $SE(3)$ and can be minimally parametrised with a six-vector $\v{\mu}$ using the exponential map.

G. Klein and D. Murray, Parallel Tracking and Mapping for Small AR Workspaces, Proc. ISMAR 2007.

The projective transformation matrix $\m{G}(\v{x})$ is in the group $\mathbb{SL}(3)$ which is a Lie group. The Lie algebra associated to this group is $\mathfrak{sl}(3)$. Matrices in this algebra are $(3 \times 3)$ with a null trace. The exponential map is a homeomorphism between a neighborhood of $\m{I} \in \mathbb{SL}(3)$ and a neighborhood of the null matrix $\m{0} \in \mathfrak{sl}(3)$.


Let $\m{A}_1, \m{A}_1, \ldots, \m{A}_8$ be a basis of the the Lie algebra $\mathfrak{sl}(3)$. A matrix $\m{A}(\v{x}) \in \mathfrak{sl}(3)$ can be written as follows:
$$
\m{A}(\v{x}) = \sum_{i = 1}^8 x_i \m{A}_i.
$$

A projective transformation $\m{G}(\v{x}) \in \mathbb{SL}(3)$ in the neighborhood of $\m{I}$ can be parameterized as follows:
$$
\m{G}(\v{x}) = \exp(\m{A}(\v{x})) = \sum_{i = 0}^\infty \frac{1}{i!} (\m{A}(\v{x}))^i.
$$

S. Benhimane and E. Malis, Homography-based 2D Visual Tracking and Servoing, Int. J. Robotics Res., 2007.

During optimization, a minimal representation for the camera pose is required, which is given by the corresponding element $\v{\xi} \in \mathfrak{se}(3)$ of the associated Lie-algebra. Elements are mapped to $SE(3)$ by the exponential map $\m{G} = \exp_{\mathfrak{se}(3)}(\v{\xi})$, its inverse being denoted by $\xi = \log_{SE(3)}(\m{G})$. With a slight abuse of notation, we consistently use elements of se(3) to represent poses, which we directly write as vector $\v{\xi} \in \mathbb{R}^6$ .

J. Engel et al., LSD-SLAM: Large-Scale Direct Monocular SLAM, Proc. ECCV 2014.

…などと書かれていて,予備知識がないと呪文にしか見えない.これらが意味するところは,リー代数なるものを使って座標変換行列をパラメータ表示しているということなのだが,このことを基本から解説してくれる教科書は,当該分野にはあまり多くない.

そのため数学の本を紐解くことになるのだが,数学の本は数学を学ぶ人のために書かれていることが多く,私のように数学的基礎体力のない者にはなかなか歯が立たない (個人の感想です).応用の視点から書かれたものとなると物理の本が多いのだが,これまたちょっと視点が違うというか力点の置かれ方が違っていて,知りたい内容になかなかたどり着けない (個人の感想です).

というわけで,CV,CG,ロボティクスなどの分野向けにリー群とリー代数を基本から説明することを試みたい.当面の目標は

  • 指数写像による座標変換パラメータ表示の意味と背景を述べること
  • 回転の表現としてよく用いられる回転ベクトルや四元数 (クォータニオン) が何者なのかを,リー群・リー代数の言葉で解き明かすこと

に設定する.

基本方針として,「まず定義を述べてからその概念の持つ性質を導いて応用例を示す」という伝統的なロジックの代わりに,具体的な目的ドリブンで「なぜそのような概念を導入する必要があるのか」を理解するためのストーリーを提示することに重きを置く.このような方針は,厳密さ,簡潔さが失われる,読者自身がストーリーを構築する自由を阻みがちであるなど問題点も山積する一方で,多くの読者が「読みやすい」と感じてくれるようで,経験上かなりの需要と効果を感じている.その辺の話は以前報告した拙文 (PDF) を参照頂きたい.

目次

かなり長くなるので (といっても教科書をまともに読むよりは読みやすいものを目指すが),複数のエントリに分けていく.(ブログの慣例に従って個々の記事をエントリと呼ぶ.シリーズ全体は「本テキスト」 などと呼ぶことにする)

参考文献








本テキストを書くにあたって直接的に参照することが多かった 2 冊として以下を挙げる.

直接的な参照はあまりしていない (と思う) が,本テキストの構想に重要な影響を与えたものとして以下の 2 冊を挙げたい.いずれも,回転を中心とした座標変換の話を初等的な数学を道具として掘り下げていき,次第にそれらとリー群・リー代数の関係を垣間見せる構成になっている.これらに対して本テキストは,最初からリー群・リー代数に向き合うことを目指した.

これらのほかに,部分的に参照した文献としては以下が挙げられる.

そのほか,各エントリで個別に参考文献を挙げる場合がある.

次のエントリへ