Giter Club home page Giter Club logo

fm-bench's Introduction

FM-Bench

The source code for "An Evaluation of Feature Matchers for Fundamental Matrix Estimation"

Publication

An Evaluation of Feature Matchers for Fundamental Matrix Estimation, Jia-Wang Bian, Yu-Huan Wu, Ji Zhao, Yun Liu, Le Zhang, Ming-Ming Cheng, Ian Reid, British Machine Vision Conference (BMVC), 2019 [Project Page] [pdf]

If you find this work useful in your research, please consider citing our paper:

@inproceedings{bian2019bench,
  title={An Evaluation of Feature Matchers for Fundamental Matrix Estimation},
  author={Bian, Jia-Wang and Wu, Yu-Huan and Zhao, Ji and Liu, Yun and Zhang, Le and Cheng, Ming-Ming and Reid, Ian},
  booktitle= {British Machine Vision Conference (BMVC)},
  year={2019}
}

Data Orgnization

Root (FM-Bench)

-Dataset

    --TUM
  
    --KITTI
  
    --Tanks_and_Temples
  
    --CPC
 
 -Pipeline
 
 -Evaluation
 
 -vlfeat-0.9.21

Dataset Download

You can download dataset and vlfeat from the link https://1drv.ms/f/s!AiV6XqkxJHE2g3ZC4zYYR05eEY_m

How to use

1. Run the example "Pipeline/Pipeline_Demo.m" for results of SIFT-RT-RANSAC.

2. Run the evaluation "Evaluation/Evaluate.m".

3. You can visualize the matching and esimation results for each pair by running "Evaluation/ShowVisualResults.m".

fm-bench's People

Contributors

jiawangbian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

fm-bench's Issues

How to get Fundamental Matrix GT?

It seems like the way how to get Fundamental Matrix from this paper is very similar with the method from " 9.2.2 Algebraic derivation from the book, Multiple View Geometry(2nd edition)" or the method from "https://sourishghosh.com/2016/fundamental-matrix-from-camera-matrices/".
According to the source code from the blog, I tried to compute Fundamental Matrix, but the result is different from the value of 'pairs_with_gt.txt'.
I use relative rotation, translation on R and t. And in the case of 'KITTI dataset', because all the camera intrinsic is same, so K1 and K2 are same.

Below is the octave code from the blog:

function ret = computeF(K1, K2, R, t) A = K1 * R' * t C = [0 -A(3) A(2); A(3) 0 -A(1); -A(2) A(1) 0] ret = (inverse(K2))' * R * K1' * C endfunction

For example, In the first line of pairs_with_gt.txt in KITTI dataset, Image matching pair is '0' and '5'.
So, my rotation and translation values for left camera are from the 0th line of poses.txt,
and the values for right camera are from the 5th line of poses.txt.
And I compute relative pose like below:
Relative Rotation : (R_left)inv * R_right
Relative Translation : (R_left) * (T_right - T_left)
or
Relative Pose : (Pose_left)inv * Pose_right then get Relative Rotation and Relative Translation from that Relative Pose matrix.

After that, I just put proper value on (inverse(K2))' * R * K1' * C. But the result is different from Ground Truth.
Ground truth (In KITTI, between image 0 and image 5) :
[-1.04297e+04, 2.98104e+06, -4.91357e+08, -2.98109e+06, -1.06854e+04, 1.77879e+09, 5.02479e+08, -1.76782e+09, -4.45117e+09]
Computed Value(In KITTI, between image 0 and image 5) :
[2.08603942e-02, -5.96233429e+00, 9.82758593e+02, 5.96244302e+00, 2.13717526e-02, -3.55774622e+03, -1.00499811e+03, 3.53580415e+03, 8.90074768e+03]
Is there any problem on my code implementation?

feature point evaluation

Hello Mr. Jia, you have previously published a feature point evaluation index code with many evaluation icons, but it does not seem to be this code. At that time, I paid attention. It seems to have been deleted. Can I still have an address to find it? Thank you

Estimation crash

Hi, Sorry for bothering
When I run Pipeline/Pipeline_Demo.mīŧŒ
and the process of Detecting Keypoints and Extracting Description is done.
I don't know somehow the command window prompt me the message"Estimation Crash".

Confusing about the ComputeNormlizedSGD

Hi,
sorry for the bothering,

I'm confused about the function ComputeNormlizedSGD( F1, F2, size1, size2).
In this function, symmetric computation is applied.
However, when you reverse the direction from I1->I2 to I2->I1, should the fundamental F1, F2 be changed to their transposed one F1^T, F2^T?
In your function, d2 = one_iteration(F2, F1, h2, w2, h1, w1) and I can't understand why there is no such transformation.

I'm looking forward to your kindly reply :).

supplementary

Hi Jiawang,

In your BMVC paper, you said details about the methods of USAC, GC-RANSAC, etc. can be found in the supplementary. However, I can not find the supplementary file.

Thanks,
Xiang

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.