【文献翻译】Instance Aware Embedding

Network Framework

Instance-Aware Module

我们提出了一个实例感知模块(IAM),主要用于选择捕获空间实例上下文的代表性点。对于位置为 x i , y i , z i x_i, y_i, z_i xi,yi,zi的点 p i p_i pi,通过上下文检测分支预测点级的偏移量,来表示实例的空间扩展,表示为 { Δ x k i , Δ y k i , Δ z k i } k = 1 K \lbrace \Delta x_k^i,\Delta y_k^i,\Delta z_k^i \rbrace ^K_{k=1} {ΔxkiΔykiΔzki}k=1K p i p_i pi 预测的实例的代表区域为 R i R_i Ri,可以简单表示为:
R i = { ( x i + Δ x k i , y i + Δ y k i , z i + Δ z k i ) } k = 1 K R_i= \lbrace (x_i+\Delta x_k^i,y_i+\Delta y_k^i,z_i+\Delta z_k^i) \rbrace ^K_{k=1} Ri={(xi+Δxkiyi+Δykizi+Δzki)}k=1K
其中 K K K 是代表性点的个数, i i i 代表第 i i i个点。每个点预测的轴向包围盒可以用最小-最大函数 F F F 表示为 B i B_i Bi: B i = F ( R i ) B_i=F(R_i) Bi=F(Ri).
学习这些代表性区域是由空间边界框和实例分组标签共同驱动的,这样 R i R_i Ri 就可以紧密地围绕实例。为此,提供了三个损失: L b n d L_{bnd} Lbnd L l e n L_{len} Llen L i n s L_{ins} Lins (后两个将在下一节讨论)。 L b n d L_{bnd} Lbnd是为了最大化预测和地面真实之间的边界框的重叠。本文使用3D IoU loss:
L b n d = 1 N ∑ I = 1 N 1 − I o U ( G T i , B i ) L_{bnd}=\frac{1}{N} \sum^N_{I=1} 1-IoU(GT_i, B_i) Lbnd=N1I=1N1IoU(GTi,Bi)
式中, N N N 为点总数, B i B_i Bi 为第 i i i个点的预测包围盒, G T i GT_i GTi为第 i i i个点的三维轴向包围盒地面真值。
在效率方面,我们选择 K = 18 K=18 K=18,实例相关区域被定位并成功覆盖空间扩展。

Instance Branch

传统上,实例解码器的输入是下采样的瓶颈点 (bottleneck points) P b ⊆ P P_b \subseteq P PbP,对应的特征表示为 F b F_b Fb。这些特征通过几个上采样层逐渐传播到完整的点集。为了在传播过程中对实例上下文进行编码,我们利用 R b R_b Rb 的有意义的语义区域对瓶颈点进行编码。

Encode Instance-Aware Context

F b F_b Fb 的表示是通过聚合来自覆盖实例空间范围的 R b R_b Rb 的信息来增强的。由于这些检测点不一定位于输入点上,因此利用K-NN对 R b R_b Rb 特征进行插值。然后将插入的特征添加到原始 F b F_b Fb 中,生成包含局部表示和实例上下文的特征。与每个输入点都需要搜索相邻点的 A S I S [ 30 ] ASIS^{[30]} ASIS[30]相比,我们的方法效率更高。由于在瓶颈层采用了K-NN, P b P_b Pb 中的搜索空间比P中的搜索空间小很多,计算开销非常有限。在解码过程中,组合特征逐渐上采样,通过所有点传播实例感知上下文。

Encode Geometric Information

