论文《Superpixel Soup: Monocular Dense 3D Reconstruction of a Complex Dynamic Scene》阅读总结

任务目标

根据图像对复杂动态场景进行密集3D重建。
在这里插入图片描述 图1,复杂动态场景的密集3D重建。其中相机和物体都是在运动的,

困难

当场景是静态的、且相机在移动时,可以通过传统的SFM技术,通过几何约束解释相机的运动。但是当观察到多个动态物体时,这种几何约束会失效,任何一个刚性物体都可以以任意尺度进行重建,无法以全局一致的方式确定所有运动物体之间的相对尺度,因此不可能重建整个场景。
我们提出了一种统一的方法,既不执行任何对象级运动分割,也不假设有关场景刚性类型的任何先验知识,但仍然能够恢复复杂动态场景的尺度一致的密集重建。我们提出的公式隐形地解决了SFM中尺度模糊问题。

两个假设

1动态场景可以使用平面几何进行近似,且每个平面都具有自己的刚性运动。
2两帧之间的场景变换,局部刚性,整体尽可能刚性。

局部刚性和全局的尽可能刚性

我们假设每个平面都是刚性变换。图像上的每一个超像素对应空间中的一个平面patch,如果给出帧间的密集光流,我们可以使用刚性重建,从而获得平面patch在空间中的位置。由于无法正确估计平面patch之间的相对尺度,它们就如同超像素汤(superpixel soup)漂浮在3D空间中。如果我们假设,两帧之间,平面patch的变化是平滑的或者有规律的,并且全局场景是尽可能刚性的,那么我们的方法可以为每个超像素找到合适的尺度,在该尺度下,3D超像素几何会被连续地组合起来,形成分段光滑表面。因此我们称该算法为“superPixel soup”算法。
在这里插入图片描述
图:从无尺度的3D超像素“汤”,到完整的3D表面。

方法总览

我们首先将参考图像过度分割(over-segment)为超像素,然后将整个场景的变换建模为这些超像素刚性运动的集合。即,我们对每个超像素进行局部重建,然后组装(以全局一致的方式将所有局部重建粘合在一起)。
每个超像素的局部重建无法确定尺度,尺度是在组装过程中确定的。

记号

两张图像帧分别称为参考帧(第一帧),和第二帧。
我们将参考图像 I I I分割成超像素集合 ξ I = { s 1 , s 2 , … , s i , … , s N } \xi_{I}=\left\{\mathbf{s}_{1}, \mathbf{s}_{2}, \ldots, \mathbf{s}_{\mathbf{i}}, \ldots, \mathbf{s}_{\mathrm{N}}\right\} ξI={s1,s2,,si,,sN}
其中每一个超像素 s i s_i si:边界像素 { x b i = [ u b i , v b i , 1 ] T ∣ b = 1 , … , B i } \{x_{bi}=\left[u_{\mathbf{b} \mathbf{i}}, v_{\mathbf{b} \mathbf{i}}, 1\right]^{\mathrm{T}} | \mathbf{b}=1, \ldots, \mathbf{B}_{\mathbf{i}}\} {xbi=[ubi,vbi,1]Tb=1,,Bi},锚点anchor point x a i x_{ai} xai是该超像素的质心。
超像素集合对应的3D平面: ξ W = { s ~ 1 , s ~ 2 , … s ~ i , … s ~ N } \xi_{W}=\left\{\tilde{\mathbf{s}}_{\mathbf{1}}, \tilde{\mathbf{s}}_{\mathbf{2}}, \ldots \tilde{\mathbf{s}}_{\mathbf{i}}, \ldots \tilde{\mathbf{s}}_{\mathbf{N}}\right\} ξW={s~1,s~2,s~i,s~N}
这些3D表面采用surfel表达最为合理,但是论文仍将其称为“3D超像素”。
我们进一步假设每个3D超像素是一个3D平面patch, Π s i ~ = { n i , x ~ a i , { x ~ b i } } \Pi_{\tilde{\mathbf{s}{i}}}=\{{n}_i, \tilde{{x}}_{ai},\{\tilde{x}_{bi}\}\} Πsi~={ni,x~ai,{x~bi}},即,由法向,锚点和3D边界点表达。
刚性变换 M i = ( R i λ i t ^ i o 1 ) ∈ S E ( 3 ) \mathbf{M}_{\mathbf{i}}=\left(\begin{array}{cc}\mathbf{R}_{\mathbf{i}} & \lambda_{\mathbf{i}} \hat{\mathbf{t}}_{\mathbf{i}} \\ \mathbf{o} & \mathbf{1}\end{array}\right) \in \mathrm{SE}(3) Mi=(Rioλit^i1)SE(3),其中 λ i \lambda_i λi是未知的尺度。

