0%

2019年3月5日 下午11:05

  1. 本质矩阵:只到达了相机坐标系,还处在三维阶段,只是利用刚体变换了一下坐标系
    1. 其中包含了外参
  2. 基本矩阵:就比较基本了,到达了像素坐标系,是二维坐标系
    1. 不仅包含了外参,还包含了内参
  3. 基本矩阵包含了本质矩阵。
  4. 在实现过程中:
    1. 我们是先通过匹配点对求本质矩阵
    2. 在通过本质矩阵*k,求基本矩阵。

2019年3月5日 下午8:29

注:

  1. 这个错误的意思:就是没有找到方法的实现
  2. 那我们就猜测出现的原因:
    1. cmake中没有引入我们需要的问题
    2. 编译器的版本不正确
      1. debug\release
      2. 32\64
    3. 方法实现我们忘了写了
    4. 参考:
      1. Undefined symbols for architecture x86_64 - 简书

修改之前:

修改之后:

修改方法:

1
2
3
set(VISUAL_HEADER visualizer.h)  #${VISUAL_HEADER}
set(VISUAL_SOURCE visualizer.cc)
add_executable(task3_test_ba ${BA_FILES} ${VISUAL_HEADER} ${VISUAL_SOURCE})

也是一样的错误:

unknown load command 0x32

详细错误:

1
2
3
4
5
6
Undefined symbols for architecture x86_64:
"features::Visualizer::draw_matches(std::shared_ptr<core::Image<unsigned char> const>, std::shared_ptr<core::Image<unsigned char> const>, std::vector<sfm::Correspondence2D2D, std::allocator<sfm::Correspondence2D2D> > const&)", referenced from:
visualize_matching(features::Matching::Result const&, std::shared_ptr<core::Image<unsigned char> >, std::shared_ptr<core::Image<unsigned char> >, std::vector<math::Vector<float, 2>, std::allocator<math::Vector<float, 2> > > const&, std::vector<math::Vector<float, 2>, std::allocator<math::Vector<float, 2> > > const&) in class3_test_bundle_adjustment.cc.o
"features::Visualizer::draw_keypoints(std::shared_ptr<core::Image<unsigned char> const>, std::vector<features::Visualizer::Keypoint, std::allocator<features::Visualizer::Keypoint> > const&, features::Visualizer::KeypointStyle)", referenced from:
sift_feature_matching(sfm::FeatureSet&, sfm::FeatureSet&, std::shared_ptr<core::Image<unsigned char> >, std::shared_ptr<core::Image<unsigned char> >) in class3_test_bundle_adjustment.cc.o
ld: symbol(s) not found for architecture x86_64

2019年3月5日 下午8:21
对极几何与基本矩阵 - 知乎

  1. 解释清楚了对极几何
  2. 对极几何是几何关系,我们要转换成代数形式,让计算机求解
  3. 根据我们建立的三维转换模型(世界坐标系、相机坐标系、图像坐标系),我们可以推导出有以下两个关系成立:
    1. 这里的**观测点**:指的是在相机坐标系下
  4. 根据以上两个初始模型,我们可以可以联立,不断简化
    1. 简化的目标:将未知参数\R T尽肯能的放在一起,最后从结果上看看要求解这两个参数,我们需要哪些条件。
  5. 这篇文章没有讲解求解的过程

对极点可以在图像外

  1. 对极点,对极线
    1. 我们可以看到在左图对极平面旋转时对极点是不变的,而在相机图像上所有对极线都会交于对极点
    2. 这个对极点就是另一个相机中心在其图像上的像,*当然正如右图所示, 对极点可以在图像外 *。
    3. 一种极端的情况就是:立体匹配,也就是相机标定之后,尽可能的要基线与相机平面平行
  2. 理解这里的“对”
    1. 需要理解这里的场景:两个相机面对着现实中的一根棍子
    2. 这根棍子,会在两个相机中都成像,也就是一对像

我们知道由相机1到相机2是刚体运动,那么观测点P在相机1坐标系的坐标就可以通过刚体转换变成相机2坐标系下

这句话的理解:

  1. 空间中一个坐标系,总可以通过刚体变换转换到另外一个个坐标系的
    1. 相机坐标系的X轴和Y轴分别平行于图像的x轴和y轴,z轴垂直与成像平面并且z轴的方向的设置将使摄像机前的所有的z坐标为正数。
    2. 两个视角都按上面的方法各自建立一套坐标系
  2. 有这么一个问题:
    1. 一个不动的物体,我们用同一个相机从两个角度去照下两张照片。问题:这两张照片假设放在拍摄地点不动,照片中的所有点是否可以按照同一个旋转平移矩阵直接转换得到?
      1. 这个问题,我们通过生活经验就可以知道是可以的,但是具体的转换关系可能我们并不知道。
        1. 说明这个问题就是一个建模求解的问题
      2. 这里的P‘和P其实是整张图片的二维坐标(z=0),根据这个公式,我们一次性就可以得到另一位置的图像(也是二维的)。
        1. 这个转换的过程我们要从三维空间想象,但是转换的结果P’我们可以理解成二维的。

2019年3月4日 上午11:11

在上王泳的模式识别机器学习时,我发现:我对问题理解的不透彻,具体来说:

  1. 我不能讲清楚一个知识的来源,以及他的中心思想。对于我来说,各个知识仅仅当成是一个名词来学习
  2. 对于一个问题,我只知道要用什么方法解决,而为什么这个方法能解决,能解决到什么地步我都不清楚
  3. 这就导致我对这些知识没有一个本质的认识,最后知识零散的知识点,学完就忘

2019年2月5日 下午10:32

单目视觉的运动目标跟踪定位(附视频+PPT)|硬创公开课 | 雷锋网

双目(stereo camera)特点:

  1. 需要有外参
  2. 需多相机同步
  3. 使用三角度量
    1. 基线越短精度越低
  4. 可以无需被测物体特征点几何约束模型
    1. 也就被测物体的几何相对关系
  5. 有效视场低
  6. 一定可以得到3DOF( 位姿量 )
    1. 在匹配特征点不共线的情况下可以得到6DOF