目录
1.1 以ORB为例 oriented fast and brief
1.特征点提取与匹配
观测模型中利用了每个点的像素坐标,所以首先我们要根据图像的到点的坐标。
在图片中提取特征点,找利于区别的点——角特征点。
特征点在图像中可以由像素坐标来描述,也可能会有大小,方向,评分来评价点。
描述子是用来判断这几个点是不是同一个点的。
二进制描述子 [0 1 01 1 10……] 更倾向于二进制描述子
浮点描述子[0.01,0.35……]
1.1 以ORB为例 oriented fast and brief
通过上述操作,可以得到点的位置,以及一个角度的信息。
同时,除了旋转不变性外,还有平移不变性和尺度不变性,分别描述在相机左右平移以及前进后退过程中的描述子保持一致。
平移一致性一般能够保持。 ORB满足了旋转和平移,没有满足尺度。
SIFT都满足了,但是计算就会比较麻烦。
2. 2D-2D 对极几何
推导如下:
计算在Eigen中是可以实现的。
五点和八点差距不大,所以不用非用少的点去算,哪个简单用哪个,五点算起来比较复杂的。
单目相机的工作模式:
先有一段初始化过程,按照初始化时候选择的尺度,去计算后面的运动轨迹
后面有3D-2D,根据PnP计算后面相机的运动过程,后面的尺度都是使用前面确定的。
由于每一步累计误差,一开始确定尺度为1,但是后面的尺度可能会发生变化,实际变大变小点都有可能,导致地图会变大或者变小,这是不可避免的,这是单目相机本质上只看到投影的结果,这样的现象又被称之为尺度漂移。
存在误匹配,可以通过RANSAC把错误匹配去掉。假设两图中有很多匹配,存在对错。随机选择八对,算出E,R,t,通过这个关系算所有匹配点中满足这一关系的点对有多少,如果很多,就说明是这个匹配是对的,反之,可能是错的,就舍弃掉。这个思路很广泛的使用,在有很大噪声的情况下。很多问题都可以用这个思路解决。
实际中,两种都会试一试,根据环境来决定。
3. 3D-2D PnP
这些算法在opencv中都有,有时候也不用那么关注原理。
这部分没有详细进行推导。
4. 3D-3D ICP
不需要投影了。
5. 三角化与深度估计
要求较大的视差。