问题定义

给定一对动态场景透视图 I I I I ′ I' I,及相应的稠密光流场。我们的任务是重建一个由多平面近似的动态场景。

算法

输入:
两帧连续的动态场景图像,包含密集的光流匹配。
输出:
两张图像的3D重建
步骤:
1,将参考图像分割成 N N N个超像素,并且构造一个K-NN graph,以将整个场景表示为一个 G ( V , E ) G(V,E) G(V,E)的图。
2,采用两视图对极几何恢复每个3D超像素的刚性运动。
3,优化能量函数以对齐所有的超像素。

在这里插入图片描述
采用多平面 表达的 连续场景。每个超像素由 ( Π s ~ i , M i ) (\Pi_{\tilde{s}{i}},M_i) (Πs~i,Mi),即由超像素及其变换表达。

建立K-NN graph

我们在图像的像素空间,通过链接每个锚点的最近K个锚点,构建graph G ( V , E ) G(V,E) G(V,E)。graph的顶点是 V V V是锚点,边 E E E是每对锚点间的欧氏距离。

尽可能的刚性 能量函数

我们是通过强制3D超像素(平面patch)满足我们的假设,进而估计出其正确的尺度。
我们要求全局尽可能保持刚性:
E arap  = ∑ i = 1 N ∑ k ∈ N i w 1 ( x a i , x a k ) ( ∥ R i − R k ∥ F + ∥ λ i t ^ i − λ k t ^ k ∥ 2 ) + w 2 ( x a i , x a k ) ⋅ ∣ ∥ x ~ a i − x ~ a k ∥ 2 − ∣ ∣ x ~ a i ′ − x ~ a k ′ ∥ 2 ∣ 1 \mathrm{E}_{\text {arap }}= \sum_{\mathbf{i}=1}^{\mathrm{N}} \sum_{\mathbf{k} \in \mathcal{N}_{\mathbf{i}}} w_{1}\left(\mathbf{x}_{\mathbf{a} \mathbf{i}}, \mathbf{x}_{\mathbf{a} \mathbf{k}}\right)\left(\left\|\mathbf{R}_{\mathbf{i}}-\mathbf{R}_{\mathbf{k}}\right\|_{\mathrm{F}}+\left\|\lambda_{\mathbf{i}} \hat{\mathbf{t}}_{\mathbf{i}}-\lambda_{\mathbf{k}} \hat{\mathbf{t}}_{\mathbf{k}}\right\|_{2}\right) \\ +w_{2}\left(\mathbf{x}_{\mathbf{a} \mathbf{i}}, \mathbf{x}_{\mathbf{a} \mathbf{k}}\right) \cdot|\left\|\tilde{\mathbf{x}}_{\mathbf{a} \mathbf{i}}-\tilde{\mathbf{x}}_{\mathbf{a} \mathbf{k}}\right\|_{2}-\left.||\tilde{\mathbf{x}}_{\mathbf{a} \mathbf{i}}^{\prime}-\tilde{\mathbf{x}}_{\mathbf{a} \mathbf{k}}^{\prime}\right\|_{2}|_{1} Earap =i=1NkNiw1(xai,xak)(RiRkF+λit^iλkt^k2)+w2(xai,xak)x~aix~ak2x~aix~ak21
上述能量函数有两项,前一项有利于保持局部邻居之间的平滑运动(即某个超像素的变换 M M M与其 K K K个邻居的变换差距不大),第二项则鼓励保持变换前后锚点之间的距离不变。
两项之间的权 w w w定义为:
w 1 ( x a i , x a k ) = w 2 ( x a i , x a k ) = exp ⁡ ( − β ∥ x a i − x a k ∥ ) w_{1}\left(\mathbf{x}_{\mathbf{a i}}, \mathbf{x}_{\mathbf{a} \mathbf{k}}\right)=w_{2}\left(\mathbf{x}_{\mathbf{a} \mathbf{i}}, \mathbf{x}_{\mathbf{a} \mathbf{k}}\right)=\exp \left(-\beta\left\|\mathbf{x}_{\mathbf{a} \mathbf{i}}-\mathbf{x}_{\mathbf{a} \mathbf{k}}\right\|\right) w1(xai,xak)=w2(xai,xak)=exp(βxaixak)
即超像素之间距离的反比,两个超像素之间距离越远,这种尽可能刚性的约束越小。
注意:这种约束仅在锚点上,不会对超像素的边界进行强制平滑。
连续3D空间的分段平面会导致每个平面的边界附近产生不连续性。所以我们附加约束修复这种不连续性:

