Skip to content

[ECCV 2024] This is the official implementation of [Six-Point Method for Multi-Camera Systems with Reduced Solution Space]

Notifications You must be signed in to change notification settings

jizhaox/relpose-6pt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

README

This package implements relative pose estimation for multi-camera systems from six point correspondences, including a generic minimal solver for the generalized camera (solver_trans_generic_6pc) and two minimal solvers for popular configurations of two-camera rigs (solver_trans_inter_6pc, solver_trans_intra_6pc).

Source codes and Matlab mex files with demo code are provided in the package. The core solvers are written by C++. Matlab mex files are compiled using Ubuntu 16.04 + Matlab R2019a. Run test_solver_pc.m in folder "test".

Reference

[1] Banglei Guan, Ji Zhao, and Laurent Kneip. Six-Point Method for Multi-Camera Systems with Reduced Solution Space. European Conference on Computer Vision, 2024.

If you use this package in an academic work, please cite:

@inproceedings{guan2024six,
  title={Six-Point Method for Multi-Camera Systems with Reduced Solution Space},
  author={Guan, Banglei and Zhao, Ji and Kneip, Laurent},
  booktitle={European Conference on Computer Vision},
  year={2024}
 }

The code was written by Ji Zhao. The initial version of this code was developed in 2020 and is available at GitLab

solver_trans_generic_6pc

A generic minimal solver for the relative pose estimation of generalized camera using six point correspondences. Returns a maximum of 64 solutions.

  • Solver: solver_trans_generic_6pc.mexa64

  • API: [cay_sols, t_sols, R_sols, cay_sols_all] = solver_trans_generic_6pc(Image1, Image2, R_cam, t_cam);

  • Input data for Demo:

    Image1 (3*6 matrix): normalized homogeneous image coordinates of six feature points expressed in view 1.

    Image2 (3*6 matrix): normalized homogeneous image coordinates of six feature points expressed in view 2.

    R_cam (3*3*12 matrix): extrinsic rotation of twelve virtual perspective cameras expressed in the reference of the multi-camera system.

    t_cam (3*12 matrix): extrinsic translation of twelve virtual perspective cameras expressed in the reference of the multi-camera system.

  • Output data for Demo:

    cay_sols (3*N matrix): real number solutions of Cayley rotation parameter, N is the number of real number solutions.

    t_sols (3*N matrix): real number solutions of translation.

    R_sols (3*3*N matrix): real number solutions of rotation matrix.

    cay_sols_all (3*M matrix): all solutions of Cayley rotation parameter, including real number solutions and complex number solutions. M is the number of all the solutions.

solver_trans_inter_6pc

A minimal solver for the relative pose estimation of two-camera rigs using six inter-camera point correspondences. Returns a maximum of 48 solutions or 56 solutions.

  • Solver: solver_trans_inter_6pc.mexa64

  • API: [cay_sols, t_sols, R_sols, cay_sols_all] = solver_trans_inter_6pc(Image1, Image2, R_cam, t_cam, 0); [cay_sols, t_sols, R_sols, cay_sols_all] = solver_trans_inter_6pc(Image1, Image2, R_cam, t_cam, 1);

  • Input data for Demo:

    Image1 (3*6 matrix): normalized homogeneous image coordinates of six inter-camera feature points expressed in view 1.

    Image2 (3*6 matrix): normalized homogeneous image coordinates of six inter-camera feature points expressed in view 2.

    R_cam (3*3*2 matrix): extrinsic rotation of two cameras expressed in the reference of the multi-camera system.

    t_cam (3*2 matrix): extrinsic translation of two cameras expressed in the reference of the multi-camera system.

    Option: 0 refers the 6pt-Our-inter48 solver, 1 refers the 6pt-Our-inter56 solver.

  • Output data for Demo:

    cay_sols (3*N matrix): real number solutions of Cayley rotation parameter, N is the number of real number solutions.

    t_sols (3*N matrix): real number solutions of translation.

    R_sols (3*3*N matrix): real number solutions of rotation matrix.

    cay_sols_all (3*M matrix): all solutions of Cayley rotation parameter, including real number solutions and complex number solutions. M is the number of all the solutions.

solver_trans_intra_6pc

A minimal solver for the relative pose estimation of two-camera rigs using six intra-camera point correspondences. Returns a maximum of 48 solutions.

  • Solver: solver_trans_intra_6pc.mexa64

  • API: [cay_sols, t_sols, R_sols, cay_sols_all] = solver_trans_intra_6pc(Image1, Image2, R_cam, t_cam);

  • Input data for Demo:

    Image1 (3*6 matrix): normalized homogeneous image coordinates of six intra-camera feature points expressed in view 1.

    Image2 (3*6 matrix): normalized homogeneous image coordinates of six intra-camera feature points expressed in view 2.

    R_cam (3*3*2 matrix): extrinsic rotation of two cameras expressed in the reference of the multi-camera system.

    t_cam (3*2 matrix): extrinsic translation of two cameras expressed in the reference of the multi-camera system.

  • Output data for Demo:

    cay_sols (3*N matrix): real number solutions of Cayley rotation parameter, N is the number of real number solutions.

    t_sols (3*N matrix): real number solutions of translation.

    R_sols (3*3*N matrix): real number solutions of rotation matrix.

    cay_sols_all (3*M matrix): all solutions of Cayley rotation parameter, including real number solutions and complex number solutions. M is the number of all the solutions.

Run

Compiled files using Ubuntu 16.04 + Matlab R2019a are provided. You can run the package in Matlab.

test_solver_pc.m is the demo which shows how to call the APIs.

About

[ECCV 2024] This is the official implementation of [Six-Point Method for Multi-Camera Systems with Reduced Solution Space]

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published