2012-10-29 128 views
2

我使用的是Windows 7 64bit,visual studio 2010,opencv 2.4.2。OpenCV GPU HOG檢測

我正在嘗試使用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的/模塊/ GPU/SRC/hog.cpp,在

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

我認爲這就是爲什麼我的程序崩潰的原因。但是我不想使用單元格大小8.我如何將它變爲4?

回答

4

你有幾個選項...

  • 開拓OpenCV HOG code和周圍的8×8約束破解。將#define語句從8x8更改爲4x4,並擺脫assert語句。重新編譯OpenCV代碼,並運行您的應用程序。看看會發生什麼......也許它會起作用。

  • 如果在OpenCV的代碼快速黑客無法正常工作,還有其他的開源GPU HOG實現,例如:fastHOGGroundHOG

  • 如果沒有上述工作思路,你可以在CUDA或OpenCL中編寫自己的GPU HOG代碼。手寫的HOG實現可以相當簡潔,特別是如果您爲特定情況硬編碼單元大小和其他維度。但是,如果你是新手,GPU編程可能需要一些時間來學習。

此外,我應該確保 - 如果您使用8x8單元運行,OpenCV HOG運行正確嗎?