linear_solver_type

579 views
Skip to first unread message

Jianxiong Xiao

unread,
Sep 21, 2012, 8:05:40 PM9/21/12
to ceres-...@googlegroups.com
I am working on a huge bundle adjustment problem. Thanks to Ceres, my life is much easier now. But I have some problems to scale it up even larger. 

If I set options.linear_solver_type = ceres::DENSE_SCHUR;, everything works perfectly.
But, if I set options.linear_solver_type = ceres::SPARSE_NORMAL_CHOLESKY, it produces the following errors.
To scale it up, I want to user the sparse solver. Otherwise, I guess that there is simply not enough RAM to run.
Does anyone have any advice on what to do now? Any tips will be highly appreciated. Thanks!
I use all default parameters for options except options.ordering_type = ceres::SCHUR;

W0918 20:55:08.032258  6827 suitesparse.cc:297] Cholmod warning: matrix not positive definite.
W0918 20:55:08.033293  6827 levenberg_marquardt_strategy.cc:109] Linear solver failure. Failed to compute a finite step.

Best,
Jianxiong.

Sameer Agarwal

unread,
Sep 21, 2012, 8:09:08 PM9/21/12
to ceres-...@googlegroups.com

Hi,
Can you do a dump with -logtostderr -v=2 . Also how big is your problem? Sameer

--
--
----------------------------------------
Ceres Solver Google Group
http://groups.google.com/group/ceres-solver?hl=en?hl=en
 
 
 

Jianxiong Xiao

unread,
Sep 21, 2012, 8:14:00 PM9/21/12
to ceres-...@googlegroups.com
Thanks, Sameer!

> Can you do a dump with -logtostderr -v=2 .

I will do that and report back. My code is in Matlab and I use Ceres
as MEX in matlab. So I may have to try and figure out how to set this
flag.

>Also how big is your problem?

I have about 20,000 images each of which has about 500 SIFT key-points.

Best,
Jianxiong.

Keir Mierle

unread,
Sep 21, 2012, 8:59:45 PM9/21/12
to ceres-...@googlegroups.com
On Fri, Sep 21, 2012 at 5:14 PM, Jianxiong Xiao <jx...@csail.mit.edu> wrote:
Thanks, Sameer!

> Can you do a dump with -logtostderr -v=2 .

I will do that and report back. My code is in Matlab and I use Ceres
as MEX in matlab. So I may have to try and figure out how to set this
flag.

Interesting; where did you find a MEX wrapper? If you compiled Ceres with gflags support, you should be able to do:

#include "gflags/gflags.h"

DECLARE_int32(v);

...
FLAGS_v = 2;

or something similar.
 
>Also how big is your problem?

I have about 20,000 images each of which has about 500 SIFT key-points.

Wow, you'll need a bunch of memory for this!

Keir

Jianxiong Xiao

unread,
Sep 21, 2012, 9:33:53 PM9/21/12
to ceres-...@googlegroups.com
> Interesting; where did you find a MEX wrapper?

I wrote one for myself. I can share my code if you guys decide to have
a mex wrapper.

> If you compiled Ceres with gflags support, you should be able to do:

Thanks for the tip. I will try that.

> Wow, you'll need a bunch of memory for this!

My machine has 196GB memory. So I want to try to make it work.

--
Best,
Jianxiong
Reply all
Reply to author
Forward
0 new messages