Monocular depth estiation에서 supervised 방식은 대부분 pixel-level loss를 활용하며 이는 실제 3D scene의 regularity를 반영하지 못한다.
3D scene의 geometric한 특성을 활용하기 위한 전형적인 방법으로 plane을 사전 정보로 사용할 수 있으며 "GeoLayout"에서는 이를 explicit하게 활용하였다.
본 논문에서는 planarity priors에 기반한 pixel들 간의 관계를 정의하기 위해 intermediate representation을 활용한다.
Method
Plane Coefficient Representation for Depth
Camera intrinsics와 depth map D가 주어졌을 때 다음 식과 같이 각 픽셀 p를 3D point P로 backprojection 할 수 있다.
P는 3D scene에서 어떤 plane에 해당하기 때문에 다음 식으로 표현할 수 있다. n⋅P+d=0,n=(a,b,c)T, n은 normal vector
식(2)로 P를 치환하면 아래의 식을 얻을 수 있으며 계수 α^,β^,γ^는 3D plane과 camera intrinsics 정보를 인코딩하고 있다.
계수들을 정규화하여 표현하면 α=ρα^,β=ρβ^,γ=ργ^(ρ=α^2+β^2+γ^2)이며 Z는 다음과 같이 쓸 수 있다.
C=(α,β,γ,ρ)T를 plane coefficient라고 칭하며 Z=h(C,u,v)가 된다.
Dense plane coefficient C(u,v)를 거쳐 예측한 initial depth map은 Di로 표기한다.
Learning to Identify Seed Pixels
동일한 plane 상에 있는 2개의 픽셀은 같은 C를 가지지만 일반적으로 다른 depth를 가진다.
어떤 픽셀 p에 대해 동일한 plane에 있는 다수의 픽셀들 q를 seed pixel이라 정의한다.
Prior가 유지 될 때 p에 대한 depth는 q를 확인하여 예측 가능하므로 offset o(p)=q−p를 활용할 수 있다.
Offset vector field o(u,v)를 다른 decoder를 통해 만들며 plane coefficient를 재샘플링하기 위해 활용한다.
재샘플링 된 plane coefficient는 second depth prediction을 위해 사용된다.
하지만, prior가 항상 valid 하지는 않아 initial depth prediction Di가 seed-based prediction Ds에 비해 중요도가 높으므로 second head에서 confidence map F(u,v)를 함께 뽑아 두 prediction을 adaptive하게 fusion 할 수 있도록 만든다.
Df,Di,Ds에 전부 supervision을 적용하여 optimize 한다.
이러한 방식을 통해 plane coefficient head는 모든 픽셀에 대해 정확한 representation을 얻을 수 있으며, offset head는 planarity prior가 hold되는 픽셀들에 대해서는 높은 confidence를 그렇지 않은 픽셀들에 대해서는 낮은 confidence를 갖도록 만든다.
Mean Plane Loss
Normal n은 overdetermined system으로 noise가 껴있는 groud-truth depth로는 optimal solution이 보장되지 않는다.
하지만 여전히 depth는 scene structure에 대한 comprehensive detail을 가지고 있으므로 local하게 aggregate 될 수 있다.
하나의 input patch에 대해 normal n은 An=b를 만족한다. A는 patch 내의 3D point들을 쌓은 matrix, b는 그 중 하나의 벡터로 이는 closed form이다.
Mean plane loss를 계산하기 위해 D와 D∗로부터 K개의 모든 non-overlapping patches의 surface normal를 추정한 후 그 차이를 penalize 한다.