0%

CaDDN

Categorical Depth Distribution Network for Monocular 3D Object Detection

University of Toronto Robotics Institute

研究动机

​ 与其他论文相似,本文也是把深度的预测作为了核心问题。为了提高深度预测的准确度,该模型将连续的深度转化为离散的深度值。划分深度区间,计算分布。最后生成BEV表示来进行分类与检测。本文亮点在于将难以预测的深度值转化为容易预测的离散值,并且采用了效果较好的BEV表示来进行后续的分类和回归。

网络模型

​ 论文采用ResNet-101作为Image Backbone,对输入的2D图像进行处理来生成图像特征。之后根据图像特征来生成深度分布。同时抽取其中的Block1层来获取高空间分辨率。高空间分辨率可以避免Frustum Grid的低分辨率和过采样。模型利用DeepLabV3类似的方法来获取图像的深度分布。之后根据图像的深度分布和图像特征来生成Frustum Features。

G(u,v)=D(u,v)F(u,v)G(u,v)=D(u,v) \bigotimes F(u,v)

​ 之后将Frustum Grid转化为Voxel Features,最后再将Voxel Featrues拍扁生成BEV表示

深度离散化

​ 论文中关键点在于深度的离散化,常用的离散化方式有UD(等距)、SID(间距递增)、LID(线性递增离散化),本文主要采用LID的离散化方法:

dc=dmin+dmaxdminD(D+1)di(di+1)d_c = d_{min} + \frac{d_{max}-d_{min}}{D(D+1)}\cdot d_i(d_i+1)

深度分布标签生成

​ 模型训练过程中需要标准的深度分布标签。论文从将LiDAR的点云投影到图像框架上来生成sparse dense maps。接着将depth maps降采样到与feature map相同大小。接着将depth maps用LID的方式生成depth bin。接着用one-hot编码来生成对应的标签。

Loss

Ldepth=1WFHFu=1WFv=1HFFL(D(u,v),D^(u,v))L_{depth}=\frac{1}{W_F \cdot H_F}\sum_{u=1}^{W_F}\sum_{v=1}^{H_F}FL(D(u,v),\hat D(u,v))

​ D是预测的深度分布,D^\hat D是深度分布标签。因为目标检测中待检测的物体占比较少,所以采用Focal Loss的方式,αfg=3.25,αbg=0.25\alpha_{fg}=3.25,\alpha_{bg}=0.25来针对目标和背景。

​ 总的Loss如下:

L=λdepthLdepth+λclsLcls+λregLreg+λdirLdirL=\lambda_{depth}L_{depth}+\lambda_{cls}L_{cls}+\lambda_{reg}L_{reg}+\lambda_{dir}L_{dir}

代码

ing~