0
0

More than 5 years have passed since last update.

10コアのCPUを導入してわかったOpenCVカスケードトレーニングのボトルネック

Posted at

カスケードトレーニングをするときにはopencv_traincascade.exe を使うわけなのですが、
Gitから最新をもってきて作ると、OpenCVのパラレルフレームワークを使うようになります。TBBを指定しているところがなくなりました。
早速ビルドして試しましたが、TBBを使った自前ビルドのほうが早いです。時間が惜しい人は公式配布の3.4.0あたりまでのソースから自前でWITH_TBBでビルドしたものを使うとよいと思います。Windows10でVisualStudio2017以外でしたら結果は違うかもしれません。

また、意外と古くから知られていたようなのですが、opencv_traincascade のボトルネックになっているところは、CvCascadeClassifier::fillPassedSamples という処理で、やっていることは、不正解画像に正解画像を当ててチェックしているようなのですが、画像を一つ一つチェックしているようで、マルチコアマシンで学習を進めても1コアしか使わないので、ステージが上がってくると、非常に目立ってきます。今のところ、CPUのオーバークロックくらいしか対処方法がありません。
http://answers.opencv.org/question/16496/parallelization-of-linear-part-of-opencv_traincascade/
ここで提示されているコードも試しましたが、かえって遅くなってしまいました。

それでは。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0