FC2カウンター FPGAの部屋 2015年02月05日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZYBOのARMhfのUbuntu 14.04 LTS にOpenCV 2.4.10をインストール

ZYBOのDigilent Linux KernelにARMhfのRoot File Systemsを入れる3(Ubuntu Trusty 14.04 LTS)”の続き。

ZYBOのARMhfのUbuntu 14.04 LTS にも、OpenCV 2.4.10をインストールした。

opencv_pre_install.sh を作って、それを実行した。その内容を示す。

sudo apt-get -yV install build-essential
sudo apt-get -yV install libboost1.46-all-dev
#
cd /tmp; sudo apt-get source opencv
sudo apt-get -yV build-dep opencv
#
sudo apt-get -yV install libqt4-dev
sudo apt-get -yV install libgtk2.0-dev
sudo apt-get -yV install pkg-config
#
sudo apt-get -yV install opencl-headers
#
sudo apt-get -yV install libjpeg-dev
sudo apt-get -yV install libopenjpeg-dev
sudo apt-get -yV install jasper
sudo apt-get -yV install libjasper-dev libjasper-runtime
sudo apt-get -yV install libpng12-dev
sudo apt-get -yV install libpng++-dev libpng3
sudo apt-get -yV install libpnglite-dev libpngwriter0-dev libpngwriter0c2
sudo apt-get -yV install libtiff-dev libtiff-tools pngtools
sudo apt-get -yV install zlib1g-dev zlib1g-dbg
sudo apt-get -yV install v4l2ucp
#
sudo apt-get -yV install python
sudo apt-get -yV install autoconf
sudo apt-get -yV install libtbb2 libtbb-dev
sudo apt-get -yV install libeigen2-dev
sudo apt-get -yV install cmake
sudo apt-get -yV install openexr
sudo apt-get -yV install gstreamer-plugins-*
sudo apt-get -yV install freeglut3-dev
sudo apt-get -yV install libglui-dev
sudo apt-get -yV install libavc1394-dev libdc1394-22-dev libdc1394-utils
#
sudo apt-get -yV install libxine-dev
sudo apt-get -yV install libxvidcore-dev
sudo apt-get -yV install libva-dev
sudo apt-get -yV install libssl-dev
sudo apt-get -yV install libv4l-dev
sudo apt-get -yV install libvo-aacenc-dev
sudo apt-get -yV install libvo-amrwbenc-dev
sudo apt-get -yV install libvorbis-dev
sudo apt-get -yV install libvpx-dev


・まず、opencv-2.4.10.zip を、SourceForge からダウンロードした。
wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip

・OpenCV ディレクトリを作製して、その下に、opencv-2.4.10.zip を移動した。
mkdir OpenCV
mv opencv-2.4.10.zip OpenCV
cd OpenCV


・opencv-2.4.10.zip を解凍した。
unzip opencv-2.4.10.zip

・opencv-2.4.10 ディレクトリができた。

・opencv-2.4.10 ディレクトリに行って、build ディレクトリを作製した。
mkdir build

・build ディレクトリに行った。
cd build

・そこで、OpenCV をインストールするためのコマンドを発行した。
cmake ..
make

ZYBO_ARMhf_31_150204.png

sudo make install
sudo ldconfig

これで、 Ubuntu 14.04 LTS に、OpenCV-2.4.10 をインストールすることができた。ビルドは成功した。

いつものように、samples/c のOpenCV のサンプルプログラムもすべてビルドできた。
./build_all.sh

レナ像の顔検出と目の検出も問題なくできた。
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml" --scale=1.3 lena.jpg
ZYBO_ARMhf_32_150204.png

OpenCVのCやC++のソフトウェアを実行するために、コンパイル・スクリプトを作製した。
詳しくは、”OpenCV のコンパイル・スクリプト”を参照下さい。

これで、OpenCVについても、Linaro Ubuntu 14.04 LTS と同じ環境が揃った。


おまけとしてレナ像の scale の値による detection time の変化と、顔認識、目認識の様子についてもデータを取ってみた。(画像のサイズは 512x512 ピクセル)

scale = 1.0, detection time = 2037.15 ms (顔も目も認識されている)
ZYBO_ARMhf_34_150204.png

scale = 1.3, detection time = 1206.48 ms (顔も目も認識されている)

scale = 2.0, detection time = 449.268 ms (顔も目も認識されている)
ZYBO_ARMhf_33_150204.png

scale = 3.0, detection time = 206.46 ms (顔のみ認識されている)
ZYBO_ARMhf_35_150204.png

scale = 4.0, detection time = 119.46 ms (顔のみ認識されている)
ZYBO_ARMhf_36_150204.png

scale = 5.0, detection time = 76.6311 ms (顔のみ認識されている)
ZYBO_ARMhf_37_150204.png

