CI20

概要

  • CI20を入手したので OpenCV 3.1.0 上でビルドしてみた

今回のターゲット

  • CI20 (MIPS 32bit)
  • cmake 3.0.2
  • gcc 4.9.2
  • Debian 8.6

OpenCV の取得

  • cloneして、3.1.0をチェックアウトする
    ci20@ci20:~$ cd opencv-fork/
    ci20@ci20:~/opencv-fork$ git checkout -b Branch_3_1_0 3.1.0
    Switched to a new branch 'Branch_3_1_0'
    HEAD is now at 92387b1 Fix java version++

OpenCV3.1.0のビルド

cmake

  • ODROID-X2でOpenCV 3.1.0をビルド同様、out of source buildする
    ci20@ci20:~/opencv-fork$ mkdir build
    ci20@ci20:~/opencv-fork$ cd build/
    ci20@ci20:~/opencv-fork/build$ time cmake ../
    (中略)
    
    real	3m32.205s
    user	2m39.820s
    sys	0m42.770s

make all

  • CI20 は2コアなので、2コアでビルドする
    ci20@ci20:~/opencv-fork/build$ time make -j 2 all
    (中略)
    
    real	209m34.010s
    user	382m10.530s
    sys	20m58.980s
  • ざっくり3時間半ぐらい(!)かかる
  • 流石に他のSingle Board Computer に比べるとCPU貧弱感が否めない
  • ただし、一応ビルドは完了する。

OpenCVビルド時のコンフィグなど

