[[Jetson TK1]]

#contents

*OpenCVのインストールの前に [#ha419469]
-[[公式サイト>http://elinux.org/Jetson/Tutorials/OpenCV]] を参考にすれば、パッケージになっているOpenCV 2.4.9 がインストールできる。&note{jetson-opencv:[[Jetson/Tutorials/OpenCV - eLinux.org>http://elinux.org/Jetson/Tutorials/OpenCV]], 2015-01-07閲覧};
-ただ、面白く無いので、今回は3.0.0-beta を git + cmake でインストールとbuildしてみる

*OpenCVのビルドに必要なもの [#r9983f5d]
-git
-cmake
 sudo apt-get -y install cmake git
-cmake は 2.8.12.2

*今回のターゲット [#m57597da]
-Jetson TK1
-L4T (Ubuntu 14.04をベースにしたもの)
-Arm A15 w/ neon
-Tegra K1 (192 core)

*OpenCV の取得 [#x5a27907]
-gitでcloneする
 git clone git://code.opencv.org/opencv.git opencv
-14min ぐらいかかった
-cmake してみる
-cuda が無いと言われる。しかたないので、[[CUDAをインストールする>Jetson TK1#na7c0313]]

*OpenCV のオプション [#zf9d5601]
-できればNEONの有効性も検証したいので -DENABLE_NEON:BOOL=ON する
-Tegra用のCUDAアーキテクチャさえビルドできれば良いので、 -DCUDA_ARCH_BIN=3.2 -DCUDA_ARCH_PTX= にする
--詳しくは[[OpenCV2.4.10.1のビルド#CUDAのアーキテクチャを指定した場合>OpenCV2.4.10.1のビルド#s7865aaf]] を参照
--[[https://developer.nvidia.com/cuda-gpus>https://developer.nvidia.com/cuda-gpus]]&note{cuda-gpus-official:[[💻 CUDA GPUS | NVIDIA Developer>https://developer.nvidia.com/cuda-gpus]], 2015-07-01閲覧};を参照すると、Jetson TK1 は3.2と書かれているので、ARCHを3.2にする
-ついでにexamplesもビルドする
 cmake . -DWITH_EXAMPLES=ON -DENABLE_NEON:BOOL=ON -DCUDA_ARCH_BIN=3.2 -DCUDA_ARCH_PTX=
-NEONが有効になってるのかが分からないが、__ARM_NEON__ 定数が入っているっぽいので、とりあえず有効になっていると信じてビルドしてみる
 make -j 4 install
-Armの4coreをフルに使う
-Arm Cortex A15 quad core 211minかかった

*cvconfig.h [#i424b665]
 /* OpenCV compiled as static or dynamic libs */
 #define BUILD_SHARED_LIBS
 
 /* Compile for 'real' NVIDIA GPU architectures */
 #define CUDA_ARCH_BIN " 32"
 
 /* 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 " 32"
 
 /* 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*/
 #define HAVE_CUDA
 
 /* NVidia Cuda Fast Fourier Transform (FFT) API*/
 #define HAVE_CUFFT
 
 /* IEEE1394 capturing support */
 /* #undef HAVE_DC1394 */
 
 /* IEEE1394 capturing support - libdc1394 v2.x */
 /* #undef HAVE_DC1394_2 */
 
 /* DirectX */
 /* #undef HAVE_DIRECTX */
 /* #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 */
 
 /* 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
 
 /* 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 */
 
 /* Windows Runtime support */
 /* #undef HAVE_WINRT */
 
 /* 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 */
 
 
 
*version_string.inc [#xa408c1c]
-今気づいたけれど、この文字列はcv::getBuildInformation()を実行した時の結果だな
 General configuration for OpenCV 3.0.0-dev =====================================
   Version control:               3.0.0-beta-255-g2883342
 
   Platform:
     Host:                        Linux 3.10.24-g6a2d13a 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):         -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 -mfpu=neon -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden   -DNDEBUG
     C++ flags (Debug):           -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 -mfpu=neon -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden   -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 -mfpu=neon -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 -mfpu=neon -ffunction-sections -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUG
     Linker flags (Release):      
     Linker flags (Debug):        
     Precompiled headers:         YES
 
   OpenCV modules:
     To be built:                 cudev core flann imgproc imgcodecs videoio highgui ml features2d calib3d cudaarithm objdetect cudalegacy cudawarping cuda cudafilters cudaimgproc video cudabgsegm cudacodec cudafeatures2d cudaoptflow cudastereo photo shape stitching superres ts videostab
     Disabled:                    world
     Disabled by dependency:      -
     Unavailable:                 androidcamera 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.5.12)
     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
       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
 
   Other third-party libraries:
     Use IPP:                     NO
     Use Eigen:                   NO
     Use TBB:                     NO
     Use OpenMP:                  NO
     Use GCD                      NO
     Use Concurrency              NO
     Use C=:                      NO
     Use Cuda:                    YES (ver 6.5)
     Use OpenCL:                  YES
 
   NVIDIA CUDA
     Use CUFFT:                   YES
     Use CUBLAS:                  NO
     USE NVCUVID:                 NO
     NVIDIA GPU arch:             32
     NVIDIA PTX archs:
     Use fast math:               NO
 
   OpenCL:
     Version:                     dynamic
     Include path:                /home/ubuntu/opencv/3rdparty/include/opencl/1.2
     Use AMDFFT:                  NO
     Use AMDBLAS:                 NO
 
   Python 2:
     Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
 
   Python 3:
     Interpreter:                 /usr/bin/python3.4 (ver 3.4)
 
   Python (for build):            /usr/bin/python2.7
 
   Java:
     ant:                         NO
     JNI:                         NO
     Java wrappers:               NO
     Java tests:                  NO
 
   Matlab:
     mex:                         NO
 
   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/ubuntu/opencv
 -----------------------------------------------------------------

*OpenCLをセットアップする [#efeefac5]
-OpenCLを有効にしないと、実行時エラーになる
-ビルド時エラーでなく、実行時エラー
-OpenCLをインストールする必要がある
  sudo apt-get -y install ocl-icd-opencl-dev

*highgui + gtk 2.0 [#ha33d566]
-highguiでウィンドウを表示する場合、GTK 2.0が必要になる
-apt-getを使ってインストールする
 sudo apt-get -y install libgtk2.0-dev

*performance [#xc1d54a2]
 CPU        Cuda        (w/transfer)    OpenCL      (w/transfer)
 0.252243   0.836868    0.272061    
 0.444737   1.89693 0.317164    
 19.9843    7.30137 2.19153 
 21.0076    2.48653 22.5633 
 
 -0.0259084 -0.176707   0.167617    
 0.321134   2.60277 0.311503    
 21.1274    7.40303 2.85302 
 21.6446    3.48516 22.779  
 
 0.275134   1.12396 0.28873 
 0.296786   3.64872 0.283497    
 20.062 8.8461  3.33611 
 22.0169    2.78913 22.6017 
 
 0.1348 -0.243131   0.156863    
 0.341507   2.0028  0.297173    
 21.6203    5.98087 0.380911    
 23.72  1.96771 22.1059

*関連ページ [#t8ccdc17]
-[[:OpenCV]]
-[[:OpenCV 3.0]]
-[[OpenCV3.0.0-betaのビルド]]
-[[Arm]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS