[[Jetson TK1]]

#contents

*概要 [#r7828966]
-OpenCV 3.0.0 がリリースされたのでJetson上にインストールしてみた

*OpenCVのビルドに必要なもの [#jb66d291]
-git
-cmake
-GTK 2.0
-OpenCVのOpenCL実装を試すためにも、OpenCLもインストールしておく
 sudo apt-get -y install cmake git libgtk2.0-dev ocl-icd-opencl-dev
-cmake は 2.8.12.2

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

*OpenCV の取得 [#x9f63ef5]
-gitでcloneする
-[[3.0.0-beta>Jetson TK1でOpenCV3.0.0-beta]]の時にクローンしておいたので、今回はfetchとcheckoutをした
-fetch
 $ git fetch
 remote: Counting objects: 14788, done.
 remote: Compressing objects: 100% (6539/6539), done.
 remote: Total 11316 (delta 8046), reused 6273 (delta 4352)
 Receiving objects: 100% (11316/11316), 4.02 MiB | 246.00 KiB/s, done.
 Resolving deltas: 100% (8046/8046), completed with 987 local objects.
 From git://code.opencv.org/opencv
    b2a5e66..172c00f  master     -> origin/master
    9cadc1e..707d10f  2.4        -> origin/2.4
    67635c6..00d9f69  2.4.10.x-prep -> origin/2.4.10.x-prep
  * [new tag]         2.4.10.2   -> 2.4.10.2
  * [new tag]         2.4.11     -> 2.4.11
  * [new tag]         3.0.0      -> 3.0.0
  * [new tag]         3.0.0-rc1  -> 3.0.0-rc1
-checkout
 $ git checkout 3.0.0
 Note: checking out '3.0.0'.
 
 You are in 'detached HEAD' state. You can look around, make experimental
 changes and commit them, and you can discard any commits you make in this
 state without impacting any branches by performing another checkout.
 
 If you want to create a new branch to retain commits you create, you may
 do so (now or later) by using -b with the checkout command again. Example:
 
   git checkout -b new_branch_name
 
 HEAD is now at c12243c... Version for 3.0.0 release
-cmake してみる

*OpenCV のオプション [#ie35ddf0]
-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-02閲覧};を参照すると、Jetson TK1 は3.2と書かれているので、ARCHを3.2にする
-ついでにexamplesもビルドする
#geshi(bash){{
cmake . -DWITH_EXAMPLES=ON -DENABLE_NEON:BOOL=ON -DCUDA_ARCH_BIN=3.2 -DCUDA_ARCH_PTX=
make clean
time make -j 4 all
}}
-Armの4coreをフルに使う
-ビルドに160minぐらいかかる

*インストール [#a0a39b17]
-sudo を使う
#geshi(bash){{
sudo make install
}}
-/usr/local/include 以下に header が、
-/usr/local/lib 以下に .so ファイルや .a ファイルが、
-/usr/local/share/OpenCV 以下に Haar特徴量のcascade classifierが
-それぞれインストールされる

**cvconfig.h [#acdde557]
#geshi(c++){{
/* 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 */
#define HAVE_GTHREAD

/* GTK+ 2.x toolkit */
#define 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 */
#define 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

/* 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 */
}}

**version_string.inc [#w8a56569]
   videoio: Removing WinRT API headers by default
 
 General configuration for OpenCV 3.0.0 =====================================
   Version control:               3.0.0
 
   Platform:
     Host:                        Linux 3.10.40-ged4f697 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 -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 -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 -mfpu=neon -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 -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
     Extra dependencies:          /usr/lib/arm-linux-gnueabihf/libpng.so /usr/lib/arm-linux-gnueabihf/libz.so gtk-x11-2.0 gdk-x11-2.0 atk-1.0 gio-2.0 pangoft2-1.0 pangocairo-1.0 gdk_pixbuf-2.0 cairo pango-1.0 fontconfig gobject-2.0 freetype gthread-2.0 glib-2.0 dl m pthread rt cudart nppc nppi npps cufft
     3rdparty dependencies:       libjpeg libwebp libtiff libjasper IlmImf
 
   OpenCV modules:
     To be built:                 hal cudev core cudaarithm flann imgproc ml video cudabgsegm cudafilters cudaimgproc cudawarping imgcodecs photo shape videoio cudacodec highgui objdetect ts features2d calib3d cudafeatures2d cudalegacy cudaobjdetect cudaoptflow cudastereo stitching superres videostab
     Disabled:                    world
     Disabled by dependency:      -
     Unavailable:                 java python2 python3 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:                        libjpeg (ver 90)
     WEBP:                        build (ver 0.3.1)
     PNG:                         /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.2.50)
     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
 
   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 pthreads for parallel for:
                                  YES
     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
 -----------------------------------------------------------------
 

*performance [#b276b6ca]
-TBW

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

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