Showing posts with label OpenCV. Show all posts
Showing posts with label OpenCV. Show all posts

July 6, 2011

Ubuntu10.10 での OpenCV2.3 with CUDA4.0 の導入

以前はOpenCV2.3RCをつかってCUDA対応のOpenCVを導入してみたが、
RCがとれたのでインストールしてみる。
RCとれるのはやいなー。
<追記>OpenCV-2.3.1でも同様に導入できることを確認した

環境としては
OS:Ubuntu10.10 desktop 64bit
OpenCV:OpenCV-2.3.0
CUDA:4.0

CUDA4.0の導入についてはこの記事を参照

まずは依存を解決する。
$ 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
また、今回からgtestが必要になったようなのでそちらも導入。
$ sudo aptitude install libgtest-dev

あとはソースをsourceforgeから落としてきて導入。
また、途中でCMakeLists.txtをsedで編集している。これはUbuntuのPythonがsite-packagesを見にいかないため。
さらにdebで管理するためにCheckInstallでdeb化して導入する。RHELと異なりaptitudeで導入できる。
$ mkdir -p ~/local/src
$ cd ~/local/src
$ wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.3/OpenCV-2.3.0.tar.bz2
$ tar jxvf OpenCV-2.3.0rc.tar.bz2
$ cd OpenCV-2.3.0
$ 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"とでもしておけば良い。
これで導入は完了。

せっかくなので、このページにかかれているサンプルをコンパイルしてみる。
コンパイルは
$ g++ -I/usr/local/include/opencv2 -L/usr/local/lib -lopencv_gpu test.cpp
で通る。
これは問題なく動いている。

June 23, 2011

Ubuntu10.10 での OpenCV2.3RC with CUDA4.0 の導入

前回はOpenCV2.2のsvn版をつかってCUDA対応のOpenCVを導入してみたが、
OpenCV2.3RCが出たのでインストールしてみる。
RCがとれたのでやってみたのはこっち。

環境としては
OS:Ubuntu10.10 desktop 64bit
OpenCV:OpenCV-2.3.0RC
CUDA:4.0

CUDA4.0の導入についてはこの記事を参照

まずは依存を解決する。
$ 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
また、今回からgtestが必要になったようなのでそちらも導入。
$ sudo aptitude install libgtest-dev

あとはソースをsourceforgeから落としてきて導入。
また、途中でCMakeLists.txtをsedで編集している。これはUbuntuのPythonがsite-packagesを見にいかないため。
さらにdebで管理するためにCheckInstallでdeb化して導入する。RHELと異なりaptitudeで導入できる。
$ mkdir -p ~/local/src
$ cd ~/local/src
$ wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.3/OpenCV-2.3.0rc.tar.bz2
$ tar jxvf OpenCV-2.3.0rc.tar.bz2
$ cd OpenCV-2.3.0
$ 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がきちんと終わらないのは変わらないなー。
RCでも変化がないということはこちらの設定ミスを疑ってみる。
追々チェックしていく。

せっかくなので、このページにかかれているサンプルをコンパイルしてみる。
コンパイルは
$ g++ -I/usr/local/include/opencv2 -L/usr/local/lib -lopencv_gpu test.cpp
で通る。
これは問題なく動いている。

June 21, 2011

Ubuntu10.10 での OpenCV2.2 with CUDA4.0 の導入

::OpenCV2.3RCの導入法はこちら

以前にも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
で通る。
一応動いているみたいで一安心。

May 29, 2011

Ubuntu10.10 に OpenCV2.2 をインストールする

::OpenCV2.2でCUDA対応する導入法はこちら
::OpenCV2.3RCの導入法はこちら

UbuntuにはaptitudeでもOpenCVは導入可能だが、その場合Versionが2.1になってしまう。
せっかくなので2.2を入れる。
主にここここを参考にする。
Ubuntu10.10デスクトップ版を対象とする。

まず依存を解決する
$ 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 cmake

あとはソースを落としてきて導入。
また、途中でCMakeLists.txtをsedで編集している。これはUbuntuのPythonがsite-packagesを見にいかないため。
$ mkdir -p ~/local/src
$ cd ~/local/src
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2
$ tar jxvf OpenCV-2.2.0.tar.bz2
$ cd OpenCV-2.2.0
$ 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 BUILD_DOXYGEN_DOCS=ON ../
$ make -j2
$ sudo make install

忘れずにldconfig
$ sudo ldconfig

CUDA対応もそんなに難儀しなさそうなので、今度やってみよう。

May 24, 2011

OpenCV haartraining が segmentation fault する件

最近は画像処理で遊んでいる。
OpenCVに関しては導入から利用まで一通り後でまとめるとして(まとめた)、haarliketrainingが落ちる理由が非常にションボリだったのでここに書き連ねておく。

このあたりの記事を参考にオブジェクト検出器をつくろうとおもって負例500件、正例1件をあつめ,neg.txt(前述記事中のNG.txt)をつくり,(正例は1個だけだったのでリストはつくっていない)
$ #正例にアフィン変換をかけて正例を増やす
$ opencv_createsamples -img pos/pos.jpg -vec pos.vec -num 1000 -bgcolor 255 -w 100 -h 100
$ #負例と合わせて学習
$ opencv_haarliketraining -data training -vec pos.vec -bg neg.txt -npos 1000 -nneg 500  -w 100 -h 100 -mode ALL -nonsysm -mem 1000
とやってみると、segmentation faultする。
Google先生に聞くと、OpenCV1.x系だとneg.txtに記述されている負例のうち、実体がないものがあるとセグフォ、とおっしゃるのだがちゃんと全てのファイルは実在するしpathも間違ってない。そもそもOpenCV2.x系だしなぁ…
ということでうろうろしていると、
I had this problem as well, see bug #964145 on SourceForge. In short,
the negative samples have to be at least twice as wide and twice as
high as the positive samples, otherwise training will crash at some
stage.
http://tech.groups.yahoo.com/group/OpenCV/message/24290
ということらしい。
つまり、すべての負例が正例サンプルのタテヨコ2倍以上の大きさが無いと落ちるらしい…

ドキュメントの目立つところにそれぐらい書いておいて欲しい…

負例の最小値が100x40だったので
$ #正例をアフィン変換をかけて正例を増やす
$ opencv_createsamples -img pos/pos.jpg -vec pos.vec -num 1000 -bgcolor 255 -w 50 -h 20
$ #負例と合わせて学習
$ opencv_haarliketraining -data training -vec pos.vec -bg neg.txt -npos 1000 -nneg 500  -w 50 -h 20 -mode ALL -nonsysm -mem 1000
で問題なく学習完了

ちなみに学習完了までものすごい時間がかかる。