MirageRoom: 3D Scene Segmentation with 2D Pre-trained Models by Mirage Projection
0. Abstract
3D를 2D로 projection하여 point cloud를 segment하는 연구 중 2D real world image를 추가적으로 이용한 방법들이 최근 연구되고 있다. 하지만 이는 indoor에서 occulusion이 발생하는 문제가 발생한다. 본 논문에서는 앞의 object 때문에 가려지는 뒤의 object를 다루고자 한다. 불균형한 매질 굴절률로 인해 가려진 물체의 ray가 왜곡되는 현상에서 영감을 받아, 본 논문에서는 다양한 왜곡률을 가진 projection image를 얻을 수 있는 불균형한 매질의 parametric mirage projection을 설계하여 MirageRoom을 제안한다.
1. Introduction
point cloud segmentation 연구에서 방해요인은 좋은 품질의 annotated 3D scene data가 부족하다는 것이다. 2D image dataset에 비하면 매우 부족한대, 많은 2D image data의 장점을 살려 3D task에 도움을 주는 방법이 3D data 부족을 해결할 수 있다.
하지만 Figure 1과 같이 일직선 projection은 occlusion이 발생하여 projection 이미지를 통해 point에 충분한 정보를 전달하지 못하게 된다. object level point cloud에서는 view point를 바꿔 해결하지만, indoor scene에서 적절한 view point를 생성하는건 여전히 어려운 일이다. (object level에서는 occlusion이 등받이에 가려진 손 받침대 정도이지만 scene level(point cloud level)에서는 책상 뒤에 있는 모니터 같은 경우 viewpoint를 바꿔도 보이지 않을 수 있다.)
본 논문에서 균일한 매질이라는 가정이 있기 때문에 projection ray가 일직선으로 나아가 occlusion이 발생한다고 주장한다. 이질적인 매질에서 왜곡되는 ray를 통해 occluded object를 파악할 수 있는 mirage 현상(신기루 현상)에서 영감을 받아, 왜곡되는 ray를 통해 occluded point를 획득하기 위한 mirage projection 전략을 제안한다. Figure 1과 같이 projection ray를 curve시키는 κ 파라미터를 설정하여 이질적인 매질의 3D 공간을 설계한다. κ를 선택함에 따라 projection image는 더 많은 point를 ocver 한다.
projection 전략을 기반으로, 2D pre-train된 모델를 합친 point cloud architecture인 MirageRoom을 설계한다. κ개의 multi view projection을 그룹화하여 2D model의 정보를 획득한다. 이를 통해 2D image backbone은 2D feature를 추출할 수 있다. 2D와 3D laten space의 차이를 줄이기 위해 masked reprojection module을 설계한다.
3. Proposed Method
3.1. Mirage Projection
Review of straight-line Projection.
기존의 일직선 projection 방법을 이용해 x-z 평면에 projection한다면 아래와 같이 나타낼 수 있다.
이 방법은 두가지 문제점이 있다. 첫째, 뒤의 object는 앞의 object에 가려져 project image가 point를 cover하지 못한다. 둘째, 간단한 scatter style figure는 sparsity point cloud때문에 real world image에서 빈 grid가 있다. (단순한 scatter방법은 real world image와 차이가 있다.)
Physical Modeling.
일직선의 projection은 occlusion을 유발하기 때문에 왜곡된 ray를 통해 occluded object를 볼 수 있는 mirage현상을 참고한다.
Figure 2와 같이 mirage 현상은 불균질정도에 따라 매질 refraction rate가 반영된다.
refraction rate는 z에 반비례한다. optical 원칙에 따라, 빛의 ray는 Snell's법칙에 따라 각 θ만큼 왜곡된다. (C는 상수값)
y-z평면에 curve된 light ray의 공식은 아래와 같다.
Projection Implementation.
κ값에 따라 매질의 왜곡 강도를 조절하며, 관련한 정의나 공식은 논문 참고
Densify.
point cloud의 sparsity로 인한 empty grid를 해결하기 위해 densify를 적용한다. point와 pixel간의 1대1 매칭이 아니라 각 point를 원래 projection position에 인접한 주변 픽셀에 projection한다. 여러 point가 하나의 pixel에 project될 때, projection 평면에 가장 가까운 값만 남긴다. 이 방법을 통해 local semantic feature의 왜곡 없이 각 pixel이 채워지며 real world image와 비슷해진다.
3.2. Masked Reprojection Module
해당 모듈은 mask generation, masked 2D-to-3D cross-attention 2가지 part로 나뉜다.
Mask Generation.
3D point단위의 feature를 보완하기 위해, 2D map으로부터 추출한 feature는 높은 정밀도를 가져야 한다. mirage projection 전략이 각 point의 위치를 정확하게 계산함에도 불구하고 2가지 문제가 있다. 첫째, projection plane이 indoor scene 내에 있으며, 이는 point가 plane의 양면에 분포할 수 있다. 하지만 single projection image는 한 쪽의 point만 포함될 수 있다. 둘째, mirage projection을 통해 occlusion 문제를 해결했지만 여전히 single projection image에서 point가 가려진다. 그래서 각 point에 대해 n번의 reprojection을 통해 corresponding mask를 생성한다. 점 p가 projection plane의 반대쪽에 있거나 여전히 가려져 있다면 0, 그렇지 않으면 1로 설정한다. 이 방법을 통해 mask M(p)는 점 p의 projection map으로부터 신뢰할 수 있는 2D feature를 생성하는데 도움을 준다.
Masked 2D-to-3D Cross-Attention
mask M()을 기반으로 masked 2D-to-3D cross-attention을 제안한다. N개의 point P와 corresponding feature F_3D를 입력하면, n개의 2D projected map에 대응하는 2D feature을 출력하는 것을 목표로 한다. 3D point feature를 cross-attention의 query로 사용하며, corresponding 2D feature를 key와 value로 사용한다. 2D pixel의 local feature들은 매우 관련있기 때문에 k개의 이웃한 feature도 key와 value로 사용한다.
query와 key간의 관계는 두 벡터의 차이로 계산하며, softmax를 적용하여 계산한다. 각 점 point에 대해 projection한 2D feature가 유효한지 mask를 통해 확인 후 최종 계산한다.
3.3. Network Architecture
point cloud만 입력되며, group mirage projection, pre-trained 2D backbone, encoder layrer, U-Net을 합쳐 아키텍처가 구성된다.
Group Mirage Projection.
point cloud로부터 충분한 projection image를 얻어 group mirage projection module을 적용한다. bounding box를 중심을 기준으로 view plane을 설정한다. 정면, 후면, 왼쪽, 오른쪽 4개(nv)의 projection plane을 선택한다. 각 plane에 다른 κ(nk)를 적용하여, 여러 projection image를 생성해 더 많은 point를 cover한다. 따라서 총 nv * nk개의 image를 얻게 된다.
Pre-trained 2D Backbone
풍부한 2D feature knowledge를 encode하기 위해, pre train된 2D image backbone을 사용한다. 본 논문에서는 Swin Transformer를 사용한다. 다른 layer로부터 multi level 2D feature map을 모으기 위해 Feature Pyramid Network를 활용한다. 다른 scale로부터 의미있는 2D map을 얻을 수 있으며, 이는 고해상도에서 저해상도를 만들어 다양한 feature를 추출할 수 있다.
Encoder Layer.
multi-scale 2D feature map을 얻었지만 3D point단위의 feature를 생성하는 것이 중요하다. 따라서 3D point cloud feature와 2D feature map을 입력하는 main encoder layer를 설계한다. Figure 3와 같이 각 encoder layer에서 3D point cloud를 downsample을 진행한 후 self-attention block을 활용하여 feature를 추출한다. 그 후 masked reprojection module을 활용해 2D feature로부터 3D point feature를 얻고 MLP layer를 통해 이전의 3D point fueatre와 합친다.
Whole Structure.
전체 network는 point 단위의 embedding으로 시작해 encoder layer가 2D와 3D feature를 병렬적으로 donwsampling한다. 이를 decoder에 입력해 합치고 upsampling module을 통해 3D point를 upsample하여 feature를 연결한다.
4. Experiments
Ablation Study.
5. Conclusion
2D pre-train된 모델을 활용한 point cloud segmentation architecture인 MirageRoom을 제안한다. 일직선으로 projection하여 많은 occlusion을 발생시키는 기존의 projection방법들과 다르게 mirage projection을 통해 왜곡된 ray를 활용하여 occluded object를 활용할 수 있다. 이렇게 projection된 image는 더 많은 point를 cover할 수 있고 풍부한 2D feature를 제공한다.