2

Windows 7 64 ビット、Visual Studio 2010、opencv 2.4.2 を使用しています。

GPU ホグ検出器を使用しようとしています。

今のところ、独自の CPU ホグ検出器 (トレーニング済みのバージョン) を使用できます。

私の豚のセルサイズは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 に変更できますか?

4

2 に答える 2

4

いくつかのオプションがあります...

  • OpenCV HOG コードを開き、8x8 制約をハックします。ステートメントを 8x8 から 4x4 に変更し#define、assert ステートメントを取り除きます。OpenCV コードを再コンパイルし、アプリケーションを実行します。何が起こるか見てください...おそらくうまくいくでしょう。

  • OpenCV コードのクイック ハックが機能しない場合は、fastHOGGroundHOGなど、他のオープンソース GPU HOG 実装があります。

  • 上記のアイデアがどれもうまくいかない場合は、独自の GPU HOG コードを CUDA または OpenCL で記述できます。手書きの HOG 実装は、特に特定のケースでセル サイズやその他の寸法をハードコーディングしている場合は、かなり簡潔になります。ただし、GPU プログラミングに慣れていない場合は、学習に時間がかかる場合があります。

また、8x8 セルで実行した場合、OpenCV HOG が正しく実行されることを確認する必要があります。

于 2012-11-05T06:02:13.593 に答える