NVIDIA Jetson YOLOv5应用与部署

Posted 一颗小树x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NVIDIA Jetson YOLOv5应用与部署相关的知识,希望对你有一定的参考价值。

前言

在NVIDIA Jetson AGX Xavier 部署YOLOv5的深度学习环境,然后能正常推理跑模型。

首先介绍在NVIDIA Jetson 安装类似于Conda的虚拟环境,然后创建一个环境用来跑yolov5的;

然后在创建好的环境,跑起yolov5,总结要点。

目录

一、安装虚拟环境

二、创建环境

三、安装torch、torchvision

3.1 安装torch

3.2 安装torchvision

3.3 测试torch、torchvision

四、安装YOLOv5依赖库

五、测试模型

六、NVIDIA Jetson 开发常用命令


一、安装虚拟环境

NVIDIA Jetson AGX  Xavier 是arm架构的,无法正常无法安装Anaconda或Miniconda,但可以使用miniforge。两者使用起来并无明显区别,这里是指相关命令;不同点是:miniforge的下载通道是conda-forge。

miniforge的GitHub地址:https://github.com/conda-forge/miniforge
miniforge的.sh release下载地址:https://github.com/conda-forge/miniforge/releases

下载这种格式的 Mambaforge-x.xx.x-x-Linux-aarch64.sh  示例:

然后正常运行安装即可

sh Mambaforge-x.xx.x-x-Linux-aarch64.sh

二、创建环境

这里的命令和conda一样的;环境名称:yolov5;指定Python版本3.6(这个更重要,这个更重要,这个更重要!)

conda create -n yolov5 python=3.6

为什么一定要Python3.6的版本啊?其他不行吗?

一开始我是安装了Python3.9;后来安装Python3.7;发现都无法在 Jetson AGX Xavier 正常使用CUDA;后来发现这个系列目前的cuda10.2 ,对应Pytorch版本只支持Python3.6的,唉之前纠结了我一天时间。

然后添加环境变量(解决”Illegal instruction (core dumped)“错误)

sudo vim ~/.bashrc # 打开文件
export OPENBLAS_CORETYPE=ARMV8 # 末尾添加环境变量export OPENBLAS_CORETYPE=ARMV8,保存并关闭文件
source ~/.bashrc # 更新环境变量文件

三、安装torch、torchvision

这个比较关键,影响到能否正常使用cuda和GPU;先看一下torch和torchvision 之间的版本对应关系,这个很重要。

yolov5 需要 torch v1.7.0、torchvision 0.8.1

3.1 安装torch

来到官网下载PyTorch v1.7.0:https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-10-now-available/72048

 通过下面的指令进行安装:

pip install torch-1.7.0-cp36-cp36m-linux_aarch64.whl

3.2 安装torchvision

来到官网下载0.8.1版本的torchvision:https://github.com/pytorch/vision/tags

 先安装编译依赖

sudo apt-get install libjpeg-dev libavcodec-dev libavformat-dev libswscale-dev
pip install pillow --no-cache-dir

 下载完成后解压缩,cd到这个解压缩的文档中,执行以下命令进行安装:

python setup.py install

3.3 测试torch、torchvision

import torch
print(torch.cuda.is_available())
print(torch.backends.cudnn.version())

import torchvision
print(torchvision.__version__)

输出:(测试环境正常信息)

True
8000
0.8.0a0

四、安装YOLOv5依赖库

下载yolov5代码(目前最新是第六版),然后进入目录:

git clone https://github.com/ultralytics/yolov5
cd yolov5

修改 requirements.txt 文件,注释torch、torchvision两行就可以了

vim requirements.txt

 安装依赖库

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

-i https://mirrors.aliyun.com/pypi/simple 这是基于阿里云加速安装的。

五、测试模型

python detect.py --weights 'detect_models/yolov5s.pt' --source xx.mp4

 ......................................

 这是测试视频是1920*1080大小的,每一帧平均时间是36ms左右,感觉还不够快,后面再用TensorRT加速去加速。

部分效果:

六、NVIDIA Jetson 开发常用命令

基础信息:jetson_release

监控信息 先安装:sudo -H pip3 install jetson-stats
查看状态:sudo jtop

查询系统版本: cat /etc/lsb-release

查询内核心版本:uname -a

CPU概况:lscpu

硬盘概况:sudo parted -l

存档空间概况:df -h

查看运行进程:top

cuda版本:nvcc -V

以上是关于NVIDIA Jetson YOLOv5应用与部署的主要内容,如果未能解决你的问题,请参考以下文章

NVIDIA Jetson YOLOv5应用与部署

NVIDIA Jetson AGX Xavier YOLOv5应用与部署

NVIDIA Jetson YOLOv5 tensorRT部署和加速 C++版

NVIDIA Jetson YOLOv5 tensorRT部署和加速 C++版

NVIDIA Jetson YOLOv5 tensorRT部署和加速 C++版

Jetson Nano部署YOLOv5与Tensorrtx加速——(自己走一遍全过程记录)