几何信息是识别两个近距离物体的关键。为了学习具有鉴别性的嵌入特征,我们直接将坐标的归一化质心连接到嵌入空间中。考虑点 p i p_i pi 预测的质心 C ( B i ) C(B_i) C(Bi),其中 C ( ⋅ ) C(·) C() 为计算给定边界盒几何质心的函数,最终的每点嵌入特征可表示为 E ^ i = C o n c a t ( E i , C ( B i ) ) \hat{E}_i= Concat(E_i, C(B_i)) E^i=Concat(Ei,C(Bi)),其中 E i E_i Ei 为实例分支生成的嵌入特征。此外,为了使具有相同实例标签的点的几何信息保持一致,我们将预测的几何质心从同一实例拉向聚类中心:
L c e n = 1 M ∑ m = 1 M 1 N m ∑ i = 1 N m [ ∥ C ( B i ) − μ m ∥ − σ v ] + 2 L_{cen}=\frac{1}{M} \sum_{m=1}^{M} \frac{1}{N_m} \sum_{i=1}^{N_m}[ \lVert C(B_i)- \mu_m\rVert - \sigma_v ]^2_+ Lcen=M1m=1MNm1i=1Nm[C(Bi)μmσv]+2
其中, M M M 是实例的个数, N m N_m Nm 是第 m m m 个实例的点数, μ m μ_m μm 是指第 m m m 个实例的平均预测几何质心。 [ x ] + [x]_+ [x]+ 的定义为 [ x ] + = m a x ( 0 , x ) [x]_+=max(0,x) [x]+=max(0,x) σ v \sigma_v σv 是一个待定的(?loose)裕量。 L c e n L_{cen} Lcen 的设计目的是迫使额外的几何信息有更少的变化,并为分离相邻的对象提供信息。
信息性的 (informative) 逐点嵌入 E ^ n = 1 N \hat{E}_{n=1}^N E^n=1N 用于学习一个距离度量,该度量可以将实例内嵌入拉向集群中心,并将实例中心推离彼此。损失函数的表达式为:
L i n s = 1 M ( M − 1 ) ∑ a = 1 M ∑ b = 1 , b ≠ a M [ 2 σ d − ∥ μ a − μ b ∥ ] + 2 ⏟ i n t e r − i n s t a n c e + 1 M ∑ i = 1 M 1 N m ∑ m = 1 N m [ ∥ μ m − E ^ m ∥ − σ v ] + 2 ⏟ i n t r a − i n s t a n c e L_{ins}=\underbrace{\frac{1}{M(M-1)} \sum^M_{a = 1} \sum^M_{b=1,b \neq a} [2 \sigma _d- \lVert \mu_a - \mu_b \rVert]_+^2}_{inter-instance} + \underbrace{\frac{1}{M} \sum^M_{i = 1} \frac{1}{N_m} \sum^{N_m}_{m=1} [ \lVert \mu_m - \hat E_m \rVert - \sigma _v]_+^2}_{intra-instance} Lins=interinstance M(M1)1a=1Mb=1,b=aM[2σdμaμb]+2+intrainstance M1i=1MNm1m=1Nm[μmE^mσv]+2
其中, M M M 是实例的个数, N m N_m Nm 是第 m m m 个实例的点数, σ d \sigma_d σd σ v \sigma_v σv 是放宽范围的裕量。在训练过程中,第一项将实例聚类推离彼此,第二项将嵌入拉向聚类中心。在推理过程中,采用 Mean-Shift 算法对嵌入空间中的不同实例进行聚类。
总而言之,我们的方法是端到端可训练的,并且受到四种损失的监督。在我们的所有实验中,四种损失的损失权重都设置为1。
L = L f l + L b n d + L c e n + L i n s L=L_{fl}+L_{bnd}+L_{cen}+L_{ins} L=Lfl+Lbnd+Lcen+Lins

S3DIS实验设置

房间分割: 1 m × 1 m ,   s t r i d e = 0.5 1m \times 1m, \, stride=0.5 1m×1m,stride=0.5
区块采样: n u m    p o i n t s = 4096 num \; points=4096 numpoints=4096
点特征:参考 S G P N [ 1 ] SGPN^{[1]} SGPN[1],每个点有9维特征: X , Y , Z , R , G , B , N X , N Y , N Z X,Y,Z,R,G,B,N_X,N_Y,N_Z X,Y,Z,R,G,B,NX,NY,NZ
骨干网络:PointNet++
优化器: A d a m ,    m o m e n t u m = 0.9 Adam, \; momentum=0.9 Adam,momentum=0.9
损失函数的超参数:参考 A S I S [ 2 ] ,    σ v = 0.5 ,    σ d = 1.5 ASIS^{[2]}, \; \sigma_v=0.5, \; \sigma_d=1.5 ASIS[2],σv=0.5,σd=1.5
其他参数: b a t c h    s i z e = 16 ,    e p o c h s = 100 ,    l e a r n i n g    r a t e = 0.001    &    d i v i d e d    b y    2    i n    e v e r y    300 k    i t e r a t i o n s batch \; size=16, \; epochs=100, \; learning \; rate=0.001 \; \& \; divided \; by \; 2 \; in \; every \; 300k \; iterations batchsize=16,epochs=100,learningrate=0.001&dividedby2inevery300kiterations
分割结果整合: B l o c k M e r g i n g [ 1 ] BlockMerging^{[1]} BlockMerging[1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值