目录
- 一、CenterFusion 概述
- 二、图像目标检测
- 三、雷达点云处理
- 四、参考资料
一、CenterFusion 概述
- 这个项目,重点研究毫米波雷达和相机传感器融合的方法
- 利用毫米波雷达传感器数据和相机传感器数据进行 3D 目标检测
- 并在 NuScenes 数据集上面进行评估
CenterFusion 网络架构:
- CenterFusion 网络架构首先利用全卷积骨干网提取目标物体中心点的图像特征,再回归到物体的其它属性,如三维位置、方向和尺寸,并获得初步的 3D Box
- 截锥关联模块将雷达检测结果与对应目标中心点关联(雷达检测结果映射到图像平面)并生成雷达特征
- 然后将图像和雷达特征连接起来, 再二次回归到目标属性,如深度、旋转以及速度等三维属性来细化初步的 3D Box
该网络架构主要可以分为两个部分分析,一个是上面一行的图像目标检测,另一个是下面一行的雷达点云数据处理。
二、图像目标检测
- CenterNet 中主要提供了三个骨干网络 ResNet-18 (ResNet-101)、DLA-34、Hourglass-104
- CenterFusion 网络架构在对图像进行初步检测时,采用 CenterNet 网络中修改版本的骨干网络 DLA(深层聚合)作为全卷积骨干网,来提取图像特征,因为 DLA 网络大大减少了培训时间,同时提供了合理的性能
- 再回归图像特征来预测图像上的目标中心点,以及目标的 2D 大小(宽度和高度)、中心偏移量、3D 尺寸、深度和旋转
- 主要回归头的组成:256 个通道的 3×3 卷积层、1×1卷积层。这为场景中每个被检测到的对象提供了一个精确的 2D 边界框以及一个初步的 3D 边界框
CenterNet 原理:
- 第 1 步:以图像 I ∈ R W × H × 3 I \in R^{W×H×3} I∈RW×H×3 作为输入,生成预测关键点热图 Y ^ ∈ [ 0 , 1 ] W R × H R × C \hat Y \in [0,1]^{\frac W R × \frac H R × C} Y^∈[0,1]RW×RH×C,其中 W W W 和 H H H 是图像的宽度和高度, R R R 是下采样比, C C C 是物体类别的数量
意思是将一张 W × H W×H W×H 的图片作为输入,然后通过下采样(池化)生成 W R × H R \frac W R × \frac H R RW×RH 的关键点热图,图中的每一个像素的热值在 [ 0 , 1 ] [0,1] [0,1] 之间
- 第 2 步:再以 Y ^ = 1 \hat Y = 1 Y^=1 作为输出的预测
意思是检测到一个以图像 ( x , y ) (x,y) (x,y) 为中心的 c c c 类目标
对于每个中心点,还预测了一个局部偏移量,以补偿由骨干网输出步数引起的离散误差
- 第 3 步:使用高斯核从地面真值 2D 边界框生成地面真值热图 Y ∈ [ 0 , 1 ] W R × H R × C Y \in [0,1]^{\frac W R × \frac H R × C} Y∈[0,1]RW×RH×C
这是为了与模型预测的结果进行比较,从而计算 loss 值(损失)
- 第 4 步:对于图像中 c c c 类的每个边界框中心点 p i ∈ R 2 p^i \in R^2 pi∈R2,在 Y : , : , c Y_{:,:,c} Y:,:,c 上生成一个高斯热图: Y q c = max i exp ( − ( p i − q ) 2 2 σ i 2 ) Y_{qc} = \max_i \exp (- \frac {(p_i - q)^2} {2 \sigma^2_i}) Yqc=imaxexp(−2σi2(pi−q)2)
其中 σ i \sigma_i σi 是一个尺寸自适应标准差,根据每个对象的尺寸控制热图的大小,采用全卷积码-解码器网络对 Y ^ \hat Y Y^ 进行预测
- 第 5 步:使用单独的网络头直接从检测到的中心点回归对象的深度、尺寸和方向,来生成 3D Box
在回归模块中
深度被作为额外的输出通道 D ^ ∈ [ 0 , 1 ] W R × H R \hat D \in [0,1]^{\frac W R × \frac H R} D^∈[0,1]RW×RH ,因为使用了 sigmoidal 逆变换,并将其应用到了原始深度域
方向被编码为两个容器,每个容器中有 4 个标量
给定带注释的对象 p 0 , p 1 , . . . p0,p1,... p0,p1,... 在一幅图像中,训练分类损失,即 focal loss 定义如下:
L k = 1 N ∑ x y c { ( 1 − Y ^ x y c ) α log ( Y ^ x y c ) Y x y c = 1 ( 1 − Y x y c ) β ( Y ^ x y c ) α log ( 1 − Y ^ x y c ) o t h e r w i s e L_k = \frac 1 N \sum_{xyc} \begin{cases} (1 - \hat Y_{xyc})^\alpha \log(\hat Y_{xyc}) & Y_{xyc} = 1 \\ (1 - Y_{xyc})^\beta (\hat Y_{xyc})^\alpha \log(1- \hat Y_{xyc}) & otherwise \end{cases} Lk=N1xyc∑{(1−Y^xyc)αlog(Y^xyc)(1−Yxyc)β(Y^xyc)αlog(1−Y^xyc)Yxyc=1otherwise
其中 N N N 为对象数量, Y ∈ [ 0 , 1 ] W R × H R × C Y \in [0,1]^{\frac W R × \frac H R × C} Y∈[0,1]RW×RH×C 为标注对象的地面真值热图, α \alpha α 和 β \beta β 为焦损超参数
三、雷达点云处理
- 首先,需要搞清楚雷达点云检测的是径向深度和目标实际速度的不同,如图:
对于目标 A,车辆坐标系内速度与径向速度相同 ( v A ) (v^A) (vA),另一方面,对于目标 B,雷达报告的径向速度 ( v r ) (v_r) (vr) 与目标在车辆坐标系中的实际速度 ( v B ) (v^B) (vB) 存在差异
支柱扩张:
- 在截锥关联之前,有一个支柱扩张模块,对雷达点云进行预处理:将每个雷达点云扩展成一个固定尺寸的柱状,如下图所示:
- 这是为了解决每个雷达点云在截锥关联中高度信息不准确的问题
截锥关联
- 第 1 步:利用图像平面中对象的 2D 边界框及其估计深度和大小,为对象创建一个 3D 感兴趣区域(RoI)截锥,如下图所示:
有了截锥对象,缩小了需要检查关联的雷达点云探测范围,因为这个截锥之外的任何点云都可以忽略
如果该 RoI 内存在多个雷达检测点云,则取最近的点作为该目标对应的雷达检测点云
- 第 2 步:对于每一个与物体相关的雷达检测,我们生成三个以物体的二维包围框为中心并在其内部的热图通道,热图的宽度和高度与物体的 2D 边界框成比例,并由参数 α \alpha α 控制
其中热图值是归一化对象深度 ( d ) (d) (d),也是自中心坐标系中径向速度 ( v x ) (v_x) (vx) 和 ( v y ) (v_y) (vy) 的 x x x 和 y y y 分量:
F x , y , i j = 1 M i { f i ∣ x − c x j ∣ ≤ α w j a n d ∣ y − c j i ∣ ≤ α h j 0 o t h e r w i s e F^j_{x,y,i} = \frac 1 {M_i} \begin{cases} f_i & |x-c^j_x| \le \alpha w^j and |y-c^i_j| \le \alpha h^j \\ 0 & otherwise \end{cases} Fx,y,ij=Mi1{fi0∣x−cxj∣≤αwjand∣y−cji∣≤αhjotherwise
i ∈ 1 , 2 , 3 i \in 1,2,3 i∈1,2,3 是地图通道的特性, M i M_i Mi 是一种规格化因素, f i f_i fi 是特征值 ( d , v x 或 v y ) (d,v_x 或 v_y) (d,vx或vy), c x j c^j_x cxj 和 c y i c^i_y cyi 是 j j j 对象的 x x x 和 y y y 坐标对象的中心点的图像, w j w^j wj 和 h j h^j hj 是 j j j 对象的宽度和高度的 2D 边界框
- 第 3 步:两个物体的热图区域重叠,深度值较小的那个占优势,因为只有最近的物体在图像中是完全可见的,如下图所示:
-
- 第 4 步:生成的热图然后连接到图像特征作为额外的通道,这些特征被用作二次回归头的输入,以重新计算对象的深度和旋转,以及速度和属性
二次回归头由 3 个卷积层 (3×3 核) 和 1×1 卷积层组成,以产生所需的输出
最后一步是将回归头结果解码为 3D 边界框,3D Box 解码器块使用估计的深度、速度、旋转和二次回归头部的属性,并从主回归头部获取其他对象的属性
四、参考资料
[1] CenterFusion:Center-basedRadarandCameraFusionfor3DObjectDetection
[2] CenterFusion:雷达和摄像头融合的3D目标检测方法,代码已开源!
[3] CenterNet算法详解
[4] 论文解读CenterNet: Object as Points
[5] 【深度学习基本概念】上采样、下采样、卷积、池化