Как создать OpenCV с TBB?
Я пытаюсь и не могу сделать opencv_traincascade
использование нескольких потоков. Единственная документация, которую я могу найти, говорит "построить OpenCV с TBB". Я не уверен, что я не смогу успешно построить OpenCV с TBB, или есть ли какой-то флаг, который мне нужно установить для opencv_traincascade
.
Я загрузил суперзагрузку окон OpenCV версии 2.3.1 и tbb40_20111003oss_win.zip
, которые я извлек для C:\tbb40_20111003oss
. Затем я сгенерировал файлы VC8 .sln
и .proj
, используя CMake, установив
WITH_TBB: ON
TBB_INCLUDE_DIR:PATH=C:\tbb40_20111003oss\include
TBB_LIB_DIR:PATH=C:/tbb40_20111003oss/lib/intel64/vc8
OpenCV затем строит без ошибок, но когда я запускаю opencv_traincascade
, это однопоточное. Кто-нибудь знает, что я делаю неправильно?
Ответы
Ответ 1
Если вы находитесь на Mac, вы можете сделать это с помощью доморощенного:
brew tap homebrew/science
brew install opencv --with-tbb
Или, если вы уже установили с homebrew:
brew uninstall opencv
brew install opencv --with-tbb
Кроме того, команда info
сообщает вам о других флагах, которые могут вас заинтересовать, например. --with-java
brew info opencv
Ответ 2
Я знаю, что это старый поток, но я думаю, что проблема заключается в том, что вы используете Traincascade с функцией Haart для использования с функциями LBP, которые используют целое число вместо плавающей запятой и работают в 3 раза быстрее.
См. комментарий в этот вопрос для получения дополнительной информации от автора об этом. Краткое описание: Обучение Haart трудно парализовать, но LBP намного проще и использовать множество процессоров.
Надеюсь, что это поможет!
Ответ 3
Попробуйте setNumThreads(), с количеством ядер процессора в качестве параметров. Существует вспомогательная функция для поиска оптимального количества потоков (равна числу ядер), но я не могу ее запомнить.
И убедитесь, что вы также перестроили train_cascade exe
Ответ 4
Для linux выполните:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON BUILD_TBB=ON ..
Ответ 5
Инструкции здесь: http://devel-open.blogspot.com.ar/2012/06/instalando-opencv-240-en-ubuntu.html
Ответ 6
После создания бинарных файлов tbb убедитесь, что ваш путь правильно направляет ваш исполняемый файл в dll tbb. Возможно, вы загружаете не-tbb dll (это случилось со мной), и они не будут содержать многопотоков.
Ответ 7
Кроме того, одним касанием является установка Intel TBB в системе:
$ sudo apt-get install libtbb-dev