1. Introduce
기존 LLMs (GPT 등)은 이미지, 동영상 등 새로운 Multi-Modal LLM을 통해 확장 중입니다. 그러나 기존 LLMs은 3D 환경을 이해하고 이를 바탕으로 추론할 수 있는 SF 영화 속 로봇에 비해서는 부족할 수 있습니다.
이를 해결하기 위해, 본 논문에서는 LLM에 3D 세계를 통합하는 (3D World를 입력으로 받고 3D 관련 작업을 수행하는 LLM) 환경을 제공합니다. 이 논문에서 소개하는 3D LLM의 중요한 이점은 다음과 같습니다.
1. 전체 장면에 대한 장기 기억 : 부분적인 관찰보다 전체적인 3D 표현 (포인트 클라우드 등)을 사용하기 때문에 장면의 모든 것을 하나의 전체적인 데이터로 저장해, 단편적인 관찰보다 훨씬 유리함.
2. 3D 속성(활용 가능성, 공간적 관계) : 3D 표현 (포인트 클라우드 등)에서 추론할 수 있기 때문에, "의자에 앉을 수 있다" 같은 활용 가능성을 전체적인 3D 데이터를 바탕으로 추론할 수 있고, "의자가 책상 옆에 있다" 같은 공간적 관계도 따로 설명하지 않아도 추론이 가능함.
본 논문에서 가장 중요하게 생각하는 첫 번째 단계는 데이터 수집입니다. 2D 기반의 이미지, 텍스트 데이터는 방대하지만, 3D 데이터는 부족하고 특히, 언어 설명과 Pair를 이루는 3D 데이터를 더욱 부족합니다. 따라서 본 논문에서는 3D 데이터와 언어 설명을 Pairing 할 수 있는 파이프라인을 제시합니다.
두 번째로는 수집된 3D 데이터를 효과적으로 활용하기 위해 3D 특징을 언어특징과 연결해야 합니다. 기존에 2D 이미지와 언어를 연결하는 방법 (CLIP 등) 을 3D에 그대로 적용하면 2D 데이터 대비 훨씬 비용이 많이 듭니다.
그래서 본 논문에서는 2D Multi-View 이미지의 사전 학습된 2D CLIP 특징을 활용해 3D 특징을 구성하는 3D 특징 추출기를 사용합니다. 다시 설명하자면, Multi-view 이미지를 입력받아 이미 VLM (BLIP-2, Flamingo) 으로 학습된 2D 특징을 그대로 사용하는데, 3D 특징은 '2D 사전 학습된 특징 공간'으로 매핑되기 때문에 기존의 2D VLM을 백본으로 사용할 수 있으며, 이를 통해 2D로 학습된 모델을 그대로 사용하면서도 3D 데이터에서 정보를 얻을 수 있는 것입니다.
그러나 2D 특징이기 때문에 3D 공간 감각을 제공하기 위해 3D Localization 메커니즘을 사용합니다.
1. 3D Position Embedding
- 추출된 3D 특징에 위치 정보를 추가합니다. (3D 포인트가 장면 어디에 있는지 숫자로 표현)
2. Location Token
- 특정 객체의 위치를 더 잘 파악하도록 학습시키기 위해, 텍스트 설명과 연결된 위치 정보 추가합니다. (의자가 방의 오른쪽 구석에 있다.)
2. Method
1. Date Generation
문제 정의 : 3D 데이터는 텍스트 설명이 부족하거나 노이즈가 많아 3D와 언어 데이터를 Pairing하기 어려움. 따라서 GPT와 같은 기술을 활용해 3D-언어 데이터를 생성하려고 시도합니다.
본 논문에서는 GPT를 활용한 세 가지 프롬프트 전략을 제안합니다.
1. Boxes-Demonstration-Instruction 기반 프롬프트
- 3D 장면의 AABB (Axis-Aligned Bounding Box) 데이터를 입력으로 사용합니다. 경계 상자는 방이나 객체의 위치나 크기 정보를 GPT에게 제공하고 텍스트로 3D 장면의 설명을 생성하도록 지시합니다. 이는 Few-shot 학습을 통해 학습시키는데, Few-Shot 학습은 GPT에 0~3개의 예시 데이터를 입력으로 제공해 모델이 어떤 유형의 데이터를 생성해야 하는지 학습시키는 방법입니다.
2. ChatCaptioner 기반 프롬프트
- ChatGPT와 BLIP-2를 결합해 3D 장면에 대한 설명을 생성합니다.
- BLIP-2 : Multi-view이미지를 기반으로 질문에 답변
- ChatGPT : 이미지를 보지 않고도 정보를 수집하기 위해 질문을 생성
BLIP-2에 Multi-view 이미지를 입력하면 ChatGPT가 장면의 다양한 영역에 대한 정보를 묻는 질문을 생성하고 BLIP-2가 대답해, 두 모델이 상호작용하여 장면 전체에 대한 종합적인 3D 설명을 생성합니다.
3. Revision 기반 프롬프트
- 하나의 3D 데이터 유형을 다른 유형으로 변환합니다.
예를 들어 "The white chair is near the table" 이라는 3D 객체의 설명이 있으면, GPT에게 "이 장면에 대해서 질문과 답변 세트를 만들고, 질문은 3D 공간 정보와 객체의 특징을 포함해줘" 라고 입력합니다.
GPT는 Q : What color is the chair near the table? A : The Chair near the table is white. 이런 식으로 출력합니다.이를 통해 3D-LLM 학습에 필요한 다양한 데이터를 생성할 수 있습니다.
2. 3D-LLM 학습
문제 정의 : 3D LLM을 처음부터 학습하기에는 어려움. 사전 학습된 2D CLIP 모델이 잇지만 3D 데이터에서는 존재하지 않음. 따라서 3D 특징 추출기와 2D VLM을 활용한 백본 설계, 3D Localizaiton 메커니즘을 제안합니다.
1. 3D Feature Extractor (3D 특징 추출기)
3D 데이터를 2D 데이터 기반으로 학습하기 위해, 3D 특징을 생성하는 세가지 방법을 사용합니다.
1. Direct Reconstruction (직접 재구성)
- RGB-D 이미지와 정확한 카메라 매트릭스를 사용해 3D Point Cloud를 생성하고, 생성된 포인트에 이미지 특징을 직접 매핑합니다.
- 언제? 정확한 카메라 Pose와 Depth가 있을 때,
2. Feature Fusion (특징 융합)
- Multi-view로 추출한 2D 특징을 gradSLAM을 통해 3D 특징 맵에 융합합니다.
- 언제? Depth에 노이즈가 있거나 카메라 Pose가 부정확할 때,
3. Neural Field
- NeRF
- 언제? RGB 데이터만 있고 Depth가 없을 경우,
2. 2D VLM 백본
3D 특징이 2D VLM과 동일한 특징 공간으로 매핑되기 때문에, 사전 학습된 2D VLM (BLIP-2, Flamingo)을 백본으로 사용합니다.
- 3D 특징 추출기를 통해 3D 데이터를 2D 특징 공간으로 변환.
- 변환된 3D 특징을 2D VLM에 입력하여 3D-LLM을 학습.
3. 3D Localizaion
3D 공간 정보를 더 잘 학습시키기 위해 사용합니다.
1. 3D Position Embedding
추출된 3D 특징에 위치 정보를 추가합니다.
- X, Y, Z 축 각각에 대해 dv/3 크기의 임베딩을 생성하고 이를 3D 특징에 결합
2. Location Token
언어 모델의 어휘에 3D 공간 정보를 나타내는 위치 토큰을 추가합니다.
- AABB를 토큰 형태로 표현 (xmin, ymin, zmin, xmax, ymax, zmax)
- 위치 토큰의 입력 및 출력 임베딩 가중치를 학습 가능하도록 설정
3. Experiments
ScanQA 데이터셋을 사용한 3D-LLM의 성능 결과를 나타냅니다. 표1은 Validation set 결과, 표2는 Test set 결과를 나타냅니다.
표 1, 2에서 나타난 결과와 같이 3D-LLM의 결과는 모두 좋았으며, BLIP2가 대부분 최고 성능을 기록했습니다.
Baseline 모델들은 명시적인 객체 표현을 사용해 제한적인 정보를 학습했기 때문에 성능이 낮게 나온 것을 확인 할 수 있습니다.
정성적인 결과로는 이러한 결과가 나왔습니다. 굉장히 잘 표현하는 것으로 보입니다.
4. Conclusion
3D 데이터를 활용하는 새로운 LLM 계열을 소개하는 논문입니다. 하지만 2D Multi view 이미지에 의존하고, 3D 데이터를 직접 학습하지 못하기 때문에 (간접적 처리) 더 효율적인 학습 방법이 요구될 수 있을 것 같습니다.