我们在这项工作中提出一种从单张RGB图片估计车辆在相机坐标系中姿态的方法。与传统方法不同的是,我们不采用先估计观测角再进行转换的二步方法,而是通过提取有几何意义的中间特征直接估计车辆姿态。如何设计这样的中间特征并有效地监督模型学习这样的特征是本文主要探索的研究问题。我们提出用一种插值立方体的表示编码车辆的朝向,并定义其在图片的投影点坐标作为中间几何特征。这样的定义只使用原始的标注从而不依赖于更富有细节的标注。这样定义中间特征同时引入了基于投影不变的先验知识。我们根据这样的先验信息提出了一项可以在无标注数据上计算的损失函数,从而可以利用无标注的数据监督中间特征的学习。本文实现的基于单目相机的系统在KITTI数据集上取得了良好的车辆姿态估计精度,甚至可以与一些双目系统相比。相关的代码和预训练模型已经在项目网站开源。
本期AI TIME PhD直播间我们有幸邀请到香港科技大学视觉与系统设计实验室的计算机系博士——李世超,为我们带来报告分享《探索单目车辆估计中的中间几何表示》
李世超:香港科技大学计算机系在读博士,师从郑光廷教授,本科毕业于浙江大学。其研究兴趣包括三维视觉和机器学习,参与过的研究课题有三维目标检测,姿态估计,基于物理的数值仿真等。其在CVPR,ECCV, T-PE,T-ED等会议和期刊发表过论文,且CVPR 2020的论文入选口头报告。
个人主页:
https://nicholasli1995.github.io/
01
背 景
(1) 车辆姿态估计的应用场景
自动驾驶系统的感知模块,对周围车辆姿态分析有助于自动驾驶系统预测周围车辆动向。这里的车辆姿态指相机坐标系下车辆的3自由度姿态。
交通监管系统中,对于来往车流姿态的精准感知可以帮助监管系统分析可能存在异常情况。异常形态的检测为分析交通事故和交通违章情况带来帮助。
(2) 主流方法及局限性
随着深度学习的普及和自动驾驶标注数据集的增多,目前前人的龚总主要还是采用一个直接回归的方式进行车辆姿态估计。
直接回归法采用深度神经网络(DNN)作为一个黑盒,直接从RGB图像像素信息去和角度表示做回归训练,学习车辆姿态估计模型。具体的相关工作包括Deep3DBox(Mousavian et. al., CVPR 2017)、FQ-NET(Liu et. al., CVPR 2019)、DSGN(Chen et. al., CVPR 2020)等。
以上方法的局限性有模型设计和回归拟合的困难性。
首先模型设计方面,车辆的局部特征很难用于确定车辆姿态。根据车辆在相机坐标系位置不同,会有以下两种情况产生:相同车辆姿态可能产生不同的局部形貌;不同车辆姿态可能产生相似的局部形貌。比如3DBox本身是CNN的方法,很难通过局部特征回归到相机坐标系的车辆姿态。
对于上述问题,现有的主流方法引入了观测角。首先估计车辆的观测角,即物体坐标系的车辆姿态,训练一个模型从局部形貌预测观测角。
引入观测角的方法也带来了新的问题,首先车辆姿态估计的模型没有得到直接优化,训练过程中学习的是从局部形貌到观测角的预测关系;其次物体坐标系的估计又会产生新的误差最终累积到车辆姿态估计中。
拟合困难性方面,像素到姿态向量的非线性映射难以拟合。比如像素空间变化非常大(比如车体颜色改变)时车辆姿态并无明显变化,反过来像素空间变化甚微,但车辆姿态改变巨大,具体如下图的例子。常用的ReLU网络是分段线性函数,拟合复杂的非线性函数需要巨量的标注实例
02
方 法
考虑到现行车辆姿态估计方法存在的问题,本文提出一个Ego-Net模型,通过设计车辆局部形貌的中间几何表示,直接估计车辆在相机坐标系下的姿态。
本文对中间几何表示对出了三个要求:显著、标注易获取、易理解。因此为了使标注易获取,Ego-Net的回归目标是三维框的顶点以及每条边的插值点。这里使用插值点使为了使得中间特征更显著。
富有细节的中间特征会带来大量的标注压力,尤其在自动驾驶场景中,可能新的场景就会引入新的标注要求。本文选择将定义好的每个车辆部位投影到像面,其像面坐标的集合构成了中间几何表示。这个投影过程仅需要相机的内参数信息,所以产生中间特征的过程比较容易。
下图是Ego-Net的整体框架。首先将图像输入到FCN(全卷积网络)回归车辆的概率图——Heatmaps。通过Heatmaps回归这些车辆部位在输入的局部坐标,将局部坐标转换为像面坐标之后,进入全连接层回归三维坐标。其中,在训练过程中,Heatmaps、2D坐标和3D坐标都有相应标注进行监督。
交叉比损失: 中间几何表示中有一个先验知识:共线四点的交叉比在投影前后不变。因此我们可以对相面上坐标的交叉比进行监督,并且交叉比损失不需要标注信息就可以进行监督。
对于共线4点v1到v4,其交叉比可由下式表示。
如果投影前后交叉比不一致,模型会受到下面交叉比损失的惩罚。
03
实 验
数据集与评价指标:
本文仅使用KITTI数据集的训练集部分进行模型训练,在计算交叉比的无标注车辆图片是选用了Apolloscape数据集。
评价指标方面选用了KITTI官方的AOS指标和经典的车辆姿态估计指标APBEV。
实验结果:
(1) 与直接回归的方法比较:
由于Ego-Net没有将KITTI验证集部分投入训练,因此可以使用KITTI 验证集部分进行模型效果测试,如下表。
下面是在 KITTI test set 上的AOS验证结果
(2) 将Ego-Net作为模块使用
一阶段的3D目标检测方法难以检测目标姿态,因此可以将Ego-Net作为其中一个模块矫正错误预测。下面从AOS和APBEV两个性能指标来验证了Ego-Net在提升3D目标检测器性能的有效性。
(3) 对深度变化和遮挡的鲁棒性
AOE指角度预测误差,值越小表示鲁棒性越好。下面将Ego-Net和D4LCN以及M3D-RPN在KITTI数据集是测试,发现对于远距离(depth)和不同的遮挡等级,Ego-Net的AOE最小,表现最好,鲁棒性最强。
项目源码:
https://github.com/Nicholasli1995/EgoNet