제가 이번에 리뷰할 논문은 미학습 객체에 대응하기 위한 6D Pose Estimation 논문으로, 미학습 객체의 pose 정보를 추정하기 위한 서로 다른 세팅(3D CAD 모델을 사용하는 model-based방식과 reference 이미지를 사용하는 model-free 방식)에 모두 적용이 가능한 unifed 모델을 제안하였다고 하여 리뷰하게 되었습니다.
Abstract
저자들은 새로운 객체에 대한 학습과정 없이 6D Pose Estimation과 Tracking을 위해 통합된 foundation model인 FoundationPose를 제안하며, 해당 논문에서 제안한 방식은 3D 모델을 사용하는 model-based 방식과 3D 모델을 사용하지 않는 model-free 방식에 모두 적용이 가능하다고 합니다. 해당 방법론은 novel view synthesis 방식의 neural implict representation을 이용하여 객체의 pose를 추정하는 과정에 CAD모델의 여부와 관계 없이 작동할 수 있도록 하였으며, LLM과 새롭게 디자인한 Transformer-based 아키텍쳐, contrastive learning을 도입하여 강력한 일반화가 가능하였다고 합니다. 해당 방법론은 복잡한 시나리오와 객체들로 구성된 공개 데이터에 대한 평가를 통해 저자들이 제안한 방식이 각 task에 특화된 방법론에 비해서도 성능이 크게 개선되었음을 보였으며, 특히 정해진 인스턴스에 대해 학습된 instance-level 방식 대비 제약 조건이 더 완화되었음에도 비견할 만한 성능을 달성하였습니다.
Introduction
객체로부터 카메라까지의 rigid transformation을 추정하는 6D Pose Estimation은 로봇 manipulation, mixed reality와 같은 응용 관점에서 중요한 문제 입니다. 고전적인 자세 추정 방식인 instance-level의 방법론은 특정한 인스턴스에 대하여 학습을 하고 자세 정보를 추정하는 방식으로, 학습을 위한 CAD 모델이 필요하며, 새로운 객체에 대응이 불가능하다는 한계가 있습니다. 이러한 인스턴스별 학습 및 3D 모델이 필요하다는 한계를 완화하기 위해 등장한 category-level 방식은 카테고리별로 학습을 수행하는 방식입니다. 그러나 이러한 category-level 방법론도 사전에 정의되고 학습된 카테고리 내의 객체로 한정이 되며, 학습을 위한 데이터를 수집하기도 어렵다는 한계가 있습니다.(특정 카테고리를 학습하기 위해 다양한 형태를 가진 인스턴스들을 모아 대표되는 pose를 설정하기 위한 과정이라 생각하시면 됩니다. )
이러한 기존 방법론들이 사전에 정의된 인스턴스가 카테고리에 한정된다는 한계를 극복하고자, 임의의 새로운 객체의 자세 정보를 즉각적으로(학습하지 않고) 추정하기 위한 연구가 최근 진행되고 있습니다. 크게 2가지의 세팅으로 연구가 진행되며 이는 3D CAD 모델의 유무에 따라 model-based 방식과 model-free방식으로 나누어집니다. 두 방법론 모두 최근 연구가 진행되고 있으나, 저자들은 실제 적용 환경에 따라 다르게 제공되는 정보를 활용하기 위해 두 세팅을 모두 통합할 수 있는 통합된 방법론이 필요하다고 어필합니다.
또한, 단일 프레임을 이용하는 방식과 다르게 pose tracking 방식은 시간에 따른 정보 변화를 활용하여 비디오 시퀀스에서 더 효율적이고 정확한 자세 추정을 위한 연구가 진행되고 있으나, pose tracking 방식도 제공되는 정보 및 가정에 따라 유사한 문제가 존재합니다.
본 논문은 pose estimation과 tracking에 새로운 객체에 대해서도 자세 정보를 추정할 수 있는 통합된 프레임워크인 FoundastionPose를 제안하여, model-based 경우와 model-free인 경우에 모두 사용할 수 있는 RGB-D 기반의 방법론을 제안하였습니다. 해당 방법론은 [Figure 1]에서 확인할 수 있듯 모든 세팅에서 SOTA를 달성하였다고 합니다. 또한, 대규모 합성 데이터를 활용한 학습 및 LLM, Transformer-bsed 구조, contrastive learning을 통해 일반화 성능을 높였으며, neural implicit representation을 활용하여 model-based 방식과 model-free 사이의 간격을 줄여 적은 수(~16장)의 reference 이미지로 새로운 view를 합성하여 기존의 렌더링 후 평가를 반복하는 방식보다 더 빠르게 렌더링이 가능하도록 합니다.
해당 논문의 contribution을 정리하자면
- 새로운 객체에 대한 pose estimation과 tracking이 가능한 통합된 프레임워크를 제안하였으며, 이는 model-based 세팅과 model-free 세팅을 모두 지원함 (객체에 대한 신경망의 representation을 활용하여 효과적으로 새로운 view를 합성하여 두 세팅의 간격을 줄임)
- 다양한 texture aubmentation을 통해 학습을 위한 3D model을 확장하는 LLM-aided 합성 데이터 생성 방식 제안
- 새롭게 디자인한 transformer기반의 네트워크 구조와 contrastive learning 공식을 통해 일반화 성능 향상
- 각 task에 특화되어 제안된 기존 방법론 대비 SOTA를 달성하였으며, instance-level 방법론과는 비교 가능할만한 성능을 달성함
Approach
1. Language-aided Data Generation at Scale
일반화를 위해 다양한 객체와 시나리오로 이루어진 대규모 학습 데이터가 필요하지만, 실제 데이터를 수집하는 과정은 시간과 비용이 너무 많이 들고, 합성 데이터의 경우 3D assets(텍스쳐 재질 정보등이 포함된 3D 객체)의 양과 다양성이 부족한 경우가 많습니다. 따라서 저자들은 대용량 3D model 데이터 베이스, LLM, diffusion 등의 데이터와 기술을 활용하여 학습 데이터를 확보하기 위한 새로운 합성 데이터 생성 파이프라인을 개발하였습니다.
3D Assets
학습을 위해 Objaverse(최근 Ai2에서 10M 이상의 3D 모델로 이루어진 Objaverse-XL까지 공개되어있으나, 해당 논문에서는 800K의 객체로 구성된 이전 버전 Objaverse 1.0을 사용한 것으로 보입니다)와 GSO(Google Research에서 공개한 1000개 이상의 가정용 객체를 스캔한 3D 데이터)로 구성된 3D databse로부터 3D assets을 획득하였으며, 이때 Objaverse의 경우 고품질의 다양한 형태와 외관을 가진 일상 생활용 물체로 구성된 40K의 하위 집합을 이용하였다고 합니다. 각 데이터는 카테고리를 묘사하는 태그 정보를 제공하며, 이는 text augmnetation 과정에 사용하기 위한 프롬프트를 생성하는 데 사용됩니다.
LLM-aided Texture Augmentation
Objaverse의 객체 대부분은 고품질의 shape을 가지고 있으나, texture 정보의 품질은 보장이 어렵다고 합니다. 따라서 본 논문에서는 texture augmentation을 수행하고자 하며, ImageNet이나 MS-COCO 이미지를 무작위로 매핑하여 texture를 증강한 기존 연구인 FS6D(이전 X-review 링크)의 경우 무작위로 영상을 매핑하므로써 [Figure 3]의 상단 이미지처럼 영상이 겹치는 부위에 아티팩트가 생기며, 전체 scene에 대한 이미지를 객체에 매핑하므로 비현실적인 데이터를 만들어내게 됩니다. 따라서 저자들은 LLM과 Diffusion을 활용하여 보다 사실적인 texture augmentation 방식을 제안합니다.
텍스트 프롬프트와 object의 shape, 랜덤하게 초기화된 noisy texture를 Diffusion 기반의 3D texture 합성 모델인 TexFusion^{[1]}에 입력하여 texture 정보를 증강합니다. 이때 프롬프트를 수동으로 생성할 경우 증강이 한정적이므로 2단계의 계층적인 방식을 도입합니다. 먼저, ChatGPT에게 객체에 대하여 가능한 외관을 묘사하도록 요청한 뒤(e.g. ”Here is a <object’s tag>
. Please describe its possible appearance including color and styles”) 답변을 받아 이를 TexFusion의 입력으로 제공하게 됩니다. 이러한 과정을 통해 다양한 데이터를 생성할 수 있으며, 이러한 texture augmentation결과는 [Figure 3]의 하단 이미지들을 통해 확인하실 수 있으며, 더욱 사실적이고 다양한 texture 정보를 생성할 수 있음을 확인하실 수 있습니다.
[1] Tianshi Cao, Karsten Kreis, Sanja Fidler, Nicholas Sharp, and Kangxue Yin. “TexFusion: Synthesizing 3D textures with text-guided image diffusion models” ICCV 2023
Data Generation
이후, 사실적인 렌더링을 위해 NVIDIA Isaac Sim을 이용하여 물리적으로 그럴듯한 장면을 생성합니다. 이때, 각 scene은 원본 객체와 augmentation을 거친 객체를 랜덤하게 샘플링하여 생성합니다.
2. Neural Object Modeling
model-free 세팅에서는 3D CAD 모델을 활용할 수 없으므로 이미지를 효과적으로 렌더링하는 과정이 필요합니다. 저자들은 object 모델링을 위한 object-centric neural field represenstation을 도입하여 3D model이 없는 경우에도 효율적으로 pose hypothesis 렌더링을 수행하고자 하였습니다. 해당 과정은 model-free 세팅에서 RGBD 렌더링 데이터를 생성하는 과정입니다.
Field Representation
3D 객체를 표현하기 위해 두가지 함수인 Geometry function \Omega: x ↦ s(x는 3D Point, s는 signed distance value(Signed Distance Field; SDF의 값으로, SDF 는 공간 내의 각 점에 대하여 표면까지의 거리를 나타내어 외부는 -, 내부는 +로 나타내고 표면에 가까워질수록 0이 되는 형태의 표현 방식입니다))과 appearance function \Phi: (f_{\Omega(x)}, n, d) ↦ c(f_{\Omega(x)}는 geometry network의 feature vector, n은 point 법선, d는 view의 방향, c는 color)를 이용합니다. implict object surface는 SDF중 0인 값들의 집합으로 구합니다.
Field Leanring
texture learning을 위한 과정으로, 먼저 아래의 식을 이용하여 색상을 계산합니다.
- r: ray
- z(r): ray의 depth값
- \lambda: SDF에대한 distance 임계값
- w(x_i): bell 모양의 확률밀도함수
- \Omega(x_i): signed distance
- \alpha: 분포 조정을 위한 하이퍼파라미터
확률은 표면에 가까울수록 높아지며, \lambda 이상의 거리의 값들은 무시하고 학습하고 0.5\lambda이하의 self-occlusion만을 통합합니다.(SDF에서 -는 외부이므로 외부의 \lambda 거리부터 내부의 0.5\lambda까지의 값만 이용한다는 의미입니다.)
학습 과정에는 RGB 이미지의 색상 정보를 GT \bar{c}(r)와 비교하여 픽셀레벨의 loss를 구하였으며, 아래의 식으로 정의됩니다.
geometry learning을 위해 공간을 empty space와 near-surface로 나누어 학습을 수행하였으며, near-surface SDF에는 eikonal regularization도 적용하였다고 합니다. 학습을 위한 loss는 아래의 식으로 정의되며, 이때 x는 분리된 두 공간에서 ray 위의 샘플링된 3D Point를 의미합니다.
- d_x, d_D: ray의 원점으로부터 x까지의 거리와 관찰된 depth point
field에 대한 학습을 위한 total loss는 가중합하여 아래의 식으로 정의되며, neural field는 새로운 객체에 대하여 한번만 학습을 수행하면 되며, 학습이 몇 초 내로 수행 가능하다고 합니다.
Rendering
한 번 학습된 Neural Field를 이용하여 효율적으로 객체 렌더링을 수행할 수 있습니다. NeRF와 같이 색상 렌더링을 수행하는 것 외에도, RGBD 기반의 Pose Estimation 및 Tracking을 위해 depth 렌더링도 필요합니다. 이를 위해, SDF의 0 집합에서 텍스처가 적용된 메쉬를 추출하기 위해 marching cubes알고리즘(컴퓨터 그래픽스에서 3차원 표면을 생성하기 위해 사용하는 알고리즘이라합니다..)을 수행하고, 색상 projection과 결합합니다. 이것 과정은 각 객체에 대해 한 번만 수행되며, 추론 시 주어진 pose 정보에 따라 RGBD 이미지를 렌더링합니다.
3. Pose Hypothesis Gneration
Pose Initialization
RGBD 이미지가 주어졌을 때 Mask R-CNN이나 CNOS와 같은 segmentation을 수행하여 객체를 감지합니다. 감지된 객체에 대한 2D Bbox 내 median depth를 이용하여 translation 값을 초기화하고, 균일하게 N_s개의 viewpoint를 샘플링하고 N_i개의 in-plane rotation을 추가로 적용하여 global pose를 초기화합니다.
Pose Refinement
앞선 coarse pose initialization은 noise가 심한 경우가 있으므로 pose 품질을 개선하기 위해 refinement 모듈이 필요합니다. 객체를 coarse pose로 렌더링한 결과와 카메라로 촬영된 영상을 crop하여 네트워크에 입력한 뒤 refinement 된 pose를 출력합니다. 해당 방식은 coarse pose 주변의 multi-vew를 렌더링하는 대신, 단일 view만을 이용해도 충분하였다고 합니다.
refinement 네트워크는 먼저 두 RGBD 데이터에 대하여 단일 CNN 인코더를 이용하여 각각의 feature를 추출한 뒤, feature map을 concat하여 ResNet을 통해 feature를 추출하고, 이를 positional embeding이 포함된 패치로 분할하여 토큰화합니다. 이후 Transformer Encoder를 이용하여 각 토큰을 처리한 뒤 rotation과 translation에 대하여 linear layer를 거쳐 translation과 rotation을 예측합니다. refinement network는 아래의 식을 통해 L2 loss로 학습을 수행합니다.
- \bar{} : GT
- w_1, w_2: balance 가중치로 w_1 + w_2 = 1
4. Pose Selection
refinement된 pose hypothesis가 주어졌을 때, ranking network를 이용하여 점수를 계산합니다.
Hierarchical Comparision
각 pose hypothesis에 대하여 앞선 과정에서 구한 crop 이미지를 렌더링된 이미지와 비교합니다. 이때 refinement 네트워크와 동일한 구조를 통해 feature를 추출한 뒤, 이미지의 global 정보를 잘 활용할 수 있도록 multi-head attention 모듈을 통과시킵니다. pose ranking encoder는 average pooling을 적용하여 렌더링된 이미지와 촬영된 이미지 사이의 alignment 품질을 나타내는 feature embedding \mathcal{F}를 출력합니다. 이후 모든 pose hypothesis 사이의 비교를 위해 다시 multi-head attention을 적용하여 pose hypothesis의 scoer를 계산합니다. 아래의 [Figure 4]를 통해 2단계 비교(렌더링 이미지와 촬영된 이미지 간의 비교 & pose hypothesis간의 비교) 과정을 통해 랭킹이 더욱 정확하게 예측된 것을 확인하실 수 있습니다.(오른쪽으로 갈 수록 랭킹이 낮아지며, 높은 랭킹에서 texture와 shape이 잘 매핑되어있는 결과가 나타나야 함)
Contrast Validation
저자들은 pose ranking 네트워크를 학습하기 위해 아래의 식을 제안하였습니다.
- ^+ , ^-: 각각 positive, negative를 나타내며, 이는 ADD scoer를 이용하여 정의함
- \alpha: contrastive의 margin값
pose ranking 네트워크는 positive 와 negative에 대한 loss를 모두 누적하여 최종 loss를 구한 뒤 학습을 수행합니다.
Experiments
Data & Metric
- LINEMOD, Occluded-LINEMOD, YCB-Video, T-LESS, YCBInEOAT 이용
- YCBInEOAT 데이터는 YCB-Video 데이터와 유사하게 구축된 데이터 셋으로, 동적으로 변화는 시나리오를 고려하기 위해 YCB 객체에 대한 로봇의 manipulation 작업을 수집한 데이터 셋이라합니다.
- 5가지 데이터 셋은 clutter, static or dynamic한 장면, 로봇 조작과 같은 복잡한 시나리오로 이루어지며 texture-less한 객체나 반짝임, 대칭 등의 다양한 속성을 가진 객체로 이루어짐
- Pose Estimation과 Tracking 테스크에 대하여 model-based와 model-free 설정에 대한 (총 4가지) 평가를 수행함
- 6D Pose Estimation에서 기본적을 사용하는 평가지표인 ADD(-S)에 대한 AUC, ADD-0.1 d, Average Recall(VSD, MSSD, MSPD)를 이용하여 평가함
(1) Pose Estimation Comparison
a. Model-Free
- Table 1은 YCB-Video에 대한 RGBD 기반의 SOTA 방법론과의 비교 결과로, 모든 방식은 위해 GT Bbox에 detection의 변동성을 반영하여 약간의 변형을 주어 대상 객체 영역을 제공하는 방식을 적용하였다고 합니다.
- Table 2는 LINEMOD 데이터에 대한 RGB 기반의 SOTA 알고리즘의 비교 실험 결과로, depth 정보를 활용하지 않으며, 대신 정보 보완을 위해 더 많은 reference 이미지를 사용하였다고 합니다.
- FS6D는 finetuning 과정이 필요하며, 두 실험 결과 모두 fine-tuning 과정과 ICP refinement과정을 사용하지 않았음에도 상당한 성능 개선이 이루어짐을 확인할 수 있습니다.
- [Figure 5]는 LINEMOD 데이터에 대한 정성적 결과를 시각화 한 것입니다.(FS6D에 대한 시각화 결과가 없는 이유는 FS6D는 코드 공개를 하지 않았기 때문이라고 합니다..)
- OnePose++과 LatentFusion은 self-occlusion과 texture 정보의 부족으로 정확한 pose 정보를 예측하지 못하는 반면, 본 논문의 방법론을 적용할 경우 정확도가 개선되어있음을 확인할 수 있습니다.
b. Model-based
- Table 3은 3가지 BOP dataset인 Occluded-LINEMOD, YCB-Video, T-LESS에 대한 정량적 결과로, 모든 방법론은 Mask R-CNN을 통해 2D Bbox를 예측한 뒤 pose 정보를 추정합니다.
- 실험결과 새로운 object에 대한 예측 성능도 기존 방법론들보다 개선되었을 뿐만 아니라, instance-level의 방법론과의 비교(SurfEmb + ICP결과) 결과도 성능이 개선되었습니다.
Pose Tracking Comparison
- Table 4는 갑작스러운 객체의 회전, occlusion 등의 로봇의 조작 상황에서의 성능을 비교하기 위해 YCBInEOAT 데이터를 이용하여 Tracking에 대한 정량적 평가를 수행한 결과입니다.
- 기존 방법론 대비 SOTA를 달성하였으며, 특히 instance-level의 방법론인 se(3)-TrackNet의 성능보다 개선된 성능을 보이는 것을 확인할 수 있습니다.
- ours+에 대한 결과는 pose 초기화 과정 없이 pose를 추정 및 trakcing 할 수 있는 경우로, 기존 방법론들과는 차별화된 기능입니다.
- Table 5는 YCB-Vdieo에 대한 pose tracking 결과로, 베이스라인으로 삼은 DeepIM과 se(3)-TrackNet, PoseRBPF는 instance-level의 학습이 필요한 방식이고 그 외의 방법론들은 CAD모델이 주어졌을 때 재학습을 거치지 않고 Pose Tracking을 수행하는 방식 입니다.
- 마찬가지로 실험 결과 model-based 방식 뿐만 아니라 Model-free 방식에서도 기존 방법론 대비 개선된 성능을 달성하였습니다.
Analysis
- Table 6은 ablation study 결과로, model-free 상황에서 평가를 수행하였다고 합니다.
- Ours-InfoNCE는 Contrastive learning 과정에서 InfoNCE loss로 대채한 것으로, 각각이 성능 개선에 도움이 되는 것을 실험적으로 확인하였습니다.
- [Figure 6]은 YCB-Video에서 reference 이미지 수에 따른 성능을 확인한 것으로, 저자들의 방식은 refenece 개수에 따른 성능 변화가 크지 않으며, 4장의 이미지만을 이용하더라도 16장의 이미지를 이용하는 FS6D보다는 성능이 더 좋다는 것을 이야기합니다.(다른 방법론은 rerference 이미지 수에 따른 성능 변화를 보여주지 않은 것은 아쉽지만 그래도 기존 SOTA 방식은 16장의 reference 이미지를 사용하여도 더 낮은 성능을 달성한다는 점에서 성능이 더 좋다는 것은 확인 가능합니다.)
- [Figure 7]은 학습 데이터 수에 따른 실험 결과로 1M의 데이터를 이용할 경우 saturation 되는 것을 확인할 수 있습니다.
마지막으로, Running Time에 대하여 Intel i9-10980XE CPU와 NVIDIA RTX 3090 GPU에서 평가한 결과 pose estimation의 경우 한 객체당 약 1.3s의 시간이 소요되며, 이때 initailation은 4ms, refinement 과정은 0.88s, selection 과정은 0.42 s가 걸렸다고 합니다. tracking의 경우 pose hypotheses를 이용하지 않으므로 속도가 더 빨랐으며, 초기화를 위한 pose estimation 과정을 한번 수행한 뒤, tarcking을 수행할 경우 real-time으로 작동이 가능하다고 합니다.
Conclusion
본 논문은 새로운 객체에 대한 6D Pose Estimation과 tracking을 수행하기 위해 통합된 foundation model을 제안하였으며, 다양한 실험을 통해 4가지의 서로 다른 task(pose estimation과 tracking에 대하여 model-based와 model-free 방식)에서 기존의 SOTA 방법론 대비 뛰어난 성능을 달성하였으며, instance-level의 학습이 필요한 방식과는 비슷하거나 더 좋은 성능을 달성하였다고 합니다.
안녕하세요 ! 좋은 리뷰 감사합니다.
결국 이 논문에서 Foundation Model을 사용한 부분은 3D 모델링의 텍스처 정보를 풍부하게 하기 위해 LLM과 Diffusion을 사용하는 것이 맞나요 ?? 이 texture augmentation가 효과가 있는지 Figure로는 잘 와닿지 않는데 .. 실제 컵에서는 나오지 않을 어떤 이미지를 매핑하여 물체에 입히는 것이 실제 물체를 추정할 때 도움이 되는지 신기하네요. 혹시 이 augmentation에 대한 ablation study는 없었을까요 ??
굉장히 앞단에서 추정할 물체를 정의할 때 Foundation model을 사용하고 있는데, 아직 포즈를 추정하는 알고리즘에는 직접적으로 Foundation model을 적용한 방법론은 나오지 않았는지도 궁금합니다.
감사합니다.
질문 감사합니다.
이해하신대로 texture 정보를 풍부하게 학습하기 위해 LLM과 Diffusion을 사용하는 것이 맞습니다. “실제 컵에서 나오지 않을 어떤 이미지를 매핑”하는 것은 기존의 방식으로, 저자들은 이러한 방식이 실제 물체와 이질감이 있다는 점에서 문제로 보았으며, 따라서 물체에 대한 속성 정보를 제공하여 LLM을 통해 실제 물체의 외관이 어떨 지 예측하도록 하여 이렇게 얻은 정보를 Diffusion에 조건으로 주어 물체의 texture 정보를 생성하게 됩니다. 또한 Table 6에 augmentation의 유무에 따른 실험이 존재하며, LLM기반의 augmentation을 수행하지 않을 경우 약 0.7 정도의 성능 저하가 발생합니다.
또한, 쿼리 영상과 reference영상(CAD모델로부터 구해지거나 주어진) 사이의 유사도를 측정하는 방식에 사용되는 연구도 존재합니다.