Forums - Comparing fcvGeomHomographyFit32 with OpenCV FindHomography function

3 posts / 0 new
Last post
Comparing fcvGeomHomographyFit32 with OpenCV FindHomography function
sagiv.philipp@g...
Join Date: 29 Feb 12
Posts: 9
Posted: Mon, 2012-04-02 08:48

Hi,

FindHomography (OpenCV) uses a robust estimator, RANSAC, for finding the prespective transformation between two planes.
On the other hand, fcvGeomHomographyFit32 assums that we have a set of correspondences where the only source of error is in the measurement of the point's position. Sometimes, this assumption is not valid because points are mismatched (outliers) and we don't know it in advance!
These outliers can severely disturb estimated homography, and consequently should be identified.
A robust estimator is an estimator which is robust to outliers.

As far as I understand, fcvGeomHomographyFit32 is not a robust estimator since it requires points correspondences. And if so, my question is whether FastCV has any other function which finds the homography based on 2 sets of unsorted "good features to track"?

Thanks 

  • Up0
  • Down0
Prasun_Choudhury
Join Date: 3 Dec 10
Posts: 15
Posted: Mon, 2012-04-02 17:04

FastCV's homography finding routine is a small building block for robust homography computation between points in two frames. OpenCV does the following: given the corresponding feature points between 2 frames, it finds homography using either of three options:

i) Linear Least Square Solver

ii) RANSAC (uses Linear Least Square solver multiple times in an iterative loop)

iii) Least Meadian of Squares (uses Linear Least Square solver multiple times in an iterative loop)

In addition, after the above step, OpenCV does a Levenbarg-Marquardt (LM non-linear optimization) based pose refinement where it refines the pose between the two frames but doesn't reject any further outliers.

The purpose of the FastCV API is to provide an optimized implementation of the "Linear Least Square Solver" which can be used in an iterative loop for RANSAC implementation. One needs to implement the RANSAC (or any other robust estimator) code on his/her own using the 'Linear Least Square Solver' as the building block.

  • Up0
  • Down0
Prasun_Choudhury
Join Date: 3 Dec 10
Posts: 15
Posted: Fri, 2012-04-06 12:01

Your understanding is corrected and I elaborated it in my reply to make sure, people do not have misconception/s while comparing OpenCV vs FastCV. One reason we didn't add the full block of RANSAC for FastCV is, the RANSAC implementation (how the # of iterations, convergence criteria, etc will be controlled) depends a lot on the user and their specific application.

As far as the future offerings/enhancements in the API, do you mean whether FastCV will be adding more functions related to homography computation or new computer vision features in general? There are surely plans to add more computer vision functions in FastCV in future. For homography calculation, the current method is based on a linear least sq.solver which might not give us a good fit amongst points between two frames where there are significant perspective/foreshortening effects. One of the possible extensions to the current 'HomographyFit' function will be to use non-linear optimization to cover cases where the motion between two frames can't be expressed by linear or affinne transform.

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.