2015年8月24日月曜日

Install OpenCV3 on Raspberry Pi2

次に、Raspberry Pi2に、OpenCV3をインスールします。

1.事前準備
どーんと!!!

$ sudo apt-get -y install build-essential cmake cmake-qt-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools
$ sudo apt-get -y install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.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 libgtk2.0-dev pkg-config
$ sudo apt-get install libswscale-dev

2.Buildの準備
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.0.0/opencv-3.0.0.zip
$ unzip opencv-3.0.0.zip
$ cd opencv-3.0.0
$ mkdir build
$ cd build

ここからが、お味噌
Raspberry Piは、armv7です。
このまま、ビルドするとarmv6のコードになります。
もっと良い、方法があると思うけど、さくっと片付けたいので、、、

まずは、コンパイラーを4.8にします。

$ sudo apt-get install gcc-4.8 g++-4.8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 20
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 20
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50

で、armv7を指定して実行すると、、、
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_VFPV3=ON -D ENABLE_NEON=ON -D BUILD_DOCS=OFF -D BUILD_TESTS=off -D BUILD_PERF_TESTS=OFF -D BUILD_TBB=ON -D BUILD_opencv_apps=OFF -D BUILD_opencv_gpu=OFF -D WITH_OPENCL=off -D WITH_1394=off -D WITH_CUDA=OFF -D WITH_CUFFT=OFF -D WITH_GIGEAPI=OFF -D WITH_OPENCLAMDBLAS=off -D WITH_OPENCLAMDFFT=off -D WITH_TBB=ON -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..

これは、失敗になります。こんなエラーがでます。
../../lib/libopencv_imgproc.so.3.0.0: undefined reference to `tbb::task_group_context::cancel_group_execution()'

で、 armv6で当面します。

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON

$ make -j 4
$ sudo make install
$ sudo ldconfig
$ cd bin
./cpp-example-facedetect --cascade="../../data/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 ../../samples/data/lena.jpg

で、makeは、1時間位かかります。


Peace!!

----------------------------------------------------
これは、Raspberry Pi2用 メモ!!
-Wall -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7-a

g++ tesp.cpp -o test -L/path/to/the/relevant/library/ -lnameoflib

where nameoflib would be eg. tbb if the actual shared library is named libtbb.so

0 件のコメント:

コメントを投稿