赞
踩
在3D点云语义分割方法中,GNN已经做了很多可用的方案,但是在目标检测上依旧是采用比较传统的CNN和稀疏卷积的组合,这一篇文章是研究了图卷积在3D检测的中的用法。来自卡内基梅隆大学。已经被CVPR2020接收.
这里是 paper
这里是 code
(1)图一的就是目前比较流行的voxel-based的一些方法,首先将点体素化,提取体素特征
(2)图2则是建立在pointnet的基础上的网路架构表示形式,有F-pointnet和point-RCNN等网络代表
(3)值得一提的是,CVPR2020和ICCV19已经有一些文章在将上诉的voxel-point的方法结合起来了,其中有出于提高速度的voxel-pointnet和精度提升非常大的PVRCNN(强推)
(4)图三即是本文作者所采用的GNN网络结构,可以看出和pointnet最大的不同就是没有采取采样的策略,这也就会导致在程序运行中FPS很低.。作者在本文中所有的点都作为图的顶点,以一定的半径范围内的点相连成边。
这里作者主要介绍了把点规整化后再处理的一些网络结构,包括了投影到二维图像上和voxelize的方法
这里主要是point-based的方法,不多过介绍
(1)GNN在点云中的应用主要也是在寻找一种可以对于图结构这种不规则的表达数据能不能把二维中的CNN运行模式引入进来。CNN通过连接的edge来更新顶点的特征,目前的边特征整合和MLP在点云中的运用类似,但是GNN能够容纳更加复杂的网络特征,但是不需要采样和group(这样做有好有坏吧,一方面这样更多的顶点,不采用sample的方式可以有更多的细节特征,但实际上也增大了计算量<\font>)。
(2)作者只建图一次,剩下的GNN优化过程都是在同一张图上进行优化工作的
over-all structure:
上图很清晰的表达了作者做的三部分结构(1)图构建(2)PointGCN网络结构(3)bbox融合
一个点集作者采用
P
=
{
p
1
,
…
,
p
N
}
P=\left\{p_{1}, \dots, p_{N}\right\}
P={p1,…,pN}表示,其中每一个元素
p
i
=
(
x
i
,
s
i
)
p_{i}=\left(x_{i}, s_{i}\right)
pi=(xi,si)中的
x
i
x_i
xi表示的是3D坐标中的坐标,
s
i
s_i
si表示的是该点的属性,可以是KITTI中的点的反射强度等等,作者构建的图结构则是以点P为顶点,一个固定半径中的顶连接起来得到一个局部图。表示如下:
E
=
{
(
p
i
,
p
j
)
∣
∥
x
i
−
x
j
∥
2
<
r
}
E=\left\{\left(p_{i}, p_{j}\right) |\left\|x_{i}-x_{j}\right\|_{2}<r\right\}
E={(pi,pj)∣∥xi−xj∥2<r}
作者在这里指出可以采用方法使得建图的时间复杂度降低到 O ( c N ) , 这 里 的 c 表 示 在 这 个 固 定 半 径 内 的 点 的 最 大 个 数 O(cN),这里的c表示在这个固定半径内的点的最大个数 O(cN),这里的c表示在这个固定半径内的点的最大个数,作者的表述为:
The construction of such a graph is the well-known fixed radius near-neighbors search problem. By using a cell list to find point pairs that are within a given cut-off distance, we can efficiently solve the problem with a runtime complexity of O(cN) where c is the max number of neighbors withinthe radius.
但是在实际上,1w多个点也是很大的计算负担,因此作者采用了voxel采样,作者表明他采用的voxel仅仅是用于采样,不会用于点云表示,作者还是采用的graph的方式表示点云。
作者为了使得之前的信息不丢失,采用了把voxel编码的信息存放在上式中的
s
i
s_i
si中作者并将这些特征作为GNN的初始特征,迭代过程可以下图所示:
GNN迭代过程中,会根据边更新顶点的特征,可以表达为:
v
i
t
+
1
=
g
t
(
ρ
(
{
e
i
j
t
∣
(
i
,
j
)
∈
E
}
)
,
v
i
t
)
e
i
j
t
=
f
t
(
v
i
t
,
v
j
t
)
这里的
e
t
e^t
et表示的是边的第t次迭代的特征,
v
t
v^t
vt是顶点的特征。
f
t
(
.
)
f^{t}(.)
ft(.)表示根据顶点更新边的特征;
ρ
(
.
)
\rho(.)
ρ(.)表示对多条边特征的整合;
π
−
1
\pi^{-1}
π−1表示将整合的边特征更新为新的顶点特征。
在本文中,作者的顶点特征可以表示为:
s
i
t
+
1
=
g
t
(
ρ
(
{
f
t
(
x
j
−
x
i
,
s
j
t
)
∣
(
i
,
j
)
∈
E
}
)
,
s
i
t
)
s_{i}^{t+1}=g^{t}\left(\rho\left(\left\{f^{t}\left(x_{j}-x_{i}, s_{j}^{t}\right) |(i, j) \in E\right\}\right), s_{i}^{t}\right)
sit+1=gt(ρ({ft(xj−xi,sjt)∣(i,j)∈E}),sit)
(1)这里的输入采用的是顶点间的相对坐标作为输入,因为相对坐标对点云的整体平移具有不变性,但是对邻近区域的变换很敏感。但是假如一个平移被添加到一个顶点时,他们的局部结构还是相似的,但是相对坐标是发生变化的,这会导致增加输入方差。
(2)为了减少平移方差,作者根据邻居的结构特征来调整他们的坐标,而不是使用中心顶点坐标
所以作者提出的 auto-registration表示为:
Δ
x
i
t
=
h
t
(
s
i
t
)
s
i
t
+
1
=
g
t
(
ρ
(
{
f
(
x
j
−
x
i
+
Δ
x
i
t
,
s
j
t
)
}
,
s
i
t
)
这里的
Δ
x
i
t
\Delta x_{i}^{t}
Δxit表示的是坐标点的偏移值(顶点坐标和配准值之间),
h
t
(
.
)
h^{t}(.)
ht(.)根据之前迭代得到的顶点属性值计算偏移值。
作者将上诉的函数设置为MLP和max,具体表示为:
Δ
x
i
t
=
M
L
P
h
t
(
s
i
t
)
e
i
j
t
=
M
L
P
f
t
(
[
x
j
−
x
i
+
Δ
x
i
t
,
s
j
t
]
)
s
i
t
+
1
=
M
L
P
g
t
(
Max
(
{
e
i
j
∣
(
i
,
j
)
∈
E
}
)
)
+
s
i
t
可以看出边的特征和顶点的属性都是采用的MLP去学习的。(点云中的GNN)
l c l s = − 1 N ∑ i = 1 N ∑ j = 1 M y c j i log ( p c j i ) l_{c l s}=-\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{M} y_{c_{j}}^{i} \log \left(p_{c_{j}}^{i}\right) lcls=−N1i=1∑Nj=1∑Mycjilog(pcji)
δ
x
=
x
−
x
v
l
m
,
δ
y
=
y
−
y
v
h
m
,
δ
z
=
z
−
z
v
w
m
δ
l
=
log
(
l
l
m
)
,
δ
h
=
log
(
h
h
m
)
,
δ
w
=
log
(
w
w
m
)
δ
θ
=
θ
−
θ
0
θ
m
如果一个顶点在Box中,那么采用huber loss,最后将所有的loc loss求一个平均.
l
l
o
c
=
1
N
∑
i
=
1
N
1
(
v
i
∈
b
i
n
t
e
r
e
s
t
)
∑
δ
∈
δ
b
i
l
h
u
b
e
r
(
δ
−
δ
g
t
)
l_{l o c}=\frac{1}{N} \sum_{i=1}^{N} \mathbb{1}\left(v_{i} \in b_{i n t e r e s t}\right) \sum_{\delta \in \delta_{b_{i}}} l_{h u b e r}\left(\delta-\delta^{g t}\right)
lloc=N1i=1∑N1(vi∈binterest)δ∈δbi∑lhuber(δ−δgt)
为了防止过拟合,作者加入了L1正则化,有:
l
total
=
α
l
cls
+
β
l
loc
+
γ
l
reg
l_{\text {total}}=\alpha l_{\text {cls}}+\beta l_{\text {loc}}+\gamma l_{\text {reg}}
ltotal=αlcls+βlloc+γlreg
这里的reg loss应该就是以往的SMooth L1
NMS在作者认为如果仅仅靠最大分数选择最终的Box的话,并不能一直得到最好的结果。为了提高定位的准确率,作者的mergerd的方法,细节一点的是,作者考虑了重叠边界框的中位数位置和大小,具体算法如下:
也就是不仅仅以分数决定最终的box,和soft nms的想法一样。
对比之前的一些采用点云输入的方法,的确有一些提升。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。