[ECCV 2024] FoundPose : Unseen Object Pose Estimation with Foundation Features

안녕하세요 손우진입니다.

오늘은 단일 모달리티(RGB)기반의 6D pose estimation 논문을 리뷰해보려고 합니다. 요즘 6D 에서 계속 연구되고있는것은 학습때 보지못한 객체에대한 6D 를 예측하고 싶어합니다. 하지만 이는 굉장히 어려운 일이죠 Depth 모달리티도 없이 이를 추정하는것은 더더욱 어려운 연구이기도 하고 아직 많이 부족합니다. 하지만 Depth를 사용하지 못하는 상황도있습니다. 예를 들어 투명객체나 또는 Depth가 Noisy한 상황이 있으면 Depth 센서가 오히려 독이 될 수 있겠죠 그렇다면 결국 단일 모달리티로 해결을 해야합니다. 그래서 이번에는 Foundation Model을 활용하여 어떻게 단일 모달리티로도 보지못했던 객체에대해 6D를 예측하는지 리뷰해보도록 하겠습니다.

introduction

앞서 말씀드린 것 처럼 6D 객체 포즈 추정은 로보틱스와 Spatial AI 전반에서 오래된 문제이지만 여전히 해결되지 않은 난제가 많다. 학습 단계에서 보지 못한 unseen object에 대해 포즈를 추정해야 하는 경우가 대부분입니다. Data driven형식으로 대규모 합성데이터를 통해 학습시켜서 할 수 있을지언정 6D 는 annotation 이나 이런 부가적인 코스트들이 많이들어가기에 어려움이 있습니다 오늘 소개 시켜드릴 FoundPose는 이러한 문제를 지적합니다.

Foundpose의 가장 인상적인 지점은 학습을 완전히 배제했다는 점이다. 입력으로 요구되는 것은 단일 RGB 이미지와 객체의 3D 모델뿐이고, 학습 과정 없이 곧바로 unseen object에 대한 6D 포즈 추정을 수행할 수 있습니다. 비전 파운데이션 모델이 지닌 표현력에 대한 신뢰를 기반으로 진행됩니다.

FoundPose의 핵심은 DINOv2의 패치 디스크립터를 사용하는 방식에 있습니다. 좀 재밌는 점은 최종 레이어에서 패치 디스크립터를 사용하는게 아니라 중간 레이어의 패치 디스크립터를 사용합니다. 최종 레이어의 특징은 의미적으로는 강력하지만 공간적 정보가 희석되는 반면 중간 레이어의 특징은 의미 정보와 위치 정보가 균형 있게 공존한다고 주장합니다. 또한 저자들은 이 특성이 합성 템플릿과 실제 이미지 사이에서 기하적으로 일관된 대응을 만드는 데 결정적이라고 주장하며, 대칭적이거나 텍스처가 부족한 객체에서도 안정적인 매칭이 가능함을 실험적으로 보여준다고 합니다. 실제로 SAM이나 LoFTR과 같은 학습기반에서의 추출된 descriptor와 비교했을 때 높은 정확도를 달성했다고 합니다.

전체 파이프라인은 오히려 고전적인 컴퓨터 비전 방식에 가깝습니다. 객체의 3D 모델을 다양한 시점에서 렌더링한 템플릿을 생성하고, 각 템플릿에서 DINOv2 패치 디스크립터를 추출해 3D 위치와 함께 저장한다. 추론 시에는 입력 이미지에서 객체 영역을 잘라낸 뒤, BoW 기반 검색을 통해 소수의 유사 템플릿만을 빠르게 선택합니다. 이후 패치 디스크립터의 최근접 이웃 매칭으로 2D–3D 대응을 만들고, PnP-RANSAC으로 초기 포즈를 추정합니다. 그리고 마지막으로 featuremetric refinement를 적용해 패치 단위 샘플링에서 발생하는 오차를 보정하게 됩니다.

방법은 매우 간단하지만 이 것이 대규모 합성데이터에 대한 학습없이도 기존방법들에 비해 높은 성능을 달성하는 것에 인상적입니다. 저자들의 Contribution을 정리하면 아래와 같습니다

  1. 본 연구는 DINOv2 기반의 놀라울 정도로 단순하고 해석 가능한 파이프라인에 의존하는, 학습이 필요 없는(training-free) 모델 기반 6D 객체 포즈 추정 방법을 제안하며, 표준 BOP 벤치마크에서 최신 최고 성능(state-of-the-art)을 달성한다.
  2. 기존 접근법 대비 100배 적은 템플릿만을 사용하는 효율적인 템플릿 검색 기법을 제안하며, 이는 부분 가림(occlusion) 상황에서도 강건하게 동작한다.
  3. 구성이 빠르고 메모리 사용량이 경쟁 기법 대비 25배 낮은 경량 객체 표현 방식을 제시하여, 대규모 객체 집합으로의 확장을 가능하게 한다.
  4. 조밀하지 않은 패치 샘플링으로 인해 발생하는 오차를 보정하는 featuremetric 기반 포즈 정제(refinement) 기법을 제안한다.
  5. 대칭적이거나 텍스처가 부족한 객체를 처리하는 데 있어 DINOv2 중간 레이어 디스크립터의 중요성을 실험적으로 입증하며, 이는 다른 파운데이션 모델에서 추출한 디스크립터보다도 우수한 성능을 보인다.

