簡體   English   中英

OpenCV GPU HOG檢測

[英]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代碼,然后運行您的應用程序。 看看會發生什么...也許可以。

  • 如果無法快速破解OpenCV代碼,則還有其他開源GPU HOG實現,例如: fastHOGGroundHOG

  • 如果以上方法均無效,則可以在CUDA或OpenCL中編寫自己的GPU HOG代碼。 手寫HOG實施可以相當簡潔,特別是如果您為特定情況硬編碼像元大小和其他尺寸。 但是,如果您不熟悉GPU編程,則可能需要花費一些時間來學習。

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

您實際上不應該更改單元格的大小。 像元大小為8,因為這是“足以執行漸變的像素”,但“執行任務沒有太多”。 如果像元大小為4,那么對於梯度強度和精度可能還不夠有用? 而不是將像元大小減小為4,為什么不在兩個方向上都將圖像大小減小2?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM