1.总体
1.1 做了什么
这篇文章做了 6D-Pose Tracker。具体说是 a vision-based 6DPose Anchor-based Category-level Keypoint tracker。
作者提出了一种基于RGB-D的深度学习方法,能够实时的跟踪已知类别物体(已知类别,可以使没见过的物体)。通过学习用少量的三维关键点来简洁地表示一个物体,基于这些关键点,通过关键点匹配来估计物体在帧与帧之间的运动。这些关键点使用无监督端到端学习来实现有效的跟踪。
1.2 怎么做
6-PACK的输入是RGB-D信息,在原先估计的pose周围,采样anchor,基于这些anchor检测和跟踪3D category-based keypoints.然后利用两帧之间的关键点,通过最小二乘优化求解点集对齐的问题,计算出6D物体的位姿变化。
1.3 创新点
- 利用一种新的anchor机制产生keypoint,可以作用于同一类别的不同实例上
- 使用无监督方式去选择最有利于track的关键点
- 利用帧间关键点去估计姿态的inter-frame change
2 思路
2.1 问题的定义
定义类别级6D位姿跟踪定义为连续时间步间目标姿态变化的连续估计问题 。姿态变化
Δ
p
t
∈
S
E
(
3
)
\Delta p_t \in SE(3)
Δpt∈SE(3),可以分解为
Δ
R
t
∈
S
O
(
3
)
\Delta R_t \in SO(3)
ΔRt∈SO(3) 和
Δ
t
t
∈
R
3
\Delta t_t \in R^3
Δtt∈R3,
Δ
p
t
=
[
Δ
R
t
∣
Δ
t
t
]
\Delta p_t = [\Delta R_t | \Delta t_t]
Δpt=[ΔRt∣Δtt]。然后,通过递归地应用最后估计的姿势变化来检索绝对姿势 :
p
t
=
Δ
p
t
⋅
p
t
−
1
=
Δ
p
t
⋅
Δ
p
t
−
1
⋅
⋅
⋅
p
0
p_t = \Delta p_t \cdot p_{t-1} = \Delta p_t \cdot \Delta p_{t-1} \cdot \cdot \cdot p_0
pt=Δpt⋅pt−1=Δpt⋅Δpt−1⋅⋅⋅p0.
初始姿势是相对于标准帧的摄影机帧的平移和旋转,对于同一类别的所有实例定义类似 。
2.2 模型
首先在预测物体实例的周围剪裁一个放大的体积,将其归一化为一个单元;在体积块上生成anchor网格;之后使用DenseFusion计算M个点的几何与颜色融合特征;根据距离将它们平均池化成N个anchor特征;注意力机制网络使用anchor特征来选择最接近质心的点;用质心生成一组有序的关键点。将这种关键点生成方法应用在前一帧和当前帧,得到两组有序的关键点来计算帧间的位姿变化。
(这里使用无监督方式来训练得到最接近质心的点,这点具体怎么弄不太理解)
(keypoint的表示形式是 offset points from the selected anchor)
(初始
p
0
p_0
p0怎么refine的,怎么得到一个较为准确的
p
0
p_0
p0)
6-PACK算法在预测位姿周围生成anchor网格的过程中使用了注意力机制。每个点用RGB-D点单独特征的距离加权和来表示体积。使用anchor信息在新的RGB-D框架中找到物体的粗略质心,并指导对其周围关键点的后续搜索,这比在无约束的三维空间中搜索关键点效率更高。
2.3 Loss设计
1. L a n c = 1 N ∑ i c i ( ∣ ∣ a i − o g t ∣ ∣ 2 − β ) L_{anc} = \frac {1}{N} \sum_i c_i(||a_i - o_{gt}||_2 - \beta) Lanc=N1∑ici(∣∣ai−ogt∣∣2−β)
β
=
m
i
n
(
∣
∣
a
i
−
o
g
t
∣
∣
2
)
,
i
=
1...
N
\beta = min (||a_i - o_{gt}||_2),i=1 ... N
β=min(∣∣ai−ogt∣∣2),i=1...N
a
i
a_i
ai anchor,
g
t
gt
gt ground-truth position
2. multi-view consistency loss L m v c = 1 K ∣ ∣ k i t − [ Δ R t g t ∣ Δ t t g t ] ⋅ k i t − 1 ∣ ∣ L_{mvc} = \frac{1}{K}||k_i^t - [\Delta R_t^{gt}|\Delta t_t^{gt}]\cdot k_i^{t-1}|| Lmvc=K1∣∣kit−[ΔRtgt∣Δttgt]⋅kit−1∣∣
[
Δ
R
t
g
t
∣
Δ
t
t
g
t
]
=
Δ
t
g
t
[\Delta R_t^{gt}|\Delta t_t^{gt}] = \Delta_t^{gt}
[ΔRtgt∣Δttgt]=Δtgt
多视图一致性损失只保证特征位置之间的帧间一致性,而不依赖于透视图或对象的可见部分。然而,这并不能保证这些位置对于我们的最终目标是最佳的,即估计姿势的变化.
3. a differentiable pose estimation loss L t r a = ∣ ∣ ( k ^ t − k ^ t − 1 − Δ t t g t ) L_{tra} = ||(\hat k^t - \hat k^{t-1} - \Delta t_t^{gt}) Ltra=∣∣(k^t−k^t−1−Δttgt)
4. a differentiable pose estimation loss L r o t = 2 a r c s i n ( 1 2 2 ∣ ∣ Δ R ^ t − Δ R t g t ) L_{rot} = 2arcsin(\frac {1}{2\sqrt 2}||\Delta \hat R^t - \Delta R_t^{gt}) Lrot=2arcsin(221∣∣ΔR^t−ΔRtgt)
k
^
t
\hat k^t
k^t和
k
^
t
−
1
\hat k^{t-1}
k^t−1前一帧和当前帧中关键点的质心
Δ
R
^
t
\Delta \hat R_t
ΔR^t是用最小二乘优化。
5 separation loss L s e p L_{sep} Lsep
6.silhouette consistency loss L s i l L_{sil} Lsil
7. centroid loss L c e n L_{cen} Lcen
3D Keypoint Generation for Classes with Symmetry Axes
a coordinate system transformation ρ() that transforms the coordinates of points into a space that is rotation-invariant around the axis of symmetry