平面重投影能量函数

因为,空间3D平面是由平面超像素反投影获得,因此,3D模型满足平面投影误差。
E p r o j = ∑ i = 1 N w 3 ∣ ψ ( s i ) ∣ ∑ j = 1 ∣ ψ ( s i ) ∣ ∥ ψ ( s i j ) ′ − K ( R i − t i n i T d i ) K − 1 ψ ( s i j ) ∥ 2 \begin{aligned} &\mathrm{E}_{\mathrm{proj}}=\\ &\sum_{\mathfrak{i}=1}^{\mathrm{N}} \frac{w_{3}}{\left|\psi\left(\mathbf{s}_{\mathbf{i}}\right)\right|} \sum_{\mathfrak{j}=1}^{\left|\psi\left(\mathbf{s}_{\mathfrak{i}}\right)\right|}\left\|\psi\left(\mathbf{s}_{\mathbf{i}}^{\mathbf{j}}\right)^{\prime}-\mathbf{K}\left(\mathbf{R}_{\mathbf{i}}-\frac{\mathbf{t}_{\mathbf{i}} \mathbf{n}_{\mathbf{i}}^{\mathrm{T}}}{\mathrm{d}_{\mathbf{i}}}\right) \mathbf{K}^{-1} \psi\left(\mathbf{s}_{\mathbf{i}}^{\mathbf{j}}\right)\right\|_{2} \end{aligned} Eproj=i=1Nψ(si)w3j=1ψ(si)ψ(sij)K(RiditiniT)K1ψ(sij)2
其中, ψ ( s j ) \psi(s_j) ψ(sj)表示超像素 s j s_j sj中的像素。 ψ ( s j i ) \psi(s_j^i) ψ(sji)表示超像素 s j s_j sj中的第 i i i个像素。而 ψ ( s i j ) , ψ ( s i j ) ′ \psi\left(\mathbf{s}_{\mathbf{i}}^{\mathbf{j}}\right), \psi\left(\mathbf{s}_{\mathbf{i}}^{\mathbf{j}}\right)^{\prime} ψ(sij),ψ(sij)表示两张图像中由光流获得的匹配。 w 3 w_3 w3是一个经验权值。

3D连续性能量函数

