Open3DIS: Open-Vocabulary 3D Instance Segmentation with 2D Mask Guidance
https://arxiv.org/pdf/2312.10671
1. Introduction
open vocabulary 3D instance segnetation을 다루는 연구가 몇개가 있다. 최근 대부분 pre-train된 3DIS model을 사용하여 3D point cloud의 기하학적 구조를 파악하고 높은 queality의 instance mask를 생성한다. 하지만 이는 rare한 object의 인식이 어려운데 불완전한 appearance의 3D point cloud와 pre-train 3D model의 제한된 detection 능력 때문이다. 또 다른 방법으로 2D off-the-shelf open vocabulary model을 활용하는 것이다. 하지만 2D를 3D point cloud로 전환하는 것은 어려운 일이다. 2D는 3D의 보이는 부분만 포착하고, 배경과 같은 관련없는 영역까지 포함된다. 이는 Figure 1에 요약되어있으니 참고하면 된다.
이러한 방법들의 한계를 Open3DIS로 해결한다. 3D instance network를 통한 3D instance와 2D를 통한 3D instance를 활용하여 3D object binary instance mask를 생성한다. 여러개의 frame에서 추출한 2D mask를 통합하여 point cloud mask를 생성한다. 그 후 point 단위의 feature extraction을 CLIP feature와 결합하여 open vocabulary instance segmentation을 수행한다.
Contribution은 다음과 같다.
- 2D Guided 3D Proposal Module을 제안한다. 이는 여러 view의 RGB-D image에서 만든 2D Instance mask를 합쳐 point cloud region을 clustering하여 3D proposal을 만든다.
- open vocabulary 3D object proposal을 위한 새로운 point 단위의 feature extraction을 제안한다.
- SOTA 성능 달성
2. Related Work
Open-Vocabulary 3D instance segmentation(OV-3DIS)
크게 open-vocabulary semantic segmentation-based, text description and 3D proposal contrastive learning based, 2D open-vocabulary powered approach 3가지 방법으로 나뉜다. 첫번째는 clustering 방법을 사용한다. 그러나 이는 clustering 정확도에 의존하고 unseen한 class에 대해 낮은 신뢰도를 보일 수 있다. 두번째는 3D instance proposal network에 집중한 방법으로 예측한 proposal과 text caption의 corresponding 간의 contrastive open vocabulary를 활용한다. 하지만 class의 갯수가 늘어날수록 각 class를 구별하기 힘들어진다. 세번째는 3D instance segmentation을 활용해 class-agnostice 3D proposal 을 생성하고 2D mask projection의 CLIP 점수를 기반으로 classfier한다. 하지만 작거나 흔하지 않은 object category를 구별할 때 어려움이 있다. 그 외에 2D open vocabulary model을 활용해 2D instance mask를 생성하여 3D point cloud로 back-project하는 방법이 있다. 하지만 2D segmentation mask가 완벽하게 배열되지 않아 background point가 foreground object에 포함되게 된다. 그럼에도 불구하고 다른 방법에 비해 많은 dataset으로 학습된 2D pretrain model의 장점을 활용할 수 있다. 이 방법을 활용해 Open3DIS 또한 2D instance mask를 활용해 기하학적인 영역을 grouping하여 3D mask를 생성한다.
3. Method
3D instance segmentation module을 활용해 3D point cloud로 바로 object proposal을 추출한다. robust 3D object instance detection을 위해 spatial하고 structural한 관계를 학습하는 convolution, attention mechanism을 사용함에도 불구하고 Figure 1과 같이 spare point cloud나 noise가 tissue box 같은 object를 놓치게 된다.
2D instance segmentation을 이용한 2D guided 3D instance proposal module을 활용한다. 하지만 2D mask는 occlusion때문에 3D object의 part만 포착할 수 있다.(Figure 2-2) 이를 해결하기 위해 같은 object의 2D mask를 back project한 point cloud 영역을 계층적 통합을 하는 방식을 제안한다. robust하게 하기 위해, superpoint를 사용한다.
table 1을 통해 향상을 볼 수 있으며, 특히 rare class에 대해 2D and 3D가 향상된 것을 볼 수 있다.
또한, open vocabulary classification을 향상시키기 위해 point 단위의 feature extraction module을 추가하였다.
3.1. 2D-Guided-3D Instance Proposal Module
RGB color, 3D coordinate가 포함된 3D point cloud가 module에 입력된다. 또한 RGB-D video sequence도 입력받아 각 frame에 RGB image, depth map, camera matrix를 받게 된다. 이를 이용해 binary instance mask를 출력한다.(Figure 2-3)
Superpoints.
전처리과정에서, 기하학적으로 homogeneous 영역을 그룹화한 superpoint를 활용한다.(Figure 2-1) superpoint는 마지막 stage에서 효율적으로 처리하고 object instance 후보를 더 나은 형태로 만들어준다.
Per-frame superpoint merging.
모든 입력 frame에 대해 2D instance segmenter(Grounding-DINO, SAM)을 활용하여 2D mask를 출력한다. 각 2D mask에 대해 superpoint와의 IoU를 계산한다. superpoint는 IoU가 threshold보다 높으면 2D mask와 충분한 overlap이 되어있는지를 고려한다.
하지만, 2D mask가 background나 근처의 object를 포함할 수 있으며, 이로 인해 IoU만으로 superpoint가 3D proposal이라고 결정하기에 불충분하다. 따라서 3D backbone을 이용해 point feature를 추출하고 superpoint와 similarity를 계산한다. 각 2D instance mask는 IoU가 가장 높은 mask를 활용한 superpoint를 이용해 point cloud 영역을 초기화한다. 이를 높은 cosine similarity를 가지고 threshold보다 높으며, IoU condition에 만족하는 neighboring superpoint와 합쳐가며 영역을 확장해나간다. overlapping되는 영역이나 neighboring superpoint가 없을 때까지 계속되며, 이는 다른 merging strategy나 point 단독으로 사용하는 방법보다 효과적이다.
3D object proposal formation.
3D object proposal을 생성하기 위해, 각 frame을 사용하여 만든 point cloud region을을 활용하는 방법이 있다. 하지만 이는 fragmented proposal을 초래하고 object instance의 부분만을 포착한다. 이를 해결하기 위해, 저자들은 다른 frame에서 온 point cloud region를 합쳐 더 완벽한 3D object mask를 생성한다. 단계적으로 각 frame의 쌍을 합쳐 만들어 각각 다른 frame에서 다른 영역간이 match되게 할 수 있다.
Matching score.
point cloud 영역 쌍을 만들기 위해 (a) feature similarity, (b) overlap degree를 기반으로 matching score를 정의한다. feature similarity는 영역의 feature vector간의 cosine similarity로 측정한다. 같은 object shape을 가질 경우 높은 similarity를 가질 것이다. 또한 overlap degree를 고려하는데 두 영역간의 IoU로 표현한다. IoU와 feature based similarity가 threshold를 넘는다면 매칭시킨다. 이는 Table 7과 같이 더 나은 성능을 보여준다.
Agglomerative clustering process.
다른 frame에서의 영역을 합치기 위해 Agglomerative clustering을 사용한다. 두 개의 영역을 합쳐 active set을 만든다. 이후 cost matrix를 다시 계산하며 1이 존재하지 않을 때까지 병합을 진행한다. 이때 병합은 similarity와 IoU값이 일정 threshold값을 넘을 때 수행한다.
Merging order.
frame을 순차적으로 병합하는 sequential order와 비연속적인 frame을 병합하는 hierarchical order방식을 사용한다.
3.2. 3D Instance Segmentation Network
Network design.
3D point cloud를 이용해 바로 3D object instance mask를 생성한다. Mask3D와 ISBNet을 backbone으로 사용한다. labeling을 배제하고 오직 binary instance mask head에 집중한다.(Figure 2-4)
Combining object instance proposals.
간단하게 proposal들을 합친 후 NMS를 통해 겹치는 proposal을 제거한다.
3.3. Pointwise Feature Extraction
마지막으로 각 3D object proposal의 feature vector를 계산한다. 각 proposal feature vector는 CLIP의 text prompt와 비교하는 것과 같은 instance based task를 수행한다. 이전의 방법들과 달리, 3D aware 전략을 사용한다. point cloud의 feature vector를 동반하여 각 point가 각 view에서 얼마나 자주보이는지를 고려한다. 즉 상위 view에서 더 자주 볼 수 있는 point들이 proposal feature vector에 더 많이 기여해야 한다는 것이다.
4. Experiments
4.2. Comparison to prior work
4.3. Ablation study
5. Discussion
point cloud 기반의 instance segmenter와 2D image based network를 활용한 open vocabulary instacne segmentation을 제안한다.
Limitations.
class agnostic 3D proposal과 2D-guided-3D instance proposal module을 각각 독립적으로 실행이 된다.각 모듈이 상호작용하며 진행된다면 더 나은 성능을 보일 것으로 예상된다.