以前にもOpenCVを導入したが、
今回はCUDA対応を施しインストールする。(他にも些細な改善をする)
環境としては
OS:Ubuntu10.10 desktop 64bit
OpenCV:OpenCV-2.2.0
CUDA:4.0
CUDAの導入については前回を参照
まずは依存を解決する。
$ sudo apt-get install libtbb2 libtbb-dev libgtk2.0-dev build-essential pkg-config libpng12-0 libpng12-dev libpng3 libpng3-dev libpnglite-dev libpngwriter0-dev libpngwriter0c2 zlib1g-dbg zlib1g zlib1g-dev libjasper-dev libjasper-runtime libjasper1 pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools libjpeg62 libjpeg62-dev libjpeg62-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev openexr libswscale0 libswscale-dev libeigen2-dev libopenexr-dev subversion subversion-tools doxygen doxygen-gui python-sphinx cmake
あとはソースをsubversionから落としてきて導入。tar版はCUDA4.0に対応していないため。
また、途中でCMakeLists.txtをsedで編集している。これはUbuntuのPythonがsite-packagesを見にいかないため。
さらにdebで管理するためにCheckInstallでdeb化して導入する。RHELと異なりaptitudeで導入できる。
$ mkdir -p ~/local/src
$ cd ~/local/src
$ mkdir OpenCV-2.2.0-svn
$ cd OpenCV-2.2.0-svn
$ svn checkout https://code.ros.org/svn/opencv/trunk/
$ cd trunk/opencv/
$ sed -i s/site-packages/dist-packages/g CMakeLists.txt
$ mkdir release
$ cd release
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BULD_PYTHON_SUPPORT=ON -D WITH_TBB=ON -D WITH_QT=ON -D WITH_QT_OPENGL=ON -D WITH_CUDA=ON -D BUILD_DOXYGEN_DOCS=ON ../
$ make -j2
$ sudo aptitude install checkinstall
$ sudo checkinstall
$ sudo ldconfig
checkinstall中にいろいろきかれるが適宜答えておく。checkinstallにいろいろ聞かれるのが煩わしい人はcheckinstallの代わりに"make install"とでもしておけば良い。
これで導入は完了。
opencv_test_gpuでいくつか通らないテストがあるのだけどどうしたもんかな…
来月にはOpenCVの新しいヴァージョンも出るらしいので、それに期待かな。
ま、追々対応していく。とりあえず完了。
せっかくなので、このページにかかれているサンプルをコンパイルしてみる。
コンパイルは
$ g++ -I/usr/local/include/opencv2 -L/usr/local/lib -lopencv_gpu test.cpp
で通る。一応動いているみたいで一安心。
No comments:
Post a Comment