CubeSLAM: Monocular 3D Object SLAM
这篇文章将单目3D物体检测以及单目SLAM放在同一个框架里面优化,得到的结果是同时更优化的SLAM结果以及检测结果。这篇文章属于所谓物体级的SLAM。
单目图片理解
单目3D proposal生成
本文的思路是通过一个角点加上消失点&旋转矩阵以及2D 检测框还原三维结果。
由旋转矩阵得到长方形框三个消失点的公式为:
由上图可知,以a小图为例,在已知消失点以及的情况下,其余的点可以用求交点的方式得到事实上后面的点选择空间很大.
得到角点后进一步收缩自由度 对于任意姿态的物体,选取不共面的四个角点如1,2,4,7进行PnP求解
对于地面上的物体,假设其roll,pitch角度都为0度,就可以不使用PnP求解了,可以根据相机高度将底面的角点直接投影到世界坐标中
一般来说,我们可以用神经网络直接输出角度,但是这里为了提高泛化性能,选择采样并各自评分以计算旋转矩阵。
Proposal 评分
总体损失函数为:
其中为损失函数,为权重超参数
- ,对图片运行canny edge,基于此建立distance map,对每一个竖线,采样10个点,计算距离图中的距离值总和,最后得分除以2D框的对角线长度
-
前一个函数对false positive的小直线段非常敏感,首先找出上下面的长边,找出相对消失点倾斜角最大与最小的.为点直线的倾斜角, 本质上是要求长边经过消失点
-
如果长宽比很大的,给予一个惩罚。
SLAM
bundle adjustment问题
记相机姿态、3D物体、特征点分别为, BA就描述为以下的最小二乘问题
右下角的表达的是不同误差之间的协方差
误差项
- 相机、物体与世界坐标系的转换应与相机中物体的相对转换有对应
其中为dimension 2. 3D物体在投影到相机中,与2D框的中心、长宽的误差 3. 物体与点的对应,已知点P在物体O中,那么如果点P不在这个3D框里面就给予惩罚. 4. 点与相机的对应,与传统的feature-based SLAM一致。其中为点P原本被观察到的相机坐标。
作者进一步讨论了动态场景中的SLAM,这里省略