added default detector for winSize(64,128) for hog on gpu

pull/13383/head
Anatoly Baksheev 14 years ago
parent be54f1237a
commit edff674105
  1. 4
      modules/core/src/system.cpp
  2. 1
      modules/gpu/include/opencv2/gpu/gpu.hpp
  3. 6
      modules/gpu/src/hog.cpp
  4. 2
      tests/gpu/src/hog.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);

@ -995,6 +995,7 @@ namespace cv
double getWinSigma() const;
static vector<float> getDefaultPeopleDetector();
static vector<float> getDefaultPeopleDetector_64x128();
void setSVMDetector(const vector<float>& detector);
bool checkDetectorSize() const;

@ -56,6 +56,7 @@ void cv::gpu::HOGDescriptor::detectMultiScale(const GpuMat&, vector<Rect>&, 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<float> cv::gpu::HOGDescriptor::getDefaultPeopleDetector() { throw_nogpu(); return std::vector<float>(); }
std::vector<float> cv::gpu::HOGDescriptor::getDefaultPeopleDetector_64x128() { throw_nogpu(); return std::vector<float>(); }
#else
@ -309,6 +310,11 @@ cv::Size cv::gpu::HOGDescriptor::numPartsWithin(cv::Size size, cv::Size part_siz
}
std::vector<float> cv::gpu::HOGDescriptor::getDefaultPeopleDetector()
{
return getDefaultPeopleDetector_64x128();
}
std::vector<float> cv::gpu::HOGDescriptor::getDefaultPeopleDetector_64x128()
{
static const float detector[] = {
0.05359386f, -0.14721455f, -0.05532170f, 0.05077307f,

@ -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<cv::Point> locations;

Loading…
Cancel
Save