simplify TVL1 accuracy test to reduce run time
This commit is contained in:
parent
71c391cd8d
commit
c4b2058d23
@ -325,15 +325,20 @@ INSTANTIATE_TEST_CASE_P(CUDA_OptFlow, FarnebackOpticalFlow, testing::Combine(
|
|||||||
//////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
// OpticalFlowDual_TVL1
|
// OpticalFlowDual_TVL1
|
||||||
|
|
||||||
PARAM_TEST_CASE(OpticalFlowDual_TVL1, cv::cuda::DeviceInfo, UseRoi)
|
namespace
|
||||||
|
{
|
||||||
|
IMPLEMENT_PARAM_CLASS(Gamma, double)
|
||||||
|
}
|
||||||
|
|
||||||
|
PARAM_TEST_CASE(OpticalFlowDual_TVL1, cv::cuda::DeviceInfo, Gamma)
|
||||||
{
|
{
|
||||||
cv::cuda::DeviceInfo devInfo;
|
cv::cuda::DeviceInfo devInfo;
|
||||||
bool useRoi;
|
double gamma;
|
||||||
|
|
||||||
virtual void SetUp()
|
virtual void SetUp()
|
||||||
{
|
{
|
||||||
devInfo = GET_PARAM(0);
|
devInfo = GET_PARAM(0);
|
||||||
useRoi = GET_PARAM(1);
|
gamma = GET_PARAM(1);
|
||||||
|
|
||||||
cv::cuda::setDevice(devInfo.deviceID());
|
cv::cuda::setDevice(devInfo.deviceID());
|
||||||
}
|
}
|
||||||
@ -348,30 +353,22 @@ CUDA_TEST_P(OpticalFlowDual_TVL1, Accuracy)
|
|||||||
ASSERT_FALSE(frame1.empty());
|
ASSERT_FALSE(frame1.empty());
|
||||||
|
|
||||||
cv::cuda::OpticalFlowDual_TVL1_CUDA d_alg;
|
cv::cuda::OpticalFlowDual_TVL1_CUDA d_alg;
|
||||||
cv::cuda::GpuMat d_flowx = createMat(frame0.size(), CV_32FC1, useRoi);
|
d_alg.iterations = 10;
|
||||||
cv::cuda::GpuMat d_flowy = createMat(frame0.size(), CV_32FC1, useRoi);
|
d_alg.gamma = gamma;
|
||||||
d_alg(loadMat(frame0, useRoi), loadMat(frame1, useRoi), d_flowx, d_flowy);
|
|
||||||
|
cv::cuda::GpuMat d_flowx, d_flowy;
|
||||||
|
d_alg(loadMat(frame0), loadMat(frame1), d_flowx, d_flowy);
|
||||||
|
|
||||||
cv::Ptr<cv::DenseOpticalFlow> alg = cv::createOptFlow_DualTVL1();
|
cv::Ptr<cv::DenseOpticalFlow> alg = cv::createOptFlow_DualTVL1();
|
||||||
alg->set("medianFiltering", 1);
|
alg->set("medianFiltering", 1);
|
||||||
alg->set("innerIterations", 1);
|
alg->set("innerIterations", 1);
|
||||||
alg->set("outerIterations", d_alg.iterations);
|
alg->set("outerIterations", d_alg.iterations);
|
||||||
|
alg->set("gamma", gamma);
|
||||||
|
|
||||||
cv::Mat flow;
|
cv::Mat flow;
|
||||||
alg->calc(frame0, frame1, flow);
|
alg->calc(frame0, frame1, flow);
|
||||||
cv::Mat gold[2];
|
cv::Mat gold[2];
|
||||||
cv::split(flow, gold);
|
cv::split(flow, gold);
|
||||||
cv::Mat mx(d_flowx);
|
|
||||||
cv::Mat my(d_flowx);
|
|
||||||
|
|
||||||
EXPECT_MAT_SIMILAR(gold[0], d_flowx, 4e-3);
|
|
||||||
EXPECT_MAT_SIMILAR(gold[1], d_flowy, 4e-3);
|
|
||||||
d_alg.gamma = 1;
|
|
||||||
alg->set("gamma", 1);
|
|
||||||
d_alg(loadMat(frame0, useRoi), loadMat(frame1, useRoi), d_flowx, d_flowy);
|
|
||||||
alg->calc(frame0, frame1, flow);
|
|
||||||
cv::split(flow, gold);
|
|
||||||
mx = cv::Mat(d_flowx);
|
|
||||||
my = cv::Mat(d_flowx);
|
|
||||||
|
|
||||||
EXPECT_MAT_SIMILAR(gold[0], d_flowx, 4e-3);
|
EXPECT_MAT_SIMILAR(gold[0], d_flowx, 4e-3);
|
||||||
EXPECT_MAT_SIMILAR(gold[1], d_flowy, 4e-3);
|
EXPECT_MAT_SIMILAR(gold[1], d_flowy, 4e-3);
|
||||||
@ -379,7 +376,7 @@ CUDA_TEST_P(OpticalFlowDual_TVL1, Accuracy)
|
|||||||
|
|
||||||
INSTANTIATE_TEST_CASE_P(CUDA_OptFlow, OpticalFlowDual_TVL1, testing::Combine(
|
INSTANTIATE_TEST_CASE_P(CUDA_OptFlow, OpticalFlowDual_TVL1, testing::Combine(
|
||||||
ALL_DEVICES,
|
ALL_DEVICES,
|
||||||
WHOLE_SUBMAT));
|
testing::Values(Gamma(0.0), Gamma(1.0))));
|
||||||
|
|
||||||
//////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////
|
||||||
// FastOpticalFlowBM
|
// FastOpticalFlowBM
|
||||||
|
Loading…
x
Reference in New Issue
Block a user