【论文笔记】Center-based 3D Object Detection and Tracking

bacakbone

本篇CenterPoint是基本沿用了CenterNet的方法,基本上是在CenterNet网络上做一些扩展工作。
主干网络选用的是Pointpillars和VoxelNet的方法

在这里插入图片描述
在这里插入图片描述因此本文的效果也是单阶段网络,并且实现了多目标检测的效果。
在这里插入图片描述
从实验结果来看,由于PointPillars没有3D conv的模块,因此速度相比较于VoxelNet要更加快,而VoxelNet由于有更丰富的编码信息,因此结果更加精确一些。

由于nuSences数据集和Kitti数据集的不同,nuSences数据集中的检测范围为:X,Y轴:[-51.2,51.2]m Z轴:[-5,3]m
kitti为:x,y,z:[(0, 70.4), (-40, 40), (-3, 1)] (车)
[(0, 48), (-20,20), (-2.5, 0.5)] (人,自行车)

从对比可以看得出,nuSences的数据集范围更大。

CenterPoint detection head

对比二维目标检测算法的CenterNet的Detection head。最终回归的结果大致可以分为:

  1. 要检测物体的中心(目标的高斯分布,分类)
  2. 回归框

在这里插入图片描述

最终CenterPoint的回归结果也大致类似:
在这里插入图片描述

总共分为四个结果:

  1. 热力图(高斯分布,表示物体中心)
  2. 旋转角度(

    e

    =

    (

    s

    i

    n

    (

    α

    )

    ,

    c

    o

    s

    (

    α

    )

    )

    e=(sin(\alpha),cos(\alpha))

    e=(sin(α),cos(α)))

  3. 回归框大小(

    w

    w

    w,

    h

    h

    h,

    l

    l

    l

  4. 偏置offset(

    o

    x

    o_x

    ox,

    o

    y

    o_y

    oy,

    o

    z

    o_z

    oz)

Target Heatmap

(用于判断类别)

热力图:

Y

[

0

,

1

]

w

h

K

Y\in[0,1]^{w*h*K}

Y[0,1]whK

K

K

K表示

K

K

K个classes,通过高斯核:

Y

p

,

k

=

e

x

p

(

(

p

q

i

)

2

2

σ

i

2

)

Y_{p,k}=exp({-(p-q_i)^2 \over 2\sigma_i^2})

Yp,k=exp(2σi2(pqi)2)

高斯核半径

σ

\sigma

σ为:

σ

=

m

a

x

(

f

(

w

l

,

r

)

,

τ

)

\sigma=max(f(wl,r),\tau)

σ=max(f(wl,r),τ)
定义了

τ

=

2

,

r

=

0.1

\tau=2,r=0.1

τ=2,r=0.1

f

f

f为ConerNet中计算高斯核半径的公式
分部于热力图heatmap上。
在这里插入图片描述

p

p

p为像素点(其实是八个角点),

q

i

q_i

qi为每个注释的对象中心点,因此可以看出,热力图回归是一个用物体中心点监督的结果。每个高斯峰值可以用来计算出一个物体的中心。

loss使用focal loss来控制,对分类结果的负结果更好抑制。

L

h

m

=

1

N

p

,

k

{

(

1

Y

^

p

,

k

)

α

log

(

Y

^

p

,

k

)

 if 

Y

p

,

k

=

1

(

1

Y

p

,

k

)

β

(

Y

^

p

,

k

)

α

log

(

1

Y

^

p

,

k

)

 otherwise 

L_{hm}=-\frac{1}{N} \sum_{\mathbf{p}, k}\left\{\begin{array}{ll} \left(1-\hat{Y}_{\mathbf{p}, k}\right)^{\alpha} \log \left(\hat{Y}_{\mathbf{p}, k}\right) & \text { if } Y_{\mathbf{p}, k}=1 \\ \left(1-Y_{\mathbf{p}, k}\right)^{\beta}\left(\hat{Y}_{\mathbf{p}, k}\right)^{\alpha} \log \left(1-\hat{Y}_{\mathbf{p}, k}\right) & \text { otherwise } \end{array}\right.

Lhm=N1p,k(1Y^p,k)αlog(Y^p,k)(1Yp,k)β(Y^p,k)αlog(1Y^p,k) if Yp,k=1 otherwise 

Detection head

回归框并不是完全平行于坐标轴的,所以backbone需要学习旋转不变性和旋转等变性(rotational invariance and equivariance)文中将这部分Detection head最终的结果分为中心预测和回归预测,他们共用第一层的可变卷积(deformable convolution),
在这里插入图片描述

deformable convolution

在这里插入图片描述

就是在这些卷积或者ROI采样层上,添加了位移变量,这个变量根据数据的情况学习,偏移后,相当于卷积核每个方块可伸缩的变化,从而改变了感受野的范围,感受野成了一个多边形。

Circular NMS

这部分讲的其实就是以高斯分布的热力图来确定物体中心来做bbox。在得到每个物体的中心点

q

i

q_i

qi后,计算出bbox的大小

S

^

\hat{S}

S^,使用标准的groud truth

s

i

s_i

si作为监督,通过L1 loss计算:

L

s

i

z

e

=

1

N

i

=

1

N

S

^

q

i

l

o

g

(

s

i

)

L_{s i z e}=\frac{1}{N} \sum_{i=1}^{N}\left|\hat{S}_{\mathbf{q}_{i}}-log({\mathbf{s}_{i}})\right|

Lsize=N1i=1NS^qilog(si)

通过这样的做法,可以不用传统的NMS做法,从而减小计算量,能够更快生成bbox。

Experiments

在这里插入图片描述
在这里插入图片描述

版权声明:本文为CSDN博主「linyanhao0104」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43269093/article/details/109427040

linyanhao0104

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

读取xml文件中的信息

VOC格式标签:图片的实际宽和高,标注框的左上角和右下角坐标YOLO格式标签:标注框的中心坐标(归一化的),标注框的宽和高(归一化的&#xff09

CoCo数据集解读

CoCo数据集特点: 91个材料类别每张图片有5段情景描述对25万个人进行了关键点标注 coco2017