제가 이번에 리뷰할 6D Pose Estimation 논문도 보다 범용적으로 물체의 자세 정보를 추정하기 위한 연구로, 텍스트 프롬프트가 주어졌을 때 이에 대응되는 관심 객체의 자세정보를 추정하는 open-vocabulary 6D Pose Estimation 방법론 입니다. CVPR 2024의 Highlight 논문이라고 하네요.
Abstract
본 논문에서는 open-vocabulary 6D Pose Estimation이라는 새로운 세팅을 제안합니다. 1) 관심 물체에 대한 정보는 언어로만 제공되며, 2) inference과정에는 3D 모델(CAD 모델)이 주어지지 않고, 3) 객체에 대해서는 서로 다른 2개의 view에서 RGBD 데이터가 제공(Query와 Reference로 하나씩 사용)됩니다. 저자들은 이러한 경우에 Vision-Language 모델을 이용하여 scenes에서 관심 객체의 영역을 분할하고, 상대적인 6D Pose를 추정하는 새로운 접근 방식을 제안합니다. 저자들은 프롬프트의 object-level의 정보와 이미지의 local feature를 융합하기 위한 방식을 고안하였으며, 이를 REAL275와 Toyota-Light(REAL275는 category-level의 6D Pose Estimation에서 일반적으로 사용되는 데이터 셋 이고 Toyota-Light은 BOP챌린지의 TYO-L 데이터 셋 입니다.)를 기반으로 하는 4천장의 이미지에 대해 34개의 인스턴스로 구성된 새로운 벤치마크에 대해 평가를 수행하였으며 기존의 방법론에 비해 뛰어난 성능을 달성하였다고 합니다.
Introduction
물체의 정확한 자세 정보를 추정하는 것은 중요하지만, 최근 높은 정확도를 달성한 자세 추정 방법론들은 instance-level의 방법론으로, 특정한 형태와 외관을 가진 객체에 대해 학습되고 테스트되는 방식입니다. 일반화와 one-shot을 적용을 위해 최근의 pose estimation 방법론들은 특정 객체에 대한 학습의 필요성을 줄이기 위해 대규모 데이터를 사용하였으나, model-based 방식은 여전히 새로운 객체에 대해서도 모델 정보가 요구되며, model-free 방식은 새로운 객체에 대한 reference view 이미지 집합이나 비디오가 요구됩니다. 그러나 이러한 방식들은 새로운 객체에 대한 물리적 정보나 비디오를 구하기 어려운 상황에 적용이 어렵다는 문제가 있습니다.
본 논문은 6D Pose Estimation에서 텍스트의 프롬프트를 이용하는 세팅을 제안하여 이러한 제한적인 상황에도 작동 가능한 방법론에 대한 연구를 수행합니다. 이를 위해 VLM(Vision-Language Model)로 두 이미지에서 관심 객체를 인식하고, 상대적인 6D Pose를 추정합니다. 저자들은 사용자가 제공한 텍스트 정보(프롬프트)를 이용하여 clutter한 장면에서 관심 객체의 위치를 파악하고 VLM이 대상 객체의 특징적인 지점에 집중하도록 정보를 제공하는 Oryon(Open-vocabulary object pose estimation)이라 방법론을 제안합니다. 저자들은 입력되는 프롬프트에 대해서는 제약을 두지 않는 open-vocabulary 세팅을 이용하였으며, 텍스트 프롬프트를 통해 풍부한 의미론적 정보를 제공하여 일반화 가능성을 높임을 보입니다. 또한, 서로 다른 장면의 RGBD 이미지를 이용하는 cross-scene세팅에서 검증을 수행하며, 이때 사용한 데이터 셋은 객체의 약간의 occlusion이 발생하고 pose 변화가 큰 REAL275 데이터 셋과 까다로운 조명 조건으로 이루어진 Toyota-Light을 기반으로 하는 새로운 벤치마크로, SIFT와 같은 hand-crafted 방식과 딥러닝 기반의 방식과 비교를 수행하였다고 합니다.
본 논문의 contribution을 정리하면
- 6D Pose Estimation에서 3D 모델이나 비디오 시퀀스가 아닌, 텍스트 프롬프트를 이용하여 관심 객체를 지정하고 자세 정보를 추정하는 새로운 세팅을 제시
- Vision-Language 모델 기반의 관심 영역을 분할하고 객체와 매칭을 위해 특징을 추출하는 구조를 제안
- 6D Pose Estimation에서 많이 사용되는 REAL275와 Toyota-Light 두 데이터 셋을 기반으로 하는 새로운 벤치마크 설정
Approach
Over-view
세팅은 다음과 같습니다.
- 관심 물체에 대한 정보는 텍스트로만 주어짐
- 물체는 서로 다른 두 장면에서 서로 다른 view에서 촬영된 이s미지가 주어짐
- 물체는 학습시 보지 못함
이러한 상황에서 anchor A의 RGB^A,D^A 와 query Q의 RGB^Q, D^Q 사이의 pose 정보를 추정하는 것으로, A와 Q 사이의 매칭을 위해 해당 논문은 텍스트 프롬프트와 local 이미지의 feature map을 연결하는 cost-aggregation 기반의 융합 모듈인 Oryon을 제안합니다. 해당 모델은 미학습한 객체에 대해 일반화되며, 객체에 대한 텍스트 프롬프트가 annotation된 대규모 데이터로 학습됩니다.
저자들은 각 view에서 segmentation mask를 예측하는 방식을 통해 관심 객체의 위치를 추정하는 문제와 객체의 매칭 작업과 함께 해결하며, keypoint의 상대적 위치로 정해지는 pose를 추정하기 위해 객체에 대한 의미론적 정보와 기하학적 정보를 인코딩하여 최종 feature를 만들어냅니다. test시에는 예측된 mask를 통해 관심 객체의 point를 선정하고, nearest neighbor를 통해 features 쌍을 매칭시킵니다. 이렇게 매칭된 값을 3차원으로 투영하여 point cloud로 만든 뒤, 두 scene에 대한 최종 상대 pose를 구하게 됩니다.
위의 Figure 2는 Oryon의 구조로, 주어진 텍스트 프롬프트 T를 통해 관심 객체에 대한 정보를 제공하며, T를 활용해 keypoint 추출 과정에 가이드를 주고 마스크를 이용하여 프롬프트와 일치하는 지점만 매칭을 계산합니다. 즉, A(anchor)와 Q(query) 쌍이 주어졌을 때, 두 scene에서 예측된 마스크 \mathbf{M}^A,\mathbf{M}^Q 로 필터링 후, 두 scene 사이의 매칭되는 좌표(색상 및 구조가 가장 유사한 지점에 대한 좌표) \mathbf{x}^A, \mathbf{x}^Q의 집합을 계산하게 됩니다.
프롬프트 정보(T)와 이미지(Q, A)를 함께 처리하기 위해 공통의 feature space의 표현이 필요하며, 이를 위해 저자들은 CLIP과 같은 VLM을 이용합니다. 저자들은 RGB^A와 RGB^Q에 CLIP image encoder \phi_V 를 적용하여 feature map (\mathbf{E}^A, \mathbf{E}^Q) \in \mathbb{R}^{D⨉H⨉H}(D와 H는 사용하는 CLIP에 따라 달라짐)를 구합니다. 또한 T에 대하여 풍부한 표현을 제공하기 위해 N개의 template 집합을 구한 뒤 CLIP text encoder \phi_T를 이용하여 \mathbb{e}^T \in \mathbb{R}^{N⨉D}를 구합니다. 이때 CLIP encoder는 freeze하여 사용합니다.
Text-Visual Fusion
Text-Visual 모듈인 \phi_{TV}는 segmentation을 위해 \mathbf{e}^T를 이용하여 의미론적으로 일치하는 시각적 표현을 생성할 뿐만 아니라 이미지 매칭을 위해 \mathbf{E}^A와 \mathbf{E}^B에서 객체의 외형을 대표하는 표현을 만드는 것을 목표로 합니다. \phi_{TV}는 cost volume을 이용하여 구현하며, \mathbf{E}^A, \mathbf{E}^B, \mathbf{e}^T에서 각 feature map의 위치 사이의 cosine 유사도를 계산하여 \mathbb{R}^{N⨉H⨉H} shape의 행렬 2개를 얻습니다. 이렇게 구한 cost volume은 프롬프트의 feature를 visual feature map의 각 위치와 연결시키는 비용을 나타내게 됩니다.
이렇게 구한 cost volume은 주변 패치와의 공간적 관계는 고려하지 못하므로, 2개의 Transformer layer 기반의 cost aggregation block을 이용합니다. 두 layer는 self-attention을 통해 이미지 패치 사이의 관계를 모델링하며, 이때 하나는 동일한 window 내에서 self-attention을 적용하고 또 다른 레이어는 이동한 window의 패치 사이에 self-attention을 적용합니다. 이를 통해 모델은 패치 내부와 인접 패치 사이에서 self-attention을 모두 구할 수 있게 됩니다. 또한, 이미지에서 객체의 모양과 크기가 달라질 수 있으므로 CLIP의 보다 더 풍부한 표현력을 위해 Query와 Anchor에 또 다른 backbone 모델 \phi_{G}로 구한 feature를 해당 모듈의 transformer 레이어의 query와 key에 연결합니다. 이때 저자들은 \phi_{G}로 Swin Transformer를 이용하였다고 합니다. 이렇게 하여 fusion 모듈의 output인 cost feature 쌍 \mathbf{C}^A, \mathbf{C}^Q \in \mathbb{R}^{D⨉H⨉H}을 구하게 됩니다.
Decoding
앞서 구한 CLIP의 feature map은 저해상도(저자들의 경우 24×24의 해상도였다고 합니다.)의 값으로, 이미지 매칭을 위해 고해상도의 정보가 필요하여 저자들은 3개의 upsampling layer로 이루어진 decoder \phi_{D}를 이용하여고해상도의 feature map을 생성합니다. CLIP은 global feature의 의미론적 정렬을 위해 학습이 되었으나, 이미지 매칭을 위해 객체의 외형 정보가 필요합니다. 저자들은 decoder에 \phi_{G}의 guidance feature를 추가하는 것이 효과가 있음을 확인하였고 따라서 \phi_{G}로 얻은 두 feature map을 각 upsampling layer 의 input feature map에 concate되며, 마지막 layer에는 적용이 되지 않도록 합니다. 이렇게 구한 feature map \mathbf{F}^A, \mathbf{F}^Q는 segmentation과 매칭 계산에 모두 사용되며, segmentation의 경우 segmentation head를 추가하여 이진 마스크 \mathbf{M}^A, \mathbf{M}^Q를 출력하게 됩니다.
Optimization
크게 2가지 task로 이루어지며 각 task로부터 optimization 함수를 이용하여 최적화를 수행합니다.
먼저 이미지 매칭은 A와 Q 사이의 동일한 지점 사이의 높은 유사도를 갖고 유사하지 않은 지점은 낮은 유사도를 갖도록 하여 feature map을 직접적으로 최적화합니다. 학습을 위해 A와 Q사이의 GT 대응 관계를 이용하여 학습하며, contrastive loss \mathcal{l}_F를 채택하였다고 합니다. 동일 feature 사이의 거리는 가까워지도록, 서로 다른 feature끼리는 멀어지도록 하는 항으로 구성되며, scene A와 Q 쌍이 주어졌을 때, positive pairs는 \mathcal{P}= \{ (i,j): \mathbf{x}_i^A \in A, \mathbf{x}_j^Q \in Q,\phi(\mathbf{x}_i^A)=\mathbf{x}_j^Q \} 로 정의되고, 이때 \phi : A → Q로 A와 Q 픽셀 사이의 대응되는 매핑함수입니다. feature map \mathbf{F}^A, \mathbf{F}^Q에서 \mathcal{P}를 이용하여 추출한 feature 집합을 \mathbf{f}^A, \mathbf{f}^Q \in \mathbb{R}^{C⨉D} 라 하고, C = |\mathcal{P} | 는 매칭되는 항목의 수, D는 feature의 차원이라 하였을 때, positive에 대한 loss 는 아래의 식(1)로 정의됩니다.
- \mu_P: positive margin으로, 하이퍼파라미터임
- (.)_+ = max(0,.)
- dist(.): cosine similarity
negative pair는 feature 집합 \mathbf{f}와 대응되는 이미지의 2D좌표 x를 이용하여 정의되며, 하나의 feature \mathbf{f}_i에 대하여 negatives 후보는 \mathcal{N}_i= \{ k: \mathbf{x}_k \in \mathbf{x}, k \not= i, || \mathbf{x}_i - \mathbf{x}_k|| ≥ \tau \} 로 정의됩니다. 해당 집합은 동일한 점에 대한 feature는 고려하지 않으며, \mathbf{x}^A와 \mathbf{x}^Q의 모든 점에 대해 negative 후보 집합을 계산한 뒤, negative에 대한 loss는 아래의 식(2)로 정의됩니다.
\mathbf{f}_i에 대하여 feature space에서 가장 가까운 \mathbf{f}_k가 선택되며(가장 가까우므로 hardest negative), \mu_N은 negative margin로 하이퍼파라미터입니다. 최종적으로 두 항을 가중합하여 loss \mathcal{l}_F가 정의됩니다.
segmentation을 위한 loss \mathcal{l}_M은 segmentation에서 사용되는 Dice loss를 이용하여 정의되며, 두 task에 대한 loss를 모두 결합하여 최종 loss는 다음과 같이 정의됩니다.
Matching and registration
test시 예측된 마스크 \mathbf{M}^A,\mathbf{M}^Q를 사용하여 객체가 속하는\mathbf{F}^A,\mathbf{F}^Q의 feature를 구합니다. 이를 통해 2개의 매칭 feature 리스트 \mathbf{F}^A_M \in \mathbb{R}^{C^1⨉D}, \mathbf{F}^Q_M \in \mathbb{R}^{C^2⨉D}를 얻고 \mathbf{f}^A_i \in \mathbf{F}^A_M에 대하여 feature space에서 가장 가까운 이웃인 \mathbf{f}^Q_i \in \mathbf{F}^Q_M를 계산합니다. 이후 두 feature 사이의 거리가 \mu_t 이상인 경우를 제외한 모든 piont에 대하여 3D로 back-projection하여 depth map과 A,Q의 intrinsic 파라미터를 이용하여 2개의 point cloud \mathbf{P}^A, \mathbf{P}^Q \in \mathbb{R}^{C⨉3}를 구합니다.
이후 A와 Q사이의 상대 pose T_{A→Q}는 point cloud의 registration 알고리즘을 이용하여 구합니다. 이때 예측된 mas의 노이즈와 프롬프트의 모호성으로 인한 매칭의 오류가 존재할 수 있으므로 공간적 일관성을 기반으로하는 PointDSC라는 알고리즘을 이용하여 자세 정보를 추정합니다.(간단하게, point cloud 사이의 알고리즘을 이용하여 pose 정보를 구한다고 이해하시면 될 것 같습니다.)
Results
Setting
- VLM 모델로 CLIP ViT-L/14 이용
- \lambda_P = \lambda_N = 0.5, \lambda_M=1.0으로 설정
- \mu_P=0.2, \mu_N=0.9, \mu_t=0.25로 설정
- \tau=5로 설정
Datasets
학습에는 다양한 객체와 scene으로 이루어진 합성 데이터 ShapeNet6D를 이용하며, 평가에 실제 데이터인 REAL275와 Toyota-Light 데이터 셋을 이용합니다. 사용하는 프롬프트 T는 객체의 이름과 간략한 설명(e.g., “brown open”)으로 구성되며, 실제 데이터 셋인 REAL275와 Toyota-Light에는 수동으로 annotation을 수행하였으며, ShapeNet6D 데이터는 메타 데이터를 활용하였다고 합니다.
Evaluation Metrics
BOP challenge에서 사용되는 AR(Average Recall, VSD, MSSD, MSPD의 평균 recall)과 ADD(S)-0.1d를 평가지표로 이용합니다.
Quantitative results
- Oracle: GT mask,
- OVSeg**: CLIP을 이용한 open-vocabulary segmentation연구
** Liang, B. Wu, X. Dai, K. Li, Y. Zhao, H. Zhang, P. Zhang, P. Vajda, and D. Marculescu. “Open-vocabulary semantic segmentation with mask-adapted clip.” CVPR, 2023
- Table 1은 REAL275에 대한 결과로, OVSeg를 segmentation head로 이용할 경우 Oyron은 AR에서 SIFT 방식보다 8.1%, Obj.Mat. 방식보다 11.5% 개선되었습니다.
- segmentation head로 ours를 이용할 경우 Oryon은 AR에서 SIFT보다 7.8%, Obj.Mat. 보다 9.8% 개선되었으며, Oryon과 SIFT 사이의 성능 차이가 Obj.Mat.와 Oryon 사이의 성능차이보다 작은 이유에 대해 저자들은 Obj.Mat. 방식이 domain shift에 더 민감하기 때문이라고 분석합니다.
- Oryon 방법에서 Oracal방식과 ours 사이의 AR 은 14.3% 하락하였으며, 이는 부정확한 segmentation에 의해 성능 저하가 이루어진 것을 나타냅니다.
- 위의 Table 2는 Toyota-Light(TOYL)에서의 정량적 결과를 리포팅한 것으로, OVSeg를 segmentation head로 이용할 경우 Oryon이 SIFT보다 AR에서 3.4%, Obj.Mat.보다 20.0% 개선됩니다.
- ours를 segmentation head로 이용할 경우 Oryon이 SIFT보다 AR에서 3.1%, Obj.Mat.보다 22.0% 개선이 이루어집니다.
- TOYL 데이터셋에서 SIFT는 Oryon과 성능 차이가 크지 않으며 Obj.Mat.과는 성능 차이가 큰 이유에 대하여 데이터 셋의 특징을 들어 분석합니다. Obj.Mat은 domain sift에 민감하기 때문에 challenge한 조명 조건 변화가 포함된 TOYL 데이터 셋에서 성능 저하가 크게 일어났으며, SIFT는 scale-invariant한 디자인 덕분에 외형 변화에 강인하게 작동하기 때문이라고 합니다.(참고로, 아래의 정성적 결과에 대한 설명에도 나와있듯 SIFT가 조명 조건 변화에 강인하게 작동한다는 의미는 아닙니다..)
- 위의 Figure 3, Figure 4는 REAL275와 TOYL의 정성적 결과로, 예측된 pose결과를 시각화하여 mask로 나타낸 것과 주어진 프롬프트를 확인하실 수 있습니다.
- Figure 3에서 1행의 결과들은 mask를 잘 예측하였으나, 2행에서 ObjectMatch 방식의 경우 객체의 Pose 정보가 크게 변하였고 이때 예측이 실패하는 결과를 확인할 수 있습니다. 또한 객체가 작아 매칭을 시키기 어려운 경우이지만 Oryon을 이용할 경우 decoder를 통해 feature의 해상도를 높일 수 있어 예측을 잘 수행할 수 있었다고 합니다.
- Figure 4는 TOYL에 대한 결과로, A와 Q 사이의 조명 조건이 크게 다른 경우에도 저자들이 제안한 Oryon 방식이 강인하게 작동한다는 것을 확인할 수 있습니다. SIFT의 경우는 translation 오차가 크게 발생하는 것을 통해 hand-crafted 방식을 이용하는 것은 조명 조건이 달라질 경우 적합하지 않다는 것을 이야기합니다.
Ablation Study
- Table 3은 REAL275에서 각 모듈을 제거하며 ablation study를 진행한 것으로, 1,2행을 통해 fusion 모듈과 decoder guidance의 필요성을 어필합니다. 이 두가지 결과를 통해 추가적으로 사용한 \phi_G의 효과를 검증합니다.
- upsampling layer를 제거할 경우 pose 정확도는 크게 하락하였지만, segmentation은 적은 영향을 받는 것을 확인할 수 있습니다. 이를 통해 매칭 과정에 upsampling을 통해 고해상도 feature를 마나드는 것이 중요하다는 것을 강조합니다.
- 4행은 PointDSC라는최신 Pose 추정 알고리즘 대신 RANSAC 알고리즘을 이용한 것으로, 이를 통해 잘못된 매칭을 처리하기 위한 알고리즘이 필요하다는 것을 확인할 수 있습니다.
- Table 4는 REAL275에서 단일 작업에 대해서만 Oryon을 학습시킨 실험 결과를 리포팅 한 것입니다. pose 추정과 segmentation을 위해 두 task를 함께 학습하는 것이 도움이 된다는 것을 실험적으로 확인하였습니다.(참고로 3행은 예측값이 아닌 Oracle을 이용하는 것이므로 1행과 5행, 3행과 4행에 대한 비교 결과를 통해 두 task를 함께 학습하는 것의 효과를 확인할 수 있습니다.)
홀리… 드디어… VLM을 제대로 쓰는 것 같은 6DoF가 나온 것이라고 생각했는데
평가한 데이터 셋이 성능을 객관적으로 비교하기에 애매하네요…
공인 데이터 셋에서는 실험 결과가 없을까요?
혹은 VLM 기반이 아니더라도 기존 모델들의성능은 몇인지 궁금합니다.
질문 감사합니다.
일단 데이터 셋이 기존 데이터셋에 추가적인 정보를 제공하였고, 비교하는 방법론이 hand-crafted 방식(SIFT)과 point cloud registration 방법론(Obj.Mat.)라는 점에서 기존의 학습 기반의 RGB-D와 비교가 되어있지 않다는 점에서 객관적 비교가 어렵다는 점이 저도 아쉽습니다..
해당 논문은 텍스트 프롬프트만로 관심 객체를 지정하는 방식이라는 점에서 데이터를 가공하였으나, 이때 사용한 데이터 셋이 둘다 6D에서 사용되는 공인 데이터 입니다.
안녕하세요, 좋은 리뷰 감사합니다.
프롬프트와 VLM을 활용하여 category-level에서의 object pose estimation을 수행함으로써 앞으로의 연구방향도 대다수가 이런식으로 흘러가지 않을까 싶네요.
간단한 질문은 2D, 3D(point cloud)에 대한 feature를 추출할 때는 동일한 추출 모델을 사용하는 것인지 궁금합니다.
그리고, CLIP에 학습을 수행할때 TV 파트와 Decoder 파트만 학습이 되는 것으로 보이는데, 해당 파트들을 fine-tune하는 데에 GPU 몇장을 사용했는지 궁금하네요.
감사합니다.
안녕하세요 ! 좋은 리뷰 감사합니다.
6D pose estimation에서 원래 캐드 모델이 필요했던 과정을 텍스트로 대체하였다고 이해하였는데, 그렇다면 이 텍스트 프롬프트는 어떤 템플릿 형태를 띄고 있나요 ?? 데이터셋 파트에서 간략히 설명해주시긴 했는데 6D pose에서는 물체가 CAD 모델과 외관, 텍스처가 모두 동일한 아예 같은 물체여야 한다고 알고 있어서 이러한 점이 텍스트로 어떻게 대체 가능했었는지 궁금해서 질문 드립니다.
그리고 본 논문이 6d pose estimation에서 처음으로 open vocabulary 관점에서 해결한 방법론 같은데, 실험에서 어떻게 이전 방법론과 공평한 비교가 될 수 있었는지 세팅에 대해 조금만 더 설명해주실 수 있나요 ??
감사합니다.