3D Bbox MultiBin论文笔记

3D Bbox MultiBin论文笔记

介绍

这个工作提出了一种基于2d的目标框来回归3d的目标框的办法,基本的想法是将2d的目标框作为是3d框的投影,那么会有一些几何上的约束,利用这些几何上的约束,再加上目标的位姿和大小的话就可以基本上确定出3d框的位置。

效果图如下

avator

感觉上不是很好,但是毕竟是16年的一个工作,里面有些想法还是值得学习的。

contributions

  • 提出了一种基于2d的bbox和一些几何上的限制以及网络所估计的目标的方向和大小来估计3d pose 和dimension的办法

  • 提出了一种novel的MultiBin用于回归目标的方向

  • 在官方的KITTI数据集上还提出了3种不同的评测的方式

  • 作者还针对车做了实验,验证了这个工作的有效性

3D bbox estimation

之前所有的与deep learning相关的工作基本上都是基于2d的图像来做的,虽然效果也很好,但是毕竟不是真实的3d场景,而真实的3d场景在应用中至关重要,凡是与自主导航有关的基本上都会用到3d的信息,比如无人驾驶,机器人等,不仅需要知道周围的环境还要知道各个物体的具体位置,以及距离相机的位置。现在深度相机采这方面的图也比以前容易了。不过这方面有很大的挑战,首先是算力,从2d到到3d,数据上,直接多了一个维度,计算量自然加倍;数据量太大,像KITTI数据完全下完的话有180多G,而这还只是很小的一部分,但是如果这方面的工作得到很大的提升的话,对于机器人和无人驾驶行业将影响很大。

  • 3d和2d的不同

3d和2d的一个最明显的不同就是深度,3d的bbox有几个信息需要确定,第一是位置,可以用中心T来代表,第二是大小,用D来代表,第三是方向用R来表示。 实际上根据针孔相机模型,如果知道一个物体的世界坐标Pw和相机的位姿[R,T] 记为T的话再加上相机的内参K就可以算出来物体的像素坐标Puv = K*T*Pw,像素坐标指的是在相机的成像平面上的坐标,是个2维的,那么反过来现在根据相机拍的照我们已经知道了像素坐标,相机的内参K也是知道的,所以这时候只要知道相机的位姿或者是世界坐标中的其中一个,另一个就可以知道.

  • 采用multbin的方式估计方向

这个工作中简化了模型,即假设相机与物体是在同一个水平线上的,如图所示

avator

其中 $ \theta ray $ 与 $\theta$ 在训练的时候都是已经知道的信息,这个工作在推理的时候想要估计的就是$\theta local$ ,注意$theta$相当于是车的行驶方向,是最终要估计的量,但是paper里面举了个例子说明直接估计$theta$并不太好,

avator

如上图所示,车在行驶过程中并没有改变方向,但是因为相机拍的方向不同和远近不同,拍的图中似乎发现车改变了方向,但是真实并没有改,所以根据拍摄的图来直接预测方向是不可靠的.

这个在做gt的时候,实际上是把整个圆分成了几个bin,每个bin可以理解为一个扇形的中心,比如如果分成4块的话,bin就是[0,90,180,270], 0可以是看成是[-45,45]的中心。然后还有一个mask,其值是0,1,如果gt的角度落在了某个bin里面(就是与中心的角度差小于给定的数)就把这个弄成1,否则就是0,而且考虑到有些区域会离两边的中心的距离都差不多,就把它们都弄成1,就是说会有overlap.

方向的Loss如下

avator

每个bin对应的网络输出有三个(ci, cos(di), sin(di)), 其中ci代表的是角度落在这个bin内的置信程度,所以这一部分的loss是ce, 后面的两个数实际上对应上面公式中的di那一项,展开后就可以看出来.

此外是关于大小的Loss

avator

即MSE,其中D*是gt, 后面的两项的和是网络的输出,这里的D bar 代表的是平均的长度,最终的loss是三个loss的加权之后。整个网络结构设计的也比较简单,

avator

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