[[:OpenCV]] #contents *概要 [#je52728c] -[[:OpenCV 3.4]]がリリースされたので、[[Firefly RK3399]]でビルドしてみた *前提準備 [#i0765203] -[[Firefly RK3399]]を参照 *今回のターゲット [#x020344b] -Firefly RK3399 -OS:Ubuntu 16.04 -CPU:Arm Cortex-A53 Quad core+Cortex-A72 Dual core -OpenCV 3.4.0 -cmake 3.5.1 -gcc 5.4.0 *OpenCV の取得 [#s434ed13] -gitでcloneして -3.4.0をチェックアウトする -パスは適宜合わせて ~$ time git clone git@github.com:opencv/opencv.git opencv-fork ~$ cd opencv-fork/ ~/opencv-fork$ time git checkout -b Branch_3_4_0 3.4.0 Switched to a new branch 'Branch_3_4_0' -詳細は割愛 *OpenCV3.4.0のビルド [#s5f9452d] -cmakeのfull logは[[こちら>https://gist.github.com/tomoaki0705/6967d72ce3c0faf5139ecc8250cc9555]] -make allのfull logは[[こちら>https://gist.github.com/tomoaki0705/e4b29fdbeeb235641b0d526bd33ecd69]] **cmake [#n1a19ba6] -[[ODROID-X2でOpenCV 3.1.0をビルド]]同様、out of source buildする ~/opencv-fork$ mkdir build ~/opencv-fork$ cd build ~/opencv-fork/build$ time cmake .. (中略) real 1m52.694s user 0m50.712s sys 0m16.308s **make all [#nfa8786c] -3コアを使ってビルドする ~/opencv-fork/build$ time make -j 3 all (中略) real 45m32.167s user 113m11.292s sys 4m40.208s **make install [#hc7da748] -割愛 *OpenCVビルド時のコンフィグなど [#i3250997] **cvconfig.h [#k347f218] #geshi(c++){{ #ifndef OPENCV_CVCONFIG_H_INCLUDED #define OPENCV_CVCONFIG_H_INCLUDED /* OpenCV compiled as static or dynamic libs */ #define BUILD_SHARED_LIBS /* OpenCV intrinsics optimized code */ #define CV_ENABLE_INTRINSICS /* OpenCV additional optimized code */ /* #undef CV_DISABLE_OPTIMIZATION */ /* 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 */ /* 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 /* Halide support */ /* #undef HAVE_HALIDE */ /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 /* Intel Perceptual Computing SDK library */ /* #undef HAVE_INTELPERC */ /* Intel Integrated Performance Primitives */ /* #undef HAVE_IPP */ /* #undef HAVE_IPP_ICV */ /* #undef HAVE_IPP_IW */ /* 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 /* GDCM DICOM codec */ /* #undef HAVE_GDCM */ /* V4L/V4L2 capturing support via libv4l */ /* #undef HAVE_LIBV4L */ /* Microsoft Media Foundation Capture library */ /* #undef HAVE_MSMF */ /* NVidia Video Decoding API*/ /* #undef HAVE_NVCUVID */ /* NVidia Video Encoding API*/ /* #undef HAVE_NVCUVENC */ /* 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_PTHREAD /* 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 */ /* Intel Media SDK */ /* #undef HAVE_MFX */ /* Lapack */ /* #undef HAVE_LAPACK */ /* Library was compiled with functions instrumentation */ /* #undef ENABLE_INSTRUMENTATION */ /* OpenVX */ /* #undef HAVE_OPENVX */ #if defined(HAVE_XINE) || \ defined(HAVE_GSTREAMER) || \ defined(HAVE_QUICKTIME) || \ defined(HAVE_QTKIT) || \ defined(HAVE_AVFOUNDATION) || \ /*defined(HAVE_OPENNI) || too specialized */ \ defined(HAVE_FFMPEG) || \ defined(HAVE_MSMF) #define HAVE_VIDEO_INPUT #endif #if /*defined(HAVE_XINE) || */\ defined(HAVE_GSTREAMER) || \ defined(HAVE_QUICKTIME) || \ defined(HAVE_QTKIT) || \ defined(HAVE_AVFOUNDATION) || \ defined(HAVE_FFMPEG) || \ defined(HAVE_MSMF) #define HAVE_VIDEO_OUTPUT #endif /* OpenCV trace utilities */ #define OPENCV_TRACE #endif // OPENCV_CVCONFIG_H_INCLUDED }} **opencv_version -v [#yc50f297] General configuration for OpenCV 3.4.0 ===================================== Version control: 3.4.0 Platform: Timestamp: 2018-02-15T05:27:25Z Host: Linux 4.4.16 aarch64 CMake: 3.5.1 CMake generator: Unix Makefiles CMake build tool: /usr/bin/make Configuration: Release CPU/HW features: Baseline: NEON FP16 required: NEON disabled: VFPV3 C/C++: Built as dynamic libs?: YES C++ Compiler: /usr/bin/c++ (ver 5.4.0) 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 -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-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 -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-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 -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-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 -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG Linker flags (Release): Linker flags (Debug): ccache: YES Precompiled headers: NO Extra dependencies: dl m pthread rt 3rdparty dependencies: OpenCV modules: To be built: calib3d core dnn features2d flann highgui imgcodecs imgproc ml objdetect photo python_bindings_generator shape stitching superres ts video videoio videostab Disabled: js world Disabled by dependency: - Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 python3 viz Applications: tests perf_tests apps Documentation: NO Non-free algorithms: NO GUI: GTK+: YES (ver 2.24.30) GThread : YES (ver 2.48.2) GtkGlExt: NO VTK support: NO Media I/O: ZLib: /usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.8) JPEG: libjpeg (ver 90) WEBP: build (ver encoder: 0x020e) PNG: /usr/lib/aarch64-linux-gnu/libpng.so (ver 1.2.54) TIFF: build (ver 42 - 4.0.9) JPEG 2000: build (ver 1.900.1) OpenEXR: build (ver 1.7.1) Video I/O: DC1394: NO FFMPEG: NO avcodec: NO avformat: NO avutil: NO swscale: NO avresample: NO GStreamer: NO libv4l/libv4l2: NO v4l/v4l2: linux/videodev2.h gPhoto2: NO Parallel framework: pthreads Trace: YES (built-in) Other third-party libraries: Lapack: NO Eigen: NO Custom HAL: YES (carotene (ver 0.0.1)) NVIDIA CUDA: NO OpenCL: YES (no extra features) Include path: /home/firefly/opencv-fork/3rdparty/include/opencl/1.2 Link libraries: Dynamic load Python (for build): /usr/bin/python2.7 Java: ant: NO JNI: NO Java wrappers: NO Java tests: NO Matlab: NO Install to: /usr/local ----------------------------------------------------------------- *ビルドされたライブラリや実行ファイル [#s2d5835b] -割愛 *関連ページ [#f7f24897] -[[:OpenCV]] -[[:OpenCV 3.0]] -[[:OpenCV 3.4]] -[[Firefly RK3399]] -[[Arm]]