added performance test for LBP classifier.
authorMarina Kolpakova <no@email>
Wed, 4 Jul 2012 12:11:07 +0000 (12:11 +0000)
committerMarina Kolpakova <no@email>
Wed, 4 Jul 2012 12:11:07 +0000 (12:11 +0000)
modules/gpu/perf/perf_objdetect.cpp
modules/gpu/perf_cpu/perf_objdetect.cpp
modules/gpu/src/cascadeclassifier.cpp
modules/gpu/test/nvidia/TestRectStdDev.cpp
modules/gpu/test/test_warp_affine.cpp
modules/gpu/test/test_warp_perspective.cpp

index 0e0c934..5fd2297 100644 (file)
@@ -57,4 +57,31 @@ GPU_PERF_TEST_1(HaarClassifier, cv::gpu::DeviceInfo)
 \r
 INSTANTIATE_TEST_CASE_P(ObjDetect, HaarClassifier, ALL_DEVICES);\r
 \r
+//===================== LBP cascade ==========================//\r
+GPU_PERF_TEST_1(LBPClassifier, cv::gpu::DeviceInfo)\r
+{\r
+    cv::gpu::DeviceInfo devInfo = GetParam();\r
+    cv::gpu::setDevice(devInfo.deviceID());\r
+\r
+    cv::Mat img_host = readImage("gpu/haarcascade/group_1_640x480_VGA.pgm", cv::IMREAD_GRAYSCALE);\r
+    ASSERT_FALSE(img_host.empty());\r
+\r
+    cv::gpu::CascadeClassifier_GPU_LBP cascade;\r
+\r
+    ASSERT_TRUE(cascade.load(perf::TestBase::getDataPath("gpu/lbpcascade/lbpcascade_frontalface.xml")));\r
+\r
+    cv::gpu::GpuMat img(img_host);\r
+        cv::gpu::GpuMat gpu_rects, buffer;\r
+\r
+    // cascade.detectMultiScale(img, objects_buffer);\r
+    cascade.detectMultiScale(img, buffer, gpu_rects);\r
+\r
+    TEST_CYCLE()\r
+    {\r
+        cascade.detectMultiScale(img, buffer, gpu_rects);\r
+    }\r
+}\r
+\r
+INSTANTIATE_TEST_CASE_P(ObjDetect, LBPClassifier, ALL_DEVICES);\r
+\r
 #endif\r
index 05bed40..d9ae2b7 100644 (file)
@@ -49,4 +49,26 @@ GPU_PERF_TEST_1(HaarClassifier, cv::gpu::DeviceInfo)
 \r
 INSTANTIATE_TEST_CASE_P(ObjDetect, HaarClassifier, ALL_DEVICES);\r
 \r
+//===================== LBP cascade ==========================//\r
+GPU_PERF_TEST_1(LBPClassifier, cv::gpu::DeviceInfo)\r
+{\r
+    cv::Mat img = readImage("gpu/haarcascade/group_1_640x480_VGA.pgm", cv::IMREAD_GRAYSCALE);\r
+    ASSERT_FALSE(img.empty());\r
+\r
+    cv::CascadeClassifier cascade;\r
+\r
+    ASSERT_TRUE(cascade.load(perf::TestBase::getDataPath("gpu/lbpcascade/lbpcascade_frontalface.xml")));\r
+\r
+    std::vector<cv::Rect> rects;\r
+\r
+    cascade.detectMultiScale(img, rects);\r
+\r
+    TEST_CYCLE()\r
+    {\r
+        cascade.detectMultiScale(img, rects);\r
+    }\r
+}\r
+\r
+INSTANTIATE_TEST_CASE_P(ObjDetect, LBPClassifier, ALL_DEVICES);\r
+\r
 #endif\r
index 8932667..d2f4120 100644 (file)
@@ -350,7 +350,9 @@ int cv::gpu::CascadeClassifier_GPU_LBP::detectMultiScale(const GpuMat& image, Gp
 \r
     if (groupThreshold <= 0  || objects.empty())\r
         return 0;\r
-    return cv::gpu::device::lbp::connectedConmonents(candidates, groupThreshold, grouping_eps, dclassified);\r
+    cv::gpu::device::lbp::connectedConmonents(candidates, groupThreshold, grouping_eps, dclassified);\r
+    cudaSafeCall( cudaDeviceSynchronize() );\r
+    return *classified;\r
 }\r
 \r
 // ============ old fashioned haar cascade ==============================================//\r
index f75433d..420979d 100644 (file)
@@ -1,11 +1,11 @@
 /*\r
  * Copyright 1993-2010 NVIDIA Corporation.  All rights reserved.\r
  *\r
- * NVIDIA Corporation and its licensors retain all intellectual \r
- * property and proprietary rights in and to this software and \r
- * related documentation and any modifications thereto.  \r
- * Any use, reproduction, disclosure, or distribution of this \r
- * software and related documentation without an express license \r
+ * NVIDIA Corporation and its licensors retain all intellectual\r
+ * property and proprietary rights in and to this software and\r
+ * related documentation and any modifications thereto.\r
+ * Any use, reproduction, disclosure, or distribution of this\r
+ * software and related documentation without an express license\r
  * agreement from NVIDIA Corporation is strictly prohibited.\r
  */\r
 \r
index 8c92988..262937f 100644 (file)
@@ -185,8 +185,6 @@ PARAM_TEST_CASE(WarpAffine, cv::gpu::DeviceInfo, cv::Size, MatType, Inverse, Int
     int borderType;\r
     bool useRoi;\r
 \r
-    cv::Mat M;\r
-\r
     virtual void SetUp()\r
     {\r
         devInfo = GET_PARAM(0);\r
index 5724c61..f143170 100644 (file)
@@ -185,8 +185,6 @@ PARAM_TEST_CASE(WarpPerspective, cv::gpu::DeviceInfo, cv::Size, MatType, Inverse
     int borderType;\r
     bool useRoi;\r
 \r
-    cv::Mat M;\r
-\r
     virtual void SetUp()\r
     {\r
         devInfo = GET_PARAM(0);\r