cvconfig.h

  • HAVE_OPENCLがdefineされてるが、CI20のGPUはOpenCLには対応してなかった
  • ビルド環境をインストールしたのでビルドしようとするらしい。
    /* OpenCV compiled as static or dynamic libs */
    #define BUILD_SHARED_LIBS
    
    /* Compile for 'real' NVIDIA GPU architectures */
    #define CUDA_ARCH_BIN ""
    
    /* Create PTX or BIN for 1.0 compute capability */
    /* #undef CUDA_ARCH_BIN_OR_PTX_10 */
    
    /* NVIDIA GPU features are used */
    #define CUDA_ARCH_FEATURES ""
    
    /* Compile for 'virtual' NVIDIA PTX architectures */
    #define CUDA_ARCH_PTX ""
    
    /* AVFoundation video libraries */
    /* #undef HAVE_AVFOUNDATION */
    
    /* V4L capturing support */
    /* #undef HAVE_CAMV4L */
    
    /* V4L2 capturing support */
    #define HAVE_CAMV4L2
    
    /* Carbon windowing environment */
    /* #undef HAVE_CARBON */
    
    /* AMD's Basic Linear Algebra Subprograms Library*/
    /* #undef HAVE_CLAMDBLAS */
    
    /* AMD's OpenCL Fast Fourier Transform Library*/
    /* #undef HAVE_CLAMDFFT */
    
    /* Clp support */
    /* #undef HAVE_CLP */
    
    /* Cocoa API */
    /* #undef HAVE_COCOA */
    
    /* C= */
    /* #undef HAVE_CSTRIPES */
    
    /* NVidia Cuda Basic Linear Algebra Subprograms (BLAS) API*/
    /* #undef HAVE_CUBLAS */
    
    /* NVidia Cuda Runtime API*/
    /* #undef HAVE_CUDA */
    
    /* NVidia Cuda Fast Fourier Transform (FFT) API*/
    /* #undef HAVE_CUFFT */
    
    /* IEEE1394 capturing support */
    /* #undef HAVE_DC1394 */
    
    /* IEEE1394 capturing support - libdc1394 v2.x */
    /* #undef HAVE_DC1394_2 */
    
    /* DirectX */
    /* #undef HAVE_DIRECTX */
    /* #undef HAVE_DIRECTX_NV12 */
    /* #undef HAVE_D3D11 */
    /* #undef HAVE_D3D10 */
    /* #undef HAVE_D3D9 */
    
    /* DirectShow Video Capture library */
    /* #undef HAVE_DSHOW */
    
    /* Eigen Matrix & Linear Algebra Library */
    /* #undef HAVE_EIGEN */
    
    /* FFMpeg video library */
    /* #undef HAVE_FFMPEG */
    
    /* ffmpeg's libswscale */
    /* #undef HAVE_FFMPEG_SWSCALE */
    
    /* ffmpeg in Gentoo */
    /* #undef HAVE_GENTOO_FFMPEG */
    
    /* Geospatial Data Abstraction Library */
    /* #undef HAVE_GDAL */
    
    /* GStreamer multimedia framework */
    /* #undef HAVE_GSTREAMER */
    
    /* GTK+ 2.0 Thread support */
    /* #undef HAVE_GTHREAD */
    
    /* GTK+ 2.x toolkit */
    /* #undef HAVE_GTK */
    
    /* Define to 1 if you have the <inttypes.h> header file. */
    /* #undef HAVE_INTTYPES_H */
    
    /* Intel Perceptual Computing SDK library */
    /* #undef HAVE_INTELPERC */
    
    /* Intel Integrated Performance Primitives */
    /* #undef HAVE_IPP */
    /* #undef HAVE_IPP_ICV_ONLY */
    
    /* Intel IPP Async */
    /* #undef HAVE_IPP_A */
    
    /* JPEG-2000 codec */
    #define HAVE_JASPER
    
    /* IJG JPEG codec */
    #define HAVE_JPEG
    
    /* libpng/png.h needs to be included */
    /* #undef HAVE_LIBPNG_PNG_H */
    
    /* V4L/V4L2 capturing support via libv4l */
    /* #undef HAVE_LIBV4L */
    
    /* Microsoft Media Foundation Capture library */
    /* #undef HAVE_MSMF */
    
    /* NVidia Video Decoding API*/
    /* #undef HAVE_NVCUVID */
    
    /* OpenCL Support */
    #define HAVE_OPENCL
    /* #undef HAVE_OPENCL_STATIC */
    /* #undef HAVE_OPENCL_SVM */
    
    /* OpenEXR codec */
    #define HAVE_OPENEXR
    
    /* OpenGL support*/
    /* #undef HAVE_OPENGL */
    
    /* OpenNI library */
    /* #undef HAVE_OPENNI */
    
    /* OpenNI library */
    /* #undef HAVE_OPENNI2 */
    
    /* PNG codec */
    #define HAVE_PNG
    
    /* Posix threads (pthreads) */
    #define HAVE_PTHREADS
    
    /* parallel_for with pthreads */
    #define HAVE_PTHREADS_PF
    
    /* Qt support */
    /* #undef HAVE_QT */
    
    /* Qt OpenGL support */
    /* #undef HAVE_QT_OPENGL */
    
    /* QuickTime video libraries */
    /* #undef HAVE_QUICKTIME */
    
    /* QTKit video libraries */
    /* #undef HAVE_QTKIT */
    
    /* Intel Threading Building Blocks */
    /* #undef HAVE_TBB */
    
    /* TIFF codec */
    #define HAVE_TIFF
    
    /* Unicap video capture library */
    /* #undef HAVE_UNICAP */
    
    /* Video for Windows support */
    /* #undef HAVE_VFW */
    
    /* V4L2 capturing support in videoio.h */
    /* #undef HAVE_VIDEOIO */
    
    /* Win32 UI */
    /* #undef HAVE_WIN32UI */
    
    /* XIMEA camera support */
    /* #undef HAVE_XIMEA */
    
    /* Xine video library */
    /* #undef HAVE_XINE */
    
    /* Define if your processor stores words with the most significant byte
       first (like Motorola and SPARC, unlike Intel and VAX). */
    /* #undef WORDS_BIGENDIAN */
    
    /* gPhoto2 library */
    /* #undef HAVE_GPHOTO2 */
    
    /* VA library (libva) */
    /* #undef HAVE_VA */
    
    /* Intel VA-API/OpenCL */
    /* #undef HAVE_VA_INTEL */

version_string.inc

