Forums - Comparing fcvGeomHomographyFit32 with OpenCV FindHomography function

4 posts / 0 new
Last post
Comparing fcvGeomHomographyFit32 with OpenCV FindHomography function
Sagiv_Philipp
Join Date: 29 Feb 12
Posts: 10
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: 18
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
Sagiv_Philipp
Join Date: 29 Feb 12
Posts: 10
Posted: Mon, 2012-04-02 23:29

As a new start-up in the field of real time computer vision application, we are now investigating the use and differences between FastCV and OpenCV in order to choose the most appropriate library to be used in our application in terms of performance.

So far it looks like FastCV is highly optimized for mobile application, but in the cost of less programming functions.
As you stated, one needs to implement some computer vision code on his own using FastCV as the building blocks, while OpenCV's API includes many more functions.
The tradeoff is very clear, on the one hand OpenCV is less optimized but offers a reacher API, on the other hand FastCV is highly optimized but maybe premature for massive computer vision based application.
Does FastCV have any intention to further implement additional API functions in the near future?

 

  • Up0
  • Down0
Prasun_Choudhury
Join Date: 3 Dec 10
Posts: 18
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.