scale = 6.0, detection time = 53.7746 ms (顔のみ認識されている)
ZYBO_ARMhf_38_150204.png

scale = 7.0, detection time = 39.568 ms (顔も目も認識されない)
ZYBO_ARMhf_39_150204.png

scale = 8.0, detection time =32.1023 ms (顔も目も認識されない)
ZYBO_ARMhf_40_150204.png

ZynqのCortex-A9 プロセッサによる OpenCV 2.4.10での顔認識と目認識のscaleによるdetection timeの値の表を下に示す。
ZYBO_ARMhf_41_150204.png

scale = 2.0 は scale = 1.0 よりも大体、2.0の2乗分の 1 にスケールダウンしているようだ。


もう1つおまけで、cmake 時のパラメータの表示を示す。
-- General configuration for OpenCV 2.4.10 =====================================
--   Version control:               unknown
--
--   Platform:
--     Host:                        Linux 3.14.0-xilinx-13567-g906a2c9-dirty armv7l
--     CMake:                       2.8.12.2
--     CMake generator:             Unix Makefiles
--     CMake build tool:            /usr/bin/make
--     Configuration:               Release
--
--   C/C++:
--     Built as dynamic libs?:      YES
--     C++ Compiler:                /usr/bin/c++  (ver 4.8.2)
--     C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -

--     Linker flags (Release):
--     Linker flags (Debug):
--     Precompiled headers:         YES
--
--   OpenCV modules:
--     To be built:                 core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib stitching superres ts videostab
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 androidcamera dynamicuda java python viz
--
--   GUI:
--     QT:                          NO
--     GTK+ 2.x:                    YES (ver 2.24.23)
--     GThread :                    YES (ver 2.40.2)
--     GtkGlExt:                    NO
--     OpenGL support:              NO
--     VTK support:                 NO
--
--   Media I/O:
--     ZLib:                        /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.8)
--     JPEG:                        /usr/lib/arm-linux-gnueabihf/libjpeg.so (ver )
--     PNG:                         /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.50)
--     TIFF:                        /usr/lib/arm-linux-gnueabihf/libtiff.so (ver 42 - 4.0.3)
--     JPEG 2000:                   /usr/lib/arm-linux-gnueabihf/libjasper.so (ver 1.900.1)
--     OpenEXR:                     build (ver 1.7.1)
--
--   Video I/O:
--     DC1394 1.x:                  NO
--     DC1394 2.x:                  YES (ver 2.2.1)
--     FFMPEG:                      NO
--       codec:                     NO
--       format:                    NO
--       util:                      NO
--       swscale:                   NO
--       gentoo-style:              NO
--     GStreamer:
--       base:                      YES (ver 1.2.4)
--       video:                     YES (ver 1.2.4)
--       app:                       YES (ver 1.2.4)
--       riff:                      YES (ver 1.2.4)
--       pbutils:                   YES (ver 1.2.4)
--     OpenNI:                      NO
--     OpenNI PrimeSensor Modules:  NO
--     PvAPI:                       NO
--     GigEVisionSDK:               NO
--     UniCap:                      NO
--     UniCap ucil:                 NO
--     V4L/V4L2:                    Using libv4l1 (ver 1.0.1) / libv4l2 (ver 1.0.1)
--     XIMEA:                       NO
--     Xine:                        NO
--
--   Other third-party libraries:
--     Use IPP:                     NO
--     Use Eigen:                   YES (ver 2.0.17)
--     Use TBB:                     NO
--     Use OpenMP:                  NO
--     Use GCD                      NO
--     Use Concurrency              NO
--     Use C=:                      NO
--     Use Cuda:                    NO
--     Use OpenCL:                  YES
--
--   OpenCL:
--     Version:                     dynamic
--     Include path:                /home/ubuntu/OpenCV/opencv-2.4.10/3rdparty/include/opencl/1.2
--     Use AMD FFT:                 NO
--     Use AMD BLAS:                NO
--
--   Python:
--     Interpreter:                 /usr/bin/python2 (ver 2.7.6)
--
--   Java:
--     ant:                         NO
--     JNI:                         NO
--     Java tests:                  NO
--
--   Documentation:
--     Build Documentation:         NO
--     Sphinx:                      NO
--     PdfLaTeX compiler:           NO
--
--   Tests and samples:
--     Tests:                       YES
--     Performance tests:           YES
--     C/C++ Examples:              NO
--
--   Install path:                  /usr/local
--
--   cvconfig.h is in:              /home/ubuntu/OpenCV/opencv-2.4.10/build
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/OpenCV/opencv-2.4.10/build
  1. 2015年02月05日 04:30 |
  2. OpenCV
  3. | トラックバック:0
  4. | コメント:0