在多视角几何中,特别是在一些恢复相机运动轨迹的模型中,我们需要将相机的旋转和平移表示出来。通常情况下,我们都是在欧几里得空间中用R和t来进行相应的运算得到相机轨迹。然而,在很多论文中,作者们却喜欢用Lie algebra se(3)、so(3) 以及 Lie group SE(3)、SO(3) 之类的表示。紧接着,出现了很多术语,比如twist, tangent space,也出现了一些运算,比如exp(),log()之类的,看得我是云里雾里。
比如下面这个公式, 是由三个角速度组成的向量,
表示对应的旋转矩阵,
表示由三个角速度组成的反对称矩阵(skew-symmetric matrix)。
本篇博客将从最基础的内容出发,用直观的容易理解的方式对旋转矩阵和李代数之间的关系进行推导,如有错误,请指出,希望共同进步。
预备知识:
在进入正题之前,我们先需要复习下向量叉积(cross product),以及反对称矩阵(skew symmetric matrix),在计算机视觉中最初遇到这些概念应该是在求解本征矩阵时,然而,他们在沟通刚体变换矩阵和李代数之间扮演着十分重要的作用。
对给定的两个三维实数向量,它们的叉积可以通过下面的公式计算出来:
![叉积](https://i-blog.csdnimg.cn/blog_migrate/029a68bde6443b436214e92a848b37d6.png)
![叉积性质](https://i-blog.csdnimg.cn/blog_migrate/cf15dbaffbc0805cd0128e87d4210fbd.png)
这种两个向量的运算可以通过一个矩阵来表示,即
![反对称矩阵](https://i-blog.csdnimg.cn/blog_migrate/3bb991f2f06b8b1c9448efb76d2868b1.png)
请记住这个性质
。并且任意一个3*3的反对称矩阵,我们能够找到一个三维向量和它对应。 至于什么是刚体变换,什么是旋转矩阵,旋转矩阵有哪些性质这些更基础的知识在这里不再一一补充。
下面的内容中,都是基于3维空间,所以没有特别说明时,所说的旋转矩阵都是3*3的,平移向量也是3维的。并且所有向量上带一个帽子的表示的是它的反对称矩阵形式。
旋转矩阵与 so(3):
我们知道对于旋转矩阵,旋转矩阵本身乘以它的转置等于单位矩阵:
![旋转矩阵性质](https://i-blog.csdnimg.cn/blog_migrate/79f4b2a68cf0dae40bb53f0bf56c4924.png)
![旋转矩阵求导](https://i-blog.csdnimg.cn/blog_migrate/158f9f1cd16646974c8bb15ea694c8ef.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/d3c68a7fa17e3249056854e9fd2e7995.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/14eddd3fb52c01c8cc8492248a383609.png)
在介绍我们期待已久的指数映射前,先挖掘挖掘(3)式的一些含义。如果初始时刻
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/3f61a503c2d413cc9ba79f7dec242c10.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/b69281ad985cc610916fa9174b65b38c.png)
注意是大写
: ![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/373cd2e635198aa971b8b3fc3563a26f.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/945886c3aad5245dff5cf694b076c48e.png)
指数映射:
回到公式(3),把旋转矩阵R用x替换掉,如下:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/5ab59481c2586d52e3b8fdc395caf3b8.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/607e2c4ab557c02a96f99d75ac33cfc6.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/8588847e80967913480c87525135d6ef.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/8804457448d26f94606009daf1dfa825.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/776aca5f9b3400718cf28fa567261977.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/87892eb8dff7db6f2e78761e260c2fc6.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/03ba9d5537cbf9f903cac7434ae402ed.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/8e06c9baf2df03158069b64fdb15e953.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/c77471932c2411b27d461790b5361974.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/74ddb1c8e91188a9077d3136eacf13db.png)
上面推导的是连续时间的,并且假设||w||=1” role=”presentation” style=”position: relative;”>||w||=1||w||=1。表达成公式就是如下情况:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/a1f0ff9834b8445649021163c089b42e.png)
简单整理:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/28b6561a31d223d7713546c067faaa79.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/699635505e923c8d1d534a5642d35e37.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/08fbc83382510458e32a0d102b45297f.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/782fed78494f17773707a9318237dcc7.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/d7ad1504c8b9cd46bf65f139624fd592.png)
刚体变换和SE(3):
前面还只说了旋转,实际上刚体变换还有平移。所以,和只有旋转矩阵构成的李群SO(3) 一样,我们也可以有由刚体变换得到的李群SE(3) :
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/4bd63868241cdef858bccf2eac4a6525.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/ebc318db1c2fce888eedb73b4f99946d.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/47a1215a1fba1149826d0b59c04c63de.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/4f82a7a003d0210dd68c9d388214bc47.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/edfa218e35f07d02b8244bc814e2d34e.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/28df46d63ab38fc4d00e3785e8e6c85a.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/ed7e6ceb92913d1bf9aee28dbe9dda06.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/af620a8b8202d1eee275dcb935d055de.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/a2e6a1ee0700064441c9464c7f3169fc.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/ee42d61f9a664a047f870ec90b8317b5.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/16066c25468f002606fa0e7ba37e4afc.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/131ac8300daaa20bee7f77ff6221440d.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/a3d95e7d934e65a3bf70902826358160.png)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/a879dbfce5166a02de8d99a50f2fc1e0.png)
这里也来一个去掉时间t的版本:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/dfd1bbcf14634e8f4afa8607e2ab81af.png)
矩阵的各个部分对应如下:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/ef7b56d9ade2ffeac7743464e759de9b.png)
到这里基本理清了SE,SO之类的与刚体变换之间的关系,看视觉SLAM类的论文以及相应代码中有关lie部分应该没啥压力了。
各种论文里涉及到的求解位姿矩阵时的非线性最小二乘优化(牛顿法,LM法),其中增量都是在单位矩阵处的tangent space se(3)上计算,获得的增量(即相邻位姿变换关系)通过指数映射映射回多面体SE(3)上。
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/4f711c548c90dc17e66e6f927f1d3485.png)
这篇博文可以说是我看慕尼黑工大(TUM)多视角几何教学视频的笔记,YouTube链接点击这里,这位牛的飞老师的英语吐字清晰,大家应该能够听懂。当然,老师也是参看的别人的文档,这里我也把讲lie 和计算机视觉的两个文档传到了csdn上,供大家下载。
祝好
–白巧克力