Commit 74294541 authored by edgarriba's avatar edgarriba

Add UPNP acc_test and perf_test

parent a5b3a205
...@@ -10,7 +10,7 @@ using namespace perf; ...@@ -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; ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -184,7 +186,7 @@ protected:
} }
} }
} }
double eps[4]; double eps[5];
int totalTestsCount; int totalTestsCount;
}; };
...@@ -197,6 +199,7 @@ public: ...@@ -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: ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment