Bundle Adjustment with OpenCV data

686 views
Skip to first unread message

Julius Saretzki

unread,
May 13, 2014, 6:25:46 AM5/13/14
to boo...@googlegroups.com
Hi,
As part of a much bigger project on android, which is using OpenCV, I have the task to implement a bundle adjustment part for Structure from Motion.
The problem here is that all data I have as input and all data I will return has to be in OpenCV datatypes. 
As the implementation of OpenCV for Java (not Android NDK) does not include any way of BundleAdjustment, I have to use something different and convert the data form OpenCV to BoofCV and later back to OpenCV.
It there a fast and effizient way to convert the following things to BoofCV:

 - Camera Intrinsics
 - Camera Matrix (Position and Orientation of the camera)
 - A list of Vec3f (own class) which contains the 3D Points obtained from some sort of triangulation
 - The good matches between the images used for triangulation

As far as I've read I need those things for bundle Adjustment. Runtime is no problem, if it takes time  it is okay (for now).

The idea is to use BoofCV for the BundleAdjustment part as it seems to be a nice library. 

Thanks

Peter A

unread,
May 16, 2014, 4:04:13 PM5/16/14
to boofcv
Currently there isn't any built in functions for integrating OpenCV and BoofCV together.

 - Camera Intrinsics
OpenCV supports tangental distortion terms which BoofCV doesn't yet support.  So if you estimate tangental (which can be configured) then you can't convert it to BoofCV.  But you can always go from BoofCV to OpenCV.

 - Camera Matrix (Position and Orientation of the camera)
 - A list of Vec3f (own class) which contains the 3D Points obtained from some sort of triangulation
 - The good matches between the images used for triangulation

These should all be straight forward to convert.  To convert them quickly predeclare all data and work off the object parameters directly.  The computer vision algorithms should be the bottle neck and not the conversion.

BundleAdjustment in BoofCV is the slower variant.  I would recommend against using it on large datasets. Hopefully sparse bundle adjustment will be added.  I also have adding an example for bundle adjustment on my to-do list.

- Peter


--
You received this message because you are subscribed to the Google Groups "BoofCV" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boofcv+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
"Now, now my good man, this is no time for making enemies."    — Voltaire (1694-1778), on his deathbed in response to a priest asking that he renounce Satan.
Reply all
Reply to author
Forward
0 new messages