MBA-SLAM: Motion Blur Aware Dense Visual SLAM with Radiance Fields Representation

Seohyun·2024년 11월 24일

논문

목록 보기
7/7
post-thumbnail

arXiv 링크 | 깃허브 링크

흔들린 frame에 대해 robust하게 mapping & tracking

핵심

  • NeRF/3DGS 기반 SLAM에 사용 가능한 photometric BAed deblur mapper
  • MBA tracker -> 더 나은 mapping & tracking

Recent works

  • MBA-VO (feauture-based visual odometry 기반)에서 가져온 motion blur aware tracker
    • feautre-based VO는 input frame 간 keypoints를 통해 consistency를 맞춰줌
    • 기존 연구와 달리 MBA-VO는 initial motion prediction에 의존하지 않고 local camera trajectory를 directly optimize해 이미지 patch를 reblur함
  • BAD-NERF, BAD-Gaussians에서 사용된 motion blur aware BA algorithm
  • BAD-NeRF의 vanilla NeRF representation을 tri-plane으로 변경

Method

  • tracking: estimates local camera trajectory relative to the latest rendered sharp keyframe image
  • mapper: jointly learns representation & trajectories

Motion blur image formation model

Physical formation process of motion blurry images

B(x)=ϕ0τIt(x)dtB(x) = \phi \int_0^\tau I_t(x)dt
B(x)1ni=0n1Ii(x)B(x) \approx \frac{1}{n}\sum_{i=0}^{n-1}I_i(x)

  • blurry image는 여러 sharp images의 평균치라 가정한다

Motion blur aware tracker

How the tracker estimates camera motion trajectories from motion-blurred images through direct image alignment

Direct image alignment with sharp images

Original (direct VO apporach)
  • 이전 keyframe과 현재 frame의 photometric error 최소화
    • depth로 R2×RR3\mathbb{R}^2 \times \mathbb{R} \rarr \mathbb{R}^3 하는 그 과정
  • robust loss (huber loss)도 추가해서 더 정확한 pose 얻음
  • 근데 애초에 blurry images는 photometric error가 크고 T도 부정확해서 direct VO 못 씀

Camera motion trajectory modeling

  • exposure period (0~τ\tau) 동안의 local camera trajectory를 정의해야 motion blur를 해결한다!
    • 이전 & final frame의 camera pose 간 linear interpolation하는 방법
      • 이 방법으로 motion blur를 여러 sharp image로 표현하는 것과 관련된 방식으로 해결 가능
      • 근데 이 방법은 방향이 급격히 바뀌었을 때 성능이 떨어짐
  • 그래서 우리는 exposure period (0~τ\tau)의 처음과 끝에서의 camera pose -> linear interpolation

Tt=Tstart  exp(tτ  log(Tstart1 Tend))T_t = T_{start} \ \cdot \ exp(\frac{t}{\tau} \ \cdot \ log(T^{-1}_{start} \ \cdot T_{end}))

이 식을 decompose하면

qˉt=qˉstartexp(tτlog((qˉstart1qˉend))\bar{q}_t = \bar{q}_{start} \otimes exp(\frac{t}{\tau} \cdot log((\bar{q}_{start} ^{-1} \otimes \bar{q}_{end}))

tt=tstart+tτ(tendtstart)t_t = t_{start} + \frac{t}{\tau}(t_{end}-t_{start})

  • MBA tracker estimates TstartT_{start} & TendT_{end} for each frame
    • lienar interpolation으로도 잘 되는 이유! exposure time이 아주 짧기 때문

Direct image alignment with blurry images

  • reblur the keyframe rather than deblurring the current frame
  • blurry -> reference image로의 pixel coord match 찾고
  • [0, τ\tau] 내 virtual view (sharp)를 uniformly sample해서 구하고
    • 몇 개의 virtual view를 만드는가는 7개로 설정했다고 함
    • blurry한 정도에 따라 dynamic하게 개수를 설정할 수 있음
  • reblurred image의 RGB를 bilinear interpolation & 평균치로 구함
  • 이제 실제 blurry image와 reblurred image 간 photoconsistency loss 계산

Motion blur aware mapper

Trajectories & representation estimated by maximizing photometric consistency between synthesized & real blurry images

  • NeRF든 3DGS든 사용하는 learnable parameters에 TstartT_{start}, TendT_{end} 추가

Loss functions

Lc=1RxRB(x)Bgt(x)L_c = \frac{1}{|R|}\sum_{x\in R} ||B(x) - B^{gt}(x)|| : synthesized blurry image & actual blurry image

Ld=1RxRD(x)Dgt(x)L_d = \frac{1}{|R|} \sum_{x \in R} ||D(x) - D^{gt}(x)|| : rendered depth & actual depth

  • If NeRF,

L=λcLc+λdLd+λfsLfs+λsdfLsdfL = \lambda_cL_c +\lambda_dL_d+\lambda_{fs}L_{fs}+\lambda_{sdf}L_{sdf} : ESLAM + 위 loss functions

  • If 3DGS,

L=λcLc+λdLd+λssimLssim+λregLregL = \lambda_cL_c+\lambda_dL_d+\lambda_{ssim}L_{ssim}+\lambda_{reg}L_{reg}

with scale regularization loss

Lreg=1GgGmax(max(Sg)/min(Sg),r)rL_{reg}=\frac{1}{|G|}\sum_{g\in G}max(max(S_g)/min(S_g),r)-r while SgS_g are scales of 3DGS

and SSIM loss between B(x)s

Experiments

Qualitative

ATE RMSE

Rendering and Reconstruction

Runtime & Memory

Qualitative

Sharpness restored

Mesh

Ablation & Comparison

profile
Hail hamster

0개의 댓글