From edff6741058e03cb5a6ebfdeb3010014b561ffd6 Mon Sep 17 00:00:00 2001 From: Anatoly Baksheev Date: Tue, 16 Nov 2010 12:33:19 +0000 Subject: [PATCH] added default detector for winSize(64,128) for hog on gpu --- modules/core/src/system.cpp | 4 ++-- modules/gpu/include/opencv2/gpu/gpu.hpp | 1 + modules/gpu/src/hog.cpp | 6 ++++++ tests/gpu/src/hog.cpp | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp index c7b31c0..a49f5e7 100644 --- a/modules/core/src/system.cpp +++ b/modules/core/src/system.cpp @@ -528,8 +528,8 @@ CV_IMPL const char* cvErrorStr( int status ) case CV_StsBadMemBlock : return "Memory block has been corrupted"; case CV_StsAssert : return "Assertion failed"; case CV_GpuNotSupported : return "No GPU support"; - case CV_GpuApiCallError : return "GPU API error"; - case CV_GpuNppCallError : return "NPP API error"; + case CV_GpuApiCallError : return "Gpu Api call"; + case CV_GpuNppCallError : return "Npp Api call"; }; sprintf(buf, "Unknown %s code %d", status >= 0 ? "status":"error", status); diff --git a/modules/gpu/include/opencv2/gpu/gpu.hpp b/modules/gpu/include/opencv2/gpu/gpu.hpp index 752d4df..61a6887 100644 --- a/modules/gpu/include/opencv2/gpu/gpu.hpp +++ b/modules/gpu/include/opencv2/gpu/gpu.hpp @@ -995,6 +995,7 @@ namespace cv double getWinSigma() const; static vector getDefaultPeopleDetector(); + static vector getDefaultPeopleDetector_64x128(); void setSVMDetector(const vector& detector); bool checkDetectorSize() const; diff --git a/modules/gpu/src/hog.cpp b/modules/gpu/src/hog.cpp index 88e9721..cba1709 100644 --- a/modules/gpu/src/hog.cpp +++ b/modules/gpu/src/hog.cpp @@ -56,6 +56,7 @@ void cv::gpu::HOGDescriptor::detectMultiScale(const GpuMat&, vector&, doub int cv::gpu::HOGDescriptor::numPartsWithin(int, int, int) { throw_nogpu(); return 0; } cv::Size cv::gpu::HOGDescriptor::numPartsWithin(cv::Size, cv::Size, cv::Size) { throw_nogpu(); return cv::Size(); } std::vector cv::gpu::HOGDescriptor::getDefaultPeopleDetector() { throw_nogpu(); return std::vector(); } +std::vector cv::gpu::HOGDescriptor::getDefaultPeopleDetector_64x128() { throw_nogpu(); return std::vector(); } #else @@ -310,6 +311,11 @@ cv::Size cv::gpu::HOGDescriptor::numPartsWithin(cv::Size size, cv::Size part_siz std::vector cv::gpu::HOGDescriptor::getDefaultPeopleDetector() { + return getDefaultPeopleDetector_64x128(); +} + +std::vector cv::gpu::HOGDescriptor::getDefaultPeopleDetector_64x128() +{ static const float detector[] = { 0.05359386f, -0.14721455f, -0.05532170f, 0.05077307f, 0.11547081f, -0.04268804f, 0.04635834f, -0.05468199f, 0.08232084f, diff --git a/tests/gpu/src/hog.cpp b/tests/gpu/src/hog.cpp index e3f2719..cc3e903 100644 --- a/tests/gpu/src/hog.cpp +++ b/tests/gpu/src/hog.cpp @@ -109,6 +109,8 @@ struct CV_GpuHogTest : public CvTest cv::gpu::HOGDescriptor hog; hog.setSVMDetector(cv::gpu::HOGDescriptor::getDefaultPeopleDetector()); + //cpu detector may be updated soon + //hog.setSVMDetector(cv::HOGDescriptor::getDefaultPeopleDetector()); std::vector locations; -- 2.7.4