Add UPNP acc_test and perf_test
This commit is contained in:
@@ -10,7 +10,7 @@ using namespace perf;
|
|||||||
using std::tr1::make_tuple;
|
using std::tr1::make_tuple;
|
||||||
using std::tr1::get;
|
using std::tr1::get;
|
||||||
|
|
||||||
CV_ENUM(pnpAlgo, SOLVEPNP_ITERATIVE, SOLVEPNP_EPNP, SOLVEPNP_P3P, SOLVEPNP_DLS)
|
CV_ENUM(pnpAlgo, SOLVEPNP_ITERATIVE, SOLVEPNP_EPNP, SOLVEPNP_P3P, SOLVEPNP_DLS, SOLVEPNP_UPNP)
|
||||||
|
|
||||||
typedef std::tr1::tuple<int, pnpAlgo> PointsNum_Algo_t;
|
typedef std::tr1::tuple<int, pnpAlgo> PointsNum_Algo_t;
|
||||||
typedef perf::TestBaseWithParam<PointsNum_Algo_t> PointsNum_Algo;
|
typedef perf::TestBaseWithParam<PointsNum_Algo_t> PointsNum_Algo;
|
||||||
@@ -20,7 +20,7 @@ typedef perf::TestBaseWithParam<int> PointsNum;
|
|||||||
PERF_TEST_P(PointsNum_Algo, solvePnP,
|
PERF_TEST_P(PointsNum_Algo, solvePnP,
|
||||||
testing::Combine(
|
testing::Combine(
|
||||||
testing::Values(4, 3*9, 7*13), //TODO: find why results on 4 points are too unstable
|
testing::Values(4, 3*9, 7*13), //TODO: find why results on 4 points are too unstable
|
||||||
testing::Values((int)SOLVEPNP_ITERATIVE, (int)SOLVEPNP_EPNP)
|
testing::Values((int)SOLVEPNP_ITERATIVE, (int)SOLVEPNP_EPNP, (int)SOLVEPNP_UPNP)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@@ -58,6 +58,7 @@ public:
|
|||||||
eps[SOLVEPNP_EPNP] = 1.0e-2;
|
eps[SOLVEPNP_EPNP] = 1.0e-2;
|
||||||
eps[SOLVEPNP_P3P] = 1.0e-2;
|
eps[SOLVEPNP_P3P] = 1.0e-2;
|
||||||
eps[SOLVEPNP_DLS] = 1.0e-2;
|
eps[SOLVEPNP_DLS] = 1.0e-2;
|
||||||
|
eps[SOLVEPNP_UPNP] = 1.0e-2;
|
||||||
totalTestsCount = 10;
|
totalTestsCount = 10;
|
||||||
}
|
}
|
||||||
~CV_solvePnPRansac_Test() {}
|
~CV_solvePnPRansac_Test() {}
|
||||||
@@ -118,6 +119,7 @@ protected:
|
|||||||
Mat trueRvec, trueTvec;
|
Mat trueRvec, trueTvec;
|
||||||
Mat intrinsics, distCoeffs;
|
Mat intrinsics, distCoeffs;
|
||||||
generateCameraMatrix(intrinsics, rng);
|
generateCameraMatrix(intrinsics, rng);
|
||||||
|
if (method == 4) intrinsics.at<double>(1,1) = intrinsics.at<double>(0,0);
|
||||||
if (mode == 0)
|
if (mode == 0)
|
||||||
distCoeffs = Mat::zeros(4, 1, CV_64FC1);
|
distCoeffs = Mat::zeros(4, 1, CV_64FC1);
|
||||||
else
|
else
|
||||||
@@ -159,7 +161,7 @@ protected:
|
|||||||
points.resize(pointsCount);
|
points.resize(pointsCount);
|
||||||
generate3DPointCloud(points);
|
generate3DPointCloud(points);
|
||||||
|
|
||||||
const int methodsCount = 4;
|
const int methodsCount = 5;
|
||||||
RNG rng = ts->get_rng();
|
RNG rng = ts->get_rng();
|
||||||
|
|
||||||
|
|
||||||
@@ -184,7 +186,7 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
double eps[4];
|
double eps[5];
|
||||||
int totalTestsCount;
|
int totalTestsCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -197,6 +199,7 @@ public:
|
|||||||
eps[SOLVEPNP_EPNP] = 1.0e-6;
|
eps[SOLVEPNP_EPNP] = 1.0e-6;
|
||||||
eps[SOLVEPNP_P3P] = 1.0e-4;
|
eps[SOLVEPNP_P3P] = 1.0e-4;
|
||||||
eps[SOLVEPNP_DLS] = 1.0e-4;
|
eps[SOLVEPNP_DLS] = 1.0e-4;
|
||||||
|
eps[SOLVEPNP_UPNP] = 1.0e-4;
|
||||||
totalTestsCount = 1000;
|
totalTestsCount = 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,6 +211,7 @@ protected:
|
|||||||
Mat trueRvec, trueTvec;
|
Mat trueRvec, trueTvec;
|
||||||
Mat intrinsics, distCoeffs;
|
Mat intrinsics, distCoeffs;
|
||||||
generateCameraMatrix(intrinsics, rng);
|
generateCameraMatrix(intrinsics, rng);
|
||||||
|
if (method == 4) intrinsics.at<double>(1,1) = intrinsics.at<double>(0,0);
|
||||||
if (mode == 0)
|
if (mode == 0)
|
||||||
distCoeffs = Mat::zeros(4, 1, CV_64FC1);
|
distCoeffs = Mat::zeros(4, 1, CV_64FC1);
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user