Method

Method는 위에서 설명드린것 처럼 간단합니다. 다만 가정이 있습니다. 우선 offline과정에서 필요로 해야하는것이 찾아야할 3D model에 대해서 Rendering 과 템플릿에 대해서 Dinov2를 거쳐서 나온 Descriptor를 추출하고 이를 3D로 등록합니다. 이 등록된 Descriptor는 나중에 Query이미지로 들어오는 object와 가장유사한 템플릿을 찾을 때 사용됩니다. 추출 된 템플릿과 Query이미지와 2D – 3D 대응 관계를 통해 PnP-RANSAC 알고리즘을 통해 초기 포즈를 설정한 후 Pose refinement를 걸쳐 최종 pose를 구하게 됩니다. 그럼 각 방법에 대해서 자세히 설명드리도록 하겠습니다.

Template-based object representation

우선 Pose를 구하고자 하는 Object에 대해서 3D model을 준비합니다. 그 이 여러 시점에서 동일한 이미지 크기로 RGB-D 테픔릿으로 렌더링합니다. 그렇게 되면 이제 템플릿의 RGB 이미지들을 14 x 14픽셀로 들어가 중간 layer 에서 나온 각패치들의 descriptor를 PCA를 적용하여 { p_{t,i} }_{i=1}^{m} 를 추출 합니다 여기서 템플릿 t에 대해 i부터 m까지의 패치 디스크립터의 집합입니다. 모든 패치에대해서 PCA가 적용되는것이 아니라 유효한 패치 즉 Object에 해당하는 패치만 살아남게합니다. ( 템플릿의 배경은 검은색이라 구분해서 object위에 패치만 살아남깁니다)

그렇게 되면 이제 각 패치 디스크립터를 객체 좌표계 상의 3D 위치에 등록하게 됩니다 패치의 중심 픽셀은 템플릿의 depth정보와 내부파라미터를 통해 3D 모델 좌표계로 역투영하게되면서 3D위치와 descriptor를 묶어서 T_t = { (p_{t,i}, x_i) \mid i \in \mathcal{M} } T 집합으로 표현합니다

이제 이 집합들을 BoW 방식대로 패치디스크립터를 visual word로 양자화하 하여 히스토그램으로 저장하여 나중에 Query이미지가 들어왔을때 하나하나 비교하는 것이 아니라 빠르게 비슷한 템플릿을 찾게 도와주는 역활을 하게됩니다

Template retrieval by bag-of-words matching

추론 단계에서는 입력으로 쿼리 RGB 이미지와 객체의 segmentation mask가 주어집니다 SAM이나 CNOS같이 Foundation 을 통해서 전달되어 진다고 가정합니다. 먼저 마스크를 기준으로 객체 영역을 잘라내되, 템플릿과 유사한 시점을 갖도록 perspective cropping을 적용하여 고정된 크기의 이미지 패치를 생성합니다. 이 과정은 쿼리 이미지가 템플릿과 최대한 유사한 투영 조건을 갖도록 하기 위함입니다.

이후 쿼리 이미지 패치 역시 템플릿과 동일하게 14×14 픽셀 단위로 분할되며, DINOv2 중간 레이어에서 패치 디스크립터를 추출한 뒤, 템플릿 단계에서 학습된 동일한 PCA 공간으로 투영되어 미리 정의된 visual word에 할당되어, 하나의 bag-of-words 히스토그램 표현합니다.

쿼리 이미지의 bag-of-words 히스토그램은 사전에 저장된 각 템플릿의 히스토그램과 코사인 유사도를 통해 비교되며, 이를 통해 전체 템플릿을 모두 비교하지 않고도 외형적으로 유사한 소수의 템플릿 후보들을 빠르게 검색할 수 있습니다. 이 단계는 이후 수행되는 패치 수준 매칭과 6D 포즈 추정을 위한 초기 포즈를 추정하는 역할을 합니다.

Pose estimation from 2D-3D correspondences

