[英]OpenCV GPU HOG detection
我正在使用Windows 7 64位,Visual Studio 2010,OpenCV 2.4.2。
我正在嘗試使用GPU豬探測器。
現在,我可以使用自己的CPU hog檢測器(訓練有素的版本)。
我的豬的細胞Size(4,4)
為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代碼並繞過8x8約束。 將#define
語句從8x8更改為4x4,並擺脫assert語句。 重新編譯OpenCV代碼,然后運行您的應用程序。 看看會發生什么...也許可以。
如果以上方法均無效,則可以在CUDA或OpenCL中編寫自己的GPU HOG代碼。 手寫HOG實施可以相當簡潔,特別是如果您為特定情況硬編碼像元大小和其他尺寸。 但是,如果您不熟悉GPU編程,則可能需要花費一些時間來學習。
另外,我應該確保-如果您使用8x8單元運行OpenCV HOG,則正確嗎?
您實際上不應該更改單元格的大小。 像元大小為8,因為這是“足以執行漸變的像素”,但“執行任務沒有太多”。 如果像元大小為4,那么對於梯度強度和精度可能還不夠有用? 而不是將像元大小減小為4,為什么不在兩個方向上都將圖像大小減小2?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.