Bundle Adjustment Input Specification

529 views
Skip to first unread message

al

unread,
Feb 10, 2013, 12:10:20 PM2/10/13
to ceres-...@googlegroups.com
Hi all

Applicatioon description:
I have an application that depends on accurate relative camera poses. Thus I apply feature detection on RGB images on each viewpoint (RGB image) and use matching features to initialize the camera poses using RANSAC. Basically this gives me a 3x4 rotation and translation matrix between the viewpoints. So far so good.

From this, I'd like to use ceres to run bundle adjustment and optimize the poses. Thus I compute the 3D position relative to the first viewpoint of all features that  are matched against another feature in a different viewpoint (I have the depth information of every feature from an additional sensor). I verified visually that this 3D points resemble the underlying scene.

Next I prepare the input data according to the simple bundle adjustment example. ie. an array of feature coordinates, an array of parameters (camera and 3D points) and two indices that yield for every feature index a camera index and a point index respectively. The camera parameters are encoded the same way as in the simple ba example (ie. 9 parameters). The rotation-translation matrix is converted to an angle-axis vector using ceres' functionality. My residual computation is exatly the same as in the simple BA example.

Problem description:
When I run ceres on the RANSAC data, the initially good looking poses and points are perturbed in a random looking way. I bet this is due to me misunderstanding the input constraints. Thus my questions:
Should the 3D points that I provide to ceres all be relative to one of the cameras, that I provide as well or an extra pose, which isn't optimized?
What does an "Unsuccessful iteration" mean in the full summary?

Btw. running a UW BA problem works like a charm - so it must be an issue with the input.

Any help is highl appreciated. Thanks

Sameer Agarwal

unread,
Feb 12, 2013, 4:23:13 AM2/12/13
to ceres-...@googlegroups.com
Al,

The camera matrices bring the 3d points from a global coordinate frame into a local coordinate frame and then project them into the corresponding image plane, i.e., the points are not relative to any one camera. They sit in a coordinate frame independent of the cameras.

One way to check your formulation is to setup a noisefree test case, and check to see if the initial residual is zero.

Hope this helps,
Sameer




--
--
----------------------------------------
Ceres Solver Google Group
http://groups.google.com/group/ceres-solver?hl=en?hl=en
 
---
You received this message because you are subscribed to the Google Groups "Ceres Solver" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceres-solver...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Reply all
Reply to author
Forward
0 new messages