이전 단계에서 선택된 Top 템플릿 t에 대해, 쿼리 이미지 패치와 템플릿 패치 사이의 최근접 패치 디스크립터 매칭을 수행합니다. 쿼리 이미지에서 추출된 각 패치 디스크립터는 템플릿 T_t에 포함된 패치 디스크립터들 중 유클리디안 거리 기준으로 가장 가까운 디스크립터와 매칭되어집니다.

이때 템플릿 패치 디스크립터는 이미 객체 좌표계 상의 3D 위치에 등록되어 있으므로 하나의 매칭은 쿼리 이미지 상의 2D 패치 중심 좌표와 객체 모델 상의 3D 위치 쌍으로 매칭이 됩니다. 이를 통해 각 템플릿에 대해 C_t = { (u_i, x_i) }_{i=1}^{m} 과 같은 2D–3D 대응 집합을 구성할 수 있습니다. 여기서 u_i는 쿼리 이미지에서 i번째 패치의 2D 중심 좌표이며, x_i는 이에 대응되는 템플릿 패치의 3D 위치입니다. 이렇게 구성된 2D–3D 대응 집합 C_t를 입력으로 PnP-RANSAC을 적용하여 해당 템플릿에 대한 6D 포즈를 추정합니다.

이 과정에서 FoundPose가 DINOv2의 중간 레이어 패치 디스크립터를 사용합니다. 중간 레이어(Layer 18) 디스크립터는 의미적 정보와 함께 공간적(위치) 정보가 상대적으로 잘 보존되어 있어, 대칭적이거나 텍스처가 부족한 객체에서도 기하적으로 일관된 패치 매칭을 가능하게 한다고합니다.

Featuremetric pose refinement

앞선 단계에서 PnP-RANSAC을 통해 추정된 6D 포즈는 패치 단위의 2D–3D 대응을 기반으로 한 초기 포즈를 구했지만 FoundPose에서 사용하는 패치 디스크립터는 14×14 픽셀 단위로 추출되기 때문에, 패치의 중심 좌표와 실제로 대응되는 3D 점의 정확한 투영 위치 사이에 오차가 존재할수밖에 없습니다. 이로 인해 coarse pose는 전반적으로는 올바르지만, 정밀한 정렬 관점에서는 한계가 있습니다.

이를 보정하기 위해 저자는 featuremetric pose refinement 단계를 도입하게 됩니다. 템플릿에 등록된 패치 디스크립터가 현재 포즈 하에서 쿼리 이미지의 어느 위치에서 가장 잘 대응되는지를 feature 공간에서 정렬하게됩니다.

여기서 p_i는 템플릿에 등록된 패치 디스크립터이고, x_i는 이에 대응되는 객체 좌표계 상의 3D 위치입니다. \pi(\cdot)는 3D 점을 이미지 평면으로 투영하는 연산을 의미하고 \mathbf{F}_q는 쿼리 이미지에서 추출된 DINOv2 패치 디스크립터 맵을 나타냅니다. 또한 s는 패치 단위 feature map 해상도에 맞추기 위한 스케일이고, \rho(\cdot)는 잘못된 대응이나 불일치에 대한 영향을 줄이기 위한 loss 함수입니다.
이 식은 현재 포즈 (\mathbf{R}, \mathbf{t}) 하에서 템플릿의 각 3D 패치 x_i가 쿼리 이미지 상에 투영될 때,
해당 위치에서의 쿼리 feature \mathbf{F}_q!\left( \pi(\mathbf{R}x_i + \mathbf{t}) / s \right)
가 템플릿 feature p_i와 가장 잘 일치하도록 포즈를 반복적으로 조정하는 것입니다.
이 최적화는 Levenberg–Marquardt 기반 최적화를 사용해 반복적으로 Feature Level에서 반복한 후 최종포즈로 수렴합니다.

Experiments

Table 1은 FoundPose를 포함한 6D 객체 포즈 추정 방법들을 BOP benchmark의 7개 핵심 데이터셋에서 비교한 결과를 입니다. 평가 지표로는 BOP에서 사용하는 Average Recall이 사용되고 AR은 VSD, MSSD, MSPD 세 가지 포즈 오차 기준을 종합한 성능 지표입니다.

표의 상단부는 refinement 없이 coarse pose만을 사용하는 방법들을 비교하는데, 이 구간에서 FoundPose는 학습이 필요 없는 방법임에도 불구하고, GenFlow, GigaPose, MegaPose와 같은 최신 RGB 기반 방법들보다 일관되게 높은 AR 점수를 기록합니다. 특히 MegaPose의 coarse 단계와 비교했을 때, FoundPose는 훨씬 빠르면서도 더 정확한 초기 포즈를 제공합니다.

