欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jetson tx2 配置Yolov3与deep-sort环境的具体步骤

程序员文章站 2022-03-31 11:33:31
...

首先明确的一点是,tx2是arm内核并自带cuda9.0,至于cudnn的版本也需要得知,用cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2 进行查看,tx2自带的cudnn版本为7。

一、安装opencv(python)

在python3中需要用到opencv 3.4.0 在 python3.5中的安装,检查是否成功的方法是用python3.5输入import cv2,不报错则成功,或者直接在 /usr/local/lib/python3.5/dist-packages中可以找到cv2.so。

安装方法为:

1.删除原有opencv库并安装其它所依赖的库

sudo apt-get purge libopencv*

sudo apt-get purge python-numpy

sudo apt autoremove

sudo apt-get update

sudo apt-get dist-upgrade

sudo apt-get install --only-upgrade g++-5 cpp-5 gcc-5

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

sudo apt-get install libdc1394-22-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

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

sudo apt-get install qt5-default

sudo apt-get install python3-dev python3-pip python3-tk

sudo pip3 install numpy

sudo pip3 install matplotlib

 如果matplotlib版本过高,则下载低版本。 

sudo vim /usr/local/cuda/include/cuda_gl_interop.h

cd /usr/lib/aarch64-linux-gnu/

sudo ln -sf tegra/libGL.so libGL.so

将该头文件中的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

2.下载opencv3.4.0源码

用git clone 或者 wget的方式经常会有early EOF的错误,推荐直接下zip或者tar。

https://github.com/opencv/opencv/releases/tag/3.4.0

3.编译opencv

在cmake时加如下编译选项,否则无法得到opencv-python库。

cmake -D CMAKE_BUILD_TYPE=RELEASE \

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 WITH_QT=ON \

-D WITH_OPENGL=ON \

-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 \

-D BUILD_opencv_python3=ON \

-D BUILD_opencv_python2=OFF \

-D INSTALL_C_EXAMPLES=ON \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D BUILD_EXAMPLES=OFF \

-D PYTHON3_EXCUTABLE=/usr/bin/python3\

-D PYTHON3_INCLUDE_DIR=/usr/include/python3.5m \

-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \

-D PYTHON_NUMPY_PATH=/usr/local/lib/python3.5/dist-packages ..

也就是说,在cmake输出的打印中的python选项,一定要看到:

-- 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.14.0) 
-- packages path: lib/python3.5/dist-packages -- 
-- Python (for build): /usr/bin/python2.7

这样才会按照我们希望的路径安装。

在make install完成后,需要将以下的库文件链接到/usr/local/lib/python3.5/dist-packages中,这个命令在此文件路径下触发。

sudo ln -s /home/ubuntu/opencv-3.4.0/build/lib/python3/cv2.cpython-35m-aarch64-linux-gnu.so cv2.so

这样便可以通过opencv-python是否安装成功的测试。

Ps:某些tx2在安装完成后打开videocapture可能会出现问题,此时用cv2.CAP_GSTREAMER代替!!

二、安装keras与tensorflow

yolo有多种形式可供使用,如果单纯使用darknet进行识别则只需要下载其c语言的源码并编译运行,在这里需要使用keras搭建yolov3网络框架,因此不必下载yolo源码。

1.tensorflow

根据github博主的readme,yolo需要tensorflow1.4.0,但是实测1.5~1.6也可以使用,先下载其他依赖:

sudo apt-get install zip unzip autoconf automake libtool curl zlib1g-dev maven -y

sudo apt-get install python-numpy swig python-dev python-pip python-wheel -y

安装java:

注意如果使用apt-get安装会遭遇Package oracle-java8-installer is not available此类错误,因此需要在Oracle官网下载jdk1.8安装包并解压。

cd /usr/lib

sudo mkdir jdk

sudo mv jdk1.8.0_241 /usr/lib/jdk/jdk1.8

export JAVA_HOME=/usr/lib/jdk/jdk1.8

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=.:${JAVA_HOME}/bin:$PATH

source ~/.bashrc

最后用java -version查看安装是否成功。

安装bazel:

https://github.com/bazelbuild/bazel/tags?after=0.15.0在官方网站直接下载0.9.0版本,并执行compile.sh即可。

https://github.com/peterlee0127/tensorflow-nvJetson/releases

我们在上述地址下载已编译好的tensorflow的wheel,注意选择python3.5的版本,接下来直接用pip3安装该*即可。

测试tensorflow是否成功安装的方法是在python3中import tensorflow as tf;print(tf.__version__),有输出则成功。

2.keras

sudo apt-get install python3-scipy

sudo apt-get install libblas-dev liblapack-dev

sudo pt-get install gfortran

pip3 install keras

至此环境部署完毕,以上的工作我将写成脚本形式便于一键安装。

三、下载yolov3-deepsort源码

1.首先感谢博主Qidian213的劳动成果,在https://github.com/Qidian213/deep_sort_yolov3.git上下载代码,并在yolo官网上下载权重文件,由于tx2上无法实时运行yolov3网络,因此只需要下载yolov3-tiny.weights文件。

2.将权重文件加载到keras中:python convert.py yolov3.cfg yolov3-tiny.weights model_data/yolo.h5

3.运行demo.py,接下来的自己尽情发挥吧。

相关标签: Linux 视觉算法