How to Install OpenCV (3.3.0) on Jetson TX2
来源:互联网 发布:福利彩票预测软件 编辑:程序博客网 时间:2024/05/20 06:42
from JK Jung's blog: https://jkjung-avt.github.io/opencv3-on-tx2/
When I started programming with python3 on Jetson TX2, I found that “import cv2” did not work. It appeared that the pre-installed OpenCV4Tegra (2.4.13.1) only provided bindings for python2.7. After some research, I found the recommended solution to this problem was to re-compile OpenCV.
I was kind of reluctant to remove OpenCV4Tegra and re-build OpenCV by myself. But anyway I finally decided to do it. I documented the procedure below.
Prerequisite:
- Complete installation of JetPack-3.1 on the target Jetson TX2.
Reference:
- Installing OpenCV Guide for Jetson TK1
- Ubuntu 16.04: How to install OpenCV
Installation Steps:
Note that opencv_contrib modules (cnn/dnn stuffs) would cause problem on python caffe. After some experiment I decided not to include those modules at all.
### Remove OpenCV4Tegra$ sudo apt-get purge libopencv4tegra-python libopencv4tegra-dev libopencv4tegra$ sudo apt-get purge libopencv4tegra-repo### Install dependencies based on the Jetson Installing OpenCV Guide$ sudo apt-get install build-essential make cmake cmake-curses-gui g++ libavformat-dev libavutil-dev libswscale-dev libv4l-dev libeigen3-dev libglew1.6-dev libgtk2.0-dev### Install dependencies for gstreamer stuffs$ sudo apt-get install libdc1394-22-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev### Install additional dependencies according to the pyimageresearch article$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev$ sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran### Install dependencies for python3$ sudo apt-get install python3-dev python3-pip$ sudo pip3 install numpy### Also install dependencies for python2### Note that I install numpy with pip, so that I'd be using a newer### version of numpy than the apt-get package$ sudo apt-get install python-dev python-pip$ sudo pip install numpy### Download opencv-3.3.0 and opencv_contrib-3.3.0 source code$ mkdir -p ~/src$ cd ~/src$ wget https://github.com/opencv/opencv/archive/3.3.0.zip -O opencv-3.3.0.zip$ unzip opencv-3.3.0.zip### Build opencv (if for TX1, set CUDA_ARCH_BIN="5.3" instead)$ cd opencv-3.3.0$ mkdir build$ cd build$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_CUDA=ON -D CUDA_ARCH_BIN="6.2" -D CUDA_ARCH_PTX="" \ -D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON \ -D ENABLE_NEON=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..$ make -j4$ sudo make install
Just for reference, here’s the resulting OpenCV 3.3.0 cmake configuration for my Jetson TX2 system.
-- General configuration for OpenCV 3.3.0 =====================================-- Version control: unknown-- -- Platform:-- Timestamp: 2017-10-20T04:50:54Z-- Host: Linux 4.4.38 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 -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 -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 -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 -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG-- Linker flags (Release):-- Linker flags (Debug):-- ccache: NO-- Precompiled headers: YES-- Extra dependencies: gtk-3 gdk-3 pangocairo-1.0 pango-1.0 atk-1.0 cairo-gobject cairo gdk_pixbuf-2.0 gio-2.0 gthread-2.0 /usr/lib/aarch64-linux-gnu/libpng.so /usr/lib/aarch64-linux-gnu/libz.so /usr/lib/aarch64-linux-gnu/libtiff.so /usr/lib/aarch64-linux-gnu/libjasper.so /usr/lib/aarch64-linux-gnu/libjpeg.so gstbase-1.0 gstreamer-1.0 gobject-2.0 glib-2.0 gstvideo-1.0 gstapp-1.0 gstriff-1.0 gstpbutils-1.0 dc1394 v4l1 v4l2 avcodec-ffmpeg avformat-ffmpeg avutil-ffmpeg swscale-ffmpeg dl m pthread rt cudart nppc nppi npps cublas cufft -L/usr/local/cuda/lib64-- 3rdparty dependencies:-- -- OpenCV modules:-- To be built: cudev core cudaarithm flann imgproc ml objdetect video cudabgsegm cudafilters cudaimgproc cudawarping dnn imgcodecs photo shape videoio cudacodec highgui features2d calib3d cudafeatures2d cudalegacy cudaobjdetect cudaoptflow cudastereo stitching superres videostab python2 python3-- Disabled: world-- Disabled by dependency: --- Unavailable: java ts viz-- -- GUI: -- QT: NO-- GTK+ 3.x: YES (ver 3.18.9)-- GThread : YES (ver 2.48.2)-- GtkGlExt: NO-- OpenGL support: NO-- VTK support: NO-- -- Media I/O: -- ZLib: /usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.8)-- JPEG: /usr/lib/aarch64-linux-gnu/libjpeg.so (ver )-- WEBP: build (ver encoder: 0x020e)-- PNG: /usr/lib/aarch64-linux-gnu/libpng.so (ver 1.2.54)-- TIFF: /usr/lib/aarch64-linux-gnu/libtiff.so (ver 42 - 4.0.6)-- JPEG 2000: /usr/lib/aarch64-linux-gnu/libjasper.so (ver 1.900.1)-- OpenEXR: build (ver 1.7.1)-- GDAL: NO-- GDCM: NO-- -- Video I/O:-- DC1394 1.x: NO-- DC1394 2.x: YES (ver 2.2.4)-- FFMPEG: YES-- avcodec: YES (ver 56.60.100)-- avformat: YES (ver 56.40.101)-- avutil: YES (ver 54.31.100)-- swscale: YES (ver 3.1.101)-- avresample: NO-- GStreamer: -- base: YES (ver 1.8.3)-- video: YES (ver 1.8.3)-- app: YES (ver 1.8.3)-- riff: YES (ver 1.8.3)-- pbutils: YES (ver 1.8.3)-- OpenNI: NO-- OpenNI PrimeSensor Modules: NO-- OpenNI2: NO-- PvAPI: NO-- GigEVisionSDK: NO-- Aravis SDK: NO-- UniCap: NO-- UniCap ucil: NO-- V4L/V4L2: Using libv4l1 (ver 1.10.0) / libv4l2 (ver 1.10.0)-- XIMEA: NO-- Xine: NO-- Intel Media SDK: NO-- gPhoto2: NO-- -- Parallel framework: pthreads-- -- Trace: YES ()-- -- Other third-party libraries:-- Use Intel IPP: NO-- Use Intel IPP IW: NO-- Use VA: NO-- Use Intel VA-API/OpenCL: NO-- Use Lapack: NO-- Use Eigen: YES (ver 3.2.92)-- Use Cuda: YES (ver 8.0)-- Use OpenCL: YES-- Use OpenVX: NO-- Use custom HAL: YES (carotene (ver 0.0.1))-- -- NVIDIA CUDA-- Use CUFFT: YES-- Use CUBLAS: YES-- USE NVCUVID: NO-- NVIDIA GPU arch: 62-- NVIDIA PTX archs:-- Use fast math: YES-- -- OpenCL: <Dynamic loading of OpenCL library>-- Include path: /home/nvidia/src/opencv-3.3.0/3rdparty/include/opencl/1.2-- Use AMDFFT: NO-- Use AMDBLAS: NO-- -- Python 2:-- Interpreter: /usr/bin/python2.7 (ver 2.7.12)-- Libraries: /usr/lib/aarch64-linux-gnu/libpython2.7.so (ver 2.7.12)-- numpy: /usr/local/lib/python2.7/dist-packages/numpy/core/include (ver 1.13.3)-- packages path: lib/python2.7/dist-packages-- -- Python 3:-- Interpreter: /usr/bin/python3 (ver 3.5.2)-- Libraries: /usr/lib/aarch64-linux-gnu/libpython3.5m.so (ver 3.5.2)-- numpy: /usr/local/lib/python3.5/dist-packages/numpy/core/include (ver 1.13.3)-- packages path: lib/python3.5/dist-packages-- -- 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-- -- Tests and samples:-- Tests: NO-- Performance tests: NO-- C/C++ Examples: NO-- -- Install path: /usr/local-- -- cvconfig.h is in: /home/nvidia/src/opencv-3.3.0/build-- ------------------------------------------------------------------- -- Configuring done-- Generating done-- Build files have been written to: /home/nvidia/src/opencv-3.3.0/build
To verify the installation:
$ ls /usr/local/lib/pyhton3.5/dist-packages/cv2.*cv2.cpython-35m-aarch64-linux-gut.so$ ls /use/local/lib/python2.7/dist-packages/cv2.*cv2.so$ python3 -c 'import cv2; print(cv2.__version__)'3.3.0$ python -c 'import cv2; print(cv2.__version__)'3.3.0
Bonus:
With OpenCV 3.3.0 properly istalled on your Jetson TX2, you should be able to use python code to capture and display live video from either the Jetson onboard camera, a USB webcam or a IP CAM. Just follow along this later post by myself: How to Capture and Display Camera Video with Python on Jetson TX2.
- How to Install OpenCV (3.3.0) on Jetson TX2
- Jetson-TX2安装opencv教程
- How to install OpenCV
- How to Install OpenCV 3.0 and Python 3.4+ on Ubuntu
- Jetson-TX2:The Gtk3Agg backend is known to not work on Python 3.x with pycairo.
- TX2(1)--Jetson TX2 刷机并安装JetPack3.0
- Install caffe on Jetson TX1
- jetson TX2如何安装opencv3.0
- How to Install Sun Java on Debian
- How to Install JPCap on Linux
- How to build & install ace on cygwin?
- How to Install Fonts on Ubuntu
- How to install GTK+ on windows
- How to install GTK+ on ubuntus_10.10
- How to install gCvs on ubuntu 10.04
- How to install p2psim on ubuntu.10.10
- How to install chrome on Ubuntu 10.10
- how to install software on ubuntu?
- python自动化环境配置,appium,sdk,python,selenium等环境配置
- 剑指offer-跳台阶
- abbr标签获取属性值的问题
- 关于ftp文件服务器上传下载遇到的一些坑
- Java 集合 ArrayList、LinkedList(一)
- How to Install OpenCV (3.3.0) on Jetson TX2
- IOS界面推界面如何回到root界面
- 重磅嘉宾邀你共同探秘Google Project Fi | 硅谷活动
- Spring AOP
- java获取随机数字
- 华尔街之王亲自揭秘,全球最大对冲基金成功的方法论
- SAP中物料消耗的概念
- 读马克思、打太极,这个神秘亿万富豪的客户是FBI
- VS低版本打开高版本解决方案(如08打开10、12、13版本vs编译的项目)