OpenCV GPU HOG detection
OpenCV GPU HOG detection
我正在使用Windows 7 64bit,Visual Studio 2010,OpenCV 2.4.2。
我正在尝试使用GPU猪检测器。
目前我可以使用自己的CPU猪检测器(我的训练有素的版本)。
我的猪具有Size(4,4)
的细胞。
但是,在OpenCV/模块/gpu/src/cuda/hog.cu中,它指出
// Other values are not supported
#define CELL_WIDTH 8
#define CELL_HEIGHT 8
或,在opencv/opencv/gpu/src/hog.cpp中,在
中cv::gpu::HOGDescriptor::HOGDescriptor( ... ) { ... CV_Assert(cell_size == Size(8, 8)); ... }
我认为这就是我程序崩溃的原因。但是我不想使用单元格。如何将其插入4?
您有一些选择...
-
打开OpenCV Hog Code并围绕8x8约束入侵。将
#define
语句从8x8更改为4x4,并摆脱断言语句。重新编译OpenCV代码,然后运行您的应用程序。看看会发生什么...也许会起作用。 -
如果OpenCV代码中的快速黑客行为不起作用,则还有其他开源GPU HOG实现,例如:Fasthog和Groundhog
-
如果上述想法都没有起作用,则可以在CUDA或OPENCL中编写自己的GPU HOG代码。手写的猪实现可以合理地简洁,尤其是如果您为特定情况进行硬编码单元格大小和其他尺寸时。但是,GPU编程可能需要一些时间来学习是否新手。
另外,我应该确保 - 如果您使用8x8单元运行,OpenCV Hog可以正常运行,正确?
您并不应该更改单元格大小。单元格的大小为8,因为那是"足够的像素可以执行梯度",但"不是太多而无法执行不必要的工作"。如果您的单元大小为4,则可能没有足够的有用信息来梯度强度和精度?为什么不将单元大小降低到4,为什么不在两个方向上缩小图像尺寸2?
相关文章:
- 将svm分类器设置为HOG检测器
- 在 OpenCV 中使用 hog.compute(..) 进行访问冲突
- OPENCV 3.4.1获取经过定制训练的线性SVM HOG DETECTMULTISCALE的原始形式
- 提案 N4502 如何运作?("detection idiom")
- Calling cv::cuda::HOG from python
- EOF detection by ZLib Gzip API?
- C++ SFML Collison Detection
- opencv 断言在计算 HOG 功能时失败错误 438
- HOG描述符矢量布局以及如何将它们保存到文本文件
- 使用 HOG 描述符进行人体检测
- 带有级联或 SVM 分类器的 HOG.C++ OpenCV (V2.4.5) 中的程序
- 视觉奇怪"Memory Leak Detection"错误C++
- OPENCV HOG功能数据布局
- OpenCV GPU HOG detection
- HoG+SVM -> HOGDescriptor::setsvmdetector
- 尝试创建用于检测人员的HOG实现
- HOG特征相似性测量
- HOG特征尺寸的大小
- OpenCV Harris Corner Detection crashes
- 解析 char 到 vector<float> for hog.setSVMdetector(vector<float>)