(1)Jetson TX2 Ubuntu16.04环境下配置opencv3.4.0+opencv_contrib(为了跑YOLO模型然后发现opencv至少要3.4.2以上,崩溃)

前言:本来系统里刷机(刷机教程网上很多)后就自带了opencv3.3.1,结果按照大佬的吩咐直接$ pip install opencv-contrib-python,报错找不到文件,尝试了很多:

1,以为是板子是ARM系统导致的,按照官网上教程修改pip.conf文件,失败。

2,以为是pip版本太老导致的,尝试升级了无数次,到最新的19.0.3,依然没有解决。(不过pip迟早 更新所以影响不大)

3,又看到可以在Github/opencv里下载opencv_contrib源文件放到opencv安装目录里在build文件夹里编译安装,难受的是我的opencv是系统默认安装的,没有build文件夹。

绝望的我决定干脆把opencv完全卸载后再重新安装,找了好久的解决方法,最后找到了最好的一个:https://jkjung-avt.github.io/opencv3-on-tx2/(从卸载系统默认的opencv到安装新的opencv说的非常清楚,我直接拷贝的命令执行的)

 

 


 1,以下是没有改动的部分:

## Remove all old opencv stuffs installed by JetPack (or OpenCV4Tegra)
$ sudo apt-get purge libopencv*
### I prefer using newer version of numpy (installed with pip), so
### I'd remove this python-numpy apt package as well
$ sudo apt-get purge python-numpy
### Remove other unused apt packages
$ sudo apt autoremove
### Upgrade all installed apt packages to the latest versions (optional)
$ sudo apt-get update
$ sudo apt-get dist-upgrade
### Update gcc apt package to the latest version (highly recommended)
$ sudo apt-get install --only-upgrade g++-5 cpp-5 gcc-5
### 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 \
                       libglew-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 libjpeg-turbo8-dev libtiff5-dev \
                       libjasper-dev libpng12-dev libavcodec-dev
$ sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev \
                       libatlas-base-dev gfortran
$ sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev
### Install Qt5 dependencies
$ sudo apt-get install qt5-default
### Install dependencies for python3
$ sudo apt-get install python3-dev python3-pip python3-tk
$ sudo pip3 install numpy
$ sudo pip3 install matplotlib
### Modify matplotlibrc (line #41) as 'backend      : TkAgg'
$ sudo vim /usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc
### 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 python-tk
$ sudo pip2 install numpy
$ sudo pip2 install matplotlib
### Modify matplotlibrc (line #41) as 'backend      : TkAgg'
$ sudo vim /usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data/matplotlibrc

2、vim不好用,所以接下来要修改文件的部分 我用gedit打开的

$ sudo gedit /usr/local/cuda/include/cuda_gl_interop.h

然后修改62-68行为下面形式:

//#if defined(__arm__) || defined(__aarch64__)
//#ifndef GL_VERSION
//#error Please include the appropriate gl headers before including cuda_gl_interop.h
//#endif
//#else
 #include <GL/gl.h>
//#endif

3、继续执行下面

### Download opencv-3.4.0 source code
$ mkdir -p ~/src
$ cd ~/src
$ wget https://github.com/opencv/opencv/archive/3.4.0.zip \
       -O opencv-3.4.0.zip
$ unzip opencv-3.4.0.zip
### Build opencv (CUDA_ARCH_BIN="6.2" for TX2, or "5.3" for TX1)
$ cd ~/src/opencv-3.4.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 \
        -D OPENCV_EXTRA_MODULES_PATH=/home/nvidia/src/opencv-3.4.0/opencv_contrib-3.4.0/modules
        -D WITH_QT=ON -D WITH_OPENGL=ON ..
$ make -j4
$ sudo make install

 要说明的部分

1、该文里没有说明opencv_contrib的安装,于是我按照别的安装教程,先把opencv_contrib安装包解压后放到opencv3.4.0文件夹下,这样执行后面的第三步才正确,因为第三步里我已经加上opencv_contrib的内容了

(1)Jetson TX2 Ubuntu16.04环境下配置opencv3.4.0+opencv_contrib(为了跑YOLO模型然后发现opencv至少要3.4.2以上,崩溃)

2、 opencv和opencv_contrib的安装包可以直接从Github中的opencv里下载,只是非常慢且经常或一直断掉(反正我是这样,一直下了十几次也没有成功,不管是v*n还是修改hostsde IP),可以选择网盘或CSDN里下载,注意匹配版本(后面附上我的网盘链接)

(1)Jetson TX2 Ubuntu16.04环境下配置opencv3.4.0+opencv_contrib(为了跑YOLO模型然后发现opencv至少要3.4.2以上,崩溃)


先写到这里,到这里基本上也安装完成了,剩下一些修补,后面能补充再补充

另外附上安装包opencv和opencv_contrib的网盘链接(都是3.4.0版的)http://链接:https://pan.baidu.com/s/1BagdgGl4xDXITVM66rMMkg 提取码:anls 复制这段内容后打开百度网盘手机App,操作更方便哦

附一张爱图希望一切顺利~_~

(1)Jetson TX2 Ubuntu16.04环境下配置opencv3.4.0+opencv_contrib(为了跑YOLO模型然后发现opencv至少要3.4.2以上,崩溃)