如何使用TBB构建OpenCV?

时间:2011-11-03 11:40:43

标签: opencv tbb

我正在尝试并且未能使opencv_traincascade使用多个线程。我能找到的唯一文档说“用TBB构建OpenCV”。我不确定我是否未能使用TBB成功构建OpenCV,或者是否需要为opencv_traincascade设置一些标志。

我已经下载了OpenCV版本2.3.1 windows superpack和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时它是单线程的。有谁知道我做错了什么?

7 个答案:

答案 0 :(得分:5)

如果您使用的是Mac,则可以使用自制程序执行此操作:

brew tap homebrew/science
brew install opencv --with-tbb

或者如果您已经安装了自制软件:

brew uninstall opencv
brew install opencv --with-tbb

此外,info命令会告诉您可能感兴趣的其他标志,例如: --with-java

brew info opencv 

答案 1 :(得分:2)

我知道这是一个旧线程,但我认为问题在于你正在使用Traincascade与Haart功能使用LBP功能使用整数而不是浮点并且工作速度提高了3倍。

请参阅this question中的评论,以获取作者有关此内容的更多信息。快速摘要:Haart培训难以实现,但LBP更容易,并且可以利用大量处理器。

希望有所帮助!

答案 2 :(得分:1)

尝试使用处理器核心数作为参数的setNumThreads()。有一个辅助函数可以找到最佳线程数(等于内核数),但我记不住了。

并确保您还重建了train_cascade exe

答案 3 :(得分:1)

对于linux,请执行:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON BUILD_TBB=ON ..

答案 4 :(得分:0)

答案 5 :(得分:0)

构建tbb二进制文件后,请确保您的路径正确地将可执行文件定向到tbb dll。您可能正在加载非tbb dll(这发生在我身上),这些将不提供多线程。

答案 6 :(得分:0)

此外,一个接触点是在系统上安装英特尔TBB:

min/max-device-width