一、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?=imax?exp(?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?=N1?xyc∑?{(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?=Mi?1?{fi?0?∣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] 【深度学习基本概念】上采样、下采样、卷积、池化
|