중간 구간은 단일 포즈 hypothesis에 대해 refinement를 적용한 결과를 나타냅니다 FoundPose에 featuremetric refinement를 추가하면, coarse 단계 대비 평균 AR이 상승하고, 패치 중심 기반 오차가 보정되었다고 볼 수있습니다. 추가적으로, FoundPose의 coarse pose를 기존 MegaPose의 render-and-compare refinement로 보정한 경우에는, RGB-only 설정에서 Sota를 달성했습니다.

하단부는 여러 개의 포즈 가설을 refinement한 경우를 비교한다. 이 설정에서 FoundPose는 다시 한 번 가장 높은 평균 AR을 기록하며, 특히 featuremetric refinement와 MegaPose refinement를 순차적으로 적용한 조합이 가장 좋았습니다. 하지만 AR이 60도 안된다는것은 아직 단일 Modality에는 여전히 큰 한계는 있어 보입니다.

Table 2는 Ablation 입니다. 가장 중요한 점은 DINOv2 ViT-L의 중간 레이어에서 추출한 패치 디스크립터가 모든 설정에서 가장 우수한 성능을 보인다는 점입니다. 반면, 더 깊은 레이어를 사용할 경우에는 성능이 감소하는 것을 볼 수있습니다. SAM이나 DenseSIFT와 비교해도 좋은 성능을 보입니다. 다만 아쉬운점은 intro에 LoFTR과 비교해도 좋다고했지만 Table에는 담지는 않았습니다. 이부분은 큰 허점인데 논문에서 저자는 LoFTR은 2D – 2D 학습기반 매칭이고 저자는 2D-3D 템플릿 기반 매칭이기에 가정이다르다고 합니다. 그럼 왜 Intro에 언급했는지는 잘 모르겠습니다 ….

두번째로 패치 디스크립터 기반의 BoW 템플릿 검색 방식은 cls token 기반 검색보다 일관되게 높은 성능을 보이는걸 확인 할 수 있습니다.

마지막으로, segmentation mask의 품질은 전체 파이프라인 성능에 큰 영향을 미치며, ground-truth mask를 사용할 경우 성능이 향상되어 Pose 추정하는 것에 있어서는 저자들의 방법을 입증하였습니다.

Conclusion

최근 들어 단일 Modality기반의 6D 를 많이 찾고있지만 여전히 한계가 많이 남아있는 것 같습니다. 결국에는 PnP를 사용해서 투영해야하기 때문에 이는 어쩔 수 없는것 같습니다. 성능지표들도 보면 굉장히 낮습니다. 그만큼 어려운 문제인만큼 Depth 센서가 없으면 아직은 어려운게 명확하게 드러나는 것 같습니다.

Author: 손 우진

2 thoughts on “[ECCV 2024] FoundPose : Unseen Object Pose Estimation with Foundation Features

  1. 안녕하세요, 우진님. 좋은 리뷰 감사합니다.
    객체의 6D pose를 구하기 위해서 다양한 부분에 대해서 조사를 해주시는 점에서 항상 재밌게 보고 있는 것 같습니다.
    한 가지 궁금한 점은 FoundPose를 포함한 많은 6D pose estimation 방법들이 암묵적으로 ‘어느 정도 두께와 볼륨을 갖는 물체’를 가정하고 있는 듯 보인다는 점에서 제가 현재 진행하고 있는 우편물과 같은 task와 같이 거의 평면에 가까운 얇은 물체의 경우, 깊이 방향의 기하 정보가 매우 제한적이며, 2D–3D 대응 기반의 PnP 추정이 수치적으로 불안정해질 가능성이 크다고 느껴졌습니다. 이러한 관점에서 FoundPose의 패치 기반 2D–3D 매칭과 PnP-RANSAC 파이프라인이 얇은 물체에서도 의미 있는 6D pose를 안정적으로 추정할 수 있을지, 혹은 본질적인 한계가 있는지 궁금합니다.
    좋은 리뷰 감사드립니다.🍪

    1. 기현님 좋은 질문 감사합니다.

      FoundPose의 패치 매칭은 표면 텍스처가 있다면 2D 대응점은 찾을 수 있으나 3D 점들이 거의 동일 평면에 존재하므로 PnP 계산 시 모호성으로 인해 회전 및 깊이 추정이 매우 불안정해질 것 같습니다. 특히 우편물처럼 얇은 물체는 가시적인 두께정보가 부족하여 PnP-RANSAC 과정에서 기하학적 조건이 약해질 것 같고 이런게 작은 2D 노이즈에도 6D 포즈 해가 크게 튀지 않을까 생각이듭니다…화이팅 해보시죠 .!!

      감사합니다

Leave a Reply

Your email address will not be published.