我们希望局部邻居连续,因此,要求相邻的超像素在其边界处具有平滑的深度过度。
E c o n t = ∑ i = 1 N ∑ k ∈ N i w 4 ( X b i , X b k ) ( ∥ X ~ b i − X ~ b k ∥ F + ρ ( ∥ X ~ b i ′ − X ~ b k ′ ∥ F ) \begin{aligned} &\mathrm{E}_{\mathrm{cont}}=\\ &\sum_{\mathfrak{i}=1}^{\mathrm{N}} \sum_{\mathbf{k} \in \mathcal{N}_{\mathbf{i}}} w_{4}\left(\mathbf{X}_{\mathbf{b} \mathbf{i}}, \mathbf{X}_{\mathbf{b} \mathbf{k}}\right)\left(\left\|\tilde{\mathbf{X}}_{\mathbf{b} \mathbf{i}}-\tilde{\mathbf{X}}_{\mathbf{b} \mathbf{k}}\right\|_{\mathrm{F}}+\rho\left(\left\|\tilde{\mathbf{X}}_{\mathbf{b} \mathbf{i}}^{\prime}-\tilde{\mathbf{X}}_{\mathbf{b} \mathbf{k}}^{\prime}\right\|_{\mathrm{F}}\right)\right. \end{aligned} Econt=i=1NkNiw4(Xbi,Xbk)(X~biX~bkF+ρ(X~biX~bkF)
其中, X b i X_{bi} Xbi是超像素的边界像素点, X b k X_{bk} Xbk是对应的空间点。注意:邻居超像素彼此共享边界。为了鼓励局部平滑,对于每个超像素边界像素,我们考虑其四个邻接像素的颜色,来定义其权重:
w 4 ( X b i , X b k ) = ∑ j = 1 4 exp ⁡ ( − β ∥ I ( X b i ) − I ( ζ j ) ∥ F ) w_{4}\left(\mathbf{X}_{\mathbf{b i}}, \mathbf{X}_{\mathbf{b} \mathbf{k}}\right)=\sum_{j=1}^{4} \exp \left(-\beta\left\|\mathbf{I}\left(\mathbf{X}_{\mathbf{b} \mathbf{i}}\right)-\mathbf{I}\left(\zeta_{j}\right)\right\|_{\mathbf{F}}\right) w4(Xbi,Xbk)=j=14exp(βI(Xbi)I(ζj)F)
即颜色差异越大,权值越小。
符号 ζ j \zeta_{j} ζj指代第 j j j个邻接像素。
在这里插入图片描述
3D连续能量函数促使3D平面间(拥有共同的边界点)保持局部连续。边界越平滑、 E c o n t E_{cont} Econt越小。

方向能量函数

为了鼓励相邻平面的方向平滑,我们为边界像素及其邻域添加一个几何约束,
E orient  = ∑ i = 1 N ∑ k ∈ N i ρ n ( 1 − n i T n k ) \mathrm{E}_{\text {orient }}=\sum_{\mathrm{i}=1}^{\mathrm{N}} \sum_{\mathbf{k} \in \mathcal{N}_{\mathrm{i}}} \rho_{n}\left(1-\mathbf{n}_{\mathrm{i}}^{\mathrm{T}} \mathbf{n}_{\mathbf{k}}\right) Eorient =i=1NkNiρn(1niTnk)
像素索引与3D连续性能量函数相同。
其中 ρ n ( x ) \rho_n(x) ρn(x)是一个截断函数,设定最大阈值 n m a x n_{max} nmax ρ n ( x ) = m i n ( ∣ x ∣ , n m a x ) \rho_n(x)=min(|x|,n_{max}) ρn(x)=min(x,nmax)

联合能量函数

为了获得尺度一致的3D重建,我们组合以上四种约束,
min ⁡ λ i , n i , d i , R i , t i E = E arap  + α 1 E proj  + α 2 E cont  + α 3 E orient   subject to  ∑ i = 1 N λ i = 1 , λ i > 0 R i ∈ S O ( 3 ) , ∥ n i ∥ 2 = 1 \begin{array}{l} \min _{\lambda_{\mathbf{i}}, \mathbf{n}_{\mathbf{i}}, \mathbf{d}_{\mathbf{i}}, \mathbf{R}_{\mathbf{i}}, \mathbf{t}_{\mathbf{i}}} \mathrm{E}=\mathrm{E}_{\text {arap }}+\alpha_{\mathbf{1}} \mathrm{E}_{\text {proj }}+\alpha_{2} \mathrm{E}_{\text {cont }}+\alpha_{3} \mathrm{E}_{\text {orient }} \\ \text { subject to } \sum_{i=1}^{\mathrm{N}} \lambda_{\mathbf{i}}=1, \lambda_{\mathbf{i}}>0 \\ \mathbf{R}_{\mathbf{i}} \in \mathrm{SO}(3),\left\|\mathbf{n}_{\mathbf{i}}\right\|_{2}=1 \end{array} minλi,ni,di,Ri,tiE=Earap +α1Eproj +α2Econt +α3Eorient  subject to i=1Nλi=1,λi>0RiSO(3),ni2=1

实现

接下来是一些实时细节,如果有机会接触代码的话,在进行补全。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值