pmoulon / minimalInstability

The research code for the research project: "On the Instability of Relative Pose Estimation and RANSAC’s Role"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Analysis of the Instability of minimal problems.

Introduction

This is the reaseach code of the project: Analysis of the Instability of Minimal Problem in Computer Vision.

The related paper can be reached on ArXiv: [Missing link]

The authors include:

Joe Kileel, Ph.D.

Benjamin Kimia, Ph.D.

Hongyi Fan

Prerequisite

To use this repository you need:

Important Note

This repository is still in development.


File List and Usage

1. Generating 6.5D Degenerate Curve using the method described in the paper

You can generate the synthetic data and related intermediate result first with main_65Dcurve.m with Matlab; then run curve65D.jl to generate the curve with Julia. Finally, one can use the related drawing code in main_65Dcurve.m to show the 6.5D degenerate curve.

2. Generating 4.5D Degenerate Curve using the method described in the paper

You can generate the synthetic data and related intermediate result first with main_45Dcurve.m with Matlab; then run curve45D.jl to generate the curve with Julia. Finally, one can use the related drawing code in main_45Dcurve.m to show the 4.5D degenerate curve.

3. Batched Experiment reported in the paper

Exp_E.m and Exp_F.m are the code for generating the random experiment data of Essential matrix and Fundamental matrix respectively. After generating the data, the statistics of the distances from the target points to the degerneated curve can be computed using Julia script curve45D_SynExp.jl and curve65D_SynExp.jl .

4. Symbolic 6.5D curve generator

shortFdisc.m2 is the Macaulay2 code for quickly generating the symbolic expression of 6.5D curve. To use this with custom data, one needs to change line 48 and 49 with the coordinates with image points on two images, (X for the first camera, and Y for the second camera). To reach the best result, one also needs to specify a high precision of the number. For example, one can replace line 48 with

X = matrix{{1p100,2p100,3p100,4p100,5p100,6p100,7p100},{1p100,2p100,3p100,4p100,5p100,6p100,7p100}}

indicating image points (1,1), (2,2), (3,3), ..., (7,7).

About

The research code for the research project: "On the Instability of Relative Pose Estimation and RANSAC’s Role"


Languages

Language:MATLAB 89.5%Language:Julia 8.5%Language:Macaulay2 2.0%