一、问题概述
这篇文章是在QuadricSLAM的基础上进行的改进,也就是说依然使用了椭球对物体进行描述,论文中提到使用椭球本身是因为椭球其参数化表示可以完全通过相机的检测框来进行约束,二次曲面与对偶二次曲面可以参考链接,文章使用了对偶二次曲面的形式进行描述。
在SLAM的部分,文章将物体参数与相机位姿一起进行优化,因此SLAM的问题描述变为:
而我们需要的,就是最大化这一概率:
为了简化问题,论文假设有一个单独的前端来提供准确的位姿,因为论文进行了两个数据集上的实验,在这两个实验中分别使用ORBSLAM和一篇无人机SLAM来提供位姿信息。
二、ROSHAN系统介绍
几何包围框测量模型
由于使用了二次曲面对物体进行描述,二次曲面进行投影可以得到二维成像平面上的二次曲线,这一过程中投影可以表示为:
根据投影关系将二次曲面投影到二次曲线,由于二次曲线和切线存在相切关系,所以可以解出包围框四条边的坐标:
所以对于一个物体来说,预测的包围框可以表示为:
包围框测量模型
在QuadricSLAM中,作者考虑到不完全处在图像范围内的物体容易对物体产生不合适的约束,所以采用了缩圈的方式,将包围框缩小到图像范围内,利用范围内的包围框建立约束,在ROSHAN中,作者认为只有当包围框刚好包裹住物体时,提供的约束才更加准确。
考虑到这一点,作者将包围框的四条边分为两类:约束边和非约束边。对于QuadricSLAM中优化的情况,作者认为缩小过的边其实不是真正的物体边缘,所以将这种边看作是非约束边,除此之外,对于一些纹理、光流不合适的位置产生的包围框边缘,作者也认为是非约束边。
根据论文中的配图,两个窗户中偏右的那一个的窗户的右侧边缘和偏左窗户的右侧边缘都属于非约束边,也就是说非约束边本身应该就是在说不准确的边缘提取,根据图像范围缩小包围框本身缩小后的边缘就是不准确的,同时物体边缘一般存在有更加明显的梯度变化,所以上图中的两个窗户都检测出了非约束边。对于非约束边,ROSHAN直接进行舍弃处理,只用约束边进行后续的优化。
纹理平面测量模型
如果在前面包围框的部分物体能够很准确地进行检测,那么四条边就都是约束边,但对于九自由度的椭球,这四个约束还不够,论文又提出了纹理平面这一约束。
简单来说纹理平面就是根据2d包围框内部的特征点,对他们进行三角化之后,用3d特征点进行空间平面的拟合,这部分特征点按道理是落在物体表面上的,所以拟合出来的平面一定程度上也是物体某一角度下的切面。
语义形状先验
由于五个面依然无法确定物体的椭球形状,论文又使用语义先验信息,通过对不同类别的物体设置先验的形状信息,给椭球体一个基本的优化方向,用来弥补最后一个面的缺失。
单目物体初始化与在线优化
前面说的这一堆,其实都是用在了物体的优化上,在QuadricSLAM中,物体是先提取再和位姿一起进行优化,而提取过程QuadricSLAM的方法是需要多帧联合约束来初始化的,针对这一点的优化也才SO-SLAM中进行了,在ROSHAN中,初始化的方法变得更加粗暴,直接利用了三个假设:
①椭球体中心位于2d包围框中心的反向延长线上,深度为框内的平均深度。
②所有物体初始化方向相同。
③所有物体的形状为语义先验形状的平均值。
这三条假设实际上就将椭球体位置、朝向和形状九个自由度做了限制,直接给出了一个物体的椭球体初值,能够影响这个初值的,只有2d包围框以及语义先验信息。采用这种初始化的方式,虽然很直接但确实解决了QuadricSLAM里面需要多帧才能初始化的问题。
在初始化之后,物体和相机位姿一起在线优化来得到更加准确的椭球体表达式:
也就是说ROSHAN选择了另一种思路来对物体进行描述,初始化的初值可能并没有那么准确,但是胜在简单而且快速,多出来的时间用于在线的优化,只要优化足够准确,那么就可以弥补初始化的不足。