bug fixed

release/4.3a0
Yong-Dian Jian 2010-12-29 00:44:26 +00:00
parent 21d2dba609
commit 5f9039a2c8
2 changed files with 9 additions and 11 deletions

View File

@ -104,7 +104,7 @@ class GeneralCameraT {
}
Matrix H1_k, H1_pose, H2_pt;
Point2 projection = project(P, H1_k, H1_pose, H2_pt);
Point2 projection = project(P, H1_pose, H1_k, H2_pt);
if ( H1 ) *H1 = collect(2, &H1_pose, &H1_k);
if ( H2 ) *H2 = H2_pt;

View File

@ -190,7 +190,7 @@ TEST( GeneralSFMFactor, optimize_defaultK ) {
shared_ptr<Ordering> ordering = getOrdering(X,L);
//graph->print("graph") ; values->print("values") ;
NonlinearOptimizationParameters::sharedThis params (
new NonlinearOptimizationParameters(1e-7, 1e-7, 0.0, 100, 1e-5, 10, NonlinearOptimizationParameters::SILENT));
new NonlinearOptimizationParameters(1e-5, 1e-5, 0.0, 100, 1e-5, 10, NonlinearOptimizationParameters::SILENT));
Optimizer optimizer(graph, values, ordering, params);
cout << "optimize_defaultK::" << endl ;
cout << "before optimization, error is " << optimizer.error() << endl;
@ -241,7 +241,7 @@ TEST( GeneralSFMFactor, optimize_varK_SingleMeasurementError ) {
shared_ptr<Ordering> ordering = getOrdering(X,L);
NonlinearOptimizationParameters::sharedThis params (
new NonlinearOptimizationParameters(1e-7, 1e-7, 0.0, 100, 1e-5, 10, NonlinearOptimizationParameters::SILENT));
new NonlinearOptimizationParameters(1e-5, 1e-5, 0.0, 100, 1e-5, 10, NonlinearOptimizationParameters::SILENT));
Optimizer optimizer(graph, values, ordering, params);
cout << "optimize_varK_SingleMeasurementError::" << endl ;
cout << "before optimization, error is " << optimizer.error() << endl;
@ -286,7 +286,7 @@ TEST( GeneralSFMFactor, optimize_varK_FixCameras ) {
shared_ptr<Ordering> ordering = getOrdering(X,L);
NonlinearOptimizationParameters::sharedThis params (
new NonlinearOptimizationParameters(1e-7, 1e-7, 0.0, 100, 1e-3, 10, NonlinearOptimizationParameters::SILENT));
new NonlinearOptimizationParameters(1e-5, 1e-5, 0.0, 100, 1e-3, 10, NonlinearOptimizationParameters::SILENT));
Optimizer optimizer(graph, values, ordering, params);
cout << "optimize_varK_FixCameras::" << endl ;
@ -349,16 +349,15 @@ TEST( GeneralSFMFactor, optimize_varK_FixLandmarks ) {
shared_ptr<Ordering> ordering = getOrdering(X,L);
NonlinearOptimizationParameters::sharedThis params (
new NonlinearOptimizationParameters(1e-7, 1e-7, 0.0, 100, 1e-3, 10, NonlinearOptimizationParameters::SILENT));
// new NonlinearOptimizationParameters(1e-7, 1e-7, 0.0, 100, 1e-3, 10, NonlinearOptimizationParameters::TRYDELTA));
new NonlinearOptimizationParameters(1e-5, 1e-5, 0.0, 100, 1e-3, 10, NonlinearOptimizationParameters::SILENT));
// new NonlinearOptimizationParameters(1e-7, 1e-7, 0.0, 100, 1e-5, 10, NonlinearOptimizationParameters::TRYDELTA));
Optimizer optimizer(graph, values, ordering, params);
cout << "optimize_varK_FixLandmarks::" << endl ;
cout << "before optimization, error is " << optimizer.error() << endl;
Optimizer optimizer2 = optimizer.levenbergMarquardt();
cout << "after optimization, error is " << optimizer2.error() << endl;
// CHECK(optimizer2.error() < 0.5 * reproj_error * nMeasurements);
CHECK(1);
CHECK(optimizer2.error() < 0.5 * reproj_error * nMeasurements);
}
/* ************************************************************************* */
@ -396,15 +395,14 @@ TEST( GeneralSFMFactor, optimize_varK_BA ) {
shared_ptr<Ordering> ordering = getOrdering(X,L);
NonlinearOptimizationParameters::sharedThis params (
new NonlinearOptimizationParameters(1e-7, 1e-7, 0.0, 100, 1e-5, 10, NonlinearOptimizationParameters::SILENT));
new NonlinearOptimizationParameters(1e-5, 1e-5, 0.0, 100, 1e-5, 10, NonlinearOptimizationParameters::ERROR));
Optimizer optimizer(graph, values, ordering, params);
cout << "optimize_varK_BA::" << endl ;
cout << "before optimization, error is " << optimizer.error() << endl;
Optimizer optimizer2 = optimizer.levenbergMarquardt();
cout << "after optimization, error is " << optimizer2.error() << endl;
//CHECK(optimizer2.error() < 0.5 * reproj_error * nMeasurements);
CHECK(1);
CHECK(optimizer2.error() < 0.5 * reproj_error * nMeasurements);
}