논문읽기

논문읽기: Open-Vocabulary 3D Semantic Segmentation with Foundation Models (CVPR 2024)

낭만가이 2024. 6. 30. 02:03

이번에 CVPR 학회에 다녀왔는데 그 중 흥미로워보이는 논문 몇 개를 골라 찬찬히 읽어보았다.

 

본 논문에서는 다양한 VLM(Vison-Language Model), VFM(Vision Foundaion Model)을 적극적으로 이용하여 3D semantic segmentation을 weak supervised 형식으로 학습하는 방법론을 제시하였다. 3D-Text multimodal을 제공하는 VLM은 없기 때문에 2D VLM을 징검다리 삼아 학습 파이프라인을 구성한 점이 특징이다.

 

논문링크:

Jiang_Open-Vocabulary_3D_Semantic_Segmentation_with_Foundation_Models_CVPR_2024_paper.pdf (thecvf.com)

 

 

 

방법론

1. Mapping Image to EntityText

일단 2D 이미지들을 가지고, VLM을 통과시켜 text를 얻는다. 이 때 프롬트를 Chain-of-Though(CoT) 방식으로 통과시켜 이미지 내 존재하는 Entity에 관한 정보들을 얻는다. 이 떄 VLM은 LLAVA-1.5를 사용하였고, 아래와 같이 순차적인 질문을 통해 각 Entity에 관한 설명을 원하는 형태로 잘 출력할 수 있도록 하였다. 이렇게 얻은 Image와 Text의 Pair를 EntityText라고 명명하였다.

  • Image vs Entity level: Image 단위보다는 Entity에서 VLM의 텍스트 값을 얻는 것이 훨씬 더 정교한 결과를 얻을 수 있다. 특히나 여러 개의 물체가 이미지 안에 존재하는 경우에 더 그렇다.
  • Concrete Entity Identification: 텍스트에서 명사만 추출하는 방식보다는, VLM이 각 Entity를 추출하게 함으로써 보다 정확한 Entity 이름 셋을 얻을 수 있었다. (relaxation, center와 같은 명사가 추출되는 것을 방지)

 

2. Associating Pixel with EntityText

Vision Foundation Model (VFM, SAM이나 SEEM 등이 있음)은 이미지에 대해 Segmentation결과를 제공해 줄 수 있다. 먼저 이미지를 VFM을 통과시켜 Segmentation 결과를 얻는다. 이 결과를 앞에서 구한 EntityText와 픽셀 단위로 매칭을 시키기 위해. Vision Language Model(앞에서 EntityText를 구할 때 사용했던 모델과는 다름)을 활용하였다.

 

3. Connecting point and EntityText via pixel

주어진 카메라 파라미터 등을 이용해서 3D point와 2D pixel 간 맵핑시키면, 각 3D point에 해당하는 EntityText를 얻을 수 있다. 이 때 각 3D point가 2D 이미지 범위에 들어오는지, Occlusion에 의해 보이지 않는 포인트인지 등을 확인해야 한다.

하나의 3D point는 여러 2D 이미지에 등장할 수 있기 때문에 각 포인트별로 여러 EntityText의 집합과 매칭이 되게 된다. 이를 감안하여 Loss 계산을 설계하였다.

 

4. Training and Inference

전체적인 학습은 아래와 같이 진행된다:

  • 3D point p를 3D network를 통과시켜 3D point feature f^p를 얻는다.
  • p에 대응되는 EntityText의 집합 E_p의 각 원소들을 CLIP을 통과시켜 Text feature f^e를 얻는다.
  • f^p와 f^e가 최대한 유사해 지도록 Loss를 설정하고 학습시킨다. 수식으로 나타내면 아래와 같다.

 

전체 학습 과정을 그림으로 도식화해보면 아래와 같다.

 

Inference시에는 2D가 없이 3D만 가지고 진행한다. 먼저 3D point cloud를 학습된 3D network를 통과시킨다.그러면 각 포인트별로 Feature를 얻을 수 있다. 다음으로 오픈 클래스 셋을 CLIP에 통과시켜 text feature를 얻는다. 각 3D point feature와 CLIP에서 나온 클래스별 text feature를 비교하여 가장 유사한 클래스로 분류한다.

 

Experiments

1. Annotation-free scenario

아무 Annotation이 주어지지 않은 상황에서의 OV3D의 성능을 측정하였고, 그 결과는 아래와 같다. ScanNet과 Matterport3D 모두에서 이전 방법론들에 비해 향상된 결과를 보여준다. 뿐만 아니라 기존의 SOTA 방법론인 OpenScene-3D와 결합하여 사용될 수 있고, 이 경우 더욱 높은 성능 향상을 보여주었으며 Fully-supervised에 근접한 성능을 보인다.

 

 

Outdoor dataset인 nuScenes에서도 아래와 같이 좋은 성능을 보여주었다.

 

2. Interpreting base-annotated 3d worlds

Base class는 annotation이 되어 있고, 새로운 클래스가 등장하는 시나리오에서 성능을 측정하였다. Annotation-free의 경우와 마찬가지로, 좋은 성능을 보여주었다.

 

3. Ablations

EntityText를 생성할 때 명사를 추출하는 것보다 LVLM(Large Vision Language Model)을 활용하는 것이 더 유리하고, 이름만 활용하는 것보다 설명을 추가로 활용하는 것이 좋은 것으로 나타났다.

 

Segmentation 생성 / Segmentation-EntityText 매칭시에는 둘 다 SEEM을 사용하는 것이 가장 좋은 것으로 나타났다.

 

Takeaways

  • 3D 모델에 Foundation model을 직접적으로 적용하기는 어렵지만, 이 논문에서 제시한 대로 2D를 잘 이용하여 Foundation model의 좋은 성능을 이용할 수 있다.
  • 아무래도 3D에 대한 직접적인 Vision-Language 모델 또는 Foundation model은 없다보니 파이프라인이 상당히 복잡하고, 중간에 여러 모델들을 활용해야 한다. (Image->EntityText, Image->Segment, Segment->EntityText, Open class set->Text feature) 이를 좀 더 간소화 할 수 있는 방법을 찾아보면 성능도 올라가고, 효율도 더 좋을 것 같다.