Category-Level Object Shape and Pose Estimation in Less Than a Millisecond

Lorenzo Shaikewitz, Tim Nguyen, Luca Carlone
9/23/2025
cs.ROcs.CV

Official code: MIT-SPARK/Fast-ShapeAndPose (27 stars, MIT, last commit 2025-11-12).

Abstract

Object shape and pose estimation is a foundational robotics problem, supporting tasks from manipulation to scene understanding and navigation. We present a fast local solver for shape and pose estimation which requires only category-level object priors and admits an efficient certificate of global optimality. Given an RGB-D image of an object, we use a learned front-end to detect sparse, category-level semantic keypoints on the target object. We represent the target object's unknown shape using a linear active shape model and pose a maximum a posteriori optimization problem to solve for position, orientation, and shape simultaneously. Expressed in unit quaternions, this problem admits first-order optimality conditions in the form of an eigenvalue problem with eigenvector nonlinearities. Our primary contribution is to solve this problem efficiently with self-consistent field iteration, which only requires computing a 4-by-4 matrix and finding its minimum eigenvalue-vector pair at each iterate. Solving a linear system for the corresponding Lagrange multipliers gives a simple global optimality certificate. One iteration of our solver runs in about 100 microseconds, enabling fast outlier rejection. We test our method on synthetic data and a variety of real-world settings, including two public datasets and a drone tracking scenario. Code is released at https://github.com/MIT-SPARK/Fast-ShapeAndPose.

View on arXivView PDF

Code Implementations(1)

MIT

Shape and pose estimation via eigenproblem with eigenvector nonlinearities.

271Julia, PythonMar 21, 202511 months agoMIT

Similar Papers

Cite this paper

@article{shaikewitz2025categorylevel,
  title  = {Category-Level Object Shape and Pose Estimation in Less Than a Millisecond},
  author = {Lorenzo Shaikewitz and Tim Nguyen and Luca Carlone},
  year   = {2025},
  eprint = {2509.18979},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2509.18979v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2509.18979.svg)](https://codeofpaper.com/paper/2509.18979)

Discussion