Google's Ceres Solver released as open source

158 views
Skip to first unread message

Keir Mierle

unread,
May 1, 2012, 12:08:04 PM5/1/12
to libmv-devel
At long last, Google's bundler is now open source:


And, don't forget to upvote us to get some traffic:

http://www.reddit.com/r/programming/comments/t1mo7/ceres_solver_googles_large_scale_nonlinear_least/

I'm currently polishing up the Windows uport, then while in Holland I'll get it integrated into libmv (and Blender).

Keir

François T.

unread,
May 2, 2012, 5:55:06 AM5/2/12
to libmv...@googlegroups.com
sweeet :) 

2012/5/1 Keir Mierle <mie...@gmail.com>

Keir

--
You received this message because you are subscribed to the Google Groups "libmv-devel" group.
To post to this group, send email to libmv...@googlegroups.com.
To unsubscribe from this group, send email to libmv-devel...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/libmv-devel?hl=en.



--
____________________
François Tarlier
www.francois-tarlier.com
www.linkedin.com/in/francoistarlier

Jesse Vander Does

unread,
May 3, 2012, 1:31:39 AM5/3/12
to libmv...@googlegroups.com
I downloaded and compiled ceres.  I have some questions about the "simple bundle adjuster" and the BAL data set that you guys might be able to answer.

First off, the BAL data format.  I can see that the first part of the file contains image correspondence by defining a:

<camera index> and <2d point index> and then its <img x> <img y>.

After that the BAL website confuses the hell out of me.   
<camera_num_cameras>
<point_1>
...
<point_num_points>
Can anyone explain what these single values are?  The second question is this.  Does the example bundle adjuster take 2d correspondence and calculate fully calibrated cameras?

Regards,
Jesse
Jesse Vander Does
401-226-8251 | jvand...@gmail.com

Sameer Agarwal

unread,
May 3, 2012, 1:37:23 AM5/3/12
to libmv...@googlegroups.com
<point_1> is the first 3d point
<point_2> is the second 3d point and so on
followed by each of the cameras in order.

The points are 3 vectors, one entry per line.
The cameras are 9 vectors, one entry per line, corresponding to their 9 degrees of freedom, 3 for translation, 3 for rotation, 1 focal length and 2 radial distortion.

The bundle adjuster takes the correspondences and initial estimates of the 3d points and cameras and computes refined estimates. This is not a full sfm system so it does not compute them from scratch from the correspondences.

Sameer

Jesse Vander Does

unread,
May 3, 2012, 1:48:25 AM5/3/12
to libmv...@googlegroups.com
Thanks for the instant response! I now see how the file contains estimated 3d points and cameras.  I had thought these were required for bundle adjustment but  wasn't seeing them represented in the file.

Can you comment on how accurate the initial estimates need to be for the system to converge on something reasonable?

Keir Mierle

unread,
May 3, 2012, 2:05:21 AM5/3/12
to libmv...@googlegroups.com, ceres-...@googlegroups.com
+ceres-solver, in case other people were wondering about this.

Keir

Sameer Agarwal

unread,
May 3, 2012, 10:31:26 AM5/3/12
to ceres-...@googlegroups.com, libmv...@googlegroups.com
Jesse,
 
Can you comment on how accurate the initial estimates need to be for the system to converge on something reasonable?

This is very hard to say and depends on the actual scene configuration.

Sameer



Reply all
Reply to author
Forward
0 new messages