Efficiently Reconstructing Dynamic Scenes One D4RT at a Time

윤준영·2026년 7월 7일

Computer Vision

목록 보기
15/15

1. Abstract & Introduction

비디오에서 장면의 복잡한 기하학과 모션을 이해하고 재구성하는 것은 컴퓨터 비전 분야에서 여전히 까다로운 과제이다. 본 논문은 이 과제를 해결하기 위해 D4RT 모델을 소개하고, 이 모델은 단일 비디오로부터 depth, 시공간적 대응, 카메라 파라미터를 동시에 추론한다.

대략적인 방법은 입력 비디오를 인코딩하여 latent scene representation을 생성하고, 이를 통해 여러 시공간적 point query를 독립적으로 디코딩한다. 이 모델은 단편화된 프레임 단위의 디코딩 패러다임에서 요구에 즉각 대응하는 on-demand 방식으로의 전환을 제안해서 효율적인 학습 및 추론을 가능하게 한다.

2. Method

D4RT는 인코더-디코더 구조이고, 인코더를 통해 비디오에서 global scene representation FF를 얻는다. 인코더의 역할은 전체 환경에 대한 정보를 얻어내는 것이다 (각 프레임의 대응 관계, 시간의 흐름, 등). 그 후 디코더가 FF에 query를 날려 프레임에서의 2D 좌표가 주어졌을 때 target 타임 스텝에서의 3D 위치를 예측하고, 이 위치는 주어진 카메라 시점에서 표현된다.

2.1. D4RT Framework

비디오 VRT×H×W×3V \in \R^{T\times H \times W \times 3}가 인코더 EE로 입력되어 global scene representation FF가 계산된다.

F=E(V)F = E(V)

Query qq(u,v,tsrc,ttgt,tcam)(u, v, t_{src}, t_{tgt}, t_{cam})으로 정의한다. 여기서 (u,v,tsrc)(u, v, t_{src})는 source 파라미터, (ttgt,tcam)(t_{tgt}, t_{cam})은 target 파라미터에 해당하고, (u,v)[0,1]2(u,v) \in [0,1]^2는 source 프레임에서의 정규화된 2차원 좌표이고, (ttgt,tcam)[1,...,T](t_{tgt}, t_{cam}) \in [1,...,T]는 각각 target 타임 스텝, target 카메라 좌표계의 시간적 인덱스다.
각 query qqFF와 독립적으로 처리되어 3D 위치 p\bold{p}를 생성한다.

p=D(q,F)\bold{p}=D(q,F)

From query to 4D reconstruction

Query 디코딩을 통해 다음과 같은 정보들을 복원한다.

  • Point tracking : Source 프레임에서 u,vu,v를 선택한 후 ttgt=tcamt_{tgt}=t_{cam}11에서 TT로 변화시키면 비디오 전체에 걸쳐 해당 포인트에 대한 3D 궤적인 point track을 얻을 수 있다.
  • Point cloud : 디코더 출력을 통해 비디오의 모든 프레임의 픽셀에 대한 3D 위치를 구할 수 있다.
  • Depth map : 아무 픽셀에 대해 tsrc=ttgt=tcamt_{src}=t_{tgt}=t_{cam}으로 query를 날린 후 출력된 p\bold{p}zz값들만 남겨서 구할 수 있다.
  • Camera extrinsics : 두 개의 reference 프레임에서 대응되는 kk 개의 2D 좌표 {(uk,vk)}k\{(u_k,v_k)\}_k에 대한 query qi,k=(uk,vk,i,i,i)q_{i,k}=(u_k,v_k,i,i,i)qj,k=(uk,vk,i,i,j)q_{j,k}=(u_k,v_k,i,i,j)를 생성한 후 이들 사이의 rigid transformation만 찾으면 되며, 이는 SVD 분해로 해결할 수 있다.
  • Camera intrinsics : 디코더를 통해 출력된 3D 위치 p=(px,py,pz)\bold{p}=(p_x,p_y,p_z)가 있고, 주점이 (0.5,0.5)(0.5,0.5)인 핀홀 카메라를 가정하면, focal length를 구할 수 있다.
    fx=pz(u0.5)pxfy=pz(v0.5)pyf_x=\frac{p_z(u-0.5)}{p_x} \\ f_y=\frac{p_z(v-0.5)}{p_y}

2.2. Model Architecture

모델의 인코더는 Vision Transformer (ViT)를 기반으로 하고, 모델의 단순성을 유지하기 위해 입력 비디오를 토큰화하기 전에 정사각형 크기로 해상도를 조정한다. 대신 원래 영상의 가로세로비 정보를 반영하기 위해 별도의 토큰으로 임베딩하여 ViT에 전달된다.

Pointwise decoder

디코더는 cross-attention transformer이고, query 토큰은 임베딩된 2D 좌표를 learnable한 임베딩 tsrc,ttgt,tcamt_{src}, t_{tgt}, t_{cam}에 더하여 구성된다. 2D 좌표 임베딩 시 해당 좌표를 중심으로 9×99 \times 9 패치의 임베딩을 query에 추가하는 것이 성능을 향상한다고 한다.
각 query는 global scene representation인 FF와 cross-attention을 수행하여 디코딩된다.

Query를 독립적으로 디코딩하는 것은 많은 이점을 제공해준다고 한다. 우선 모든 프레임에 걸쳐 query를 자유롭게 선택할 수 있고, 적은 수의 query만으로도 정답과 예측값의 비교를 통해 모델에 supervision signal을 충분히 제공할 수 있다.

2.3. Training and Inference

모델은 sampling된 NN개의 query 배치에 대해 계산된 loss의 가중합을 최소화함으로서 학습된다. Loss function으로는 우선 정규화된 3D 위치에 적용되는 L1 loss이다. Target 및 예측된 3D 위치를 평균 depth로 정규화한 다음, 멀리 떨어진 위치가 loss에 미치는 영향을 완화하기 위해 sign(x)log(1+x)sign(x)\cdot \log{(1+|x|)} 변환을 거친다. 또한 이미지 공간에서의 2D 좌표에 대한 L1 loss, 표면 법선 (surface normal)에 대한 코사인 유사도, target 포인트의 visibility에 대한 binary-cross entropy, point motion에 대한 L1 loss가 적용된다.
마지막으로 예측 신뢰도 cc에 대한 페널티인 log(c)-\log(c)를 줘서 3D 위치의 오차에 추가적인 가중치를 부여한다.

L=1Ni1N(cλ3DL3Dλconflog(c)+λ2DL2D+λvisLvis+λdispLdisp+λconfLconf+λnormalLnormal)iL=\frac{1}{N}\sum_{i-1}^{N}{(c\lambda_{3D}L_{3D}-\lambda_{conf}\log(c)+\lambda_{2D}L_{2D}+\lambda_{vis}L_{vis}+\lambda_{disp}L_{disp}+\lambda_{conf}L_{conf}+\lambda_{normal}L_{normal})}_i

Efficient dense dynamic correspondence

비디오 전체의 모든 픽셀에 대한 track을 재구성하는 단순한 방식은 O(T2HW)O(T^2HW) 개의 query를 필요로 하며, 이 중 대부분은 실제로 불필요하다. 그래서 저자는 occupancy grid G{0,1}t×H×WG \in \{0,1 \}^{t\times H\times W}를 사용하여 시공간적 중복성을 활용하여 과정을 크게 가속화한다.

profile
AMC AI research engineer

0개의 댓글