When building the ceres binaries i had to disable optimization (/Od) as this would cause an internal compiler error (could this have a big impact on the performance?). Inline fuction expansion were still left at 'any suitable' (/Ob2). Is there anything else to keep in mind when building ceres/suitesparse on windows?
Below the output of ba of 303 camera positions, 1 sensor & 228707 tiepoints (using intel i7 4712)
iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time
0 6.692679e+06 0.00e+00 7.80e+09 0.00e+00 0.00e+00 1.00e+04 0 8.73e+01 9.74e+01 (0) reprojerror: 1,66995254173999
1 2.493742e+06 4.20e+06 1.35e+09 8.13e+01 8.67e-01 1.65e+04 1 1.01e+02 1.99e+02 (1) reprojerror: 1,60412814795569
2 1.961772e+06 5.32e+05 4.61e+08 6.57e+01 8.23e-01 2.27e+04 1 9.30e+01 2.93e+02 (2) reprojerror: 1,60222112893366
3 1.867735e+06 9.40e+04 1.42e+08 6.51e+01 8.16e-01 3.03e+04 1 9.29e+01 3.86e+02 (3) reprojerror: 1,60242512460827
4 2.370079e+06 -5.02e+05 0.00e+00 6.81e+01 -2.39e+01 1.52e+04 1 5.67e+00 3.92e+02 (4) reprojerror: 1,60242512460827
5 1.879732e+06 -1.20e+04 0.00e+00 3.91e+01 -5.76e-01 3.79e+03 1 3.92e+00 3.96e+02 (5) reprojerror: 1,60242512460827
6 1.853042e+06 1.47e+04 9.06e+07 1.32e+01 7.11e-01 4.10e+03 1 9.16e+01 4.88e+02 (6) reprojerror: 1,60205086952319
7 1.855796e+06 -2.75e+03 0.00e+00 1.25e+01 -4.35e-01 2.05e+03 1 5.71e+00 4.94e+02 (7) reprojerror: 1,60205086952319
8 1.855261e+06 -2.22e+03 0.00e+00 7.22e+00 -3.54e-01 5.12e+02 1 3.98e+00 4.98e+02 (8) reprojerror: 1,60205086952319
9 1.853674e+06 -6.32e+02 0.00e+00 2.50e+00 -1.04e-01 6.40e+01 1 4.03e+00 5.03e+02 (9) reprojerror: 1,60205086952319
10 1.851763e+06 1.28e+03 4.18e+07 7.97e-01 2.52e-01 5.71e+01 1 9.50e+01 5.98e+02 (10) reprojerror: 1,60217444368666
11 1.849476e+06 2.29e+03 2.18e+07 4.64e-01 7.20e-01 6.24e+01 1 8.87e+01 6.87e+02 (11) reprojerror: 1,60211402361321
12 1.851250e+06 -1.77e+03 0.00e+00 6.19e-01 -1.90e+00 3.12e+01 1 5.50e+00 6.93e+02 (12) reprojerror: 1,60211402361321
13 1.850789e+06 -1.31e+03 0.00e+00 5.26e-01 -1.59e+00 7.79e+00 1 3.74e+00 6.97e+02 (13) reprojerror: 1,60211402361321
14 1.849755e+06 -2.79e+02 0.00e+00 3.55e-01 -4.71e-01 9.74e-01 1 3.79e+00 7.01e+02 (14) reprojerror: 1,60211402361321
D:\libraries\ceres-solver-master\internal\ceres\trust_region_minimizer.cc:703 Terminating: Function tolerance reached. |cost_change|/cost: 8.487573e-05 <= 1.000000e-04
Final report:
Solver Summary (v 1.13.0-eigen-(3.3.3)-lapack-suitesparse-(4.5.5)-cxsparse-(3.1.9)-openmp)
Original Reduced
Parameter blocks 229011 229011
Parameters 687948 687948
Effective parameters 687946 687946
Residual blocks 885894 885894
Residual 1771788 1771788
Minimizer TRUST_REGION
Sparse linear algebra library SUITE_SPARSE
Trust region strategy LEVENBERG_MARQUARDT
Given Used
Linear solver SPARSE_SCHUR SPARSE_SCHUR
Threads 8 8
Linear solver threads 8 8
Linear solver ordering AUTOMATIC 228707,304
Schur structure 2,3,d 2,3,d
Cost:
Initial 6.692679e+06
Final 1.849476e+06
Change 4.843204e+06
Minimizer iterations 15
Successful steps 7
Unsuccessful steps 8
Time (in seconds):
Preprocessor 10.0891
Residual evaluation 2.8553
Jacobian evaluation 607.6319
Linear solver 52.6175
Minimizer 695.4765
Postprocessor 0.2051
Total 705.7707
Termination: CONVERGENCE (Function tolerance reached. |cost_change|/cost: 8.487573e-05 <= 1.000000e-04)