General configuration for OpenCV 3.1.0 =====================================
  Version control:               3.1.0

  Platform:
    Host:                        Linux 3.18.3-ci20-1 mips
    CMake:                       3.0.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.9.2)
    C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
    C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
    C Compiler:                  /usr/bin/cc
    C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUG
    C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG
    Linker flags (Release):      
    Linker flags (Debug):        
    Precompiled headers:         YES
    Extra dependencies:          dl m pthread rt
    3rdparty dependencies:       zlib libjpeg libwebp libpng libtiff libjasper IlmImf

  OpenCV modules:
    To be built:                 core flann imgproc ml photo video imgcodecs shape videoio highgui objdetect superres ts features2d calib3d stitching videostab
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 python3 viz

  GUI: 
    QT:                          NO
    GTK+:                        NO
    GThread :                    NO
    GtkGlExt:                    NO
    OpenGL support:              NO
    VTK support:                 NO

  Media I/O: 
    ZLib:                        zlib (ver 1.2.8)
    JPEG:                        libjpeg (ver 90)
    WEBP:                        build (ver 0.3.1)
    PNG:                         build (ver 1.6.19)
    TIFF:                        build (ver 42 - 4.0.2)
    JPEG 2000:                   build (ver 1.900.1)
    OpenEXR:                     build (ver 1.7.1)
    GDAL:                        NO

  Video I/O:
    DC1394 1.x:                  NO
    DC1394 2.x:                  NO
    FFMPEG:                      NO
      codec:                     NO
      format:                    NO
      util:                      NO
      swscale:                   NO
      resample:                  NO
      gentoo-style:              NO
    GStreamer:                   NO
    OpenNI:                      NO
    OpenNI PrimeSensor Modules:  NO
    OpenNI2:                     NO
    PvAPI:                       NO
    GigEVisionSDK:               NO
    UniCap:                      NO
    UniCap ucil:                 NO
    V4L/V4L2:                    NO/YES
    XIMEA:                       NO
    Xine:                        NO
    gPhoto2:                     NO

  Parallel framework:            pthreads

  Other third-party libraries:
    Use IPP:                     NO
    Use VA:                      NO
    Use Intel VA-API/OpenCL:     NO
    Use Eigen:                   NO
    Use Cuda:                    NO
    Use OpenCL:                  YES
    Use custom HAL:              NO

  OpenCL:
    Version:                     dynamic
    Include path:                /home/ci20/opencv-fork/3rdparty/include/opencl/1.2
    Use AMDFFT:                  NO
    Use AMDBLAS:                 NO

  Python 2:
    Interpreter:                 /usr/bin/python2.7 (ver 2.7.9)

  Python 3:
    Interpreter:                 /usr/bin/python3.4 (ver 3.4.2)

  Python (for build):            /usr/bin/python2.7

  Java:
    ant:                         NO
    JNI:                         NO
    Java wrappers:               NO
    Java tests:                  NO

  Matlab:                        Matlab not found or implicitly disabled

  Documentation:
    Doxygen:                     NO
    PlantUML:                    NO

  Tests and samples:
    Tests:                       YES
    Performance tests:           YES
    C/C++ Examples:              NO

  Install path:                  /usr/local

  cvconfig.h is in:              /home/ci20/opencv-fork/build
-----------------------------------------------------------------

ビルドされたライブラリや実行ファイル

3178720 Oct 27 06:16 libopencv_core.so.3.1.0
 513612 Oct 27 06:20 libopencv_flann.so.3.1.0
 800600 Oct 27 06:28 libopencv_ml.so.3.1.0
3177604 Oct 27 06:36 libopencv_imgproc.so.3.1.0
3237912 Oct 27 06:39 libopencv_imgcodecs.so.3.1.0
 430004 Oct 27 06:43 libopencv_video.so.3.1.0
 170048 Oct 27 06:45 libopencv_videoio.so.3.1.0
 945092 Oct 27 06:46 libopencv_photo.so.3.1.0
 198416 Oct 27 06:47 libopencv_superres.so.3.1.0
 280720 Oct 27 06:48 libopencv_shape.so.3.1.0
  28976 Oct 27 06:48 libopencv_highgui.so.3.1.0
 466276 Oct 27 06:52 libopencv_objdetect.so.3.1.0
1515292 Oct 27 06:57 libopencv_ts.a
 822108 Oct 27 07:01 libopencv_features2d.so.3.1.0
1599496 Oct 27 08:39 libopencv_calib3d.so.3.1.0
 602948 Oct 27 08:49 libopencv_stitching.so.3.1.0
 398672 Oct 27 08:53 libopencv_videostab.so.3.1.0

performance

  • TBW

その他

  • GUI関連のライブラリ(libgtk-2.0とか3.0とかQtとか)を一切インストールしてないので、highguiがほとんど動かないはず。
  • でもビルドと、あとテストもそれなりに動いた

関連ページ


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-11 (水) 12:33:44 (132d)