c++ - OpenCV GPU HOG 检测

标签 c++ opencv cuda gpu

我使用的是 Windows 7 64 位、Visual Studio 2010、opencv 2.4.2。

我正在尝试使用 GPU hog 检测器。

现在我可以使用我自己的 CPU hog 检测器(我训练过的版本)。

我的 pig 的单元格大小为 Size(4,4)

但是,在 opencv/modules/gpu/src/cuda/hog.cu 中,它指出

 // Other values are not supported
  #define CELL_WIDTH 8
  #define CELL_HEIGHT 8 

或者,在 opencv/modules/gpu/src/hog.cpp 中,在

cv::gpu::HOGDescriptor::HOGDescriptor( ... ) { ... CV_Assert(cell_size == Size(8, 8)); ... }

我认为这就是我的程序崩溃的原因。但是我不想使用单元格大小 8。如何将其更改为 4?

最佳答案

您有几个选择...

  • 打开OpenCV HOG code并破解 8x8 约束。将 #define 语句从 8x8 更改为 4x4,并删除断言语句。重新编译 OpenCV 代码,然后运行您的应用程序。看看会发生什么......也许它会起作用。

  • 如果 OpenCV 代码中的快速破解不起作用,还有其他开源 GPU HOG 实现,例如:fastHOGGroundHOG

  • 如果以上想法都不起作用,您可以在 CUDA 或 OpenCL 中编写自己的 GPU HOG 代码。手写的 HOG 实现可以相当简洁,特别是如果您针对特定情况对像元大小和其他尺寸进行硬编码的话。但是,如果您是新手,GPU 编程可能需要一些时间来学习。

此外,我应该确保——如果您使用 8x8 单元运行,OpenCV HOG 也能正常运行,对吗?

关于c++ - OpenCV GPU HOG 检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121440/

相关文章:

gcc+mingw 下的 C++ 段错误,但不是 gcc+linux

C++:如何在函数中创建枚举?

c++ - 如何将CUDA代码分成多个文件

visual-studio - 项目属性中的 CUDA/C++ 选项卡

c++ - Thrust 中的虚方法调用

c++ - 确保 char 指针始终指向相同的字符串文字

c++ - Linux 上的 GMP(MPIR) 链接器错误

python - 在Python中使用openCV检测红色和黄色三角形

c++ - 如何将 Logo 作为水印添加到图像中?

python - 我正在尝试分析 Scantron 表单并为 OMR 项目创建 key