Code Monkey home page Code Monkey logo

cpnp-a-consistent-pnp-solver's Introduction

CPnP-A-Consistent-PnP-Solver

The cpp implementation of the CPnP solver is available at https://github.com/bereze/CPnP-cpp-version.

This is the description of the use of the CPnP solver. Paper information:

@inproceedings{zeng2023cpnp,
  title={CPnP: Consistent Pose Estimator for Perspective-n-Point Problem with Bias Elimination},
  author={Zeng, Guangyang and Chen, Shiyu and Mu, Biqiang and Shi, Guodong and Wu, Junfeng},
  booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
  pages={},
  year={2023},
  organization={IEEE}
}

One can directly run main.m to test the CPnP solver. The main.m mainly includes three parts:

  • Generate input data: generate the intrinsics of the camera, the pose of the camera, the coordinates of 3D points, and the noisy 2D projections. This part uses the codes from Copyright (C) <2007> <Francesc Moreno-Noguer, Vincent Lepetit, Pascal Fua>. Reference paper: Moreno-Noguer F, Lepetit V, Fua P. Accurate Non-Iterative ๐‘‚ (๐‘›) Solution to the P๐‘›P Problem[C]//2007 IEEE 11th International Conference on Computer Vision. IEEE, 2007: 1-8.
  • Estimate the pose of the camera: estimate the camera pose using CPnP function and calculate the rmse
  • Calculate the CRB: calculate the theoretical lower bound for the rmse of any unbiased PnP solver

The inputs and outputs of the CPnP function are as follows:

  • Inputs

s - a 3ร—n matrix whose i-th column is the coordinates (in the world frame) of the i-th 3D point

Psens_2D - a 2ร—n matrix whose i-th column is the coordinates of the 2D projection of the i-th 3D point

fx, fy, u0, v0 - intrinsics of the camera, corresponding to the intrinsic matrix K=[fx 0 u0;0 fy v0;0 0 1]

Remark: the units of Psens_2D, fx, fy, u0, and v0 should be consistent, e.g., all in m, or all in pixels.

  • Outputs

R - the estimate of the rotation matrix in the first step

t - the estimate of the translation vector in the first step

R_GN - the refined estimate of the rotation matrix with Gauss-Newton iterations

t_GN - the refined estimate of the translation vector with Gauss-Newton iterations

cpnp-a-consistent-pnp-solver's People

Contributors

guangyangzeng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.