11

opencv_traincascade複数のスレッドを使用しようとして失敗しています。私が見つけた唯一のドキュメントには、「TBB で OpenCV をビルドする」と書かれています。TBB を使用して OpenCV を正常にビルドできていないのか、または に設定する必要があるフラグがあるのか​​どうかはわかりませんopencv_traincascade

OpenCV バージョン 2.3.1 Windows スーパーパックと をダウンロードし、tbb40_20111003oss_win.zip解凍してC:\tbb40_20111003oss. 次に、CMakeを使用してVC8.sln.projファイルを生成し、設定

WITH_TBB: ON

TBB_INCLUDE_DIR:PATH=C:\tbb40_20111003oss\include

TBB_LIB_DIR:PATH=C:/tbb40_20111003oss/lib/intel64/vc8

その後、OpenCV はエラーなしでビルドされますが、実行するとシングルスレッドにopencv_traincascadeなります。私が間違っていることを誰かが知っていますか?

4

7 に答える 7

2

これは古いスレッドですが、問題は、浮動小数点の代わりに整数を使用し、3倍高速に動作するLBP機能で使用するのではなくHaart機能でTraincascadeを使用していることだと思います。

これに関する作者からの詳細については、この質問のコメントを参照してください。簡単な要約:Haartトレーニングは並列化するのが難しいですが、LBPははるかに簡単で、多くのプロセッサーを利用します。

お役に立てば幸いです。

于 2013-01-08T18:46:52.550 に答える
2

Linux の場合、次のようにします。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON BUILD_TBB=ON ..
于 2015-12-21T19:48:51.883 に答える
1

プロセッサ コアの数をパラメータとして setNumThreads() を試してください。最適なスレッド数 (コア数と等しい) を見つけるヘルパー関数がありますが、思い出せません。

また、必ずtrain_cascade exeを再構築してください

于 2011-11-03T12:06:39.640 に答える
0

tbb バイナリをビルドした後、パスが実行可能ファイルを tbb dll に正しく向けていることを確認してください。非 tbb dll をロードしている可能性があり (これは私に起こりました)、これらはマルチスレッドを提供しません。

于 2014-06-12T19:31:04.390 に答える
0

手順はこちら: http://devel-open.blogspot.com.ar/2012/06/instalando-opencv-240-en-ubuntu.html

于 2012-08-13T00:45:38.590 に答える