视觉SLAM整理 (1)

来源:互联网 发布:淘宝卖龙年限定 编辑:程序博客网 时间:2024/06/05 15:06

一、三个坐标系(世界坐标、相机坐标、图像坐标)

1、一个定则(右手定则):

注:图片来源http://www.zybang.com/question/35583619443d2163d5dd731826c47f1a.html

2、三个坐标系图解:

注:图片来源http://blog.sina.com.cn/s/blog_b364631a0101imw1.html

3、两个变换

  • 刚体变换(世界坐标【x,y,z】->相机坐标【Xc,Xc,Xc】)
  • 透视变换 (相机坐标->图像坐标【Xu,Xv】)

    • 注:图片来源http://blog.sina.com.cn/s/blog_b364631a0101imw1.html

      • 公式:
        • Xu = Xc * f / Zc
        • Xv = Yc * f / Zc
      • 推倒过程:
        • 将xz面、yz面分开看

二、线性回归

概念:当Ax = B无解时,需要通过最小化误差的平方和(即最小二乘)找最优解

三、OpenCV图像配准:没有ICP算法?

内容:匹配两帧之间的特征点( R3

1、一个最终目的:

  • 最小化对应点的变化误差(即
    Mini=1n=||q(Rp+t)||2
  • 最终计算出相机位姿

2、两个方法:

  • 直接法
  • 特征法

|2017.2.10.23.04

3、匹配流程

1. 读取图片(包括RGB和DEP)-> imread
2. 构造特征点提取器和描述子提取器(SIFT)-> cv::FeatureDetector\DescriptorExtractor::create
3. 提取关键点detect(rgb,cv::KeyPoint)
4.计算描述子compute(rgb,cv::KeyPoint,cv::Mat)
5.匹配描述子
vector< cv::DMatch > matches;
cv::FlannBasedMatcher matcher;
matcher.match( desp1, desp2, matches );

6. 筛选匹配关系->去掉距离太远的匹配

|2017.2.19.11.21

四、视觉里程计(visual odometry)

1、概念:匹配两帧->估计运动->累加运动

2、流程:

  • 计算两帧的关键点和特征描述子
  • 匹配两帧的关键点和特征描述子(PnP)
  • 如果inliers太少,则丢弃该帧,否则融合点云
  • 重复第一步
0 0
原创粉丝点击