今天完成了机器人视觉的所有课程以及作业,确实是受益匪浅啊!

  

  最后一个话题是Bundle Adjustment. 机器人视觉学中,最顶尖的方法。

1、基于非线性优化的相机位姿估计

  之前已经在拟合一篇中,已经补完了非线性最小二乘拟合问题。Bundle Adjustment,中文是光束平差法,就是利用非线性最小二乘法来求取相机位姿,三维点坐标。在仅给定相机内部矩阵的条件下,对四周物体进行高精度重建。Bundle Adjustment的优化目标依旧是最小重复投影误差。

  

  与利用non-linear mean square 解三角同,bundle adjustment 中所有的参数,RCX均为变量。N幅图则有N个位姿,X个点,我们会得到非常大的jacobbian Matrix.本质上,需要使用雅克比矩阵进行梯度下降搜索。详细见博客——拟合

2、雅克比矩阵

  雅克比矩阵的行代表信息,列代表约束  

  每一行是一个点在该位姿下的误差,每一列代表f对x分量的偏导数。

  

  q x c 均为变量,q是旋转四元素,x 是三维点空间坐标,c 是相机光心在世界坐标系下的坐标。J 可以分为三部分,前4列代表对旋转求导,中间三列代表对c求导,最后三列代表对x求导。其中,对旋转求导又可以分解为对旋转矩阵求导X旋转矩阵对四元素q求导。一旦获得J的表达式,我们就可以使用Newton-Gaussian 迭代对x寻优了。求导后的数学表达式如下:

  

  

  如果有两个相机,则总的雅克比矩阵如下:

  

  通过同时迭代所有的q C X ,最终可以同时得到世界点坐标,相机位姿 == SLAM!!!

  

  

  

  

  

机器人学 —— 机器人视觉(Bundle Adjustment)的更多相关文章

  1. Bundle Adjustment光束平差法概述

    http://blog.csdn.net/abcjennifer/article/details/7588865 http://blog.csdn.net/ximenchuixuezijin/arti ...

  2. 机器人学 —— 机器人感知(Gaussian Model)

    机器人感知是UPNN机器人专项中的最后一门课程,其利用视觉方法来对环境进行感知.与之前提到的机器人视觉不同,机器人感知更侧重于对环境物体的识别与检测.与计算机视觉不同,机器人视觉所识别的物体往往不需要 ...

  3. bundle adjustment 玩具程序

    结合 bundle adjustment原理(1) 和 Levenberg-Marquardt 的 MATLAB 代码 两篇博客的成果,调用MATLAB R2016a中 bundleAdjustmen ...

  4. bundle adjustment原理(1)

    那些光束平差的工具,比如SBA.SSBA之类的虽然好,然而例子和教程都不够多且不够详细,让初学者难以上手. 要传入的参数虽然有解释,然而却也不是十分清楚其含义,具体要怎么生成,生成为什么形式. 我在折 ...

  5. bundle adjustment原理(1)转载

    转自菠菜僵尸 http://www.cnblogs.com/shepherd2015/p/5848430.html bundle adjustment原理(1) 那些光束平差的工具,比如SBA.SSB ...

  6. 机器人学 —— 机器人感知(Kalman Filter)

    对于机器人感知任务而言,经常需要预判物体的运动,保证机器人在物体与自身接触之前进行规避.比如无人机与障碍物的碰撞,足球机器人判断足球的位置.预判的前提是对当前状态进行准确的估计,比如足球的速度,障碍物 ...

  7. 机器人学 —— 机器人感知(Location)

    终于完成了Robotic SLAM 所有的内容了.说实话,课程的内容比较一般,但是作业还是挺有挑战性的.最后一章的内容是 Location. Location 是 Mapping 的逆过程.在给定ma ...

  8. 机器人学 —— 机器人感知(Mapping)

    对于移动机器人来说,最吸引人的莫过于SLAM,堪称Moving Robot 皇冠上的明珠.Perception 服务于 SLAM,Motion Plan基于SLAM.SLAM在移动机器人整个问题框架中 ...

  9. VIO的Bundle Adjustment推导

    IMU模型和运动积分 $R_{\tiny{WB}} \left( t +\Delta{t} \right) = R_{\tiny{WB}} \left( t \right) Exp\left( \in ...

随机推荐

  1. background-origin

    background-origin 设置元素背景图片的原始起始位置. 语法: background-origin : border-box | padding-box | content-box; 参 ...

  2. KMP算法原理

    前几天在看数据结构与算法,里面提到过kmp算法,一个超级经典的字符串匹配算法.虽然网上有一大堆关于kmp算法的介绍文章,但是我看过之后还是“不明觉厉”.所以打算自己写写,大家一起学习吧. 一.关于KM ...

  3. 配置Symfony2

    安装成功后打开server php app/console server:run 127.0.0.1:8000 然后在浏览器输入localhost/8000/config.php进行配置 1.date ...

  4. Mybatis错误调试(二)

    错误日志信息:  Caused by: java.sql.BatchUpdateException: ORA-00911: 无效字符 at oracle.jdbc.driver.OraclePrepa ...

  5. Matlab计算矩阵和函数梯度

    一.差分与微分 我自己的理解. 二.求解 2.1 矩阵 这就是matlab的计算结果.太小的话放大些: c = 4 5 9 7 2 1 5 2 6 >> [x,y]=gradient(c) ...

  6. Spring Batch学习

    今天准备研究下Spring Batch,然后看了一系列资料,如下还是比较好的教程吧. 链接: http://www.cnblogs.com/gulvzhe/archive/2011/12/20/229 ...

  7. html5碰撞小球模拟

    这里根据动量守恒和能量守恒定理来计算小球的位置,从而模拟完全弹性碰撞下的小球运行轨迹. html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  8. PowerDesigner(四)-业务处理模型(转)

    业务处理模型 业务处理模型(Business Process Model,BPM)以业务需求作为出发点,用图形的方式描述系统的任务和业务流程,注重的是处理过程中数据流程.业务处理模型是从业务人员的角度 ...

  9. JS控制图片拖动 放大 缩小 旋转 支持滚轮放大缩小 IE有效

    <html> <head>     <title>图片拖动,放大,缩小,转向</title> <script type="text/ja ...

  10. FullPage.js全屏滚动插件学习总结

    如今我们经常能见到全屏网站,尤其是国外网站.这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次.比如 iPhone 5C 的介绍页面(查看),QQ浏览器的官网站.如果 ...